Привет всем!
В этой статье разберем один из самых популярных вопросов, что задают в Интернете куча людей - от школьников до пенсионеров. И вопрос этот - как стать программистом?
Знаете, странно, но многие видят в программировании одни лишь "плюшки" и "плюсы" - высокую зарплату, мощный соцпакет, отличные условия труда, но совсем не видят того, что "скрыто под капотом", а минусов там тоже хватает (говорю это как программист с 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.
Ну а если Ваш выбор - программирование, то начать обучение программированию с нуля лучше всего с "классики" - изучения алгоритмов и как работает вообще компьютерная техника. Все. Говорить тут больше не о чем ))
Удачи!
Хотите дополнить или возразить? Напишите в комментах, я отвечу обязательно (может и не сразу, но отвечу точно).