В мире есть немалое количество (точная цифра неизвестна) «латентных» программистов, которые на своей не-IT-работе вовсю используют логику и абстрактное мышление, и вообще являются мозговитыми персонажами. Вот только одна беда: они не знают, что могут программировать, не верят в себя. Если каким-то чудом такому человеку удается выйти из зоны комфорта и начать программировать, ему это кажется редкой удачей и на 100% собственной заслугой. Дружище, а не ты ли давал всем списывать свои контрольные по физике? Не ты ли занимал призовые места на олимпиадах по математике? Не тебя ли хвалил твой препод по теормеху и сопромату? Ладно, даже если и не хвалил и ты учился на тройбаны — не ты ли относительно легко закончил технический факультет в КПИ? То-то же.
Скорее всего, этот человек не в курсе изречения мудреца Хилона: «Познай себя» (греч. gnothi seauton, лат. nosce te ipsum). Потому как за долгие годы он так и не познал свои особенности, что выливается в душещипательные истории людей, которые в свои 37 вдруг просыпаются и начинают программировать, за полгода проходя путь с нуля до двух приложений в AppStore.
Здесь, конечно, велик соблазн списать всё на усидчивость и методологию обучения. Мол, каждый может так, было бы желание — как пела Алла Пугачева, «если долго мучиться, что-нибудь получится». Но пора бы уже отойти от наивного и признать, что не все люди равны. Кенийцы, например, генетически выносливее, чем более слабые бледнолицые. Почему же это мозги теперь у всех одинаковы? Вот, например, профессор Савельев, хоть его и критикуют, но говорит следующее: «Важное и самое главное, о чём мы говорим, — это мозг. Отличается в десятки раз по структурам. А в некоторых случаях в мозгах есть поля и подполя, которые есть у одного человека, но которых нет у другого. У нас качественное различие. Мозги у нас различаются так, как будто мы принадлежим к разным видам. Но это тема для отдельной дискуссии.
В другой показательной истории о программировании после
Илья, большое спасибо за совет! Вот только на счет «кардинально» — сильно сказано. Так как вы сами же говорили:
В течение двух лет купил компьютер и научился строить модели и писать программы для их обработки на этом станке.
«Научился» — то есть, вы, Илья, сами научились программировать. Достаточно редкое явление в наши дни, когда бедные студенты от безысходности ищут менторов или сбиваются в стайкидля изучения программирования. Потому что понимают, что иначе — труба. Но не для вас, Илья. Невооруженным взглядом видно, что у вас есть определенные способности к программированию, о которых рядовые менеджеры-студенты даже и не мечтают.
Первый кайф я получил, когда моя первая программа сработала без сбоев, мне доверили на тестовом задании построить модель на «боевую» деталь и написать на нее программу.
Ключевые слова — «кайф» и «доверили построить модель». То есть, во-первых, вам нравится программировать. Во-вторых, вам доверили кусок настоящей работы. Редкий оптимист-начальник позволит непрофессионалу строить модель для «боевой» детали, если только он не уверен в этом человеке. То есть, опять-таки, у вас всё получалось. Чего нельзя сказать о тех соискателях, что умоляют за миску супа взять их в команду на любой проект на позицию Junior.
Идем дальше.
Я очень быстро увлекся программированием станка.
«Заболеть программированием» удается не всем, и это большая удача. Это то, чего так не хватает беднягам-новичкам, которые скорее заболеют зарплатой в 2К долларов, чем своей работой.
Что мне пошло, так это конструирование. Но задачи стандартные, и после нескольких решений можно решить любую из них, в общем — скукота.
Ключевые слова — «конструирование» и «скукота». Первое говорит о том, что вы в душе инженер (а значит, опять-таки, латентный программист), второе — что вы уже достигли такого уровня профессионализма, когда многие задачи перестают вызывать интерес. Опять же, простым соискателям-оборванцам об этом можно только мечтать. Ведь вы прошли путь с нуля до двух приложений в AppStore за полгода без менторов и групп.
Ну, и завершающий аккорд:
После второго занятия я написал первый код на Objective-C.
Закончив курс — это было 12 занятий, — я через две недели работал (октябрь 2012), еще через две недели получил первые деньги как программист.
Илья, по-моему, это большое упущение, что до сих пор никто не взял у вас интервью и не написал статью в духе «Как за 12 занятий стать программистом Objective-C».
Есть и другие примеры (тысячи их!), когда латентного программиста можно распознать ещё в зародыше.
Студент — без пяти минут программист
Что нам говорит Александр: Так получилось, что закончил я второй курс КПИ прикладной математики и понял, что знания теории вероятностей и матана — это, конечно, хорошо, но пора искать работу. Решил сделать упор на Java, штудировал Хорстманна, Эккеля, грыз задачки на javarush.ru.
И дальше по тексту:
Средний балл у меня — 4.5.
Ключевые слова: «прикладная математика» и «средний балл 4.5». То есть Александр — как минимум не дурак: «Я точно знаю, что работать, выполнять определенные задачи и быстро получать хороший опыт могу и сейчас». Но что он пишет дальше?
Ищу возможность устроиться помощником программиста или стажером на неполную занятость за символическую зарплатуна проезд и бутерброд с сыромна обед.
В оригинальной версии жирным были выделены слова «помощником программиста» и «стажером», но я позволил себе выделить действительно важное. Человек, который учится почти на отлично на прикладной математике в КПИ, да к тому же свободно говорит по-английски, по-немецки, и даже на pre-intermediate French (разве такое бывает?). Согласен работать за бутерброд. Тогда как какой-нибудь нормальный еврей затребовал бы минимум по 100 баксов за каждый язык, даже без опыта программирования.
Знал бы Александр о том засильи «программистов», которые даже свой родной язык не знают (не говоря уже о том, что учатся они не на прикладной математике), но каждый месяц и бровью не ведут, получая свои 1-2К зеленых. Пример Александра является квинтессенцией мышления, которое ведет в никуда. Запомните этот кейс и никогда так не делайте. Если бы не активность HR-менеджеров, которые сами вылавливают из рек этих самородков, такие ментальные установки почти гарантированно заканчивались бы многолетней работой за ~7000-9000 грн. В связи с этим хочется передать Александру привет, пожелать ему творческих успехов и поставить для него композицию «Never work for free»:
Из гуманитарии в программисты
Для полноты картины не хватает примера с Запада, где
Once I had Ubuntu installed, I did some Googling for a basic Linux tutorial (since I knew nothing about Linux) and found one that including a brief tutorial on writing Perl scripts and Bash scripts.
I’ll never forget that first Perl script. It was like smoking crack for the first time.
I began scouring the Internet for anything and everything about programming I could find. I quickly found Harvard’s CS50 course. I watched the lectures and did the assignments. I was well and thoroughly hooked. I moved back to North Carolina to be close to my family and started on a post-bacc Computer Programming certificate at NC State. This led to a part-time programming gig, and now, three years later, I’ve finished the certificate and the part-time programming gig has turned into a full-time position as a software engineer.
Этот парень тоже не искал мотивационных групп анонимных программистов или ставленников-менторов. Хоть и поздно, но как-то оно само случилось.
Что общего в этих двух примерах программистов, которым за 30, — так это плохая домашняя работа над самопознанием. Увы, но некоторым мозговитым людям невдомёк, что после матана, сопромата и того же теормеха в этом мире остается не так уж много сложных для познания вещей. И разработка софта к ним явно не относится.
В случае же со студентом КПИ налицо явное непонимание рынка и своих джокеров (КПИ, прикладная математика, три европейских языка, молодость). Парень банально не верит в себя. Хорошо ещё, что ему хватило смелости создать тот топик.
Просуммировав, получим две основные причины неудач подсознательных программистов:
1) Незнание.
2) Неверие.
В принципе, эти два момента можно объединить в один: неумение продать себя. Как правило, продавец, который не верит в продаваемый продукт и не знает его особенностей, звезд с неба не хватает. Покупатель (если не дурак) это чувствует, и приобретает другой продукт у другого продавца. То же самое происходит с теми людьми, которые согласны кодить за бесплатно:
Примерно так работодатель видит студентов, готовых работать за еду. Хотите себе такого в офис? Не думаю.
Так что, если бы не неверие и незнание себя, то наши подпольные программисты уже давно бороздили бы просторы продукта и аутсорса, ежедневно отметая по несколько предложений о работе от пока ещё навязчивых HR.
Как понять, что вы — латентный программист
Один из самых верных способов — заглянуть в прошлое. Какие школьные предметы давались легче всего, за какие контрольные получались пятерки, на какой специальности проходило обучение в универе? Если вам легко давалась физика и математика, то есть весьма ненулевая вероятность того, что вы на подсознательном уровне таки программист. На этом этапе можно добавить себе +1 балл.
В какой ВУЗ вы поступили? Если это КПИ (или другой уважаемый техно-ВУЗ), где традиционно высокие требования к техническим дисциплинам, и если вы не погибаете на первой сессии, то можно смело добавить себе +1 балл. По крайней мере, программирование вам будет даваться легче, чем тем, кто не смог поступить в КПИ.
На каком факультете? Если это Физтех, ФИВТ, прикладная математика или другой мозгодробильный факультет, то можете смело добавить себе ещё +1 балл.
И, наконец, чем вы занимались в свободное время? Если вы ловили кайф от книг по Linux, TCP/IP, алгоритмам и от прочих технических произведений, при этом «помогая» (на самом деле делая за них всю работу) родственникам править скриптики для интернет-магазинов и бложиков, то можете добавить себе ещё +1 балл.
На этом моменте уже становится страшно, что вы до сих пор не перешли в разработку (в такие моменты фрустраций наш препод по химии, нагибаясь за кафедрой, обычно тяпал стопочку коньяку).
И, наконец, если человек уже в зрелом возрасте решил стать девелопером, то имеет смысл посмотреть на свои предыдущие работы и на то, каких активностей и какого рода умственной деятельности они требовали. Например, успешное программирование хоть станков, хоть автоматизированных поливочных систем — это ещё один звоночек, что, вероятно, с программированием вы на «ты». +1.
Чем больше вы набираете баллов, тем больше вероятность, что в душе вы программист, и вам не хватает лишь реализации. 5 из 5? Я уже позвонил в HR-отдел, за вами выехали. Приготовьте паспорт и сменную обувь.
P.S.Хотелось бы услышать больше невероятных историй о том, как люди приходили в IT из максимально далеких сфер — художники, кухарки, стриптизерши, сантехники, финансисты, крупье, водители маршруток, и так далее. Пришла пора дать стране настоящих героев.