Си шарп с нуля

Формула программиста
основатель — Волосатов Евгений Витольдович
Бесплатно, но не даром!




kalobyte

Видеокурсы

Дата активности Видеокурс Прогресс
2017-07-08 base2 БД - Управление гостиницей все 31 100 %
2017-06-14 wpf WPF Clocks 1 из 10 10 %
2017-06-13 base1 БД - Книжка оценок все 6 100 %
2017-06-01 iterator Итератор все 10 100 %
2017-06-01 compiler Компилятор все 3 100 %
2017-05-23 soft3 Теория ООП все 39 100 %
2017-04-21 soft0 Демо софт 6 из 7 86 %
2017-01-05 soft1 Нанософт 1 из 10 10 %
Итого: 97 из 116 84 %

Консольные задачи

Этот формулист не решил ни одной консольной задачи
Сохранить страницу:

10588. kalobyte
kalobyte
ответить
→  Евгений Волосатов   / 2017-07-09 15:07

Я пока не нашел нигде инфы, где бы был описан механизм соединения 3х частей.
Сегодня на хабре увидел как раз статью про это.
https://habrahabr.ru/company/alconost/blog/332530/
Да и у меня нет еще достаточных знаний для написания моего приложения.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # БД - Управление гостиницей / Вид. Список форм. / 2017-07-09 14:12

У тебя есть возможность самостоятельно его пройти до конца.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # БД - Управление гостиницей / Вид. Список форм. / 2017-07-08 12:51

Курс не дописан. что очень печально, видимо в будущем планируется, но на этом проекте имеются курсы, которые остались незаконченными.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte   / 2017-07-08 12:47

если писать this не обязательно, то его наличие ошибок не выдаст. Компилятор если видит this сразу берёт за пределами, а если он не видит у переменной this, то он вначале ищет её в пределах функции, если не нашёл, ищет за пределами.


10588. kalobyte
kalobyte
ответить
→  Иван Воронин   / 2017-07-08 12:44

Так ведь в той функции не было вообще входных параметров.
        public void UpdateMap()
        {
            do sql.Update("UPDATE map " +
          "SET satus = '" + sql.addslashes(status) + "', " +
          "adults = '" + adults + "', " +
          "childs = '" + childs + "'" +
          " WHERE room_id='" + sql.addslashes(this.room_id.ToString()) + "'" +
          " AND book_id='" + sql.addslashes(this.book_id.ToString()) + "'" +
          " AND calendar_day='" + sql.DateToString(this.calendar_day) + "' LIMIT 1");
            while (sql.SqlError());
        }
Я думал, что и в этом случае надо this, который бы четко указывал на глобальную переменную в классе.
Теперь оказывает, что если в функции нет входных параметров, то не обязательно указывать this? А я первый раз сам написал, а потом в ролик глянул, а там без. И компилятор ничего не подчеркивал.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # БД - Управление гостиницей / Модель. Карта отеля 3 / 2017-07-08 12:38

А говорил, что разобрался в этих this =) в данном случае всё верно, если бы был ВХОДНОЙ ОДНОИМЁННЫЙ параметр, то чтобы компилятор понял из какого брать данные из входного или того, кто за пределами функции и придумали this который указывает на тот, который за пределами, а не тот, что входной.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # БД - Управление гостиницей / Модель. Карта отеля 1 / 2017-07-01 15:37

Ну вот и отлично, лишний раз доказано, что понимание приходится с практикой.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # БД - Управление гостиницей / Модель. Статусы заказов. / 2017-07-01 15:33

судя по строчке this.till_day = till_day; после этого они оба имеют идентичные данные, а так как это присвоение было ДО строчки SET till_day = '" + till_day.ToString("yyyy-MM-dd"), то и не важно, без this или с ним, данные там идентичные!!!

по поводу ИЛИ, последовательность || означает именно ИЛИ, а И это будет &&. так что не понятно, где написан неверный код и о чём речь.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # БД - Управление гостиницей / Модель. Бронирование. / 2017-06-29 15:42

Да, монотонность убивает интерес, в точку попал. =)


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # БД - Управление гостиницей / Модель. Тестирование комнат. / 2017-06-27 22:12

Обычная практика. С опытом привыкаешь сразу находить причину ошибки.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # БД - Управление гостиницей / Модель. Класс комнаты / 2017-06-27 13:21

Чтобы тест работал так как надо, надо самому понимать как это должно работать. ПК тупой, ему что программист сказал, то он и делает.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # БД - Управление гостиницей / Модель - Календарные праздники / 2017-06-27 13:00

Так и есть, идеальных тестов нет, особенно когда дело касается промежуточных данных, а sql запросы, это как логика записи файла или структуру передаваемого пакета, если формируется не верно, то это сразу и не узнать, если только не проверять после формирования и отправки/записи на корректность выполнения, но это доп. ресурсы, которые можно задействовать в дебаг режиме, а в релиз уже эта часть кода не будет компилироваться.


10588. kalobyte
kalobyte
ответить
→  Евгений Волосатов   / 2017-06-27 11:55

Ну у меня не возникало вопросов в понимании работы фрезерного станка. Только я его не стал делать. Купил готовый.
С виду кажется все сделано просто, а вот как начнеш сверлить отверстия под крепления без станка и получиш станок с такой погрешностью, что придется выбросить. А цена материала равна половине цены готового.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # БД - Управление гостиницей / Модель. Класс комнаты / 2017-06-27 11:18

чтобы построть станок - надо сначала понять, что он должен делать.
в программировании - создать тесты, которые он должен проходить.


1. Евгений Волосатов
Евгений Волосатов
ответить

1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # БД - Управление гостиницей / Модель - Календарный год / 2017-06-26 22:44

мукусл можно запускать со спец. параметром, который позволяет ставить пробел после count.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # БД - Управление гостиницей / Класс MySQL. Получение таблицы. / 2017-06-26 14:50

0 для того, чтобы было подставлено очередное значение счётчика.


10588. kalobyte
kalobyte
ответить
→  Tekashnik   / 2017-06-26 10:50

Хоть кто-то читает.


8275. Tekashnik
Tekashnik
ответить
→  kalobyte  # БД - Управление гостиницей / Модель. Всё про Клиента / 2017-06-26 09:58

Как всегда шикарное сочинение))


7119. Новопашин Владимир
Новопашин Владимир
ответить
→  kalobyte  # БД - Управление гостиницей / Модель. Имена методов. / 2017-06-24 13:18

Не всегда много времени. Бывает и быстро пишешь.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # БД - Управление гостиницей / Модель. Список задач. / 2017-06-19 20:36

Хорошо поработал, правда.


12956. Denis
Denis
ответить

9049. Bazel
Bazel
ответить
→  kalobyte   / 2017-06-14 21:57

Если немного откатить назад, то полдня назад у тебя даже вопроса не было. Что такое м, что такое л? Сейчас он у тебя есть. Через какой то промежуток времени, если тебя это действительно интересует, будет ответ. Вот это  и есть процесс получения знаний. Вопрос-ответ. Так что полпути ты уже прошел, вопрос у тебя есть, осталось найти только ответ:)
А если серьёзно, то книга хороший помощник. Для понимания теорий всё равно придётся обращаться к литературе.


10588. kalobyte
kalobyte
ответить
→  Bazel   / 2017-06-14 21:33

Как по мне, то куча форм записей только усложняет все это.
Откуда взять эти цифры? Должен же быть редактор объектов. А так практика без представления о предмете это объяний труд. У меня вот ошибка где-то, а я даже понять не могу, где. Что такое м, что такое л?


9049. Bazel
Bazel
ответить
→  kalobyte  # WPF Start / Стрелочные часы / 2017-06-14 20:26

