Інструкція для тих, хто хоче стати програмістом з нуля


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



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

З чого почати

Є кілька варіантів розвитку подій, в результаті яких людина стає програмістом. Перший - батьки-програмісти, які всього навчили своїх дітей. Таким дітям навіть не потрібно йти в університет. Другий варіант - модна професія програміста. Після школи потрібно було вибрати, куди піти вчитися, і вибрали модний напрямок IT, начебто сподобалося. І останній варіант - хобі, яке переросло в роботу.

Якщо з вами нічого з перерахованого вище не відбулося, значить, у вас є вибір з чотирьох варіантів:

  • Самоосвіта. Цей варіант можна використовувати як самостійно, так і в парі з іншими методами. В інтернеті повно сайтів, книг і додатків, які допомагають вивчати різні мови програмування і технології. Але це найважчий шлях для початківців.
  • Університет. Якщо ви закінчуєте школу і хочете бути програмістом, тоді йдіть до університету. Якщо не за знаннями, тоді за скоринкою. Вона може послужити бонусом при влаштуванні на роботу. Хоча і якісь знання ви теж отримаєте. Але не забувайте займатися і самонавчанням. До вибору вузу варто підійти дуже відповідально. Уважно вивчіть програми навчання і вибирайте найкращі технічні вузи.
  • Ментор. Буде дуже непогано, якщо ви знайдете людину, яка погодиться допомогти вам і направить вас в правильну сторону. Він підкаже підходящі книги і ресурси, перевірить ваш код, дасть корисні поради. Наставника можна шукати серед знайомих програмістів, на IT-тусовках і конференціях, на онлайн-форумах і так далі.
  • Спеціалізовані практичні курси. Спробуйте пошукати в своєму місті курси, де вас навчать мові програмування або технології. Я був приємно здивований кількістю таких курсів у Києві, в тому числі безкоштовних і з подальшим працевлаштуванням.

Яку мову, технологію і напрямок вибрати

Коли ви станете програмістом, через рік-другий будете вільні вибирати будь-яку мову, яка вам сподобається. Але при виборі першої мови програмування новачок повинен враховувати наступні критерії:

  • Наявність на ринку вакансій. Кінцева мета цього шляху - знайти роботу програмістом. А це буде важко зробити, якщо на ринку вакансій ніхто не шукатиме розробників на вашій мові програмування. Перевірте сайти з вакансіями, подивіться, кого більше шукають, випишіть десяток мов. І переходьте до наступного критерію.
  • Низький рівень входження. Якщо вам доведеться витратити тривалий час на вивчення мови, це може відбити у вас охоту до програмування взагалі. Почитайте про ту мову програмування, яку ви вибрали вище. Перегляньте літературу, яку потрібно буде прочитати, щоб вивчити цю мову. І виберіть ту, про яку пишуть, що вона легка, або яка вам здалася легкою. Такими мовами можуть виявитися PHP, Ruby, Python.
  • Кайф від процесу. Якщо вам не подобається писати код на обраній мові, ви не будете отримувати задоволення від цього процесу, від роботи і від життя. А воно вам треба? Робіть правильний вибір.

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

У будь-якому випадку вивчіть веб-технології. Це мова розмітки HTML, стилі CSS і JavaScript, яка дозволить зробити вашу сторінку динамічною. На наступному етапі вивчіть серверну мову (Python, PHP, Ruby та інші) і відповідні для неї веб-фреймворки. Вивчіть бази даних: практично в кожній вакансії програміста це згадується.

Як отримати початковий досвід

Без досвіду ви не отримаєте роботу. Без роботи ви не отримаєте досвід. Замкнуте коло в реальному житті. Але нічого страшного, ми з нього вийдемо.

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

По-друге, вам потрібно знайти свої перші проекти. Це, напевно, найскладніший варіант, але робочий. Вам доведеться самому шукати замовлення, виконувати їх, морочитися з оплатою. Для новачка це архіскладно, але зате потім всі інші варіанти здадуться легкою справою. Виконані проекти можна буде записати в досвід і показати вашому майбутньому роботодавцю. Реальні проекти є великим плюсом у вашому резюме.

