Як потрапити в ІТ?

Перед тим як потрапляти в ІТ, гарно подумайте чи воно вам справді потрібне. Це важка, інтелектуально виснажлива робота, часто нудна, часто стресова, яка знищує ваше здоров’я. У ній ти постійно ідіот, який нічого не знає, ти мусиш постійно вчитися аби хоч якось триматися на плаву. А програмісти за 40 взагалі зникають, є теорія що їх сплавляють по Дніпру :-)). Але якщо вам подобається писати код і вчитися, Господи, вам сюди, тут класно, затишно і грошовито:-). Я потрапляв в ІТ двічі, тому що робив перерву на викладання і наукову роботу. Зараз, напевно, буду потрапляти втретє, бо ІТ вийшло у мене з-під ніг, я трохи забагато провів часу на десктопі, який раптом став не актуальним. Ось способи потрапляння в ІТ, які я виділив із власного досвіду і досвіду моїх знайомих.

Некро-технології. Це, напевно, найпростіший спосіб потрапити до ІТ і доволі дієвий. Майже нічого не треба робити, але треба мати технічну освіту і якийсь мінімальний досвід, типу щось для диплому писав. Суть способу полягає  у пошуку компаній які застрягли у минулому і мають старезний код і технології, часто доморощені, від яких вперто не хочуть відмовлятися. Наприклад, трапляються такі, що сидять на Lisp, COBOL, APL, Gupta, Delphi, PowerBuilder. Я реально на кожну бачив вакансії.  Це можуть бути також компанії, які чомусь вирішили використовувати щось екзотичне, типу Erlang. Цей спосіб, я знаю точно, працює, тому, що я сам ним скоритався щоб потрапити до міжнародного вендора програмного забезпечення SimCorp, який активно використовує екзотичну мову програмування APL і купу жахливих доморощених технологій. Жоден успішний амбіційний девелопер не погодиться на цьому працювати, тому я просто з універу, погодившись працювати з “некро-технологіями” отримав чудову зарплату, закордонні відрядження, мед страховку і тому подібні няшки. Спосіб вкрай небезпечний – можна обрости мохом, почати пахнути нафталіном і на цьому і закінчити кар’єру. Необхідно постійно навчатися паралельно. Я зараз опанував C# і частину робочого часу отримую релевантний досвід виконуючи .NET проекти.

Блискучі знання з предметної галузі в якій активно використовують ПЗ. Наприклад, фінанси, комп’ютерна лінгвістика, обробка і аналіз величезних масивів даних, електроніка, телекомунікації. Якщо компанія спеціалізується на доволі складній предметній галузі і ім критично найняти програміста із гарними скілами в цій предметній галузі, вміння програмувати буде достатньо щоб отримати роботу. Наприклад я працюю у компанії що має фінансову експертизу. До деяких відділів можна потрапити саме тому що людина має дуже добрі фінансові знання. А фінансова галузь ще не сама складна. Я сам цей шлях не проходив, але я бачив надто багато людей що зовсім не вміють програмувати, але вони стають в моїй компанії навіть сіньйорами і чіфами, тому що для бізнесу їх уміння фінансові набагато цінніші ніж уміння писати код.

Знайомства. Звучить дещо пошло, я знаю, культурно це звучить типу references. Якщо у вас є знайомі, що працюють в ІТ компаніях, а особливо що впливають на прийняття рішень там – бінго! Цей спосіб може бути як дуже дієвий так і зовсім безглуздий. Можна сказати це навіть напівспосіб, тому що якщо у вас немає необхідних навичок вас ніхто не візьме на роботу. Але якщо навички все ж таки є, то серед купи народу з такими ж навичками, візьмуть саме вас. Тому знайомства дуже і дуже важливі. Як на початку кар’єри, так в її середині, а особливо вкінці. Я сам навіть пишу цей блог а потім виступатиму з цим перед аудиторію саме з такою метою: познайомитися і бути знайомим. Маю я і особистий досвід користування цим способом. Перший раз я потрапив до ІТ ще будучи студентом. Мій добрий приятель помітивши як мої очі блищать на заняттях з цифрової техніки і мікропроцесорів (Женя Бабін, привіт!:-)) запропонував зайнятися з ним веб програмування, яким він і багато інших студентів у ті часи (двотисячні ) активно промишляли. Також я маю досвід рекомендування людей. Двох рекомендував і обох не взяли. Не було потрібного скіла, не було потужного прагнення у людей, тому і не спрацювали мої поради їх найняти. До речі, походи на курси у компанії, має цінність саме з точки зору заведення знайомства з компанією, її потребами і працівниками. Ці знайомства можуть спрацювати.

