Я програміст-самоучка. Ось якими ресурсами я користувався
Привіт, мене звати Влад Хамбір, я керую командою мобільної розробки iOS-застосунку AlphaNovel — компанії від венчур-білдера SKELAR. Ми створюємо маркетплейс новел і коміксів для читачів і письменників з усього світу.
Жодного знайомого в IT, декілька невеликих програм на pascal і стрімке бажання працювати в Apple, щоб змінювати світ за допомогою технологій. Це я 8 років тому — навіть не знаю про існування DOU. Якщо ти читаєш цю статтю — вітаю, ти вже на крок попереду, ніж був я тоді 🙂
Сьогодні мій досвід — це понад 15 успішних релізів у App Store, пет-проєкт, що потрапляв у топ-10 застосунків у розділі Education. Я працював розробником у державній установі, в стартапі без інвестицій, в аутсорсі з десятками проєктів і в одній з найбільших продуктових компаній України. Ти помітив, що я досі не працюю в Apple, проте ху ноуз, що чекає нас попереду.
У цій статті я розповім, як це — бути програмістом-самоучкою, які пригоди чекають попереду, а ще поділюсь ресурсами та інструментами, що полегшать тобі життя.
Перший крок — найважчий з усіх на твоєму шляху. Проте без нього неможливо зануритись у жодну справу. З чого ж почати, якщо твій шлях — це ІТ?
Нижче — алгоритм дій, який я використовував під час самостійного навчання та подорожі у світ розробки ПЗ.
Обери напрям
The whole secret of a successful life is to find out what is one’s destiny to do, and then do it. — Henry Ford, automobile manufacturer and business magnate
Ким ти хочеш бути? Яким саме розробником? А чому? Щоб обрати напрям для розвитку, необхідно зазирнути в майбутнє. Це важливо, адже вже за декілька років плідної праці ти станеш senior-спеціалістом. Щоб не бути експертом застарілих знань, важливо, щоб твій стек технологій не відставав від ринку.
Коли я починав вивчати iOS-розробку у 2015 році, у мене було лише дві опції — вчити Objective-C чи Swift. Вчити Swift було досить сміливим рішенням — мова з’явилась лише за рік до цього, досі була сирою та не використовувалась у production. І вгадай, що я почав вивчати.
Я обрав Swift — лише вивчаючи нове я міг конкурувати з іншими розробниками. На той момент навіть senior-інженери ставились до Swift як до іграшки та, здебільшого, мали рацію. Проте моя стратегія стати Senior iOS (Swift) Developer за 5 років спрацювала — я на коні, а Swift стала головною мовою у світі iOS-розробки.
Як обрати напрям сьогодні? Що буде потрібно завтра? Щоб знайти свою відповідь, варто регулярно моніторити новини ІТ-індустрії та звертати увагу на тренди. Твої найкращі помічники — профільні ресурси, такі як DOU, Technology Radar і власний аналіз.
Говорячи про мобільну розробку, я б радив подивитись у бік кросплатформ. Хоч зараз я і прихильник нативних застосунків, важливо дивитись на роки вперед, а не лише чіплятись за сьогоднішні реалії.
Кросплатформою наразі дуже зацікавлений бізнес. Це дозволяє розробити продукт одночасно для всіх платформ, використовуючи загальну кодову базу. У кросплатформи є недолік — стабільність, плавність роботи та нестача досвідчених спеціалістів, але з часом всі перелічені проблеми будуть вирішені.
Навіть з наявними інструментами є можливість створити бездоганні продукти, такі як Instagram, Skype, Netflix, eBay та Airbnb — всі вони використовують можливості розробки під кросплатформу.
Довкола багато інформації. Твоя задача — знайти можливості на майбутнє і почати діяти вже сьогодні.
Визначся з технологіями та порядком їх вивчення
Уявімо: ти визначився з напрямом, за 5 років твій стек — необхідність для бізнесу, а ти — super star серед спеціалістів.
Тепер потрібно сформувати перелік технологій, які необхідно вивчити. Пошукові системи зробили роботу за тебе — гугли roadmap за своїм напрямом. Ось, наприклад roadmap для iOS-розробника — за схожою аналогією я колись вивчав усі базові технології, щоб знайти першу роботу.
Не лякайся і починай з основних інструментів, а згодом засвоїш всі технології. Але як визначити, які саме інструменти основні?
Згадай, для чого ти вивчаєш технології. Якщо твоя відповідь: «щоб знайти першу роботу», все просто — запитай у тих, хто братиме тебе на роботу. Зроби пошук вакансій за своїм напрямом, випиши всі технічні вимоги в таблицю та обери ті, що постійно повторюються. Вітаю — тепер ми маємо перелік технологій, що потрібно вчити в першу чергу.
Не забувай про основи
Який би напрям ти не обрав, у розробці є речі, без яких буде важко стати професійним програмістом. До них я б відніс:
- вміння писати чистий код;
- вміння працювати з поганим кодом і покращувати його;
- знати типові задачі з програмування.
Нижче — ресурси, що допомогли мені поставити галочку «виконано» біля пунктів вище:
- Стівен Макконнелл — «Бездоганний код».
- Мартін Фаулер — «Рефакторинг».
- Refactoring and Design Patterns.
Знайди оптимальний метод вивчення інформації
Можна використовувати будь-який підхід для навчання, але мій особистий фаворит — книжки. Проте на власному досвіді менторства можу сказати, що книжки підходять не всім. Шукай будь-який метод отримання інформації, аби тобі було зрозуміло та корисно.
Тобі точно радитимуть читати англомовну літературу, і я не виключення — це необхідно, щоб знати новини та отримувати знання раніше за інших на ринку. Проте на старті твого шляху до розробки варто піклуватися лише про одне — тобі має бути на 100% зрозуміло те, що ти вивчаєш. Якщо книжка, відео або статті йдуть важко — шукай інші ресурси та ти обов’язково знайдеш своє.
У моєму випадку весь roadmap покривали книги автора Ray Wenderlich з iOS-розробки. Я прочитав 2 книги, а під час читання написав 4 застосунки — це було частиною домашньої роботи по книзі. Ці знання — 80% успіху на старті пошуку роботи, який врешті-решт закінчився першим офером.
До речі, на сайті Ray Wenderlich ти можеш також знайти Learning Path за різними напрямами.
Декілька слів про онлайн-курси
Від початку я розумів, що онлайн-курси, які обіцяють зробити з тебе розробника під ключ — не працюють. Курси варто розглядати як додатковий інструмент отримання інформації, але аж ніяк не основний.
Досить часто курси для початківців ведуть початківці, які не завжди розуміють, про що розповідають. Тому твоя задача — ставитися до інформації на курсах як до інформації в інтернеті — фільтруй її, перевіряй і використовуй як додаткову, а не основну.
Знайди першу роботу
Ціль номер один — знайти першу роботу (дякую, кеп). Робота дасть потужний поштовх у розвитку.
Часто молоді спеціалісти бояться починати працювати, адже вважають, що знають недостатньо. Це помилка — навіть досвідчені інженери не знають усього, тож нескінченне навчання не зробить із тебе розробника, доки не буде практики. А тому почати працювати над реальними задачами з реальними замовниками та відповідальністю якнайшвидше — це твій ключ до успіху.
Як зрозуміти, що ти вже готовий для першої роботи? Якщо ти дочитав до цього абзацу, ти вже маєш знати вимоги від роботодавців за твоїм профілем. Якщо ти відповідаєш вимогам хоча б на 70% — час діяти та рватися на співбесіди.
Співбесіди як інструмент для навчання
Співбесіда — безкоштовний тест, який допоможе визначити, куди рухатись далі. Якщо ти самоучка — співбесіда дасть тобі реальний фідбек від потенційного роботодавця, допоможе зрозуміти сильні сторони та знайти точки росту.
Не потрібно переживати за відмови — стався до інтерв’ю як до професійної консультації. А тому фідбек від рекрутерів і технічної команди, що проводить співбесіду, вкрай важливий — не забувай запитувати про нього максимально детально.
До того ж вдало проходити співбесіди — це теж навичка. Декілька спроб, і ти підтягнеш не лише технічні знання, а й навчишся вести перемовини, пітчити себе з більшою впевненістю і точно отримаєш перший офер.
Виходь із зони комфорту
Уявімо, що цей день настав — тобі вислали твій перший офер. Тепер ти працюєш в компанії одразу за трьох, а можливо тобі пощастило та перша робота — місце твоєї мрії.
Щоб це не було, не лякайся — за пів року тобі треба звідти піти.
Якщо хочеш розвиватися — завжди потрібно залишати зону комфорту. Це особливо важливо на старті професійного шляху — ти маєш пізнати світ, працювати з різними людьми в різних умовах. Цей досвід потрібно активно отримувати на початку, щоб стрімко рости.
Як зрозуміти, що ти на своєму місці? Мені подобається керуватися правилом кімнати — якщо ти знаходишся з в кімнаті з людьми та почуваєшся найрозумнішим — час змінити кімнату. Навколо тебе завжди має бути хтось, хто тебе надихає та захоплює — вчися в них та тримайся поряд.
Замість висновку
Головне зробити перший крок, далі все понесеться з великою швидкістю. Обирай напрям, який буде популярним у майбутньому, використовуй вакансії для формування технічного профілю, шукай вже наявні roadmaps за твоїм напрямом, знаходь першу роботу та команду, в якої є чому навчатися.
І пам’ятай, співбесіди — найкращий інструмент для вдосконалення себе та шлях до роботи мрії.
І що ж далі? Я тобі навіть заздрю, тому що далі тебе чекають виклики та насолода від їх подолання. Продовжуй навчатися, потрапляти в команди сильних спеціалістів і розширювати свої можливості. Всі межі лише у твоїй голові.
Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. The only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle. As with all matters of the heart, you’ll know when you find it. — Steve Jobs
10 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів