Якщо ви дасте людині програму, то займете її на один день. Якщо ви навчите людину програмувати, то займете її на все життя.
Waseem Latif
У кризовий для глобальної економіки час (COVID-19, війна, ядерний шантаж та економічні блокади) IT-індустрія — єдина галузь, яка показує зростання як у кількості вакансій, так і у потребі IT-фахівців. Для довідки: середня зарплата програміста в Україні — 45 000 грн, найвища зарплата у Києві — 55 тис.; фахівці вищої кваліфікації заробляють від 100 до 250 тис. Вартість тримісячного курсу навчання програмування коштує від 35 до 45 тис. Оплачувати курси можна помісячно та у кредит на рік. Конкуренція за версією Work.ua – 8 претендентів на одну вакансію. Як стати програмістом – 5 кроків до мети читайте нижче. Самостійно навчитися програмування можна за 6 місяців. Найпопулярніші мови програмування:
Хто такий програміст
Це фахівець, який програмними мовами “говорить” вашому розумному чайнику або орбітальному супутнику, як поводитися. Програміст — найкрутіша професія на стику людської та машинної логіки. Це професія, де ламаються стереотипи. Наприклад, існує стереотип про те, що кодувати це нудно. Але це не так. Аргумент: перш ніж кодити, потрібно придумати сценарії для програми — поведінки, наприклад, вашої роботизованої валізи, яка має скрізь слідувати за вами — тут відкривається космос для творчості. Придумавши основний сценарій та його можливі відгалуження — всесвіт, програміст прописує крок за кроком його реалізацію — лінійну, розгалужену, циклічну чи змішану. Чим більше деталей передбачає програма поведінки вашої валізи, тим вона є більш досконалою. Наприклад, що робити валізі, якщо її вкрали? Зателефонувати до поліції. А що робити, якщо на нього напав собака? Залежить від розміру собаки.
Отже, якщо ви вирішили припинити байдикувати у в’язниці, ми допоможемо вам стати кодером. Нижче розписаний алгоритм того, як за 5 кроків ви можете стати програмістом, а паралельно ви дізнаєтеся, чим займається кодер, які бувають напрями та спеціалізації у програмуванні, яким має бути ваше портфоліо, а ще як знайти першу роботу.
5 кроків на шляху до мрії
Якщо ви вже пробували себе в програмуванні, у вас швидше за все склалося уявлення про те, що для того, щоб стати кодером, потрібно витратити роки на навчання, так і не ставши конкурентоспроможним — тому, що вивчаючи основи, ви не встигнете за нововведеннями, які через кожні пів року стають застарілими. Частково це правда, але суть в іншому: зрозумівши логіку програмування на рівні основ, ви зможете самі створювати новації. Це в ідеалі.
Вступні умови
Базові знання: щоб стати програмістом вам потрібно знати закони формальної логіки, мати аналітичний склад розуму, а також знати математику та англійську мову. З особистісних якостей: вам потрібно бути посидючим, системним і мати багату уяву.
Час: щоб навчитися базовим елементам програмування — дізнатися, що таке середовище розробки, типи даних, змінні та константи, оператори, синтаксис, керуючі конструкції, цикли, масиви, алгоритми, методи, класи, бази даних і це не все — потрібні приблизно від 3 до 6 місяців.
Крок перший
Виберіть спеціалізацію — програмістом чого ви хочете стати? Принципово різняться два напрями:
- Прикладне програмування. Фахівці в цій галузі розробляють ПЗ (програмне забезпечення) для бухгалтерських та ігрових програм, а також для ERP (Абревіатура ERP походить від англійського (Enterprise Resource Planning System), що перекладається як система планування ресурсів підприємства.) й CRM (Визначення CRM розшифровується як Customer Relationship Management, що означає «управління взаємовідносинами з клієнтами» і відноситься до всіх стратегій) систем, а ще для систем охорони, відеоспостереження, пожежних сигналізацій та дитячих іграшок. Спеціалізацій: вебпрограмування, 1C-програмування, Android-розробка та розробка ігрових програм.
- Системне програмування — у цій галузі пишуться програми для “заліза” — для сервісів, архітектура яких складається з процесора, комунікативних та периферійних пристроїв, наприклад, для комп’ютеризованих систем. У цій галузі також розробляється програмне забезпечення для операційних систем, хмарних технологій та баз даних.
Перш ніж вибрати спеціалізацію, поміркуйте про те, бувши програмістом — які проблеми ви хочете вирішувати? Наприклад, ви можете хотіти програмувати системи життєзабезпечення розумного будинку або застосування штучного інтелекту для того, щоб зменшити міську злочинність. Виберіть напрямок, який допоможе вам ефективно вирішити поставлене завдання.
5 найкращих книг з програмування:
- Clean Code: A Handbook of Agile Software Craftsmanship
- Structure and Interpretation of Computer Programs (SICP)
- Clean Coder: A Code of Conduct for Professional Programmers
- Code Complete: A Practice Handbook of Software Construction
- Design Patterns: Elements of Reusable Object-Oriented Software
Крок другий
Вибравши спеціалізацію, ви маєте вибрати форму навчання: офлайн або онлайн. Ось кілька ресурсів, на яких онлайн і безкоштовно можна пройти вступні курси програмування:
Щоб стати професіоналом — фахівцем, який заробляє на життя своєю професією, — вам потрібен зворотний зв’язок від викладача. Такий зв’язок можна отримати як на платних курсах, так і безкоштовних. В останньому випадку з меншим фідбеком (зворотним зв’язком), але з більшою самостійністю. У будь-якому випадку виберіть той курс, який передбачає, що у вас будуть командні проєкти, працюючи над якими ви багато чого навчитеся, крім програмування, ви освоїте інструментарій спільної роботи, навчитеся вписуватися у дедлайни (дедлайн — кінцевий термін виконання завдання) та відстоювати свою точку зору на розв’язання проблеми.
Ось список онлайн ресурсів, на яких ви можете самостійно отримати базові знання на мові JavaScript:
HTML:
- https://htmlbook.online/page/html
- https://www.w3schools.com/html/default.asp
- https://www.tutorialspoint.com/html/index.htm
CSS
- https://htmlbook.online/page/css
- https://www.w3schools.com /css/default.asp
- https://www.tutorialspoint.com/css/index.htm
JS
- https://uk.javascript.info/
- https://www. w3schools.com/js/
- https://www.tutorialspoint.com/javascript/index.htm
Крок третій
Ще один критерій вибору, після спеціалізації, це вам потрібно вирішити на чиєму боці ви хочете працювати — на стороні клієнта чи сервера. Йдеться про таке:
§ Front End Developer — це спеціаліст, який зосереджений на
клієнтській частині вебсайту, на інтерфейсі — це та частина, яку відвідувачі
можуть бачити й з якою взаємодіють. Його робота полягає в тому, щоб сайт був
- зручним для користувача.
§ Back End Developer — він відповідає за серверну частину
вебсайтів та програм. Його робота зосереджена на тому, щоб сайт функціонує саме
- так, як задумано замовником.
Залежно від боку роботи, ви зможете реалізовувати або
- естетичні та користувальницькі завдання як Front End Developer, або
- фундаментальні завдання, такі як організація роботи з базами даних, розробка алгоритмів цієї роботи та інтеграції різних систем як Back End Developer.
5 найпопулярніших IDE (інтегровані середовища розробки)
Крок четвертий
З перших занять знайдіть проєкт, до якого ви зможете застосовувати нові знання. Засвоївши програми та сервіси, за допомогою яких створюється середовище розробки, вам слід або запустити власний пет-проєкт (це індивідуальний чи колективний проєкт, котрим займається програміст у вільний час), або знайти роботу. Практика допоможе вам закріпити знання. Якщо ви не можете знайти першу роботу на платній основі, запропонуйте свою послугу кодера як волонтер. Ваші переваги: висока мотивація, готовність виконувати найчорнішу роботу на позиції джуніора та здатність до навчання. В якості пет-проєкту ви можете спробувати самостійно верстати ось ці сайти. Ваші завдання — сайти повинні ідеально показуватися на екранах різних розмірах.
- https://www.figma.com/community/file/1135359058761622308
- https://www.figma.com/community/file/1134062952584799091
- https://www.figma.com/community/file/1076341144333859432
- https://www.figma.com/community/file/1114477399819408799
- https://www.figma.com/community/file/1042300710933420595
- https://www.figma.com/community/file/1135317595416941333
- https://www.figma.com/community/file/1134843557182024216
Крок п’ятий
“Мені не потрібні списки курсів з програмування, які ви закінчили. Щоб я найняв вас на роботу, покажіть мені, що ви вже зробили — портфоліо.” — сказав Юрій Наконечний, співзасновник ІТ-компаній SOMBRA, на зустрічі з учасниками пілотного проєкту з працевлаштування ув’язнених в Україні. Щоб збільшити привабливість вашого портфоліо:
- тримайте портфоліо в актуальному стані;
- додавайте pet-проєкти, за якими потенційний роботодавець зможе оцінити ваш досвід, цілісність підходу, архітектуру, best-practice, CI/CD та інфраструктуру;
- додайте до портфоліо експериментальні проєкти та дрібні утиліти, або участь в опенсорс-проєктах (відкриті проєкти);
- доповніть портфоліо усім ваші інтереси, що демонструють ваше прагнення до розвитку та кругозір знань.
Роботодавці цінують pet-проєкти, зроблені з нуля, бажано, щоб вони використовувалися в продакшені (продакшн — процес створення проєкту чи творчого задуму). Наприклад, створіть симулятор вовка, який полює на вівцю. Або якщо ви мрієте побудувати власний будинок, створіть додаток, за допомогою якого можна стежити за контролем виконання робіт, або агрегатор знижок на будівельні матеріали у вашому регіоні. В ідеалі, покажіть роботодавцю свої експерименти – власну мову програмування чи фреймворку. Таким чином ви продемонструйте, що ви знаєте, як працює технологія програмування “під капотом”. Найпопулярніші у роботодавців фреймворки — Angular, React, VueJS. Ресурси для навчання:
- https://angular.io/guide/what-is-angular
- https://uk.reactjs.org/docs/getting-started.html
- https://vuejs.org/tutorial/#step-1
Підсумок
Стати програмістом можна у будь-якому віці. За 6 місяців, займаючись 4-6 годин на добу, можна вивчити основи програмування. Виберіть напрямок та спеціалізацію. Пройдіть онлайн курси. Починаючи з перших навчальних проєктів, працюйте над своїм портфоліо. Кожен біт нового знання застосовуйте на практиці. Візьміть за приклад сайт, що вам сподобався, і створіть його клон, він стане вашою кращою рекомендацією для першого роботодавця.