Масове розсилання резюме. Цей спосіб класичний, про нього не потрібно розповідати, його знають і використовують усі. Ефективність цього способу однак, не підсиленого комбінуванням з іншими способами, близька до нуля. Ти шлеш і шлеш резюме, а потім чекаєш і чекаєш і чекаєш… І нічого не відбувається. Починаєш писати в резюме те, чого нема, тоді який не будь відчайдушний HR тебе запрошує на співбесіду, яку провалюєш з лунким тріском. Знайомо? Народ, хоча б резюме подбайте вилизати. Я проводив курси у своїй компанії для зовнішніх і мав насолоду дивитися на резюме що їх присилали щоб на курси потрапити. Господи, що я тільки там не бачив. Інколи живіт тріщав від реготу. Колись цей спосіб з розсиланням резюме був супер швидкий і ефективний. Програмістів було потрібно відчайдушно багато. Брали усе що могло if та for написати і пояснити різницю. Ці часи минули, нажаль. Сьогодні розіславши в купу місць резюме із меседжом “я класний, гарно вчився, і можу робити все на будь якій технології” отримаєте зловісно мовчазний телефон.

Стати відомим. Цікавий спосіб потрапити в ІТ чи не так? Але не такий уже й важкий як це було 10 років тому. Погляньте, скільки можливостей є у наших руках, які майже нічого не коштують: ведення свого блогу, відкриття свого YouTube каналу, написання статей на DOU, запис своїх подкастів, написання і інтернет-публікування своїх книжок. Бери – і роби, лише потрібен час. Звісно, ви для цього маєте бути не безробітнім чоловіком із жінкою та дітьми на голові. Але якщо ви студент або працюєте ще не в ІТ, цей спосіб можна застосувати. Я не можу, однак, сказати що цей спосіб дієвий, я сам його не використовував. Але зараз я дію саме за ним, цей спосіб є моєю кар’єрою стратегією сьогодні. Мені страшенно набридло ходити на співбесіди і відповідати на запитання типу скільки яєць можна кинути з якого поверху, як швидко множаться бактерії, скільки разів треба човном котів перевозити на інший берег, чи якусь іншу дурню. Я хочу щоб мені самі дзвонили і пропонували роботу ті, кому потрібні мої послуги. Для цього потрібно щоб про мене знали і знали як фахівця з чогось, тобто треба спеціалізуватися і колупати цю спеціалізацію роками. Але це уже інша тема.

Власний бізнес. Для таких людей як я ідея створення власного бізнесу негайно напрягає. У мене ж нема підприємницької жилки, я не хочу усіх цих клопотів із податковими, бухгалтерією, пошуком клієнтів. Але чим цікаве ІТ, що можна створити свій бізнес без усіх клопотів. Але по порядку. Суть способу полягає у створенні власного бізнесу, який розроблятиме програмний продукт. І зовсім не обов’язково когось наймати чи отримувати прибуток. Без найму і прибутку немає необхідності офіційно реєструватися, і займатися тяганиною з податковою та бухгалтерією. Обов’язково обрати популярну актуальну технологію і використовуючи її робити продукт, дуже класно якщо хтось ним ще й користувався б безкоштовно. Це могло б зорієнтувати які саме фічі потрібні. Це було б суперово, але не обов’язково. Але що ж це за бізнес такий, який не приносить доходу, або приносить мізер? Який зиск? А зиск у тому що через рік-два можна буде написати в резюме: ASP.NET, C#, Angular, JavaScript – досвід 2 роки, компанія така-то, продукт, що робив ось тут можна подивитися і код, що я пишу і його якість можна зацінити ось у цьому репозиторії GitHub. Та це ж уже звучить солідно, правда? А якщо є бодай один клієнт – то взагалі круть. Множимо це на знайомого, що принесе це резюме в руки керівництва і маємо першого реального клієнта/роботодавця з баблом. І тепер ми по справжньому в ІТ. Гадаю, ні в кого не викликає сумніву той факт, що це дуже дієвий спосіб, але й дуже важкий, вимагає багато праці і самовіддачі. Не підходить безробітній людині без засобів до існування. Мій приятель, Женя Бабін, що я з ним починав свою кар’єру, потрапляв в ІТ саме цим способом. Він типу створив компанію, знаходив в інтернеті клієнтів і спочатку пропонував їм виконати роботу за мізер, можливо були і безкоштовні випадки. Це не важливо. Важливо що на момент випуску з університету у нього було 5 років досвіду і купа виконаних проектів. Навіть досвід управління мною і іншими хто йому допомагав. Якби він захотів, він міг би отримати будь-яку роботу в Києві з веб програмування. Але він не захотів, бо його власний бізнес уже забезпечував усі його потреби.

Висновок. Потрапляти в ІТ краще тоді коли справді це подобається, тому, що ця галузь далеко не проста і виснажлива. Але якщо це подобається, то ІТ може бути дуже вдячним. Потрапити у галузь колись було дуже легко, а сьогодні дуже складно, але є, відповідно важкі, але дієві способи туди потрапити. Важка праця, світлий розум і гарні стосунки з іншими ІТ фахівцями врешті-решт приведуть вас до комфортного робочого місця, достойної зарплати і цікавої роботи. Щасти!

Facebooktwittergoogle_pluslinkedinmailFacebooktwittergoogle_pluslinkedinmail

