Представим ситуацию: вы зашли в больницу. И так, между делом, подходите к врачу и спрашиваете: «Подскажите, пожалуйста, как стать врачом?». Или вас в качестве свидетеля позвали на суд, и в перерыве между слушаниями вы обращаетесь к адвокату с вопросом: «Милейший, подскажите, как мне в этой стране стать адвокатом?». Затем вы идете в ресторан, и там уже зажигаете с шеф-поваром: «Скажите пожалуйста, не поздно ли становиться поваром, когда тебе уже за 50?». Далее возможны вариации на тему, какую поваренную книгу читать, на какие кухарские курсы записаться и как проходить собеседования на должность помощника повара.
Примерно то же самое происходит, когда к программистам обращаются по карьерным вопросам: «посоветуйте 50 книг», «с чего начать?», «как правильно программировать?», «объясните ООП» — всё это из одной оперы. Конечно, хочется человеку помочь, да и дать совет — дело нетрудное. Но волей-неволей начинаешь задумываться, почему у одних людей такие вопросы возникают, а у других — нет.
«Хочешь петь — пей». Хочешь программировать — читай книги?
Одни открывают Notepad и начинают с ходу фигачить хоть и простые, но скриптики, а другие не собираются писать ни строчки до тех пор, пока не будет готова солидная теоретическая подстилка в виде тех самых
Вся эта история напоминает жаждущего страдальца, который вовсю смотрит видео о том, как научиться кататься на роликах или скейте, делает зарисовки и даже визуализирует с закрытыми глазами, но всё так и не рискует выбраться на роллердром. Если он там и появляется, то нечасто, — только чтобы набить пару синяков, и всю оставшуюся неделю торчать у монитора со вскинутыми к небесам руками: «не получается!», «посоветуйте что-нибудь!». Так и хочется спросить: «а ты пробовать пробовал?».
Со всем этим потоком новичков в IT — та же беда. Если им по душе программирование и тестирование, то почему эта страсть просыпается аж в
IT-труба зовет
Бывают ситуации, когда человек, поскользнувшись на банановой кожуре и ударившись головой, вдруг в свои 32 обнаруживает, что его дико прёт программирование. Но тогда у него не возникает наивных вопросов, на которые он и сам бы мог найти ответы, — как в случае (описанном по ссылке выше), когда человек совершенно случайно и безо всяких советов находит туториалы по Linux и Perl, и его затягивает в программирование. То есть не человек, круша горы и распихивая локтями айсберги, пробивается к командной строке и компилятору, но они сами тянут его в водоворот технологий. Тот случай, когда не ты выбираешь IT, а IT выбирает тебя.
Я сторонник теории, что каждый человек уже при рождении умеет всё. Одна из задач жизни — откопать в себе эти навыки. Как в истории про камень, который мастер много дней колошматил зубилом, и сделал великолепную статую. Люди подходили, с восхищением ахали и говорили умельцу: «Вы создали невероятный шедевр!», на что он отвечал: «Я ничего не создавал, статуя уже была заложена в камне. Я лишь убрал всё лишнее».
Так вот, когда человек в один прекрасный день решается пойти в IT, он напоминает камень, который, стоя в каменоломне, неуклюже пытается подвинуться поближе к переднему краю — в надежде, что мастер заметит его и выберет для своей следующей работы.
Определить в себе программиста
Если вы пишете код, и вам это приносит удовольствие, — вы программист. И совершенно неважно, насколько ваш код оптимален, леп и пригож. Здесь достаточно следовать принципу из к/ф «Мирный воин»:воин не имеет отношения к совершенству. Вы как воин-программист не обязаны быть совершенством. Человеку лучше получать кайф, будучи посредственным разработчиком, чем страдать, будучи богом программирования.
Залётные казачки vs пытливые умы
Казачок будет искать обходные пути и золотые пилюли в виде умных книг, прочитав которые, он станет наконец TRUE-программистом. Тогда как пытливый ум покажет свой кусок корявого кода и спросит совета, попросит поработать в паре.
«Но ведь в IT слишком много всего, чтобы будущий зеленец-джунец знал, с чего начать. С этими вопросами он и обращается к более опытным товарищам!», — крикнет бородатый мужик из зала. Да, мы уже слышали безобидное «подскажите, с чего начать». Здесь и зарыта собака. Человек, которому и правда интересно, будет скакать по разным темам, откусывая здесь и там — не только потому, что этого требует его pet-project, но и потому, что это чертовски интересно, и он вообще не понимает, как можно быть настолько дерзким, чтобы пользоваться интернетом, не зная хотя бы основ HTTP.
Быть или стать программистом
Я видел людей из обоих лагерей. Те, которые «быть» — никогда не заморачивались ни порядком изучения технологий, ни волшебными методикамиразработки софта. Кое-кто из них за всю жизнь не прочитал ни одной книги по программированию, хоть и успел уже выпустить пару фреймворков. Эти люди кайфовали от того, чем занимаются, программировать им удавалось чертовски хорошо. Тогда как товарищи из второго лагеря, которые «стать», делились на две категории:
1. Те, которые и так были программистами, но сами этого ещё не знали (например, начинали карьеру сисадминами, после чего переходили в разработчики). По сути, это невыявленные самородки из лагеря «быть», эдакие латентные программисты.
2. Те, которые решили освоить дело, к которому у них нет ни навыков, ни души. «Вдруг со временем понравится?»
Что ж, со временем, может, и понравится. Хорошая новость для заблудших ковбоев заключается в том, что терпение и труд таки всё перетрут — даже мою кошку удалось научить писать CRON-таски и деплоить на Tomcat.
Но есть для них и плохая новость: стать программистом тяжелее, чем быть им. Здесь требуется особый склад ума, умение мыслить абстрактно, логический аппарат и ещё много всего, в том числе и чугунная пятая точка. Хорошо, если всё это есть уже на старте, иначе придется потом ломать себя и перестраиваться. Захочет ли человек только ради зелёных купюр пересмотреть 30% своего времени (если программированием заниматься лишь в рабочее время) и начать мыслить иначе — каждый выбирает сам. Но хорошо бы все-таки не потерять себя и не остаться тем самым неотесанным камнем-выскочкой, который захотел под шумок срубить капусты.