• Что изучать, на что тратить свободное время, чтобы в будущем стать востребованным программистом с нормальным заработком?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Ответ на вопрос будет сильно зависеть от того, в каком направлении вы думаете развиваться.
    Будет ли это сетевое программирование? Тогда это си, в основном.
    Может быть, веб-программирование? Тогда тут могут быть php, javascript, python, ruby.
    Захотите разрабатывать программы на десктоп? Вам нужны c# или java.
    На мобильные платформы? тогда java и objective c (плюс swift).
    Или податься в разработку игр? Тогда либо c++, либо с# (для Юнити - наверное, самой популярной платформе).
    Хотите экзотики? Приглядитесь к функциональным языкам - Erlang и Haskell.
    Разработка железа и драйверов для железа? тогда си (без плюсов) и ассемблер.
    Определитесь, что вы хотите, потому что всё объять не получится. Выберите один (или два) направления и добейтесь хорошего уровня в нём. А потом вам будет уже легче двигаться дальше.

    Мой совет - попробуйте изучать C# или Java (они во многом похожи) для софта, или Javascript и php/python для веб-приложений и сайтов.

    Добавлю, что очень правильный совет дал @tsarevfs - помимо языка программирования, хороший программист должен знать несколько инструментов - и в первую очередь, это система контроля версий, например, git. Плюс юнит-тестирование (хотя это можно начать изучать позже, через годик-два). Плюс - нужно хорошо знать свою IDE, в которой работаете; не вздумайте работать в блокнотиках!

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

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

    UPD. Важное дополнение из обсуждения в комментариях (спасибо @Argentum88 @Deerenaros )
    Чтобы стать профессионалом и "востребованным программистом с нормальным заработком", нужно очень хорошо понимать внутреннее устройство тех систем (платформ, фреймворков), на которых идёт работа.
    Для этого нужно заглядывать вглубь. Изучив различные мейнстрим-инструменты, посмотреть на аналогичные менее популярные системы. Изучать исходный код используемых open-source библиотек. Написать свою подобную систему. Для web - написать свою CMS (хотя бы базовую). Для десктоп-программ - попробовать программировать без навороченных библиотек, которые делают рутинную работу за программиста. Для разработчика игр - сделать простую игру на базовом инструментарии платформы, где всё придётся делать своими руками.
    Всё это даст возможность проникнуться, почему всё делается именно так, даст понимание взаимосвязей разных частей программы.
    А потом, осознав это, выбрать один из уже готовых инструментов, и продолжать писать на нём, уже обладая более глубоким его пониманием.
    Ответ написан
    21 комментарий
  • Выбор метода обучения программированию: колледж или самообразование?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    В частности, неуспеваемости в математических дисциплинах.

    Это ты зря! В этой жизни нам дается только лишь один шанс. Ошибки вообще не правятся! Мы лишь пытаемся снизить печальные последствия их допущения. Мой Вам совет: Если Вы хотите стать программистом РАЗВИВАЙТЕСЬ МАТЕМАТИЧЕСКИ! Это ставит Ваш мозг в нужном направлении. Даже если Вам какой-нибудь дифур нафиг нигде не пригодится тем не менее это будет Вам полезно! Потому что человек досих пор не знает как работает его головной мозг. Изучая Математику Вы развиваете те отделы мозга, которые очень важны технарю.

    Вот пример задачки где-нужна математика:
    Для веб-приложения написать код получающий перестановку, которая будет использоваться для показывания банеров, каждый из которых будет показан один раз. Код должен быть написан без использования динамических структур данных и массивов!

    Решение этой задачки можно применить и для компьютерных вирусов, когда очередное число в ряде перестановки это индекс в области которую надо расшифровать. Другими словами известная технология PRIDE - pseudo random index decryption engine. При такой технологии многие движки антивирусов не могут автоматически распознать цикл расшифровки и следовательно не могут накрутить бал-подозрительности файла.

    Изучайте математику. Это важно!
    Ответ написан
    2 комментария
  • Выбор оптимальной CMS для веб студии

    @Masterme
    А потом вот такие ребята предлагают себя в виде студий
    Ответ написан
    1 комментарий
  • Что изучать веб-программисту самоучке, кроме самого языка?

    Это комментарий на обсуждение выше — ошибся веткой.

    > Изучать то, что вы не используете полезно, но скучно и быстро забывается.

    Смотря как подходить к вопросу изучения. Если на «меня заставили» или «мне это не пригодиться», тогда да. А если понимание, что это моя работа, мой хлеб, моё хобби и от этого я буду писать более лучший код? :)


    1) Если это работа, хлеб и хобби, то тогда это не «то, что вы не используете». Для этого случая я написал выше — более основательно подходить к изучению.

    2) Судя по вашим ответам, вы сами не знаете чего хотите. Это не дерзость, а просто факт. Все что связано с вебом, но не связано с «питон, вёрстка, базы данных, высоко нагруженные сайты, не стандартная логика» — это другие сферы жизни. Похоже, вам просто нужно хорошее интеллектуальное хобби, отличное от работы. Я прав?
    Ответ написан
    2 комментария
  • PhpStorm или IntelliJ IDEA+PHP Editor?

    SowingSadness
    @SowingSadness
    web-разработчик
    Что-то мне подсказывает, что PHPStorm это IntelliJ IDEA без плагина для Java и со встроенным плагином PHP Editor -))
    Если есть IntelliJ IDEA, то с этим плагином у вас появляется полноценный PHPStorm
    Ответ написан
    5 комментариев
  • Закончил учиться на программиста - как быть дальше?

    noook
    @noook
    python and fishing
    Английский это точно, это ускорит изучение любого языка
    Ответ написан
    Комментировать
  • Первая книга по программированию

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Начинать надо не с конкретного языка, а с принципов алгоритмизации. По сути язык программирования не нужен, нужно лишь понимание алгоритмов и умение их разрабатывать.
    Ответ написан
    3 комментария