Урок действительно немного "забегает" вперед. Теорий уделяется очень мало внимания, упор делался на практику. Тут я могу посоветовать подождать немного, думаю через некоторое время появятся курсы с уклоном на теорию, но лучше начать самому потихонечку вникать, если конечно этот вопрос интересует. Хорошая книга "WPF Windows Presentation Foundation в .NET 4.0 с примерами на C 2010". На многое "открывает" глаза. Она старенькая, но во многом актуальная до сих пор.
По поводу магических цифр. Я видимо не совсем понятно объяснил. Я попытался различными способами нарисовать три стрелки. Секундная стрелка записана была без использования мини-языка геометрий, а последние две стрелки с использование мини-языка геометрий. Это сокращает код, но теряется информативность. Что видимо и произошло. Можно все стрелки нарисовать без мини-языка и будет работать.
Вместо этого Data="M240,170 120 0 l-5 -110 l-5 -5 l-5,5 Z" нужно записать вот это  Data="M 240,170 l 20,0 l -5,-110 l -5,-5 l -5,5 Z ".  Запись в мини-языке l20,0  равносильна записи l20 0 или  l 20 0 или l 20,0. Т.е. мы от предыдущей точки, с координатами (х,у) двигаемся в следующую с координатами (х+20,у+0).


10670. Сергей Соколов
Сергей Соколов
ответить
→  kalobyte  # БД - Книжка оценок / ФИНАЛЬНЫЙ УРОК / 2017-06-13 20:12

Поздравляю с финалом! =)


8275. Tekashnik
Tekashnik
ответить
→  kalobyte  # БД - Книжка оценок / Подключение проекта к MySQL / 2017-06-13 06:09

))) Рад, что мой отчёт помог))) А я писал в комментариях, что курс не лёгкий))


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte   / 2017-06-08 10:12

string scalar = cmd.ExecuteScalar().ToString();
эта строчка может косячить, проверь что она возвращает при дебаге, чтобы в переменной scalar было то, что нужно!!!


7119. Новопашин Владимир
Новопашин Владимир
ответить
→  kalobyte   / 2017-06-08 07:52

Я бы конечно стал делать select max(id)  - понятное дело лучше это надо отдать на откуп БД. Да насчет интуиции согласен.


10588. kalobyte
kalobyte
ответить
→  Новопашин Владимир   / 2017-06-08 07:41

Обижеются терпилы. Я просто сказал, что понятия не имел о такой функции.
Я все больше прихожу к выводу, что надо прокачивать интуицию, а то она там в уголке сидит и попискивает.


7119. Новопашин Владимир
Новопашин Владимир
ответить
→  kalobyte   / 2017-06-08 07:30

Ну в принципе да - мы не волшебники - только учимся. Просто все ошибки с БД я кожей чувствую - это мой хлеб - не обижайся на мое ворчание.


10588. kalobyte
kalobyte
ответить
→  Новопашин Владимир   / 2017-06-08 07:28

Откуда мне знать, что такаяфункция есть?
Я сделал проще - ид всегда должен быть автоинкремент в подобных случаях.
Вот так все четко работает.

        private void insert_subject()
        {
            do sql.Open();
            while (db_error());

            do sql.Exec("INSERT INTO subject (subject) VALUES (\"" + text_subject.Text + "\")");
            while (db_error());
            text_subject.Text = "";
            do sql.Close();
            while (db_error());
           
            load_subject_table();
        }


7119. Новопашин Владимир
Новопашин Владимир
ответить
→  kalobyte   / 2017-06-08 07:24

Зачем так извращаться? Достаточно было сделать SELECT  isnull( MAX(id),0)  FROM subject


10588. kalobyte
kalobyte
ответить
→  Новопашин Владимир   / 2017-06-08 07:18

Ну да, их там нет уже.
Я сделал вот так:
        private void insert_subject()
        {
            do sql.Open();
            while (db_error());

            int id;
            id = int.Parse(sql.Scalar("SELECT MAX(id) FROM subject")) + 1;
            if (id == null) id = 0;
            do sql.Exec("INSERT INTO subject (id, subject) VALUES (" + id.ToString() + ", \"" + text_subject.Text + "\")");
            while (db_error());
            text_subject.Text = "";
            load_subject_table();

            do sql.Close();
            while (db_error());

        }
Additional information: Input string was not in a correct format.
Ошибка в той же строке.
Я так полагаю id нельзя конвертировать в строку, т.к. в базе это тип инт. Я это еще опять интуитивно заметил, но как я могу сомневаться? Сейчас переделаю и посмотрю.


7119. Новопашин Владимир
Новопашин Владимир
ответить
→  kalobyte  # БД - Книжка оценок / Создание интерфейса программы / 2017-06-08 06:03

А если select max(id) from subject - вернет null? Может вовсе записей нет в таблице - тогда у тебя будет ошибка.


10588. kalobyte
kalobyte
ответить
→  Иван Воронин   / 2017-06-08 05:29

Вот я ее тоже пересмотрел 100 раз.
Может глаз где замылился.

        public string Scalar(string query)
        {
            error = "";
            this.query = query;
            try
            {
                OleDbCommand cmd = odc.CreateCommand();
                cmd.CommandText = query;
                string scalar = cmd.ExecuteScalar().ToString();
                return scalar;
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return "";
            }
        }


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # БД - Книжка оценок / Создание интерфейса программы / 2017-06-07 23:57

С виду всё ок, копай функцию Scalar() что она делает, возможно она криво работает.


10588. kalobyte
kalobyte
ответить
→  Denis   / 2017-06-07 20:16

Таблица та, поля text и  long int.


1947. Denis
Denis
ответить
→  kalobyte  # БД - Книжка оценок / Создание интерфейса программы / 2017-06-07 19:57

С виду SQL запрос верный. Видимо, проблема в чем-то другом. Может таблица не так называется или еще что...


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # БД - Книжка оценок / Проектирование БД «Книжка оценок» / 2017-06-04 03:45

Потому что курсов много, а таких, чтобы заставляли повторять за учителем, тоже только тут нашёл, на этом проекте все курсы годные!


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte   / 2017-06-04 00:59

У меня софт под ключ, чтобы был код только того, что надо, не было лишнего мусора, который никогда не будет использоваться, чего во всяких фреймворках МОРЕ.


10588. kalobyte
kalobyte
ответить
→  Иван Воронин   / 2017-06-03 20:24

А какого рода твой софт, что нет какого-то функционала сейчас. Можно конечно и свое собирать. Раньше вон на пхп классы собирали и лепили свое, а зенд был чем-то далеким и для бородатых гуру. Сейчас же даже нуб должен уметь фреймворки.

У меня баба знакомая в школе искусств учится, практику ищет. Я ей говорю, что сейчас надо знать не просто хтмл с цсс, надо яваскрипт еще знать и фреймворки как для цсс, так и для яваскрипта. Хотя бы жквери.

В паяльстве раньше можно было собрать детекторный приемник или мультивибратор, то сейчас уже нужно уметь писать код для контроллера, а детекторный приемник - это как минимум супергетеродин с синтезатором частот, а то и вообще сдр.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte   / 2017-06-03 20:01

Полностью согласен, но фреймворки на деревьях не растут =) их тоже пишут люди, вот я пишу свои, так как тот функционал, который требуется моим клиента, нет в сети, поэтому приходится писать самому, плюс ход должен быть маленьким и быстрым, это как писать для чипов, если каждый байт имеет значение, а сейчас изза того, что доступны чужие движки, очень много ковнокода, да он быстрый, но он однодневка. Это дело каждого, как писать код, используя чужие наработки, либо писать свои, можно это комбинировать, никто не запрещает создавать гибриды.


10588. kalobyte
kalobyte
ответить
→  Иван Воронин   / 2017-06-03 14:30

Зачем писать с нуля, если есть фреймворк и их писали люди явно более лучше. Изобретать велосипеды мне не хочется и делать ошибки тоже. Сейчас не то время, когда программист был богом. Сейчас это обычная работа ремесленника, когда надо еще вчера было, иначе конкурент сделает первым. Сейчас и в паяльстве преобладает модульная сборка. Китаезы клепают высокотехнологичные модули, которые дешевле, чем если бы ты сам покупал и паял их.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte   / 2017-06-03 14:14

Так не используй фреймворки, пиши свои, я своё пишу, не использую чужой код, если он мне не понятен или не нравится, так как чужой код это чужие баги и ошибки, а я не хочу отвечать за чужие ошибки, поэтому всегда всё пишу под ключ с нуля и уверен в своём коде.


