Пътна карта за уеб разработчици за 2020 г. - Визуално ръководство за превръщане в разработчик отпред, отзад или DevOps

Има много начини, по които можете да вземете уменията, от които се нуждаете, за да станете разработчик.

Има линейни учебни програми, които ви учат на всичко - като пълната програма за разработка на стека на freeCodeCamp.

И тогава има масивни списъци с умения - а понякога и списъци с ресурси - можете да използвате, за да „изберете собственото си приключение“ чрез учебния процес.

Един от най-добрите такива списъци с умения е пътната карта за разработчици на Камран Ахмед, която той редовно актуализира.

Това не е обикновен списък с ресурси. Камран старателно е набелязал всички умения, които смята, че са от съществено значение за проникването в различни области на развитие.

Писах за неговата пътна карта в миналото. И за да отпразнуваме, че всички сме на половината път през 2020 г., ще споделя цялата му пътна карта тук - и трите.

Точно така - той има списъци с инструменти и ресурси, необходими за следните пътища:

  • Уеб разработка отпред
  • Уеб разработка на заден край
  • DevOps (известен също като "надеждност на сайта" - това е нещо като развитие на старата роля на системен администратор)

Уменията, от които се нуждаят всички разработчици, независимо от тяхната специализация

В допълнение към тези пътища, Kamran също препоръчва на всички, които искат да работят като разработчик, да усвоят следните умения:

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 - Философията, че повечето от кода, който смятате, че ще трябва да напишете, и функциите, които ще трябва да внедрите, всъщност ще се окажат ненужни
  • ЦЕЛУВАЙ - Нека бъде просто, глупаво! - Колкото по-лесно поддържате проектите си, толкова по-лесен ще бъде животът ви, що се отнася до поддръжката.
  • ТВЪРДО - Това е мнемонично за „ Единична отговорност, ‌‌Отворено – затворено, заместване на Лисков, сегрегация на интерфейса, инверсия на зависимостта“. Да - не за начинаещи, но разгледайте това, ако сте любопитни.

Пътна карта за уеб разработка на предния край

Първата пътна карта на Kamran се фокусира върху уеб разработката на предния край.

Ето пълната му пътна карта от предния край:

Моите мисли за пътната карта на Front End

Това е солиден списък на основните умения.

Като преден разработчик определено ще работите с HTML, CSS и JavaScript - много, много JavaScript.

Единствените неща, които мисля, че са ненужни тук:

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

Пътна карта за уеб разработка отзад

Втората пътна карта на Kamran се фокусира върху уеб разработката на заден край. Ако комбинирате това с неговата карта от предния край, ще получите доста добър път да станете разработчик на пълен стек.

Ето цялата му пътна карта отзад:

Моите мисли за пътната карта на задния край

Тук съм съгласен с всичко.

Да, трябва да научите SQL и релационни бази данни

Искам силно да се съглася с препоръката му да научите релационна база данни.

Да - бази данни като MongoDB и Neo4j могат да направят много за вас и са по-подходящи за определени видове приложения, отколкото релационни бази данни.

Но все пак трябва да научите SQL и да разберете как работят релационните бази данни.

Препоръчвам PostgreSQL (който използваме за няколко проекта в freeCodeCamp), но други релационни бази данни са доста сходни.

Ето безплатния 4-часов курс по SQL на freeCodeCamp, който ще ви научи на основите.

И ако искате да се потопите още по-дълбоко, ето нашият безплатен 8-часов курс за релационен дизайн на база данни.

Как да изберем правилния език за програмиране в края на разработката

Също така искам да добавя бележка за избора на език.

Въпреки че има много езици - и по същество можете да правите всичко с всеки език - силно препоръчвам да научите Node.js (JavaScript) или Python като свой първи език.

Ето подробно ръководство за това кой език за програмиране трябва да научите първо.

Пътна карта на DevOps

И накрая, Kamran обхваща как да станете DevOps или инженер за надеждност на сайта. Това включва работа с много облачни услуги и надзор на инфраструктурата.

Ето цялата му пътна карта на DevOps:

Моите мисли за пътната карта на DevOps

Linux, Linux, Linux.

Също така бих препоръчал първо да работите като разработчик, а след това постепенно да дойдете да специализирате в DevOps.

Ето кратко 30-минутно въведение в областта на DevOps, което трябва да ви даде по-добра представа дали DevOps е нещо, което ви интересува.

Това е всичко. Какво мислиш? Камран пропусна ли някакви основни умения или технологии? Оставете коментар и нека хеш това.

Освен това, ако имате някакви ресурси, които са работили наистина добре, за да научите тези умения, споделете ги по-долу като коментар.

Приятно кодиране!

- Куинси