Професія розробника в Україні зараз — одна з найпрестижніших, а технічні вузи виходять в топи рейтингів популярності серед абітурієнтів. Але не секрет, що навіть у великих компаніях працює безліч фахівців, які навчилися самостійно програмувати. AIN.UA зібрав кілька історій про те, як майбутні розробники самотужки опановували професію (отримували при цьому непрофільне освіту або ж кидали вуз, не довчившись). В основному ми спілкувалися з програмістами, але також не обійшли увагою веб-верстку.
Ми запитували учасників про те:
чому вони обрали для себе програмування?
чому не стали вчитися в профільному вузі?
складно було знайти роботу без диплома?
Ми також попросили кожного з учасників назвати ті онлайн — і оффлайн-ресурси, які він вважає корисними для самонавчання.
Володимир Агафонкін
на 4 курсі «вилетів» з стаціонару КПІ (прикладна математика) і перевівся на заочний через те, що влаштувався на роботу на повний робочий день. Самостійно вивчив JavaScript і створив популярну opensource-бібліотеку Leaflet. Працює програмістом в MapBox, грає на гітарі, соліст гурту «Обійми Дощу». Веб-розробку став вивчати, щоб зробити сайт для своєї групи
1. Ще в садочку всі мріяли бути астронавтами або гонщиками, а я заявив, що буду кібернетиком, створювати роботів :) А з того часу, як у мене з‘явився свій комп’ютер, від нього було взагалі не відірвати.
2. Вчитися самостійно доводиться більшості українських програмістів: технології розвиваються з кожним днем, а поки в академічних колах затвердять програму за новою технологією, вона застаріває років на 10-20. Цінними у вузах є тільки ті предмети, які розвивають логічне мислення (матаналіз, дискретна математика, диффури).
3. У пошуках роботи найголовнішим було почати. У мене не було досвіду роботи, тому за перше замовлення, яке я знайшов, платили копійки. Але після цього у мене були хороші приклади робіт, і друге моє замовлення в іншого клієнта оплачувалося вже в 10 разів вище, ніж перше. Якщо ти дійсно добре робиш те, чим займаєшся, відпадає необхідність шукати роботу — навпаки, компанії починають шукати тебе. Мені не раз приходили листи від Google, Apple, Facebook, Nokia і інших.
Порада по навчанню: В інтернеті мільйони навчальних матеріалів на будь-які теми, з чим завгодно можна розібратися самостійно — Google в допомогу. Найкращий спосіб чогось навчитися — придумати для себе захоплююче завдання і вчитися в мірі його виконання, крок за кроком.
Андрій Волошин
Вчився на медика, але при цьому самостійно вивчив кілька мов програмування. Зараз — Chief Technology Officer в Mobiliuz
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. Через кілька місяців мені написали на пошту і запросили на першу роботу в команду розробки хмарної 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 Overflow, Reddit. Онлайн-курси: 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 Saa на 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 {
/**
Love is always one way.
It's nothing to return;
@param loveable object
*/
void toLove(Object object);
}
До чого цей код, запитаєте ви? Програмування — це мистецтво. А що муза для музиканта, художника чи поета? Любов, звичайно. Ось і у програмістів є своя муза, у кожного особиста. Тут варто міркувати ширше, ніж просто любов до конкретної людини, так як творить і любов до родини, до Батьківщини…
1. Особисто мені пощастило з дитинства, у мене є старший брат, який і підштовхнув мене до програмування. Важливу роль на початковому етапі відіграє не тільки особиста зацікавленість, а й повагу до людини, яка тобі щось радить. Це до слова про те, як любов до рідних сприяє саморозвитку. А вони, як ми знаємо, поганого не побажають.
2. З моменту вступу до вузу студенти неправильно розуміють його зміст. Вуз зобов‘язаний підштовхувати до самоосвіти, а не вчити. Вчать у школі. Пам’ятаєте, коли у вузі давали завдання, більшість студентів з обурювалися «нам цього не розповідали». Та й не повинні були, будьте ласкаві, самі вже якось, а після на іспиті перевірять, чи здатний студент вивчати науку самостійно… Коли людина усвідомлює, що він може сам, в цей час вуз і зникає з життя. У мене це було на другому курсі. Хоча все ж диплом я отримав, але вже на заочці і тільки бакалавра…
3. Першу роботу знайти важко, а далі все залежить від досвіду. Користуючись нагодою, хочу сказати спасибі хлопцям, які дали мені можливість розвиватися в середовищі Android, а саме компанії Stanfy, з того моменту все кардинально змінилося :) В будь-якій роботі важлива саме команда, ніщо так не розвиває, як спілкування з розумними програмістами.
Порада по навчанню: Дуже раджу курси Роберта Седжвік на Coursera, а також його книгу «Алгоритми на Java». Але ніщо так не розвиває, як чужий код, і в цьому вам допоможе github.com.
Будник Юлія
Майже вступила на програміста, але в останній момент передумала. У вузі вивчала економіку, але інтерес до програмування і верстки нікуди не подівся. Зараз — front-end-HTML/CSS-фахівець, що працює з компанією Aejis. У портфоліо — промо-сайти для Heineken, Rolling Stone, Unilever та інших відомих брендів
1. Мій батько — дуже хороший програміст, підозрюю, що це мене надихнуло цікавитися. Ну а середовище розробки завжди інтригувало. Ці два моменти і звернули мою увагу на цю область діяльності. Але працювати в цій сфері я почала набагато пізніше і з інших причин.
2. Я готувалася вступати на факультет автоматики і обчислювальної техніки в НАУ. Але в останній момент, на порозі останнього іспиту пішла здавати іспит з іншого предмети. І по балам вступила на економічний (він по рейтингу був вище, ніж АВТ). Взагалі, це довга історія.
3. Перший довгостроковий проект я знайшла швидко. Мої перші роботи в портфоліо «для друзів» і «для себе» сподобалися замовнику. Далі просто стала набивати руку на реальних проектах. Складність була тільки в тому, що доводилося дуже багато працювати і мало досвіду. Але задоволення це приносило не менше.
Порада по навчанню: Для самоосвіти шукала інформацію в онлайні, читала книги Девіда Макфарланда. Можу порадити такі онлайн-ресурси, як codeschool.com, codecademy, codyhouse.co. З книг рекомендую CSS3: The Missing Manual, 3rd Edition Макфарланда та допомога JavaScript & jQuery: The Missing Manual, 3rd Edition.