Дорожня карта веб-розробника 2020 - Візуальний посібник для того, щоб стати розробником інтерфейсу, інтерфейсу або DevOps

Є багато способів, як ви можете здобути навички, необхідні для того, щоб стати розробником.

Існують лінійні навчальні програми, які навчать вас усьому всьому - як, наприклад, повна програма розробки стеків freeCodeCamp.

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

Одним з найкращих таких переліків навичок є Дорожня карта розробника Камрана Ахмеда, яку він регулярно оновлює.

Це не звичайний перелік ресурсів. Камран ретельно намітив усі навички, які, на його думку, є важливими для проникнення в різні сфери розвитку.

Я писав про його дорожню карту в минулому. І щоб відсвяткувати, що всі ми перебуваємо на півдорозі до 2020 року, я поділюсь тут усією його дорожньою картою - усіма трьома.

Правильно - він має списки інструментів та ресурсів, необхідних для наступних шляхів:

  • Інтернетна веб-розробка
  • Розробка веб-сторінок
  • DevOps (також відомий як "надійність сайту" - це свого роду еволюція старої ролі системного адміністратора)

Навички, необхідні всім розробникам, незалежно від їх спеціалізації

На додаток до цих шляхів, Камран також рекомендує всім, хто хоче працювати розробником, навчитися наступним навичкам:

Git - Контроль версій

Git - це потужна система контролю версій, яка станом на 2020 рік використовується майже універсально. Якщо ви цього не знаєте - так, це пов’язано з GitHub та GitLab, і ви також можете навчитися користуватися цими інструментами.

Основне використання терміналу - командний рядок Bash, SSH та інші навички

Це може бути термінал на Mac, підказка Windows DOS або Bash / ZSH. Зауважте, незалежно від того, яку операційну систему ви використовуєте, вам, мабуть, слід вивчити Linux. Навіть якщо ви не використовуєте його для свого ноутбука / робочого середовища, ви майже напевно будете використовувати його для серверів.

Структури даних та алгоритми

Навчальна програма freeCodeCamp охоплює їх поглиблено. Ви, мабуть, захочете навчитися цим, вирішивши безліч проблем з алгоритмами на freeCodeCamp, CodeWars, Project Euler або іншому веб-сайті з буріння. Я особисто рекомендую робити це або в JavaScript, або в Python, але якщо ви готові до виклику і маєте багато часу, то це на C не завадить.

Розуміння того, як працює Інтернет: HTTPS та API

Є багато інших понять, яким можна навчитися. Для початку рекомендую пройти хороший курс інформатики початкового рівня. Ось усі лекції курсу Гарварду CS50 без реклами на YouTube-каналі freeCodeCamp.

Шаблони дизайну, YAGNI, KISS, SOLID

Я не думаю, що новачкам потрібно глибоке їх розуміння, але це не завадило б.

Шаблони проектування - це, в основному, перевірені часом способи реалізації різних типів програмних систем та структур кодування. Ви можете навчитися цим поступово в міру прогресу.

Що стосується алфавітного супу, то ось що вони означають:

  • YAGNI - Ya Ain't Gonna Need It - Філософія, згідно з якою більшість коду, який, на вашу думку, вам потрібно буде написати, і функції, які вам потрібно буде реалізувати, насправді виявляться непотрібними
  • ПОЦІЛУЙ - Будьте простими, безглуздими! - Чим простіше тримати свої проекти, тим легше буде ваше життя, коли справа стосується технічного обслуговування.
  • ТВЕРДО - Це мнемоніка для " Єдина відповідальність, ‌‌ Відкрита – закрита, заміна Ліскова, сегрегація інтерфейсу, інверсія залежності". Так - не для початківців, але розгляньте це, якщо вам цікаво.

Дорожня карта веб-розробки веб-сайтів

Перша дорожня карта Камрана зосереджена на веб-розробці інтерфейсу.

Ось його цілісна "Дорожня карта":

Мої думки щодо "Дорожньої карти"

Це вагомий перелік основних навичок.

Як розробник інтерфейсу, ви точно будете працювати з HTML, CSS та JavaScript - багато-багато JavaScript.

Єдине, що я вважаю тут непотрібним:

  • Препроцесори CSS. Вони використовуються як необхідні, але сам CSS додав багато функцій, які зробили ці препроцесори настільки корисними. В даний час freeCodeCamp навчає Sass, але ми також перебуваємо у процесі поступового припинення цього.
  • Архітектура CSS: Я вважаю, що це не потрібно, якщо ви проектування систем CSS не є важливою частиною вашої повсякденної роботи.
  • Трохи хитрощі: TypeScript - це перспективний спосіб зменшити помилки та код із впевненістю. Ми додаємо це до версії 7.0 базової навчальної програми freeCodeCamp. Я думаю, це повинно бути ще більш помітним у дорожній карті, але воно є там.
  • На мій погляд, веб-асамблея є приємною у користуванні. Розробники починають із цим робити захоплюючі речі, але через деякий час ця технологія стане справді повсюдною.

Дорожня карта веб-розробки

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

Ось його вся дорога карта заднього плану:

Мої думки щодо "Дорожньої карти заднього кінця"

Я тут з усім згідний.

Так, вам слід вивчити SQL та реляційні бази даних

Я хочу рішуче погодитися з його рекомендацією вивчити реляційну базу даних.

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

Але ви все одно повинні вивчити SQL і зрозуміти, як працюють реляційні бази даних.

Я рекомендую PostgreSQL (який ми використовуємо для кількох проектів на freeCodeCamp), але інші реляційні бази даних досить схожі.

Ось безкоштовний 4-годинний курс SQL на freeCodeCamp, який навчить вас основам.

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

Як правильно вибрати мову програмування для розробки на задньому рівні

Я також хочу додати примітку щодо вибору мови.

Незважаючи на те, що існує багато мов - і ви можете робити по суті будь-що з будь-якою мовою - я настійно рекомендую вивчити як першу мову Node.js (JavaScript) або Python.

Ось детальне керівництво, яку мову програмування слід вивчити першим.

Дорожня карта DevOps

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

Ось його вся дорожня карта DevOps:

Мої думки щодо дорожньої карти DevOps

Linux, Linux, Linux.

Крім того, я б порадив спочатку працювати розробником, а потім поступово приїжджати спеціалізуватися на DevOps.

Ось короткий 30-хвилинний вступ до галузі DevOps, який повинен дати вам краще уявлення про те, чи є DevOps тим, що вас цікавить.

Це все. Що ти думаєш? Чи Камран залишив якісь основні навички чи технології? Залиште коментар, і давайте це розшифруємо.

Крім того, якщо у вас є якісь ресурси, які працювали дуже добре для того, щоб вивчити ці навички, поділіться ними нижче як коментар.

Щасливого кодування!

- Квінсі