Всем привет. Мне часто задают вопросы вроде «Мне 40 лет я хочу стать программистом» или «А что мне нужно сделать, чтобы стать программистом?» и так далее.
Я могу понять людей, ведь они просто ищут свое место под солнцем. Но мне совершенно не нравится постановка вопроса и я постараюсь объяснить почему.
Теоретически, для программирования не существует физических ограничений. Это не балет или баскетбол, где вам нужно обладать определенными физическими характеристиками, чтобы быть успешным в этом виде деятельности.
Согласитесь, что человеку с весом в 150 килограмм будет трудно стать балериной, а человеку без ног играть в баскетбол.
В программировании, на первый взгляд, таких ограничений нет. Сиди, пиши код, лишь бы руки были и зрение (любое, подойдут очки). Хотя есть примеры, когда люди справлялись даже без этого.
Все зависит только от твоего мозга.
Теоретически, да. Практически - нет
В реальности, разработчику нужно обладать целым рядом качеств, без которых он не будет успешным. Давайте попробуем в них разобраться
Гибкость ума
Технологии не стоят на месте. Чем бы вы не занимались, вам придется усваивать буквально тонны информации каждый день. Новые языки, фреймворки, библиотеки, статьи, книги, новые ситуации и так далее и так далее.
Ваш мозг будет протестовать и сопротивляться. Человеческий мозг может воспринимать такое количество информации без проблем только в детстве, поэтому здесь приходится буквально запихивать это все двумя ногами.
Это приводит к постоянным выгораниям, синдромам самозванца и так далее. Особенно тяжело будет, если вы перфекционист. Запомните: в программировании вы никогда не будете знать достаточно.
Поэтому лучший способ с этим справиться - это выключиться из гонки и не пытаться соревноваться с топами в программировании и принимать себя таким какой ты есть. Способны на это не то чтобы все
Устойчивость к неудачам
Вы должны уметь легко переживать неудачи. Сам процесс программирования это постоянные эмоциональные качели, взлеты и падения. От успеха к лютой неудаче. Только что твоя программа работала, а теперь у тебя сотня ошибок и все что гуглится - это две ссылки, которые имеют смутное отношение к тому, что ты делаешь.
Справляются с этим далеко не все, а самая жесть начинается, когда вы ищете первую работу. Сотни отказов, игноров и тд, кажется, что у вас никогда не получится найти работу. Если вы в моменты такого отчаяния способны взять себя в руки и дальше работать, то у вас все будет хорошо.
Также нужно иметь то, что я называю исследовательский интерес. То есть, в идеале, ошибка компилятора или что-то подобное должно вызывать не реакцию типа «да е* вашу мать», а интерес типа «хм, интересно, в чем же тут проблема»
Умение находить ответы
Всем своим студентам я говорю «вначале 3 часа гуглишь, потом задаёшь вопросы». Умение самому находить информацию, отличать правду от лжи, комбинировать ответы - это и есть процесс обучения.
Если тебе кто-то помог решить задачу, это ничего не стоит. Обучаешься ты только в моменты, когда сам мучаешься, страдаешь, ищешь ответ и в итоге у тебя получается.
В таком случается запускается целый комплекс процессов в голове, который приводит не только к решению исходной проблемы, но и к широкому понимаю причин, по которым эта проблема возникла
Я всегда говорю, что программистом можно стать только программируя. Именно в ежедневном решении проблем и задач прокачивается навык программирования. Никакие книги или ютубы не способны этого заменить. Они могут дать базу, но не больше того
Логическое мышление
Естественно, что программирование - это исключительно левополушарное занятие. Языки программирования очень строгие, подчиняются математической и булевой логике.
Более того, по ходу роста скилла вам придется освоить такую штуку как декомпозирование задач. Это, кстати, навык, которым в жизни многие не обладают
Это умение взять задачу и разбить ее на множество мелких подзадач, выстроенных в логичную связанную цепочку. И это, кстати, то зачем программистам нужна математика. Именно математика хорошо тренирует этот навык.
Помимо этого вам нужно еще уметь довольно абстрактно мыслить . То есть вы должны уметь абстрагироваться от конкретной проблемы в моменте и в голове представлять себе все множество решений задачи, которое может случиться.
Например, если отправить программиста в магазин и сказать купи скажем яблочный сок, то он обязательно спросит что взять, если его не будет.
Есть старая штука, что программист ставит два стакана возле кровати: один с водой, если захочет пить, а второй без воды, если на захочет
Нужно уметь вертеть в голове сценарии и держать довольно большой объем причинно-следственных связей
Усидчивость
Как говорил мой научный руководитель «Самое главное качество программиста - это железная жопа». Программисты очень много сидят. ОЧЕНЬ МНОГО сидят. А самое важное, что когда ты активно работаешь ты входишь в некое подобие транса, во время которого ты вообще ничего не видишь и не слышишь.
Если тебя не кормить ты можешь не есть 10 часов, а если поставить тарелку на стол ты сметелишь все, что тебе принесут. И то и то плохо для здоровья, кстати.
Поэтому, если вы физически не способны пару часов усидеть на месте, то это в принципе не для вас работа. Попробуйте почитать книгу часов 14, сидя в кресле. Если справитесь, то возможно есть шанс :)
Навыки общения
Считается, что программисты - это такие нерды-задроты, которые сразу общаются двоичным кодом и тд. Те времена давно ушли и сегодня, в некоторых компаниях, тебя могут отклонить за софт скилы быстрее, чем за хард скилы.
И да, общение это постоянная часть работы, а токсичность я айти коллективах это самое страшное проклятье
Поэтому, если у вас проблемы с дипломатией, то лучше вам ее прокачать иначе будет тяжело. Особенно это касается людей в возрасте. Проблема часто даже не в хардах, как писать код люди способны освоить в любом возрасте, а в общении
Как ни крути айти это сейчас примерно 25-35 летний возраст сотрудников и вам нужно быть с коллективом на одной, что называется волне.
Английский
В продолжение предыдущего пункта. Надо понимать, что все языки программирования используют английский в качестве основы (кроме 1с, но это особый случай). И большинство из них придумали на западе, также как и большинство айти компаний мировых - западные.
Поэтому всю информацию, которую вы ищете - вы будете получать на английском. Поэтому хотя бы читать и усваивать информацию вы должны.
Плюс англицизмы проникли в речь айти российского. Все эти дейли, скрамы, спринты, фреймворки, дедлайны, q1, окр, канвасы и так далее и так далее - это то, что вам придется понять.
Мне очень часто за это прилетает в моих видео, несмотря на то, что я обычно очень сильно пытаюсь русифицировать свою речь. Но некоторые вещи уже настолько устоялись, что их невозможно заменить
Например грейды и джун миддл синьор
На этом все. Проанализируйте насколько это подходит вам и если нашли много совпадений, то возможно программирование для вас.
На этом я с вами прощаюсь. Увидимся в новых постах