Професія розробника в Україні зараз – одна з найпрестижніших, а технічні виші виходять у топи рейтингів популярності в абітурієнтів. Але не секрет, що навіть у великих компаніях працює безліч фахівців, які навчилися програмувати самостійно. AIN.UA зібрав кілька історій про те, як майбутні розробники самотужки освоювали професію (отримували при цьому непрофільну освіту або ж кидали виш, не довчившись). Здебільшого, ми спілкувалися з програмістами, але також не оминули увагою веб-верстку. Самонавчання програмуванню: як це зробити і знайти круту роботу.

Ми запитували учасників про те:

  1. чому вони обрали самонавчання програмуванню?
  2. чому не стали вчитися в профільному виші?
  3. чи складно було знайти роботу без диплома?

Ми також попросили кожного з учасників назвати ті онлайн- та офлайн-ресурси, які він вважає корисними для самонавчання.

code1Володимир Агафонкін

на 4 курсі «вилетів» зі стаціонару КПІ (прикладна математика) і перевівся на заочний через те, що влаштувався на роботу на повний робочий день. Самостійно вивчив JavaScript і створив популярну opensource-бібліотеку Leaflet. Працює програмістом у MapBox, грає на гітарі, соліст гурту «Обійми Дощу». Веб-розробку почав вивчати, щоб зробити сайт для свого гурту

  1. Ще в садочку всі мріяли бути астронавтами або гонщиками, а я всім заявив, що буду кібернетиком, створювати роботів 🙂 А відтоді, як у мене з’явився свій комп’ютер, від нього було взагалі не відірвати.
  2. Вчитися самостійно доводиться більшості українських програмістів: технології розвиваються з кожним днем, а поки в академічних колах затвердять програму за новою технологією, вона застаріває років на 10-20. Цінними у вишах є тільки ті предмети, які розвивають логічне мислення (матаналіз, дискретна математика, дифури).
  3. У пошуках роботи найголовнішим було – почати. У мене не було досвіду роботи, тому за перше замовлення, яке я знайшов, платили копійки. Але після цього в мене одразу були хороші приклади робіт, і друге моє замовлення в іншого клієнта оплачувалося вже в 10 разів вище, ніж перше. Якщо ти справді добре робиш те, чим займаєшся, відпадає необхідність шукати роботу – навпаки, компанії починають шукати тебе. Мені не раз приходили листи від Google, Apple, Facebook, Nokia та інших.
 Самообучение программированию-2
Самообучение программированию

Порада з навчання: В інтернеті мільйони навчальних матеріалів на будь-які теми, з чим завгодно можна розібратися самостійно – Google на допомогу. Найкращий спосіб чогось навчитися – придумати для себе захопливе завдання і вчитися в міру його виконання, крок за кроком.

Андрей Волошин

Учился на медика, но при этом самостоятельно изучил несколько языков программирования. Сейчас — Chief Technology Officer в Mobiliuz

Самообучение программированию-1

1. Дело было в 8-м классе, отец принес мне диск с видеоуроками по Visual Basic 6.0. И я просто взял и начал повторять то, что там на видео показывали и комментировали. Первым приложением было «Привет, папа!». Дальше старшеклассник подсказал мне, что есть .NET 1.1 Beta и вскоре я уже писал на VB.NET и C#. В 10-11 классах на олимпиадах еще писал на С++, даже что-то решал на TopCoder.

2. Вступив я в медичний, хотів лікувати людей, дарувати їм здоров’я і щастя. Але пізніше рожеві окуляри впали… Разом із моїм найкращим другом, який пішов вчитися в КПІ, ми періодично збиралися похакатонити. Мабуть, вирішальним став перший Facebook Hacker Cup – змагання з алгоритмічного програмування. Пройшов до півфіналу (десь 270-280 місце), після чого прилетіло запрошення на on-site interview у Facebook. Тоді я вирішив, що залишуся в медицині, і тому не відповів на нього. Наївний вибір, але я був тільки на третьому курсі.

 Самообучение программированию-3
Самообучение программированию
 Самообучение программированию-4
Самообучение программированию

3 Через кілька місяців мені написали на пошту і запросили на першу роботу в команду розробки хмарної ERP-системи як Adobe Flex developer. Через рік перейшов у Miratech, у відділ автоматизації, Business Development, як C# Developer, у квітні цього року прийшов у Mobiliuz. У вільний час беру участь у різних заходах/хакатонах на кшталт Startup Weekend, hack4good, Facebook Hacker Cup, CodeJam. Дозволяє підтримувати мізки в тонусі.

