Перші кроки у програмуванні: поради початківцям

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

Чому я про це пишу? Бо успішно пройшов десятки співбесід, працював в Україні, США, Нідерландах та допоміг багатьом студентам влаштуватися на роботу програмістами. Якщо вам буде цікаво, можу поділитися досвідом роботи та життя за кордоном в наступних статтях.

Image Source

Перевірка знань

Почнемо з бази, щоб переконатися, чи немає у вас прогалин в елементарних речах. Спробуйте розв'язків зв'язати 150 простих задач на leetcode.com/algorithms чі на аналогічному сайті. Цього буде достатня.

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

Наступний етап — об'єктно-орієнтований дизайн. Вміння застосовувати підходи ООП є обов'язковим, без цього не обійтися. Програмісту потрібно знаті, причому з власної практики, як розбити програму на модулі, як уникнути хаосу, як рефакторити спагетті-код, як написати зручний API. Чи маєте ви відчуття «правильної» кодом? Чи вмієте вести розробка по методології TDD? Якщо так, йдемо далі. Якщо ні, то варто пройтися по шаблонах проектування та прочитати класику GoF. Дуже рекомендую «Clean Code» Роберта Мартіна.

Всі ваші знання повинні базуватися на практиці, закарбуватися у мізках через пальці, а не через вухан. Теорія швидко забувається, а практичні навички лишаються. Музиканти знають, про що мова. Для початку бажано вчитися на практиці, а пізніше, коли вже будете мати технічну базу, можна переходіті до філософських роздумів та лекцій на абстрактні теми. Багато ефективних методик навчання через практику було створен шляхом спостереження за дітьми. Вони вчаться дуже швидко та ефективніше за дорослих (про вищезгадані методики розповім в окремій статті).

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

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

Далі — проекти

Необхідно, щоб на інтерв'ю вам було чим похвалитися перед роботодавцем. Бажано продемонструвати декілька виконаних вами проектів із використанням актуальних/популярних фреймворків. І це повинно виглядати круто, щоб ви змогли вразити інтерв'ю юера. Авжеж, написання проекту позику певний годину — розраховуйте на три місяці. Для цього краще знайті команду таких, як ви, або хоча б одного напарника. Ви будете один одного мотивувати, це важливо.

Вимоги до проекту: він має бути зрозумілий не тільки айтішникам, бути доступним через Інтернет у будь-який час. Проект повинен містити відповіді на всі питання інтерв'ю юера. На співбесіді ви зможете посилатися на ваш проектний досвід. У такому випадку відповіді підтвердять, що ви справді розумієте предмет розмови. Попросіть вашого ментора написати вимоги до проекту. Вигадувати їх самому — не найкраща ідея. У вас забракне досвіду, та результат вийде відповідний.

Ментор

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

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

Співбесіда

На цьому етапі треба бути готовим відповідати на рекрутерські/менеджерські питання. Лідером тут є Amazon. Вони самі розробляють багато методик/тестів для перевірки персональних якостей. Просто вбийте в пошук Behavioural Questions та Attitude Questions. Якщо ви почуєте такі питання вперше і спробуєте імпровізувати, шанси на успіх будуть досить низькі. Ментор на цьому етапі вам би теж не завадив. Причому тій, що успішно пройшов десятки подібних співбесід.

До всього вищесказаного потрібно обов'язково додати гарне знання англійської. Також бажано підготуватися до стандартних питань, які задають на початку HR-інтерв'ю, щоб продумати відповіді англійською мовою. Заминки на перших же хвилинах зіпсують враження. До речі, не рекомендую йти на курси англійської. Це марна трата часу. Ті ж гроші та час витрачайте краще на перегляд серіалів від Netflix. Більш ефективним, звісно, буде життя та робота в англомовному середовищі, альо це реалізувати складніше. Вітчизняний підхід до вивчення мов далекий від ідеального. Це стає зрозумілим, якщо переїжджаєш до іншої країни. Насправді, пройдені курси та зустрічі із замовником щодня не гарантують гарного рівня англійської.

Між іншим, кількість спроб у кандидатів на посаду джуніора сильно обмежена, адже роботодавці на вас іще не «полюють». Тому не варто марнувати жодної зі спроб.

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

Опубліковано: 06/07/17 @ 09:59
Розділ Різне

Рекомендуємо:

Кар'єра в IT: посади HR-менеджер & рекрутер
7 моментов, которые можно улучшить в Яндексе и Google
Інфо-сайти: підсумки червень 2017. Траф розганяється, рекорд з публікацій, перші 3К руб з контексту
SQL Server Дайджест #14: SQL Server 2017 Performance Improvements, BI and DWH, материалы с SQLSaturday Kyiv
7 моментів, які можна поліпшити в Яндексі і Google