Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Я програміст-самоучка. Ось якими ресурсами я користувався

Усі статті, обговорення, новини про Mobile — в одному місці. Підписуйтеся на телеграм-канал!

Привіт, мене звати Влад Хамбір, я керую командою мобільної розробки iOS-застосунку AlphaNovel — компанії від венчур-білдера SKELAR. Ми створюємо маркетплейс новел і коміксів для читачів і письменників з усього світу.

Жодного знайомого в IT, декілька невеликих програм на pascal і стрімке бажання працювати в Apple, щоб змінювати світ за допомогою технологій. Це я 8 років тому — навіть не знаю про існування DOU. Якщо ти читаєш цю статтю — вітаю, ти вже на крок попереду, ніж був я тоді 🙂

Сьогодні мій досвід — це понад 15 успішних релізів у App Store, пет-проєкт, що потрапляв у топ-10 застосунків у розділі Education. Я працював розробником у державній установі, в стартапі без інвестицій, в аутсорсі з десятками проєктів і в одній з найбільших продуктових компаній України. Ти помітив, що я досі не працюю в Apple, проте ху ноуз, що чекає нас попереду.

У цій статті я розповім, як це — бути програмістом-самоучкою, які пригоди чекають попереду, а ще поділюсь ресурсами та інструментами, що полегшать тобі життя.

Перший крок — найважчий з усіх на твоєму шляху. Проте без нього неможливо зануритись у жодну справу. З чого ж почати, якщо твій шлях — це ІТ?

Нижче — алгоритм дій, який я використовував під час самостійного навчання та подорожі у світ розробки ПЗ.

Обери напрям

Ким ти хочеш бути? Яким саме розробником? А чому? Щоб обрати напрям для розвитку, необхідно зазирнути в майбутнє. Це важливо, адже вже за декілька років плідної праці ти станеш 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 за твоїм напрямом, знаходь першу роботу та команду, в якої є чому навчатися.

І пам’ятай, співбесіди — найкращий інструмент для вдосконалення себе та шлях до роботи мрії.

І що ж далі? Я тобі навіть заздрю, тому що далі тебе чекають виклики та насолода від їх подолання. Продовжуй навчатися, потрапляти в команди сильних спеціалістів і розширювати свої можливості. Всі межі лише у твоїй голові.

👍ПодобаєтьсяСподобалось20
До обраногоВ обраному12
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Tl:dr

весь roadmap покривали книги автора Ray Wenderlich з iOS-розробк

Дякую авторові.

Пишіть статті без відриву від реалій, бо це виглядає як «а в срср була ковбаса по 5». На позиції для початківців вимоги зараз в рази більші, конкуренція жахлива, співбесіди якщо раз в декілька місяців то це дуууже добре, про які прокачки скілів мова на співбесідах? Щоб попасти на співбесіду, мабуть, треба в cv достатньо збрехати про свої скіли, щоб на тебе звернули увагу, але потім червоніти коли на співбесіді рознесуть в прах, інакше на твоє правдиве cv ніхто уваги не зверне, і максимум відпишуть що ми вражені твоїм бекграундом але є кандидати кращі.

На позиції для початківців вимоги зараз в рази більші, конкуренція жахлива, співбесіди якщо раз в декілька місяців то це дуууже добре, про які прокачки скілів мова на співбесідах?

не выдумывай, сча изейший вход для новичков, когда я начинал требования были значительно выше, на джуна спрашивали значительно глубже чем на синьора сейчас, то что технологий стало якобы больше, это не так, пропали те, которые были нужны раньше и они не были интуитивно понятными. а вакансия на джуна появлялась очень редко, никаких внутренних курсов, с которых можно было попасть в компанию так же не было и так далее. А еще раньше было что годами ходишь джун-мидл, мне прямо на собеседованиях говорили: «ну ты отвечаешь на уровне синьора, но у тебя всего 4 года опыта... ты не можешь быть синьором, нормальный синьор это 10 лет опыта, ладно было бы там 5+ лет, можно что-то думать что там предсиньор, но сча только мидл»

Аххах))) Витри свій комент і не показуй нікому))))

ну вот :( меня эксперт затроллил :(

Ви частково маєте рацію. Наразі знайти роботу досить важко, тим паче новачку. Постає питання — які перші кроки робити? Описаний мною алгоритм дій може допомогти. Має стати зрозуміло з чого почати, в який бік дивитися та які ресурси можна використовувати.

Зауважу, що я вказав поріг відповідності до вакансії в 70%, а не 100%. Це не означає, що потрібно брехати в резюме, це скоріше необхідний мінімум щоб тригернути себе на дію, а не сидіти й вичікувати ідеальну першу вакансію.

Щодо співбесід та неможливість на них потрапити — це може залежить від напрямку. Я займався менторінгом та можу з власного досвіду зазначити, що кандидатів джунів на співбесіду кличуть та охоче дають завдання. Так, відмовляють досить часто, але необхідний профіт кандидат може отримати, пройшовши співбесіду та виконавши технічне завдання, що врешті-решт приводить до першого оферу.

Якщо у вас є пропозиції — всі тільки за, озвучте їх в коментарях. Досвідчені розробники завжди в змозі влучно дати пораду.

Пишіть статті без відриву від реалій, бо це виглядає як «а в срср була ковбаса по 5». На позиції для початківців вимоги зараз в рази більші, конкуренція жахлива, співбесіди якщо раз в декілька місяців то це дуууже добре, про які прокачки скілів мова на співбесідах? Щоб попасти на співбесіду, мабуть, треба в cv достатньо збрехати про свої скіли, щоб на тебе звернули увагу, але потім червоніти коли на співбесіді рознесуть в прах, інакше на твоє правдиве cv ніхто уваги не зверне, і максимум відпишуть що ми вражені твоїм бекграундом але є кандидати кращі.

Самоучка, який закінчив Київський авіаційний університет за напрямком Computer Science.))? Не здивуюсь, якщо ще закінчив математичну школу і приймав участь ще зі школи в олімпіадах з програмування))

Це точно про мене, лише крім київського ВУЗа був дніпропетровський %)

Не вгадали) Навчався у звичайній школі з філологічним спрямуванням, участь в олімпіадах ніколи не брав. працюю з другого курсу університету, мене тоді крім історії України ще нічого не навчили) Усі знання описані вище отримав виключно самостійно, їх було вдосталь для того щоб шукати та знаходити роботу.

Підписатись на коментарі