6 мифов о программистах
Добрый день и я снова на связи. Сразу приношу извинения всем моим подписчикам, но, кажется, я могу писать только когда моя нижняя точка пригорает. В процессе обсуждения статьи про курсы и инфоцыган в группе “Войти в айти” я увидел статью, в которой в очередной раз было написано что то в духе “в айти постоянно все новое и это так сложнаа”, что проплавило стул подо мною и на пути в Икею за новым я решил написать этот пост. Я уже писал нечто похожее, но тут подъехало еще. Итак, приступаем к разбору айти мифов которыми щедро потчевают джуниоров и тех кто собирается стать таковым.
Высшее мат. образование - мастхэв для айти. И вообще, как это вы без математики программируете.
Очень часто это слышу, особенно в контексте “Ну вот раньше то были программисты, а щас что?”. Да-да, наша профессия уже такая старая что появились адепты “раньше сиськи были больше программисты лучше”. Спешу заверить - это не связано с высшим образованием, это связано с тем, что задачи были более низкоуровневые и уровней абстракции между пользователем и самым низким уровнем было на порядок меньше. С развитием тулзов не имеет смысла опускаться низко, да и типовые задачи уже в основном решены.
В веб разработке в которой заняты 99% разработчиков по большей части не нужна высшая математика. Алгоритмы применяются чаще, но, я, например, в институте не сильно прокачался в компьютер сайнс, больше гораздо натренировал себя сам уже в дальнейшем. Джунам на правку багов - куда полезнее просто уметь читать код и мыслить алгоритмически, нежели знать вышмат и решать системы уравнений, или, вычислять интегралы численным методом. А даже если вам и нужна будет математика - почему ее нельзя выучить самостоятельно? Я что то не припомню никакого Гэндальфа, который вложил мне в голову математику, помахав посохом. Точно так же сидел и учил, разве что мне было 18 и времени было больше. Но это компенсируется аж целыми пятью годами затраченными на получение высшего образования, с включением философии, литературы и прочей не нужной херни.
Мой вывод здесь - высшее образование может быть подспорьем, но абсолютно не нужно для входа в профессию и успешного развития в ней. Более того, если у вас нет проблем с армией, я скорее рекомендую начать работать раньше, нежели идти в институт. Этот совет относится только к РФ, насчет других стран никаких давать не буду.
Можно стать программистом после трехмесячных курсов.
Прямо обратный предыдущему миф. Взращен и выпестован инфоцыганами и продавателями курсов. Запомните - если человек обещает вас научить чему то, на что люди тратят годы за три месяца/две недели/семь дней/два часа - он мошенник. Люди не рождаются с алгоритмическим мышлением, мозг надо переключить, и это требует времени. Более того, это требует недюжинных усилий, а следовательно и отличной мотивации. При этом, уже после понимания что же такое программирование, вам таки предстоит освоить несколько инструментов в вашей области и набить несколько шишек. При всем желании, с нуля до джуниора, без опыта в смежных областях, за три месяца пройти невозможно. Я таких людей не встречал и не знаю. Если такие есть - буду рад подискутировать в комментариях.
При этом ВАЖНО понимать, что мотивация не может быть исключительно денежной. Деньги это важно и хорошо, без них работать нельзя, но, если вы строите ваш путь в айти только на деньгах, особенно на ранних этапах - вы проиграете тем, кто вкладывает личный интерес и эмоции в это. Ибо большой объем знаний без особого интереса в них в мозг либо не уложится, либо повиснет мертвым грузом.
Мой вывод здесь - нельзя стать разработчиком после трехмесячных курсов и нельзя им в принципе стать, не интересуясь предметной областью.
Нельзя стать программистом без врожденного таланта.
Не знаю кто автор этого мифа, но часто слышу про некий врожденный талант и особый энтузиазм, который совершенно необходим, иначе в касту разработчиков не попасть. Итак, начну с того, что люди которые не могут писать код существуют. Это такая же данность, как и люди, которые не могут играть музыку, либо писать книги. Я вот еще ушами шевелить не умею.
Связано это в первую очередь с интересом к теме. Во вторую - с особенностями мышления. Но их куда как меньше, нежели со слов местных гуру. Да и приговор ли это для работы в айти? Совершенно точно нет, на рынке нужны не только разработчики. Менеджеры проектов, аналитики, сейлзы, даже дата саентистам не надо заморачиваться с кодом, им куда важнее иметь аналитические и математические навыки. Так что если у вас не получается писать код, либо это не очень интересно, а в айти работать хочется - вы этого добьетесь.
Мой вывод здесь - люди, неспособные писать код существуют, но вы вероятно не в их числе. Все упирается во время, мотивацию, и понимание перспектив вкусно кушать и хорошо спать.
Рынок очень голодный и всех берут за красивые глаза и умение клацать по клавиатуре.
Тоже любимая сказка инфоцыган. Мол за три месяца найдете себе работу, потому что всех специалистов сметают как горячие пирожки. Это правда, но надо понимать, что в слове “специалист” и скрыта та секретная цыганская техника полуправды. Рынок голоден до людей, которые могут и умеют решать задачи самостоятельно и эффективно - мидлы и сеньоры. Выпускники курсов и вчерашние студенты в их число не входят. Джуниор - это человек, на которого компании надо потратить время мидлов/сеньоров и деньги для обучения, таким образом на вакансии джуниоров есть весьма большой конкурс, который, сразу после курсов, вы вероятно не пройдете. Выход есть - свои проекты, общение с более опытными коллегами, наш чатик, в конце концов. Это достижимо, если вы будете трезво оценивать ситуацию и знать свои слабые стороны.
Опять же Гэндальф посохом не машет, да и орлов до сеньора вам че то не видать, придется по хоббитски пахать и курить трубку по вечерам, обдумывая архитектуру проекта.
Мой вывод здесь - выпускники курсов в большинстве своем не нужны, нужны специалисты, понюхавшие пороху. Но из хороших новостей - пороху понюхать можно и работая над своими проектами и общаясь с коллегами. Коммьюнити сейчас в разы больше чем десять лет назад, адекватных людей найти вполне можно.
Надо разбираться во всех тонкостях технологий с которыми вы работаете.
Строго говоря не миф - то, что вы используете каждый день, не должно содержать в себе магии и единорогов. Но очень часто бывают ситуации, в том числе у очень опытных коллег, когда они включают Адептус Механикус и начинаются копаться в очень низком уровне системы, вместо решения задач.
У новичков такое вырождается в копание в инструкциях процессора вызываемых кодом на Питоне, про которые забываешь через три дня. Очень поддерживается узким элитарным кругом хабровчан, пишущих про то как они круто расковыряли какой то хитрый вызов функции. Новички читают эти статьи, чувствуют острое жжение в области пятой точки и комплекс неполноценности, бросаются тратить свою жизнь на отковыривание всех инструкций процессора для вызова print(“Hello world”) питонячим интерпретатором. Пример конечно очень преувеличенный, но нечто подобное видел не раз.
Можно ли таким образом стать гуру - можно, но в очень узкой области, ибо времени разобраться во всех остальных у вас просто не останется. Нужны ли такие навыки и знания продуктовым компаниям? Не очень. Им нужны люди более широкого кругозора, никак не специалисты с заточкой рапиры и кругозором примерно как ее же лезвие.
Мой вывод здесь - знать как организовано хранение типов данных в вашем языке нужно и важно, но знать как компилятор оборачивает вызовы библиотечных функций на -О3 для экономии 2% памяти, это, как правило, Эребор. Если вы не знаете зачем вам нужен супернизкий уровень, а времени у вас нет - он вам не нужен.
Все технологии новые каждый год.
Тащем-то про это я уже писал. Но повторюсь - меняются названия и инструменты, а базовые концепции В ОСНОВНОМ такие же. После набития шишек на базе и вкуривания, что же за магические пепяки вам попались все “новые технологии” будут оцениваться мозгом в духе “Аааа, это же штука1 но с фичей как штука2”.
Тут главное не пропустить когда реально что то крутое придумали и неплохо было бы доскональнее разобраться. Но такие вещи встречаются не слишком часто, из последнего могу вспомнить Докер и Кубер как принцип. Но они таки следуют завету “Простое должно оставаться простым”, поэтому базово освоиться с ними даже с нуля займет у вас три четыре дня. Остальное - примерно как смена цвета ручек молотков у плотников - интересно, но не повод постоянно менять молотки с разными ручками.
Мой вывод - в айти появляются новые вещи, но они строятся на тех же базовых принципах что и вещи до них. На джунском уровне точно не стоит на этом заострять внимание, гораздо полезнее просто выбрать технологии которые вы видите в вакансиях и сосредоточиться на практике с использованием их. Меньше дум - проще сконцентрироваться.
У этой статьи будет вторая часть, потому что бомбит меня куда как сильнее чем на шесть пунктов. Увидимся!