Якщо ви знаєте англійську мову, реєструйтеся краще на англомовних біржах. Ринок там більше. Якщо не знаєте англійської, вчіть її. А поки що вам доступні російськомовні біржі фрілансу. Шукайте невеликі проекти, які відповідають вашому рівню знань або трохи вище нього. Подайте заявку на пару десятків таких завдань. І приготуйтеся отримати море відмов. Але якщо одна-дві заявки вистрілять, у вас буде шанс отримати реальний досвід.

Ще одним непоганим варіантом для отримання реального досвіду є open source. Таким проектам завжди потрібні нові люди, нехай навіть і новачки. Ви можете пошукати в проекті баги або подивитися в баг-трекері і запропонувати методи їх вирішення. Знайти такі проекти легко на GitHub або інших сервісах для хостингу коду. Не соромтеся задавати там питання.

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

Останній спосіб - власні проекти, різні хакатони або робота в коворкінг. Свої проекти складно починати самому, краще пошукати знайомих або друзів.

Чому варто вибрати Python

Давайте трохи докладніше поговоримо про вибір першої мови програмування. Перша мова має бути простою і популярною на ринку. Такою мовою є Python. Я дуже раджу вибрати саме її в якості першої мови програмування.

Код програми на Python читабельний. Вам навіть не потрібно бути програмістом, щоб в загальних рисах зрозуміти, що відбувається в програмі. Через нескладний синтаксис Python вам знадобиться менше часу для написання програми, ніж, наприклад, на Java. Величезна база бібліотек, яка заощадить вам купу сил, нервів і часу. Python є високорівневою мовою. А значить, вам не потрібно особливо думати про комірки пам'яті і про те, що там розмістити. Python - мова широкого призначення. І вона така проста, що навіть діти можуть її вивчити.

Справедливості заради варто згадати і про інші мови програмування. Java може стати непоганим вибором для новачка. Ця мова популярніше, ніж Python, але і трохи складніше. Зате інструменти для розробки набагато краще опрацьовані. Варто лише порівняти Eclipse і IDLE. Після Java вам буде простіше перейти до роботи з низькорівневими мовами програмування.

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

Мови C і C# дуже складні для новачка. Ruby - хороший вибір як другої мови, але не першої. JavaScript - дуже проста мова, але нічому доброму вона вас не навчить. А завдання першої мови програмування все-таки навчити вас чомусь правильному, задати якусь логіку.

Чи важлива англійська мова

Важлива! Не знаєте? Вивчайте. Знаєте? Вдосконалюйте. Вчіться читати, писати, слухати і говорити англійською. Робіть наголос на технічну літературу. Слухайте англомовні подкасти. Читайте англомовні підручники з програмування.

Що потрібно знати, крім мови програмування

Звичайно ж, крім мови програмування та англійської, потрібно знати щось ще. А ось що - залежить від напрямку, яке ви виберете. Веб-програміст зобов'язаний знати HTML, CSS, JavaScript. Десктоп-програміст вчить API операційної системи і різні фреймворки. Розробник мобільних додатків вчить фреймворки Android, iOS або Windows Phone.

Всім потрібно вивчити алгоритми. Спробуйте пройти курс на Coursera або знайти підходящу для себе книгу по алгоритмам. Крім цього, потрібно знати одну з баз даних, патерни програмування, структури даних. Варто також познайомитися з репозиторіями коду. Хоча б з одним. Обов'язкове знання систем версійного контролю. Вибирайте Git, він найпопулярніший. Вам потрібно знати інструменти, з якими ви працюєте, операційну систему і середовище розробки. І головний навик програміста - вміти гуглити. Без цього ви не проживете.

Останні кроки

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

Немає коментарів:

Дописати коментар

Related Posts Plugin for WordPress, Blogger...