10588. kalobyte
kalobyte
ответить
→  Иван Воронин   / 2017-06-03 14:08

Ну вон есть куча деталей, ты сам можеш соединять их. Только могу тебе сказать, что врят ли у тебя что-то заработает.
Мне понадобилось 5 лет, чтобы самостоятельно правильно соединить 5 деталей и получить рабочую схему. Если бы мне показали один раз, я бы все понял.

Я только на 4м десятке недавно понял, как работает детекторный приемник. Точнее как получается звук при выпрямлении вч тока. Оказалось, что в книжках пишут полный бред.
Так и в программировании - без просмотра процесса эволюции кода ничего не поймеш. Будеш на уровне хеловорлда писать простые формочки.
Я вот например понятия не имею, как и какая инфа передается в каком-нибудь пхп фреймворке между моделью и контроллером и как этот механизм реализован. Без его ощущения я не ощущаю контроля. Ни в какой книжке это не написано.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte   / 2017-06-03 00:09

"Везде говорится про все куски всего, только нигде не говорится, как их собрать в одну _полезную_ работающую прогу."
я об этом, везде дают куски, так как программирование из него и состоит, чем больше у тебя кусков, тем больше вариантов можно из них сварганить, а это уже дело интимное.


10588. kalobyte
kalobyte
ответить
→  Иван Воронин   / 2017-06-02 23:47

В смысле в одно целое?


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Компилятор / Секреты Designer файла / 2017-06-02 23:10

Сборкой в одно единое целое занимается каждый сам для себя, так как сколько людей, столько и своих пирамид, дерзай! =)


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Компилятор / Где живёт компилятор / 2017-06-02 23:06

Именно так и выяснится =)


10588. kalobyte
kalobyte
ответить
→  Tekashnik   / 2017-06-02 10:33

Сочинение писал по ходу просмотра ролика.
Так-то все понятно, но я не умею алгоритмы придумывать и писать их в коде. Я инвалид на левое половину мозгов, которая за логику отвечает.


10588. kalobyte
kalobyte
ответить
→  Денис   / 2017-06-02 10:31

А что тогда такое .net core? Я могу сейчас использовать линупс на арм и написать под него серверное приложение с использованием виндовса и протестировать сначала на виндовсе, а потом туда перенести?
Приложение это простой вебсервер для отдачи статики и джейсона + работа с ком портами или библиотеками хид усб.


8275. Tekashnik
Tekashnik
ответить
→  kalobyte  # Итератор / VIP. Оптимизация поиска простых чисел / 2017-06-02 08:02

Ничего себе сочинение. В курсе вроде достаточно понятно объяснено как что и откуда брать что бы было понятно


14071. Денис
Денис
ответить
→  kalobyte   / 2017-06-02 06:21

В том то и дело что не на .net пишу, а на mono. Но разница в изучении программирования невелика. Не портировали они ничего. Сделали visual studio code, который является продвинутым блокнотом. Плюс сертифицировали байт код, из-за чего компилятор может теперь создать любой (что и сделали в моно). Гтк - замена виндовс.формс. Так же есть некритичные отличия. Зато моя среда разработки открывается за секунду, и программа запускается за секунду. В студии оба этих процесса до минуты занимает. Еще плюс, что мои программы можно запустить и в лине и в винде, что мне и надо. Я работаю в лине, а коллеги в винде, а программы нужны всем. Переучивать коллег на линуху дело неблагодарное.


10588. kalobyte
kalobyte
ответить
→  Денис  # Компилятор / Откуда берутся окна / 2017-06-01 23:06

Поставить линупс, чтобы потом писать на .нет.
А чистый .нет не работает что ли? Я слышал мелкасофт портировал там что-то или на гитхаб выложил. А тут гтк надо прикручивать еще.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte   / 2017-06-01 18:06

Какой пакет вы сейчас заказали?


10494. Алексей В.
Алексей В.
ответить
→  kalobyte  # Итератор / ФИНАЛЬНЫЙ УРОК / 2017-05-30 21:24

Отлично!! Финал - это всегда приятно!!!


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Итератор / Итератор. Один метод вместо классов. / 2017-05-30 16:31

> Курс называется "разложение числа на простые множители".
> Сначала я подумал, что число 123 будет раскладываться на 1, 2 и 3.

Ну, ... я даже не знаю, что тут сказать.
Поражаюсь твоей напористости.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte   / 2017-05-30 12:45

Да, без базы путь будет сложен и тернист =)


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Итератор / Итератор. Зачем нужно два класса / 2017-05-30 11:35

решай консольные задачи.


10588. kalobyte
kalobyte
ответить
→  Иван Воронин   / 2017-05-30 08:40

Курс в профи, но разве это из профи раздела? Я думал для профи это всякие паттерны проектирования уже.
А синтаксис и ключевые слова с классами входят в базовый курс. Нельзя стать профи, если не знаеш основ.

А так я и так гуглю и что понимание с практикой приходит - тоже понятно.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Итератор / ФИНАЛЬНЫЙ УРОК / 2017-05-29 23:46

Молодец, поздравляю, удачи в дальнейшем. Совет, если не хватает понимания, либо гугли, либо просто повторяй за учителем, понимание приходит с практикой.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Итератор / Итератор. Один метод вместо классов. / 2017-05-29 23:44

Я посмотрел категории, у меня он в категории номер 2, начинающие.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Итератор / Итератор. Один метод вместо классов. / 2017-05-29 23:42

Так как этот курс находится в категории ПРОФИ, и до него все курсы по C# у тебя не 100% выполнены, то чего ты хотел? бежать впереди паровоза? ребёнок вначале учится ходить, а потом всё остальное, а не сразу с пелёнок в космос =) Плюс этот курс был записан давно, лучше про итераторы с отличным примером сортировку карточной колоды продемонстрировано в курсе по языку Java: https://www.videosharp.info/video/design-iterator


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte   / 2017-05-28 21:55

Жду, когда пройдёшь курс, жду твоё резюме =)


3922. Александр
Александр
ответить
→  kalobyte  # Итератор / ФИНАЛЬНЫЙ УРОК / 2017-05-28 21:10

Молодец, kalobyte! С финалом!


10588. kalobyte
kalobyte
ответить
→  Иван Воронин   / 2017-05-28 18:22

Я не лез в гугл, чтобы оценить курс как целое. Сейчас я полез в гугл и читаю. Могу тебе сказать, что и тут тоже ничего не понял. Но напишу много букв.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Итератор / Итератор. Список простых чисел. / 2017-05-28 17:36

Если бы не лез в гугл и решил поставленную задачу, это круто, а когда есть вопросы и не лезть в гугл, это не красиво. Жду когда закончить прохождение курса и хочется почитать претензии. Так как я его прошёл и только один баг в конце нашёл, остальное всё ясно как день.


10588. kalobyte
kalobyte
ответить
→  Иван Воронин   / 2017-05-27 19:06

Ну да, я так и хотел в конце написать.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Итератор / Итератор. Перебор простых чисел. / 2017-05-27 17:03

Молодец, хорошо поработал, а отдыхать тоже надо, новая информация всегда сложнее, чем повторение пройденного.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Итератор / Итератор. Перебор чисел в итераторе. / 2017-05-27 16:57

Когда пройдёшь курс целиком, тогда сделаешь выводы, пришло понимание или нет.


3922. Александр
Александр
ответить
→  kalobyte  # Итератор / Итератор. Перебор простых чисел. / 2017-05-26 23:43

Молодец, kalobyte! Хороший темп взял!


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Теория ООП / Интерфейс. VIP. Тяжёлая дружба кругов и квадратов. / 2017-05-25 17:26

Потому что примеры создаваемых программ имеют смысл, динамичны. Поэтому хочется их набирать. Поздравляю с получением посылки :)


1. Евгений Волосатов
Евгений Волосатов
ответить

13540. Алексей Малышев
Алексей Малышев
ответить
→  kalobyte  # Теория ООП / Интерфейс. ФИНАЛЬНЫЙ УРОК. / 2017-05-24 21:29