Чи потрібна вища освіта програмісту?

Ця публікація є реакцією на інтерв’ю із Сашею Шевчуком про те, навіщо програмеру вища освіта. Саша за своєю манерою такий категоричний у тому, що вища освіта абсолютно необхідна. Я після універу уже майже 4 роки сиджу у реальних траншеях і… от нутром відчуваю, що насправді зовсім ні, не потрібна. Правда, я хотів би сказати що потрібна, і що усім слід сумлінно навчатися в університетах, отримувати гарні оцінки, тішити своїх професорів, і навіть писати круті дисертації. Але не можу, тому що сам озираючись у своє минуле, ніяк не второпаю нащо я добивався усіх своїх золотих медалей, червоних дипломів і наукових ступенів. У траншеях (ні, я не в АТО, це так називають реальну брудну програмерську роботу) ці знання майже не потрібні, а якихось вмінь наша освіта давати не може.

ІТ – це передова галузь і у ній дуже помітні нові тенденції. А тенденція сьогодні така, що знання мають мізерну цінність. Майже нікого не цікавить що ти знаєш, тому що будь яку інформацію можна майже миттєво нагуглити. Вона лежить на поверхні. Цінністю сьогодні є уміння. Не те щоб раніше уміння не були потрібні, просто знаючі люди могли просто на своїх знаннях заробляти на життя. Кожен, хто намагався бодай раз програмером влаштуватися підтвердить, що якщо ти не маєш досвіду, тобто скіла, то хоч доктор наук – ти не цікавий, бо ти не можеш принести компанії нічого цінного. А тому тепер студенти першочерговим своїм завданням мають ставити отримання досвіду а не гарної оцінки, чисто з таких прагматичних міркувань.

Ну ок, можна заперечити, що мовляв все одно має бути фундамент спочатку. Так, згоден. Але принаймні наші університети дати його не можуть. Думаю закордонні теж. І не тому що погані чи не надто розумні. Ні. Просто наша галузь надто молода і ніхто толком не знає що є фундаментом у ній. А тому, наприклад вчать, основам програмування на С++. Це фундамент? Правда? А студент вийде і муситиме писати на JavaScript і як прототипним наслідуванням чи замиканнями він не вмітиме. Який же це тоді фундамент. Далі ООП на C#, де казатимуть що private – це інкапсуляція і це має якийсь стосунок до ООП. А на роботі – Ruby, і уся освоєна об’єктна модель – коту під хвіст.

На заняттях з проектування вчитимуть UML до запаморочення в усіх деталях. Хоча до проектування він має стільки ж стосунку скільки будь яка інша мова програмування, просто UML – графічна мова от і все. А на робочому місці – студент не знайде UML. А якщо і знайде – то неправильний і усі його знання – коту під хвіст. А ще вчитимуть патерни, більшість з яких просто хакають систему типів статично типізованих мов, а частина їх уже вбудовані в самі мови програмування і платформи (С# events – observer, lambda expressions – strategy).
Інші предмети і згадувати страшно, знання їх взагалі ніяк не допоможе ні в чому (фізика, 90% дискретки і вишки, соціологія, релігія, філософія, археологія…).

Гаразд, є фундаментальні теми, Саша їх згадує. Кінцеві автомати. граматики, графи, дерева. Але ці усі теми потрібні виключно для розробників мов програмування і операційних систем. Багато з нас цим займаються? Ті хто хотять, або відчувають у цьому потребу на проекті – йдемо на Coursera і проходимо курси з компіляторів, структур даних і алгоритмів. Я проходив. Пререквізити – шкільна освіта. Це абсолютно все що потрібно в найекзотичніших проектах.

На мою думку за відсутності фундаментальних знань в сфері інженерії програм (не комп’ютерні науки! це як електроніка і фізика) в університетах майже нічого навчитися не можна крім комп’ютерних наук, які програмному інженеру тільки інколи трохи релевантні. А тому навчання там – марнування часу. Фундамент можна отримати тільки шляхом узагальнення практичних знань після того як побачив десятки мов програмування, парадигм, платформ і фреймворків. Онлайн курси дадуть необхідну стартову базу.
John Sonmez (http://simpleprogrammer.com/) рекомендує починати кожному свій бізнес, робити продукт і отримувати в процесі досвід. Так, студент скоріш за все того продукту не продасть, і доходу не матиме, але так само студент не матиме доходу від вищої освіти. Але від цього маленького софтверного бізнесу буде досвід і запис в резюме, що так необхідні для отримання першої роботи.

P.S. Дорогий читачу, якщо ти студент, це не означає що слід негайно покинути університет. У кожного свій шлях. Я, наприклад, коли навчався більшість часу займався веб програмування а на навчання так би мовити “підзабивав”. Все ця “корочка”… І все ж таки аналоги універських курсів по спеціальності варто пройти на Coursera. Хоча б тому що це страшенно цікаво. ))

Facebooktwittergoogle_pluslinkedinmailFacebooktwittergoogle_pluslinkedinmail