Как вкатиться в программирование

Начни с js или питона, дружище.
Начни с js или питона, дружище.

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

Рисовать за день тоже не научишься

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

Как себя мотивировать?

Чтобы не бросить, нужна мотивация. Деньги станут такой мотивацией только для очень целеустремлённых (либо тех, у кого нет альтернатив, сбивающих с пути). Предлагаю сделать мотивацией интерес ("фан"). Условно, выбрать какой-то проект (приложение, игру, сервис, сайт, телеграм-бота, etc), который будет вам будет интересно сделать не ради денег, а ради самого факта. И начать его делать на подходящем языке (js, python, java, php и прочее).

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

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

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

Не боги горшки обжигают

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

Я готов?

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

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

Если не уверен, готов или нет - сходи на собеседование. Да, тебе возможно будет неприятно, да и похер. Зато поймёшь, что спрашивают, что важно - за несколько месяцев (может и за один) прокачаешь и снова попробуешь.

Кратко:

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

В жопу перфекционизм на стадии обучения.

Учиться ты будешь всю свою карьеру (подумой!).

Учить следующий язык будет проще :-)

Чот проповедь получилась какая-то, чувствую себя Димой Титовым (приятное ощущение). Сорян, дико не выспался сегодня и формулировать связные мысли сложно. Ну и напомню: это всего лишь одна из множества точек зрения. Путь у каждого свой.

124124
89 комментариев

Душевный пост, согласен с тем, что лучше начинать все с just for fun, а не ставить себе каких-то жестких рамок. В процессе обучения уже сам разгонишься и поймёшь в каком направлении развиваться

8

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

4

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

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

4

Дружище, ну ты же понимаешь, что иногда лучше выпустить быстро, чем страдать перфекционизмом. Ну, с позиции бизнеса.
А не очень хороший код рано или поздно начнёт требовать рефакторинга. И тут бизнесу уже можно объяснить всё на языке денег (тоже полезный скилл, кстати). А если не захотят, то можно и бежать )

11

Комментарий недоступен

4