Поздравляю с прохождением курса


10588. kalobyte
kalobyte
ответить
→  Иван Воронин   / 2017-05-24 08:16

Про чтение книг за кадром верно подмечено. Это напоминает мне уроки в школе. Учитель тупо по книжке что-то читает и от этого спать хочется. Конечно это больше к системе обучения претензия, учителя не могут выдумывать свои программы или отходить от учебников.

А ролик хорош, мне он сразу запомнился простотой объяснения, как сделать подобие жизни.


10588. kalobyte
kalobyte
ответить
→  Tekashnik   / 2017-05-24 08:11

Я думал никто не читает столько букв.


7119. Новопашин Владимир
Новопашин Владимир
ответить
→  kalobyte  # Теория ООП / Интерфейс. ФИНАЛЬНЫЙ УРОК. / 2017-05-24 06:12

С финалом!


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Теория ООП / Интерфейс. VIP. Тяжёлая дружба кругов и квадратов. / 2017-05-24 03:18

Потому что тут усиленная практика, поэтому и желание есть кодить за Игромистром, а другие только книги читают за кадром, могли просто mp3 выложить, чтобы люди на ночь слушали. Так что не удивительно, что этот курс понравился и увлёк не только слушать и смотреть, но и самому кодить.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Теория ООП / Интерфейс. ФИНАЛЬНЫЙ УРОК. / 2017-05-24 03:12

Отличное видео, посмотрел с удовольствием, так как уже реализовывал игру Жизнь не один раз на этом проекте, даже на поле игры сапёр, скинул это видео себе в коллекцию, надо будет реализовать аналогичную версию, интересная штука =)


8275. Tekashnik
Tekashnik
ответить
→  kalobyte  # Теория ООП / Интерфейс. VIP. Тяжёлая дружба кругов и квадратов. / 2017-05-24 00:26

Целое сочинение на тему: "Как я полюбил ООП")))


1947. Denis
Denis
ответить
→  kalobyte  # Теория ООП / Интерфейс. VIP. Пересечение прямоугольников. / 2017-05-23 20:43

Можно считать, что одни над другими. Одни на земле, другие на небе =) Было бы 3Д, было бы понятнее =)


10588. kalobyte
kalobyte
ответить
→  Александр  # Теория ООП / Интерфейс. ФИНАЛЬНЫЙ УРОК. / 2017-05-23 19:29

Это не мое видео, я его приложил к моему каменту про творца.


3922. Александр
Александр
ответить
→  kalobyte  # Теория ООП / Интерфейс. ФИНАЛЬНЫЙ УРОК. / 2017-05-23 16:51

Молодец, kalobyte! Хорошо поработал и видео отличное сделал! С финалом!


13556. Колупаев Сергей
Колупаев Сергей
ответить
→  kalobyte  # Теория ООП / Интерфейс. ФИНАЛЬНЫЙ УРОК. / 2017-05-23 16:43

Поздравляю с финалом!


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte   / 2017-05-23 15:33

Продлено


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Теория ООП / Интерфейс. Создаём новую игру. / 2017-05-23 09:33

В программировании больше нужна логика. Математика на втором месте.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Теория ООП / Интерфейс. Кружочки гоняются друг за другом. / 2017-05-23 08:59

Не вижу тут никакой крутой математики, программа 3 класса. По поводу sx и sy - это смещение координат круга относительно текущих его координат.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte   / 2017-05-23 08:55

Лучше один раз показать, чем сто раз прочитать!!! =)


10588. kalobyte
kalobyte
ответить
→  Иван Воронин   / 2017-05-23 08:53

У нас тоже в школе были пентиумы, но урок информатики был только у малолеток. Так что нормальный компутер я увидел только в 99м.
У меня еще была книжка тогда, насколько я помню, у спектрума был какой-то диапазон памяти типа буфер принтера или что-то такое, куда загружались шрифты или символы пользователя. Я тогда мало понимал, что это такое. В книжке были наборы цифр от 0 до 255 и был массив. А откуда эти цифры берутся - никто нигде не написал. Это  я уже потом много лет спустя разбирался с индикатором hd44780 и там в даташите был как раз показан весь принцип создания собственных символов в озу и пзу знакогенератора.

Так что толстая книга про написание игр на спектруме оказалась макулатурой. С тех пор я стал все меньше и меньше читать книг, а с приходом ютуба и совсем забил на них.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Теория ООП / Интерфейс. Кружок готов к игре! / 2017-05-23 08:51

Да, во всех 2D играх квадратные спрайты.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Теория ООП / Интерфейс. Кружок хочет играть. / 2017-05-23 08:41

Я когда на спектруме изучал этот же вопрос, создал необходимые спрайты через редактор шрифта, подгружал его в программу и рисовали ими объекты, получалось как надо. На бейсике всё медленее да, но работу по информатике надо было гдето делать, а у меня был только спекки, а на информатике уже были пентиумы 100, там писали на QBasic, вот и занимался портированием туда-сюда =))))))


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Теория ООП / Интерфейс. Кружочки гоняются друг за другом. / 2017-05-22 17:35

Здесь нет никакого матана :-) это элементарная школьная геометрия.
Sqrt без дополнительных скобок вычисляет квадратный корень только первой разности.  Скорее всего там получилось отрицательное число, из-за чего и вышло исключение


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Теория ООП / Интерфейс. Кружок готов к игре! / 2017-05-22 17:33

Вот именно поэтому я так долго думал про бильярдные шары, какова формула их столкновения. А Интернета тогда не было :-)


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Теория ООП / Интерфейс. Кружок хочет играть. / 2017-05-22 17:27

Какие замечательные воспоминания из прошлого века :-) я в школьное время не один вечер думал, чтобы вывести формулы для столкновения Шаров, хотел написать бильярд, но тех знаний так и не хватило, чтобы сделать это.


7119. Новопашин Владимир
Новопашин Владимир
ответить

10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Теория ООП / Интерфейс. Площадка для игры. / 2017-05-19 00:49

Тут тоже можно передавать, если надо.


10588. kalobyte
kalobyte
ответить
→  Евгений Волосатов   / 2017-05-18 23:26

А я его как раз и посмотрел. Не всегда доходит с первого раза.
Но я понял, что рандом надо тупо статично вызывать.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Теория ООП / Интерфейс. Площадка для игры. / 2017-05-18 15:46

Посмотри это видео:
https://www.youtube.com/watch?v=a03X9gmDmto


7119. Новопашин Владимир
Новопашин Владимир
ответить
→  kalobyte  # Теория ООП / Интерфейс. Алгоритм игры. / 2017-05-18 07:01

Кстати с исправлением ошибок - да ты ошибку исправил, но пока не перекомпилируешь будет гореть синим.


7119. Новопашин Владимир
Новопашин Владимир
ответить
→  kalobyte  # Теория ООП / Интерфейс. Правила игры. / 2017-05-18 06:58

Насчет кириллицы согласен.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Теория ООП / Перемещение Снеговиков / 2017-05-18 02:21

Чтобы понять смысл кода, надо смотреть на реализацию в целом, а не конкретные пары строк.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Теория ООП / Перемещение других фигур / 2017-05-18 02:19

Этим уроки на данном проекте и радуют, что вначале городим огороды и изобретаем велосипеды, а потом плавным движением руки код превращается...


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Теория ООП / ПОЛУФИНАЛЬНЫЙ УРОК. / 2017-05-17 15:54

Спасибо за отзыв!


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Теория ООП / Перемещение Снеговиков / 2017-05-17 15:52

Функции называются одинаково, какая именно будет вызываться, зависит от типа объекта


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Теория ООП / Перемещение других фигур / 2017-05-17 15:52

Все гениальное – просто :-)


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Теория ООП / Перемещение круга / 2017-05-17 15:22

Процентный фактор мотивирует. :)


1947. Denis
Denis
ответить
→  kalobyte  # Теория ООП / ПОЛУФИНАЛЬНЫЙ УРОК. / 2017-05-17 13:46