Порада з навчання: Я навчався за книжками: «Мова програмування Сі» (також відома як K&R) Браяна Кернігана та Денніса Рітчі, «Алгоритми на Java» Роберта Седжвіка, «Чистий Код» Роберта Мартіна, роботами Ендрю Таненбаума. Можу порадити книги Thinking in Java (Bruce Eckel) і Effective Java (Joshua Bloch). Корисні онлайн-ресурси: Hacker News«Хабрахабр»Stack OverflowReddit. Онлайн-курси: Algorithms від Прінстонського університету на Coursera та Developing Android Apps на Udacity. Тим, хто хоче на роботу в Google або Facebook, можна повивчати geeksforgeeks.org і careercup.com. Задачки для програмістів можна вирішувати на Projecteuler.net і CheckIO.

Михайло Бортник
Пішов після першої сесії першого курсу НАУ, самостійно вивчив Ruby, зараз працює в британському музичному стартапі R&R Music. Відомий учасник київської Ruby-спільноти, співзасновник курсів Kottans.org (у минулому один із форків RubyGarage, зараз – це багатомовні курси – JS/Ruby)

  1. У мене не було іншого виходу:) Дитина в сім’ї інженерів, комп’ютер у домі з 6 років – спершу стародавня глюкаюча «Електроніка-МС1502», де з найзахопливіших розваг була плата ПЗП з «бейсіком». Читав книжки з програмування. Потім – фізико-математичний ліцей, олімпіади з програмування. До 16 років я прийшов уже з багажем із Basic, Pascal і C.
  2. Чому пішов із вишу? Я ледар і роздовбай:), до того ж, відірвавшись у 16 років від батьків, не особливо думаєш про навчання. Я твердо вірив у те, що головні навички, які дає виш, – це вміння шукати і систематизувати інформацію, а це я на той час уже добре вмів.
  3. Роботу без освіти шукати було нескладно. Якщо говорити саме про Ruby-програмування, я листувався на juick.com (у минулому – популярна блог-платформа для ґіків) із хлопцем-рубістом, і він одного разу написав, що шукає собі людей у команду. Він і став моїм першим тімлідом, за що йому величезне спасибі.

Порада з навчання: Спочатку я вчився, експериментуючи, потім читав книжки, документацію (з англійською у мене досить непогано). Почати вчити Ruby допоміг Software ENGINEering for SaaS на Coursera. Непогане джерело – Stack Overflow. Як мені здається, для сучасного програміста навичка «спортивного гугління» набагато частіше приносить більше користі, ніж класична освіта. Адже на ринку досить великий відсоток завдань не несе в собі нічого нового, і їх хтось уже колись вирішував.

З ресурсів з Ruby можу порекомендувати такі: Rubykoans, онлайн-курси  Rails for zombies, гайд why’s (poignant) GUIDe to Ruby, книжки Design patterns in Ruby, Rails Antipatterns, The Well-grounded Rubyist Девіда Блека, The RSpec book, з найцікавіших – Ruby under the Microscrope, The Clean Ruby.

Олена Моргун
Самостійно вивчила верстку, потім – PHP, JavaScript і Ruby. Зараз – Senior Ruby on Rails Developer у GlobalLogic, викладає на курсах для програмістів, одна з найвідоміших коментаторів на DOU.ua.

  1. Програмуванням почала цікавитися, коли рік-другий уже попрацювала у верстці. Стало цікаво: як працює те, для чого я верстаю. Почала копатися в коді, розбиратися в процесах.
  2. Коли я вступала до вишу, програмуванням ще не захоплювалася. Навчалася на радіотехнічному в Київському політеху, в якийсь момент взяла академвідпустку, і у відпустці почала вчити верстку.
  3. На жодній співбесіді не виникало жодних проблем із тим, що в мене немає диплома програміста. Максимум згадували побіжно, мовляв, «У вас немає профільної освіти? Ну, нічого страшного». Я змінила вже чотири місця роботи, зараз працюю в GlobalLogic і ще жодного разу не стикалася з тим, щоб ставлення якось змінювалося через те, що немає профільного диплома.

