Ответы пользователя по тегу IT-образование
  • Видео по изучению C++?

    @majstar_Zubr
    C++, C#, gamedev
    Я начинал организовывать свои фрагментированные знания по записям лекций Computer Science Center Валерия Лесина и лекций Алексея Петрова "Углубленное программирование C/C++". Они хостятся на youtube. Охват очень хороший. Практические задания я придумывал сам и что-то брал из сборника каталогов awesome awesomeness в разделе C++ (github).
    Ответ написан
    Комментировать
  • Какие области IT сильно связаны с алгоритмикой и математикой?

    @majstar_Zubr
    C++, C#, gamedev
    Разработка низкоуровневых библиотек, драйверов и интегрированных решений для высоких нагрузок.
    Такая деятельность финансируется из бюджета либо корпораций, либо каких-то фондов, либо просто donations (на текущий момент).
    Ответ написан
    Комментировать
  • Как учиться программированию и не чувствовать себя абсолютным дураком?

    @majstar_Zubr
    C++, C#, gamedev
    Пройдет через два года. Или через один, в зависимости от того, как свободное тратится.

    Просто прокачивайся.

    Макконнел, Кент Бек, Фаулер, Керриган. Сначала структурное, ООП после проработки Рефакторинга. Макконнел в первую очередь, часть про архиьектуру и проектирование нужно пропустить в первый раз, он написал полный гайд, практически, про структурную парадигму и как работаться с массивами.

    Обязательно нужно проработать вопрос про ОС (Таненбаум) и устройство компиляторов. Самостоятельно сравнить модели памяти, которые предлагает ОС, Си и C++.

    Шаблоны GoF после GRASP, SOLID, YAGNI и TDD и обильного велосипедостроения длительностью ~год.

    Книги нужно не просто читать, а разбирать примеры и искать инфу дополнительно. То же самое относится к статьям, вблогам, лекциям, курсам. Если голова пухнет - это признак того, что книгу/вмдео читать/смотреть ещё рано, потому что мозг не может сложить инфу в красивую структуру знаний. Паттерны бесполезны без проработки и без усваивания Рефакторинга. То же самое к архитектурным относится, которые бесполезны для понимания, если не усвоено DDD. Паттерны сначала лучше прорабатывать на каком-нибудь C#. Если уже в состоянии писать компилирующийся код на C++, то с C# никаких проблем не будет. На C++ паттерны прорабатывать стоит только проработки идиом C++.

    Что касается самого C++, то cppreference, youtube и все книги, которые только удастся найти. Если на книгу очень много ссылок в интернете, статьях, видео, это значит, что ее нужно прорабатывать в первую очередь.

    Для систематизации знаний нужно найти ментора или курс и / или прочесть документацию по технологии раза три.

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

    Развитие в первые годы похоже на спираль, поэтому ко всему "изученному" придется возвращаться пару раз.

    Насчёт пункта три. Все советуют обязательно прорабатывать алгоритмы, сложность вычислений и структуры данных, паттерны проектирования и архитектурные шаблоны именно в такой последовательности, потому что концепции одни и те же, а реализации разные. Любую информацию можно сохранить хоть в файле, хоть на стеке, вопрос главный - для чего, в каком scope она нужна и какие нужны гарантии и ограничения. Самое лучше место, чтобы узнать это, на текущий момент это GitHub.
    У вас в вопросе рядом существуют два уровня - уровень передачи информации между сессиями использования одного приложения и уровень передачи данных между модулями в домене приложения "калькулятор" во время исполнения. В первом случае вам подойдёт сохранение инфо в обычном тестовом файле в своем статически определенном know-how формате (чтобы раньше времени не лезть в сериализацию и парсинг), что делается просто, быстро и средствами STL, а во втором случае вам нужно строить модель домена из классов, абстрагирующих операции, и как-то реализовать простой синтаксический анализатор; в этом случае передача промежуточного результата будет в виде какого-то объекта, и о его виде и задачах с ходу сказать нельзя, потому что все зависит от ТЗ и конкретного набора формул, которые требуется обрабатывать; и к тому же во втором случае без сторонних библиотек не обойтись, иначе слишком растянется процесс.
    Ответ написан
    2 комментария
  • Стоит ли читать Брюса Эккеля Философия С++?

    @majstar_Zubr
    C++, C#, gamedev
    Да.
    Ответ написан
    Комментировать
  • Где можно ознакомиться с открытыми проектами по С++?

    @majstar_Zubr
    C++, C#, gamedev
    https://github.com/fffaraz/awesome-cpp

    Рекомендую всё же сначала твердо понять ООП на коде C# или Java, EPPlus библиотеку например, потому что в C++ широко применяется обычные RAII обертки для ресурсов и структурный подход.
    Ответ написан
    4 комментария
  • Какой яп выбрать и какой метод обучения выбрать?

    @majstar_Zubr
    C++, C#, gamedev
    Python вполне подходит. Упритесь в потолок и оптимизируйте узкие места на С++.

    Учить можно что угодно бесконечно, если следовать "бытующим мнениям". Пока нет уверенного понимания работы ОС и модели памяти того или иного ЯП, вопросы о выборе языка для задачи всегда будут принадлежать бытующим мнениям, а не собственному.
    Ответ написан
    Комментировать
  • Как себя направлять в обучении, почему через 4 года опыта работы я все еще плохо программирую?

    @majstar_Zubr
    C++, C#, gamedev
    Если у вас проблемы с пониманием кода, значит у вас разработка происходит без методологии. Дело в том, что любое отклонение от конкретной методики, которое не согласовано с остальными методиками в рамках одной методологии, превращает любую методологию разработки ПО в тыкву. Либо всё работает как система, либо всё не работает. Если у вас отсутствует код ревью, в корне отсутствует парное программирование, работа над предметной областью происходит без обсуждений, и нет совместных обсуждений api и предметных областей межмодульных прослоек, то естественным образом это означает, что коммуникации между разработчиками не налажены. Следствием этого является то, что полет мысли у каждого разработчика происходит на своей волне и неудивительно, что вы не понимаете код друг друга. Как бонус, вы ещё и не в курсе сильных и слабых компетенций друг друга.

    1) Берёте коллегу - 1 шт
    2) Берёте код иного коллеги - 1 модуль. Ограничение: вы и коллега независимо оцениваете код иного коллеги непонятным.
    3) Вы и коллега независимо рефакторите его до состояния: "теперь мне все понятно".
    4) Собираетесь с коллегой за одним экраном и проводите код ревью над результатами обоих рефакторингов.

    Ответ на свой вопрос вы только так получите. Но профита не много, потому что вам нужно обеспечить исполнение методологии и четко её придерживаться всем коллективом.
    Ответ написан
    Комментировать
  • Какую книгу выбрать?

    @majstar_Zubr
    C++, C#, gamedev
    Архитектуру компьютера будете читать месяц минимум, поскольку там немножко обо всем, к примеру, то, что преподаётся в ВУЗах в курсе по цифровым и микропроцессорным устройствам на протяжении семестра в книге преподносится в объёме одной главы.

    Для полноценного вникания в предмет потребуется дополнительные источники, т.к. в книге все очень сжато объясняется.

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

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

    Конечно, при чтении можно главы пропускать, и абзацы пропускать, но если цель просто получить представление - берите любую другую кроме "Архитектуры компьютера".
    Ответ написан
    1 комментарий
  • Хорошие платные курсы геймдизайна на русском?

    @majstar_Zubr
    C++, C#, gamedev
    Такого нет. Возможно вам подойдут Русскоязычные курсы от dev2dev для старта.

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

    Так что кроме намерения снизить запрату геймдизайнераов в СНГ в этих курсах я не вижу.

    У меня системное видение открылось только после 20 книг по геймдизайну и спустя часов 70 видео с конференций gdc, devgamm и участия на гейм джемах, и конечно, спустя N прототипов.
    Хотя, если честно, геймдизанер, который не может в маркетинг и системный анализ это так себе геймдизанер, а на изучение и практику рекламного и и маркетинга услуг может год уйти. А системный анализ и продуктовый менеджмент - это тоже годик. Есть ещё сценарное дело, на него можно полгода потратить. А про математику , и про аналитику игр, я просто не буду упоминать, потому что если математику можно параллельно тренировать, то аналитику без маркетингового и продуктового бекграунда, а без самого игрового продукта даже смысла начинать изучать нет, аналитика проще всего в деле изучается.

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