this указывает на текущий экземпляр класса, в котором он употребляется (насколько я это понимаю). Используется, например для того, чтобы отличить переменные класса, от переменных функции. Например у тебя есть в классе переменные width, height. В конструкторе класса ты тоже можешь указать как входящие параметры такие переменные. Так вот, чтобы исключить двусмыслие, ты явно указываешь, что нужно присвоить переменной this.width значение входящей переменной width.


13556. Колупаев Сергей
Колупаев Сергей
ответить
→  kalobyte  # Теория ООП / ПОЛУФИНАЛЬНЫЙ УРОК. / 2017-05-17 11:09

Ключевое слово this указывает на конкретный элемент, например this.BackColor.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Теория ООП / Перемещение круга / 2017-05-17 01:04

Молодец, в этом и сила данного проекта, что упор на практику и эксперименты для наглядности. Но никто не мешает проводить дополнительные эксперименты если есть какие либо сомнения, предоставляя свою версию на скриншотах и/или видео.


3922. Александр
Александр
ответить
→  kalobyte   / 2017-05-16 09:43

Потому, что переменные называют в зависимости от того, для чего эта переменная создана, name это - name, counter - counter. Так принято, что бы не запутаться, наверно...


7119. Новопашин Владимир
Новопашин Владимир
ответить
→  kalobyte   / 2017-05-16 09:12

И зачем тут нужен this?


10588. kalobyte
kalobyte
ответить
→  Александр   / 2017-05-16 09:00

Ну да, я про подчеркивание в курсе. А зачем тогда называть переменные в классе и переменные в аргументах одинаково?


10588. kalobyte
kalobyte
ответить
→  Новопашин Владимир   / 2017-05-16 08:57

А что мешает определить переменную int aaa и потом сделать переменную ббб аргументом?

class aaa
{

int aaa

foo(int bbb)
{
aaa = bbb
}

}
Так не будет работать что ли?


3922. Александр
Александр
ответить
→  kalobyte  # Теория ООП / Мощь полиморфизма / 2017-05-16 08:26

Это как в том анекдоте, когда девушка программиста спрашивает у своего программиста, какие три самые важные вещи в жизни, по его мнению. Как вы думаете, что он ей ответил? Наследование, инкапсуляция, полиморфизм!


3922. Александр
Александр
ответить
→  kalobyte  # Теория ООП / Переезд graph в базовый класс / 2017-05-16 08:21

Ничего, kalobyte! Постепенно привыкнешь! Нужно писать this там, где происходит обращение к членам того класса, в котором ты находишься. Но, в большинстве случаев, this можно не писать, когда имя члена класса ни с чем больше нельзя спутать. Например, можно написать this.name = name; Но в C# принято, например, задавать имена приватных полей с нижним подчёркиванием, что бы внутри методов не писать this при присваивании значений _name=name;


7119. Новопашин Владимир
Новопашин Владимир
ответить
→  kalobyte  # Теория ООП / Мощь полиморфизма / 2017-05-16 07:50

Смотрю Виталик Кличко крепко прописался в нашей жизни.


7119. Новопашин Владимир
Новопашин Владимир
ответить
→  kalobyte  # Теория ООП / Переезд graph в базовый класс / 2017-05-16 07:49

this надо писать, когда неоднозначная ситуация с переменными в классе, например в классе есть переменная типа int count и на вход в функцию поступает переменная типа int count, а мы хотим получить значение от переменной, которая поступила на вход для той, которая есть в классе. Делаем this.count = count;


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Теория ООП / Рисователь снеговиков / 2017-05-15 10:32

Очень рад твоим успехам, ты молодец!


5027. Руслан
Руслан
ответить
→  kalobyte  # Теория ООП / Фигуральный базовый класс / 2017-05-15 10:08

GetType() вернет объект типа Type. Тогда по идее ты должен в case делать сравнение с typeoff(Line). Но в case ты можешь сравнивать только константные значения, а typeoff(Line) будет вычисляться динамически, во время выполнения. Поэтому в switch лучше указать shape.GetType().Name, что тебе вернет имя класса, а оно константное и соответственно в case "Line".


8275. Tekashnik
Tekashnik
ответить
→  kalobyte  # Теория ООП / Переезд метода Draw / 2017-05-15 04:57

Мы все рады, что тебе нравится))


3922. Александр
Александр
ответить
→  kalobyte  # Теория ООП / Фигуральный базовый класс / 2017-05-15 00:09

Может попробовать TypeCode, как здесь: http://stackoverflow.com/questions/7542793/how-to-use-switch-case-on-a-type


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Теория ООП / Цветные карандаши / 2017-05-08 19:56

Всему своё время =)


10494. Алексей В.
Алексей В.
ответить
→  kalobyte  # Теория ООП / Структура пикселя / 2017-05-01 18:49

Отлично, Молодец!!!!! Так Держать!!!


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Теория ООП / Структура пикселя / 2017-05-01 17:46

Последовательность очень важна, это функции не важно в какой последовательности добавляются в код, а их вызов и организация логики очень критична к последовательности. Это как в песне из фирма "Ирония судьбы..." - Если у вас нету тёти,
то вам её не потерять... По поводу слов, что надо просто повторять код и понимание придёт само, это факт, который проверяется только с практикой, слушать комментарии учителя, повторять за ним код и постепенно он будет становиться понятным, так как в каждом курсе очень многое повторяется, есть несколько курсов, где повторений минимум и очень много уникального контента, но в целом, сама логика написания ПО идентичная, отличия лишь в реализации отдельных функций.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Теория ООП / Второй класс / 2017-05-01 17:35

Курсы все разные и если в каком-то из них появляется много вопросов, то этот курс явно изучаешь рано, вначале надо пройти более простые, где как раз на подобные вопросы даны ответы. Я уже прошёл не мало курсов и скажу так, они тут очень сильно разнятся по сложности, поэтому лучше их изучать по мере появления на проекте, что и сделано в Клубе Улиток.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Теория ООП / Урок рисования / 2017-04-30 16:26

Пол часа это ещё мало, иногда на это уходит несколько часов.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Теория ООП / Инкапсуляция мечты / 2017-04-30 16:24

Хорошая аналогия, молодец. =)


3922. Александр
Александр
ответить
→  kalobyte  # Теория ООП / Урок рисования / 2017-04-30 00:07

Очень правильный совет, kalobyte! Думаю, что главное, заниматься не много, а регулярно!..


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte   / 2017-04-22 09:43

Мои работы, когда обучался и шёл на красный диплом, тоже были самые крутые, на фокспро написал базу данных, к которой прикрутил поддержку синтезатора речи через писиспикер, который мог говорить по русски, а это были 9х года, а на паскале написал свой графический редактора с окнами как в винде 95, и это всё под досом, так что да, как я говорил уже ранее, мы родились в переходный период, когда технологии опережают время, а учителя ещё не родились и не выросли. Поэтому этот проект мне понравился именно практическим подходом. Советую следить за вебинарами, на них можно задавать интересующие вопросы, идеальная теория на практике.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte   / 2017-04-22 09:38

"Там просто тупо преподносилось "делай так" и все." <--- вот в этом твоя основная проблема, ты просто делал именно так как писалось в книгах, а я каждую тему проверял на практике, я всегда придерживаюсь правила: "лучше один раз увидеть, чем сто раз услышать" и поэтому я всю жизнь проверяю всё, с чем приходится сталкиваться ЛИЧНО, не для того, чтобы подтвердить или опровергнуть чьи-то слова, а для того, чтобы узнать истину и понять как оно на самом деле работает, так как даже если написали верно, то как всегда что-то недосказали по тем или иным причинам, либо не углублялись, либо просто посчитали, что это не важный момент. Голова человеку дана, чтобы думать, анализировать полученную информацию и проверить её истинность в полевых условиях, взять к примеру ПК, ведь это не айфон, который по железу и ОС заточен, что что бы ты не писал, по-любому будет работать у всех, ПК это конструктор, который мало того. что может быть собран из непредсказуемого железа. так ещё и иметь или не иметь определённую железку в своём комплекте, это надо учитывать при разработке ПО. А по поводу розеток, я в 10 лет взял в каждую руку по одному ферритовому стержню и сунул в каждое отверстие розетки, ощущения получил не забываемые в течении пары секунд. Зарядился на всю жизнь, но как я говорил ранее, Старший брат электронщик, брал меня с собой на радио рынок и там покупали конструкторы ПК, дома он их паял, а я уже на бейсике баловался, писал не только игры, но и лабораторные работы, одна из них была, реализовать анимацию перекрёстка, светофоры в обе стороны движения, грузовые и легковые авто, останавливаются на красный, едут на зелёный, легковые обгоняют грузовые по левой полосе если нет препятствий и останавливаются на красный свет светофора на на второй полосе если грузовая уже заняла первую полосу стоит.
Позже, чтобы понять, как реализовано чужое ПО, занялся реверс инжинирингом, как раз изучением чужого кода, это даёт не мало знаний и опыта, который я до сих пор использую. А в последствии я понял одно, в книгах ответов нет, только больше вопросов, хочешь что-то узнать, экспериментируй по мере появления задач, если конечно это тебе действительно интересно. Время это очень ценный ресурс, чтобы тратить его на перелистывание книжек без должной практической проработки прочитанного.