Порада з навчання: Я починала вчити програмування з PHP, він давався дуже важко. Найскладніше самоучку змусити себе сісти і займатися. Не кидати, навіть якщо нічого не виходить, а годинами вгризатися в матеріал, пробиватися, поки не почне виходити. Головна мотивація: щиро цікавитися тим, чого вчишся. Коли я починала вивчати програмування, це був 2008 рік, і я тоді й гадки не мала, що в програмістів високі зарплати. Мені це просто дуже подобалося.

Для самоосвіти можу порадити Tryruby.org (тут можна спробувати програмувати на Ruby у браузері), хороший онлайн-ресурс для початківців – Codeschool.com. Із книжок раджу The Ruby on Rails Tutorial, «Мова програмування Ruby», The Well-Grounded Rubyist – найпридатніша книжка для просунутих.

Давид Майборода
Software Engineer у «Яндексі», автор Android-додатку для «КиноПоиска»

/** Implement to all that you love. */

public interface Loveworthy {
/**
Любов – це завжди один шлях.
Повертати нічого не треба;
@param loveable object
*/
void toLove(Object object object);
}

До чого цей код, запитаєте ви? Програмування – мистецтво. А що муза для музиканта, художника чи поета? Любов, звісно. Ось і в програмістів є своя муза, у кожного особиста. Тут варто міркувати ширше, ніж просто любов до конкретної людини, бо творить і любов до сім’ї, до Батьківщини…

  1. особисто мені пощастило з дитинства, у мене є старший брат, який і підштовхнув мене до програмування. Важливу роль на початковому етапі відіграє не тільки особиста зацікавленість, а й повага до людини, яка тобі щось радить. Це до слова про те, як любов до рідних сприяє саморозвитку. А вони, як ми знаємо, поганого не побажають.
  2. З моменту вступу до вишу студенти неправильно розуміють його сенс. Виш зобов’язаний підштовхувати до самоосвіти, а не вчити. Вчать у школі. Пам’ятаєте, коли у виші давали завдання, більшість студентів обурювалися «нам цього не розповідали». Та й не повинні були, будьте ласкаві, самі вже якось, а потім на іспиті перевірять, чи здатний студент вивчати науку самостійно… Коли людина усвідомлює, що вона може сама, у цей час виш і пропадає з життя. У мене це було на другому курсі. Хоча все ж таки диплом я отримав, але вже заочно і тільки бакалавра…
  3. Першу роботу знайти завжди важко, а далі все залежить від досвіду. Користуючись нагодою, хочу сказати спасибі хлопцям, які дали мені можливість розвиватися в середовищі Android, а саме компанії Stanfy, з того моменту все координально помінялося 🙂 У будь-якій роботі важлива саме команда, ніщо так не розвиває, як спілкування з розумними програмістами.

Порада з навчання: Дуже раджу курси Роберта Седжвіка на Coursera, а також його книгу «Алгоритми на Java». Але ніщо так не розвиває, як чужий код, і в цьому вам допоможе github.com.

code6Юлія Будник

Майже вступила на програміста, але в останній момент передумала. У виші вивчала економіку, але інтерес до програмування і верстки нікуди не подівся. Зараз – front-end HTML/CSS-фахівець, працює з компанією Aejis. У портфоліо – промо-сайти для Heineken, Rolling Stone, Unilever та інших відомих брендів

  1. Мій батько – дуже хороший програміст, підозрюю, що це мене й надихнуло цікавитися IT. Ну а середовище розробки завжди інтригувало. Ці два моменти і звернули мою увагу на цю сферу діяльності. Але працювати в цій сфері я почала набагато пізніше і з інших причин.
  2. Я готувалася вступати на факультет автоматики та обчислювальної техніки в НАУ. Але в останній момент, на порозі останнього іспиту пішла складати іспит з іншого предмета. І за балами вступила на економічний (він за рейтингом був вищим, ніж АВТ). Взагалі, це довга історія.
  3. Перший довгостроковий проєкт я знайшла швидко. Мої перші роботи в портфоліо «для друзів» і «для себе» сподобалися замовнику. Далі просто стала набивати руку на реальних проєктах. Складність була тільки в тому, що доводилося дуже багато працювати і було мало досвіду. Але задоволення це приносило не менше.

Самонавчання програмуванню, порада: Для самоосвіти шукала інформацію в онлайні, читала книги Девіда Макфарланда. Можу порадити такі онлайн-ресурси, як codeschool.comcodecademycodyhouse.co Із книжок рекомендую CSS3: The Missing Manual, 3rd Edition Макфарланда та посібник JavaScript & jQuery: The Missing Manual, 3rd Edition.