Найти тему

Обучение программированию с нуля

Привет всем!

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

Знаете, странно, но многие видят в программировании одни лишь "плюшки" и "плюсы" - высокую зарплату, мощный соцпакет, отличные условия труда, но совсем не видят того, что "скрыто под капотом", а минусов там тоже хватает (говорю это как программист с 10+ годами стажа в Web-разработке и 2 годами стажа в области мобильных приложений).

Интересно узнать подробнее? Тогда читайте дальше эту статью!

Содержание

  • Обучение программированию с нуля, с чего начать
  • Как не забросить обучение через какое-то время
  • Плюсы и минусы работы программистом
  • Альтернативы профессии разработчика (девелопера)
  • Подведем итог?

Обучение программированию с нуля, с чего начать

Итак, ходить вокруг да около не буду - Вы пришли сюда для того, чтобы узнать, как с нуля начать обучение программированию, и вот Вам ответ:

- изучить алгоритмы,

- изучить актуальный язык программирования,

- проекты, проекты, проекты.

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

Самое главное - понимайте, что есть отличие code monkey ("мартышки") или script kiddie ("скрипт кидди"), который бездумно копипастит (copy & paste - копирует и вставляет чужой код, не понимая, как он работает) от настоящего программиста. И даже если Вы пойдете по порочному пути "code monkey", то быстро упретесь в барьер - на работе не посмотрят на то, что Вы ничего не знаете, а при обучении халтурили, Вам просто покажут на дверь (т.е. уволят).

Хотите стать нормальным программистом? - начитайте с изучения алгоритмов!

Все эти блок-схемы, условные конструкции "если-то", циклы нескольких видов, булева логика (И, ИЛИ, НЕ, ИЛИ-НЕ) и еще небольшая кучка простых для понимания вещей.

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

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

Да-да, именно поэтому многие программисты кажутся немного странными, не от мира сего. Просто они думают немного иначе, только и всего ))

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

  • Web
  • Desktop
  • Cloud
  • игры и еще куча направлений,

и в каждом из них - свой стек доминирующих сейчас технологий.

Например, глупо учить C++, чтобы писать сайты. Или PHP, чтобы делать игры на Unity3D. Или еще что-то, что малоприменимо к выбранной области.

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

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

Ладно, не буду Вас "грузить", так можно часами поучать и строить изящные словесные конструкции ))

Помните одно - без интереса к процессу (не результату, вроде высокой зарплаты, крутых тачек и толп поклонниц, а именно к самому процессу работы) мало что получится. Программирование меняет Вас, Ваше мышление, а насиловать свой разум без веской причины никто не сможет. Ну, или сойдет с ума в процессе ))

Как не забросить обучение через какое-то время

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

Нет, обучение должно приносить хоть какое-то удовольствие. А для этого, лучший путь - это разбить его на небольшие "спринты" и на каждом реализовывать небольшой пет-проект (от pet - питомец). Так у Вас и портфолио начнет нарабатываться, и навыки сразу начнут закрепляться в почти "боевой" обстановке, на реальных проектах, а не оторванных от мира "синтетических" задачках и примерах из книг.

Плюсы и минусы работы программистом

Давайте я просто перечислю их списком и не буду "жевать", как это обычно делают в обзорных статьях в Интернете.

Итак, плюсы:

  • возможность получать реально высокую зарплату (причем, часто - в долларах США или евро),
  • свобода (станете крепким Middle Developer'ом - и можете уходить на фриланс или удаленку),
  • все зависит только от Вас (захотите больше денег - освоите новое, преград нет),
  • есть возможности для творчества (не всегда программист создает новое, но "отдушину" можно найти в своих пет-проектах).

ну и минусы, куда без них:

  • придется реально напрягать мозги (халява не прокатит, не надейтесь),
  • придется минимум полгода (минимум!) учиться на перспективу, чтобы получить первую работу,
  • чтобы стать хорошим специалистом (а не одним из многих т.н. "формошлепов") - придется серьезно постараться.

Альтернативы профессии разработчика (девелопера)

Если программирование для Вас показалось сложным - то в IT есть и другие направления. Смотрите на свои навыки, знания, способности, может, Вам больше нравится управлять - тогда идите в проект-менеджеры или продукт-менеджеры.

Нравится "ковырять" все подряд и смотреть, как оно устроено? Тогда обратите внимание на тестирование (это одна из самых простых для "входа в айти" профессий).

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

Вы - чистый ученый? Data Science, Big Data и нейросети ждут Вас с нетерпением! (и огромными зарплатами, сейчас это восходящий тренд)

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

Подведем итог?

Теперь Вы понимаете - не все так плохо. Программирование - не "приговор", можно уйти и в то же тестирование, и в управление, и даже в что-то более-менее творческое, вроде веб-дизайна или UI/UX.

Ну а если Ваш выбор - программирование, то начать обучение программированию с нуля лучше всего с "классики" - изучения алгоритмов и как работает вообще компьютерная техника. Все. Говорить тут больше не о чем ))

Удачи!

Хотите дополнить или возразить? Напишите в комментах, я отвечу обязательно (может и не сразу, но отвечу точно).