10588. kalobyte
kalobyte
ответить
→  Иван Воронин   / 2017-04-22 08:48

У меня не было книжечек. В 92 году в мухосранске посреди тайги как-то не особо были компутеры и тем более книжки. Достал мне папаша книжку, но там был какой-то левый бейсик, для msx или коммодора что ли. Так что я методом тыка все изучал. Даже нашел команду вызова монитора  в спектруме. Чисто интуитивно догадался что там цифры значат. Писать на бейсике простые проги я тоже мог. Мой шедевр был - рисовальщик фигур, можно было подводить курсор в нужное место, вызвать команду рисования фигуры и задать координаты или вроде бы еще он умел рисовать пикселем как карандашом.
На шарпе я писал недавно прогу за деньги. Она управляет железкой по протоколу snmp.
Вся сложность состоит в том, что я не знаю как правильно сделать. Вариант а или б. Оба работать будут, но опытный человек может сразу сказать, что в этом случае вариант а будет лучше б. А почему лучше? Когда надо делать статический вызов, а когда динамический? Конда применить паттерн singleton?

Многие книги содержат ошибки фундаментальные. Потому что авторы сами не понимают тему. Например я много лет не мог понять, почему нельзя померять ток в розетке. На батарейке же я мерял и мог сказать, насколько хорошая батарейка. В 12 лет я купил цешку и померял таки. Пришлось потом шуп один чистить. Так и не понял, пока в пту не объяснили спустя 15 лет. При этом я столько книжек прочел по сто раз.
В этих же книжках пишут, что транзистор это усилитель то напряжения, то тока. На самом деле он никакой не усилитель. Обычный переменный резистор. Просто управляется не рукой, а током через базу. Как только я это понял, то сразу все стало понятно в схемах с транзисторами.
То же было с детектором. Никак не мог понять, как из выпрямленного вч тока появляется звук. Оказалось, что детектор это не диод, а целая схема из диода, конденсатора и резистора-нагрузки. И эта рц цепочка есть фильтр. Хотя приемник детекторный я делал еще в 7 лет и читал ту самую толстую книгу борисова.

Так что непонятно, о каких базовых знаниях ты говориш. Что надо знать, чтобы учить асм? В этих книжках я не нашел ответов на вопрос "почему". Там просто тупо преподносилось "делай так" и все.

А что касается применения на деле, то я всегда этого придерживался. Терпеть не мог решать задачи, которые не применяются на деле, как и работы. Я не сдал ни одной контрольной в быдловузе. Все это было на листочках, даже асм. И это в 2012 в илитном быдловузе гермашки. Единственное сдал на 1.3 - с++ проект. Управлял платой укв приемника из музцентра через лпт порт. Хотел еще разные типы индикаторов прилепить для демонстрации полиморфизма, но уже времени не было. Кстати с++ я не знаю. Только базовый уровень. Мой проект оказался самый крутой. А я ожидал чего-то большего от высшего технического заведения.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte   / 2017-04-22 07:22

Чтобы увидеть динамику, надо самому перестать быть статичным. Я в 7 лет нашёл отличную книжечку С ПРИМЕРАМИ, для спекутрума, где вкратце рассказывалось, для чего это и пример программы, где это использовалось, так я её всю перепробовал и начал успешно писать игры/программы. А чтобы изучать ассемблер и понять сразу, надо иметь базу знаний предварительную, это всё равно что родиться и сразу пойти работать, вначале надо вырасти, за время роста выучить базовые знания, без которых тебя даже в магазине будут обделять на сдачу, получить необходимые теоретические и практические знания, а уж потом идти работать.

У нас тоже преподов не было адекватных по программированию. Поэтому только самообучение помогало двигаться дальше, причём тогда интернета не было. По поводу ГОР КНИГ процитирую свои слова из прошлого сообщения: "никто не предлагал читать горы книг, интернет тем и хорош, что можно найти примеры и описание нужной функции."

Теории должно быть ровно столько, сколько необходимо. Мне этот проект и нравится тем, что её тут минимум. Если что-то хочется узнать дополнительно, Игромистр дал наводку, топаешь и гуглишь необходимое, это как поход в магазин, отправили в молочных раздел, идёшь туда и там ищешь необходимый молочный продукт, а не шастаешь по всему магазину и ищешь не понятно что.

Нужно просто понимать одну простую вещь, изучать что-либо не применяя это на практике, пустая трата времени. Необходимо как минимум понимать, где можно это применить и применить именно там, для закрепления полученных знаний. А если просто повторять за учителем или просто слушать/читать теорию, ничего это не даст и выветрится очень быстро.


10588. kalobyte
kalobyte
ответить
→  Иван Воронин   / 2017-04-21 23:36

Я изучал ассемблер в 96 году для спектрума и ничего не понял. Я изучал его для контроллеров в 2003 и ничего не понял. Я изучал его для х86 в 2012 и только тогда боле менее понял. Преп в быдловузе боле менее годный попался. Вся твоя теория в гугле - это информационный мусор. Написано так, что я просто через 5 минут засыпаю. Поэтому я перестал читать книги уже лет 8 назад и смотрю только ролики. Мне нужно видеть изменения  в динамике. Т.е. написал кусок, запустил, посмотрел. Написал второй, посмотрел и сделал выводы.

Еще раз повторюсь, что теория не должна занимать дольше 15 минут. После этого мозги ничего не воспринимают. Так что не надо про горы книг и гуглы. 15 минут теории в рамках конкретного урока - это достаточно.

А оценил я что я прошел и моя оценка не идет дальше конкретного урока. Если в новых уроках есть вводная теория, то хорошо. Может быть ты проходил уроки с играми и там есть теория. Я закончу ооп и возьму еще пакет с прикладным софтом. Там особо в теории вдаваться не надо.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte   / 2017-04-21 22:48

Если тебе хочется знать, что понимает процессор, изучай тогда ассемблер. так как остальные языки создаются для удобства пользователя, а компилятор всё перевод в машинный код, это и есть ассемблер. В остальном согласен, но хочу напомнить пару моментов касательно этого проекта:
1 - на этом проекте минимум теории, кому она нужна, идут гуглить то, что им НУЖНО и НРАВИТСЯ в данный момент, никто не предлагал читать горы книг, интернет тем и хорош, что можно найти примеры и описание нужной функции.
2 - Прежде чем предлагать советы по поводу будущих уроков, нужно выполнить все, что имеются на проекте, дабы иметь полноценное представление о текущем состоянии дел на этом поприще.
з.ы.
Я в 89 году написал первую игрушку и тоже на спектруме и с тех пор игры это отчасти и работа и хобби.
У меня старший брат занимается паяльниками и схемами. Поэтому я ушёл в сторону ПО.


10588. kalobyte
kalobyte
ответить
→  Иван Воронин   / 2017-04-21 22:18

Я решаю задачи, которые интересны мне и не решаю, которые неинтересны. Я делаю только то, что мне хочется делать и не делаю чего не хочется. Таков мой принцип жизни. В 94 мне было интересно узнать, как определяется попадание снаряда в противника и один человек подсказал мне. Я пришел домой и написал игрушку на спектруме. С тех пор игрушки перестали меня интересовать.

Насчет сложности. Если тупо повторять за роликом, то ничего сложного. Так пишут экзамены  в быдловузах те, кто никогда транзистор не видел. И сдают. А я 30 лет паяльствую, но посчитать режим работы транзистора - это сложно. Особенно не имея записей на бумажке. Нужно _понимать_ работу транзистора от и до и на основании ее вывести все формулы и по ним посчитать все в правильной последовательности. Только тогда у тебя будет понимание.
А можно тупо запомнить формулы и тупо применять. Тогда ты не будеш понимать, но зато ты знаеш, что сюда надо вставлять циферки от сюда и получим вот это.

Недавно на хабре была статья, где срывали покровы. Оказывается 95% программистов не понимают принципа работы чужого кода, а то и своего даже. Просто берут и вставляют чужие куски. И оно даже работает. И это оказывается может делать любой индус.

А что касается теорий, то я уже столько перечитал, но пока я нашел только единственного человека, кто может доносить теории простым языком. Поэтому я тут и делаю задания. Обучать других - это очень сложно, т.к. надо простыми словами донести до людей сложные вещи. Если ты сам не понимаеш принцип работы на уровне _ощущений_, то значит ты не понимаеш, как это работает. А если ты ощущаеш, то можеш легко говорить своими словами. Например я за 15 минут могу объяснить 3 принципа ооп без заумных слов и без привязки к какому-то языку программирования.
Тоже самое могу с интегралом или комплексным числом. Но при этом я понятия не имею, как руками считать это все. Могу посчитать в калькуляторе. Потому что все эти операции для моих мозгов неприятны. Это как если бы ты был хирург, а тебе бы еще приходилось при операции удалять кровь или зашивать брюхо. Для этого есть персонал и там не требуется каких=то знаний особых или умений.

Так что я написал пожелания к организации других уроков. Чтобы сначала была теория и человек мог представить в голове конечную цель. Например у меня не было калейдоскопа с 4 зеркалами. Только 3 и я имею картину в голове только такую. А вот если покажут картинку как на 4 зеркала, то ведь алгоритм будет уже совсем другой? Или же такой же?

У меня в голове была картинка, что калейдоскоп надо вращать. Значит у меня мысль была бы, что надо это вращение как-то сделать в коде. А оказывается, что никакого вращения и нет. А вот как это понять изначально? Я вот и написал, что сложность заключается в том, что в коде очень сложно реализовать вещи из реального мира.

Вот тебе еще пример. Надо измерить переменное напряжение. По формуле там есть интеграл.
https://geektimes.ru/post/254088/
Но интеграл - это абстгактная штука. В контроллере нет блока интеграла, в нем ацп стоит. И вот мы уже видим совсем другую формулу для ацп. И вот скажи, откуда ее взять или как понять, что нужно именно так делать? Поэтому и нужна теория, где бы говорилось, почему интеграл вдруг перестал существовать в реальном мире и превратился в обычные действия уровня 6го класса. Зачем я изучал это все в быдловузе, если на практике никакого интеграла нет, как нет и комплексных чисел и отрицательных, и дробных. Я когда узнал, что процессор не понимает отрицательных чисел, то был в шоке. Поэтому я и пишу подробные отчеты и каменты.


10008. Сергей Зулкарнаев
Сергей Зулкарнаев
ответить
→  kalobyte  # Демо софт / VIP. Калейдоскоп / 2017-04-21 18:50

Красиво получилось!


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Демо софт / VIP. Калейдоскоп / 2017-04-21 18:10

Теория нужна? гугл в помощь. Сложно тем, кто проходит уроки в записи? ты пока единственный, кому сложно было. Заранее в голове нельзя всё предугадать, так не бывает, задачи решаются по мере их поступления. Не нравятся игры и математика? задаче, которую надо будет решить, абсолютно наплевать какие у тебя интересы в жизни, ты либо решаешь её либо нет.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte   / 2017-04-21 08:01

Привет. Доступ к теории ООП Открыт!


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte   / 2017-01-09 22:07

Если тебе именно ПО для винды, то я тут такие курсов не встречал, об этом лучше уточнить у Евгения Витольдовича, но я знаю точно, если технология будет востребована, курсы появятся.


10588. kalobyte
kalobyte
ответить
→  Иван Воронин   / 2017-01-09 21:18

А асп это же уже через веб работает. Для веба я знаю mvc с пхп фреймворками, а мне надо приложения для виндовса по такому. Врят ли там оно одинаково будет.


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Демо софт / ФИНАЛЬНЫЙ УРОК / 2017-01-09 14:32

по поводу mvp можешь глянуть курсы по ASP.NET, тут имеется несколько таких, там похожие технологии используются и не только =)


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Демо софт / ФИНАЛЬНЫЙ УРОК / 2017-01-09 09:38

Спасибо, прекрасный отзыв, суть методики ты уловил на 100% и уверенно двигаешься к цели, молодец!


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Демо софт / Текстовый процессор / 2017-01-09 09:33

Во-первых, это ты уже смело можешь сделать сам.
Во-вторых, лучший формат уроков - 10-минутный.
В-третьих. идея программ этого курса - дать идею, сделать первые шаги.
А дальше можешь создавать и развивать программу сам.
Мне очень нравятся твои отчёты, у тебя здорово получается!


10588. kalobyte
kalobyte
ответить
# Начало / Мои успехи / 2017-01-08 15:21

1. В общей сложности меньше месяца (с перерывами лени).
2. Английские карточки с подключением плеера vlc вместо windows media player.
3. Управление радиоуправляемым роботом с телеметрией, системой opencv с распознаванием целей, хардбольный привод.
Перехват кнопок у МФУ или сканеров для сканирования в заданные папки и форматы.
Систему управления помещениями с контролем доступа по пинкоду или карточке постоянного клиента.
4. Этот сайт первый и единственный, что заставил меня реально брать и делать. Подача материала идет сразу и без занудной теории и расписывании разных возможностей компонента, функций или еще чего. Так же подготовительная работа с отметкой галочками. Плюс публичный отчет о проделанной работе с учетом трудностей и пожеланий.

Обычно другие курсы просто дают материал, долго и нудно рассказывают о теории и абстгактных прогах, которые ничего полезного и конечного не делают. Тут все проги имеют какое-то полезное назначение, которое можно представить в голове сразу и заранее, что дает тебе моментальную картину о том, что нужно будет сделать и как это должно работать примерно.
Обычно дают ввести а,б,ц и вывести на экран или сложить 2+2, или посчитать по какой-то формуле или алгоритму. Это все уныло и неинтересно. Я от такого спать хочу.
Все тутошние приемы можно потом использовать в качестве подсказки в дальнейших проектах.

5. Тупо смотреть ролик, брать и делать как там, а потом приделать свое, если оно требует расширения функцианала или другой механизм какой. Например в примере "12 месяцев" я храню картинки в самом .ехе файла как ресурсы и вытаскиваю их динамически. Мне так показалось более логичным и хотелось освоить механизм хранения и использования ресурсов. Вы можете сделать это в виде длл файлов, где имя файла будет отображать тематику картинок типа "кошки", "собаки", "цветочки" и в каждом файле по 12 картинок.


10588. kalobyte
kalobyte
ответить
→  Евгений Волосатов   / 2017-01-05 21:45

Да какая там положительная. Последнее задание делал в конце лета и потом лень было. Сейчас дописал одну прогу на шарпе и вот опять желание появилось. Или может быть это так на  меня платный вебинар по мотивации и лени от психотерапевта повлиял.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Демо софт / Средняя оценка / 2017-01-05 21:41

Спасибо за комментарии.
Рекомендую курс "Новые технологии", там естькурс по делегатам и по многим другим аспектам.
Вижу, у вас есть интерес и положительная тенденция к изучению программирования!


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Демо софт / Менеджер паролей / 2016-10-03 09:35

Это классическая ситуация, когда на что-то лишнее тратится времени больше, чем на саму задачу =) молодец! удачи


10588. kalobyte
kalobyte
ответить
→  Иван Воронин  # Демо софт / Менеджер паролей / 2016-10-03 07:26

Я только что закончил делать шаблон openoffice calc для выписки счетов. Там используются макросы для форматирования области печати и экспорт в пдф и одс файл по нужному пути, который задает сам клиент в шаблоне. Я эти макросы первый раз вижу и дока по ним очень плохая.

Но это несколько не то, т.к. там еще довольно сложные вычисления каких-то буховских штук и иногда они не нужны и бухша их стирает, на что тратится время.
Надо просто галочки ставить и тогда эти опции будут включены в вычисления. Если понравится ей этот шаблон, то предложу написать отдельный софт.


8959. Максим Саратов
Максим Саратов
ответить
→  kalobyte  # Демо софт / Менеджер паролей / 2016-10-02 13:07

Вы упорный человек!


10558. Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Демо софт / Менеджер паролей / 2016-10-02 11:28

Молодец! запросы это стимул двигаться дальше, дерзай, иногда приходится изучать новый язык во время заказа и параллельно и изучением сразу же писать приложение, удачи


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Демо софт / Менеджер паролей / 2016-10-02 09:35

Правильный вывод - просто двигайся вперёд.
Дальше мы рассмотрим использование ООП.
Рекомендую курс "Теория ООП".


10588. kalobyte
kalobyte
ответить
→  Евгений Волосатов   / 2016-06-29 18:38

Спасибо за приглашение, но я терпеть не могу игры. В 94м мне показали, как реализуется в коде столкновение 2х объектов и у меня пропал интерес к играм. Меня больше интересует тема usb hid. Пробовал расковырять бесплатные обертки для hid.dll или libusb, но как обычно - ушло куча времени, а результата ноль. Потом я узнал, что виндовс захватывает мыши и клавиатуры и управлять ими нельзя. А я для простоты решил помигать светодиодом второй клавиатуры, но кроме как зависания ничего не вышло. Были куча примеров с custom requst, но мне пока это неинтересно.

Второй момент - работа со звуком, генерация звуков, модуляция дтмф, афск1200, бпск и все такое. В прошлом году нужно было сделать софт, который эмулирует старую железку, которая посылает в звуковой канал радиостанций специальный сигнал, который декодируется приемниками в машинах и включает магнитолу в режим радио для прослушивания сведений о состоянии на дорогах. Система из 70х.

Вобщем я так и не осилил, сделал на готовых библиотеках с модуляцией бпск31, сигнал как раз на слух похож. Потом сказали, что лицензию станции не продлили и оказалось не нужным.

3я тема - программно определяемое радио. Нигде ничего нет на русском по теме. Вроде есть люди, которые вроде бы в теме, но никто ничего не пишет. Как матановая формула описывает процесс модуляции или демодуляции хотя бы простейшего ам сигнала. Как это перевести в код и вообще понять. Вот есть хорошая статья https://habrahabr.ru/post/303104/
Сейчас опять надо сделать прогу, чтобы работала с этим приемником и декодировала рдс в текстовой файл + вещала в мр3 в сеть и чтобы все было консольное. Пока сделал из кучи консольных прог или одной графической, но неизвестная ее стабильность. Она кстати на шарпе написана.
Это типа будет контрольный приемник для радиостанции, а то человек купил целый трансивер с функцией приема укв станций и думал управлять им с компутера, а там по кабелю или данные, или звук. Оба одновременно не идет.

Так что я больше по железу. Если кто решит такой вебинар делать, то приду охотно.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte   / 2016-06-29 15:14

Долго думал, что тебе ответить на всё это.
Наверное только одно - очень рад знакомству с таким удивительным и целеустремлённым человеком.
Да, галочки творят чудеса, как и остальные "маленькие секреты", которых тут множество :)
Желаю удачи в обучении и приходи в субботу на вебинар!


10588. kalobyte
kalobyte
ответить
→  Евгений Волосатов   / 2016-06-28 22:29

А я альтернативно одаренный. Для меня написать 100 строк кода уже великий труд, хоть я и с 94 года это делаю.
Там не сложно, если тупо переписывать код с ролика. А вот понять, почему программа именно так построена - вот в этом сложность. У меня в мозгу автоматически за доли секунды формируется полная картина, как бы это сделал я и оно мешает малость.

Ну и когда видиш готовый результат с парой строк кода, то на первый взгляд все просто. Я вот 2 проекта недавно допиливал. Там не применялся подход mvc, и кода хтмл, яваскрипт и пхп с запросами к бд был перемешан. Нужно было это перенести на новый хостинг и там вылезли глюки, т.к. софт был написан с 2006 года.

В другом софте надо было найти ошибку, почему не всплывает flexbox при отправке данных в форму. Заняло месяц, а решилось закомментированием непонятной яваскрипт функции в одном файле. Я так до конца и не понял причины.
Второй вопрос с запретом кешировать мп3 решился добавлением случайного числа типа sfsdf.mp3?nocache=rand().
Казалось бы пара строчек кода, а сколько времени ушло на понимание причины.

То же самое при ремонте электроники.

Программирование - это очень сложно. Сложно в плане не придумать алгоритм работы программы. У меня на это доли секунд уходят. Сложно заставить работать кучу хлама друг с другом. Этот компонент влц требует еще пары длл, которых вообще нет в дистрибутиве плеера. Непонятно откуда они взялись в моем проекте после компиляции.
Вот я не знаю ответ на этот вопрос. Значит я уже что-то не понимаю до конца. Непонимание ведет к дискомфорту. Чтобы дискомфорт убрать - надо понять до конца 100%. А для этого надо потратить кучу времени на поиск и прочтение материала.

Но твой курс - первый, кто заставил меня что-то делать. До этого я столько накачал бесплатного и посмотрел, купил даже онлайн книгу и начал ее читать, да не пошло.

А весь секрет - в тех волшебных чекбоксах, которые надо заполнить и выполнить задания.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Демо софт / Английские карточки / 2016-06-28 16:45

Разве там всё так сложно?
Вроде всё как-то проще на уроке было ...
Может стоит этот урок переместить в другой курс?


1. Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Демо софт / Двенадцать месяцев / 2016-06-28 11:06

Привет.
Я очень рад, что ты уже начал самостоятельно работать и разобрался в таких важных вопросах!

Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Пока ничего нового.
Ну пока еще сказать нечего по поводу реализации из моего прошлого камента. Как реализовать эти 2 последние функции я понятия не имею. Как я уже говорил - игры это не мое.
Научился:  Приплюсовывать смещение к координатам.
Трудности: Понимание private void Demo() { A = new Pixel(0, 0); circle = new Circle(A, 20); circle.SetGraphics(graph); circle.Move(new Pixel(100, 100)); circle.Draw(); picture.Image = bmp; }
Так и не понял, почему надо указывать 0,0. Это нелогично. Получается, что центр круга как бы сначала на 0.0, потом создается этот круг, но он еще не отрисован на холсте. Потом вызывается move с новыми координатами. Потом оно отрисовывается в памяти и только потом весь буфер с картинкой отображается на холсте. С моей точки зрения логичней было бы в методе move задавать не новые координаты, а смещение относительно текущих. Ну это как абсолютное и относительное значение. Но это чисто я так думаю. У каждого мозги по-разному работают. А еще я думал, что надо действительно к координатам каждой точки прибавлять смещение position, поэтому я в одном из прошлых каментов и писал, что это привело бы к сильному замедлению отрисовки. А оказывается, что проще и правильней просто в каждом классе примитива один раз прибавить это смещение. Вот за это мне и нравится этот курс, т.к. постепенно видно почему сделано так, а не этак. Я бы вот ни за что не догадался, как это все вот так красиво сделать. В голове вроде есть какое-то представление, а оказывается, что все делается куда проще и правильней. В других курсах просто преподносят что-то как факт. Типа делай так, потому что так надо. Поэтому я другие курсы смотрел и не досмотрел, а уж о практике и речи не было. А тут вон глаз закрывается уже, а решил добить этот урок, чтобы уже 50% показывало.