Уеб разработка през 2020 г .: Какви инструменти за кодиране трябва да научите

Днес един от любимите ми учители, Брад Травърси, публикува преглед на това, което препоръчва да се научите да станете уеб разработчик през 2020 г.

Брад пресича много шума, който чувате в социалните медии. Съветите му са практични и реалистични. И съм съгласен с него за почти всичко, което той препоръчва да научите.

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

Не забравяйте: учебната програма на freeCodeCamp обхваща повечето от тези инструменти и е помогнала на повече от 40 000 души да си намерят работа като разработчици. Когато се съмнявате, просто се съсредоточете върху това.

За ваше улеснение съм обобщил основните идеи на Брад по-долу. Това каза, насърчавам ви да гледате пълното му видео, което съм вложил по-долу. Той добавя много подробности далеч отвъд това, което тези бележки предават. Това е 73-минутен часовник.

Уеб разработка през 2020 г .: Общ преглед

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

"Не се опитвам да ви затрупвам с технологии. Това са просто опции, които имате ... Има много технологии там. Когато чуете нещо като Nuxt или Gatsby, искам да знаете какво е. И тогава можете да изберете дали искате да го научите или не. "

Брад започва, като насърчава хората първо да попитат какво искат да направят. Искате ли да работите във продуктова компания? Или да работите като консултант? Искате ли на свободна практика? Или да създадете свой собствен продукт?

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

Като отправна точка той препоръчва да научите това, което той нарича „Необходимостите“.

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

Той използва MacOS, Windows 10 и Linux за облачни сървъри и дори за някои от медийните си сървъри.

Той е голям фен на VS Code за своя редактор и използва Chrome и вградените му DevTools за отстраняване на грешки в браузъра. Въпреки това той смята, че Firefox също е изминал дълъг път и е жизнеспособна алтернатива.

Той препоръчва да започнете със стандартни HTML и CSS и да научите по-нови CSS инструменти като Flexbox и Grid.

Той казва, че ученето на отзивчив уеб дизайн през 2020 г. трябва да бъде даденост. „Всеки сериозен проект, който създавате, трябва да изглежда добре и да бъде напълно използваем на всички устройства.“

Вместо да разчитате на CSS рамки като Bootstrap, той препоръчва да практикувате изграждането на свои собствени модулни CSS компоненти, които след това можете да използвате повторно в целия си проект.

Въпреки това той казва, че може да се сблъскате с тях, докато работите по проекти за различни работодатели.

Той специално споменава Tailwind, за който не бях чувал преди. Tailwind е малко по-различен от другите CSS рамки. Той е фокусиран върху "класове полезност", които можете да комбинирате, за да постигнете това, което искате с дизайна.

Не е изненада, че Брад препоръчва да станете наистина добри с JavaScript.

Учене в практически темп

В ръководството на Брад той многократно подчертава необходимостта от практичност.

Да - има най-добри практики за всичко. Но в много случаи има достатъчно добър начин, който ще ви помогне да се движите по-бързо и да свършите повече работа, без да потъвате в инструменти.

Едно от най-интересните (и може би еретични) неща, които той казва:

"Няма нужда да научавате DevOps и AWS и всички тези неща за малък сайт. Хостинг сайт или управляван хостинг сайт като InMotion или Hostgator е добре. Той ви позволява да правите [разполагане] направо в браузъра. Няма нужда да прекалено сложни неща. "

Той твърди, че дори през 2020 г. има какво да се каже за използването на познати инструменти.

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

"Хипстърите ще кажат, че определено трябва да използвате фронт енд фреймър. Не мисля, че това е вярно. Ако искате да изобразявате шаблони на сървъра, без да използвате фронт енд фреймворк, мисля, че това е напълно наред, но има много много работни места, които търсят нещо като React или Vue. "

Но след като сте готови да се справите с фронтовите рамки, той препоръчва да изследвате React, Vue и Angular. „Опитайте и трите и разберете кой ви харесва най-много.“

Той също така дава знак на Svelte - което не е рамка, а по-скоро компилатор. Но той казва, че вероятно е твърде ново, за да се опитаме да го вземем през 2020 г.

И той обсъжда нарастващата популярност на сървърната визуализация. Базирането на файлова система означава, че не е нужно да създавате сложен файл за маршрутизация. Вместо това можете просто да поставите файловете в директорията, в която искате да бъдат.

Двата популярни инструмента за визуализиране от страна на сървъра са Next.js (за React) и Nuxt.js (опцията Vue).

Друга нововъзникваща тенденция е Static Site Renders, за която той казва, че не е нужно да се учите, но трябва да сте наясно. Например сайтовете в Гетсби са изключително бързи и не се нуждаят от сървър.

Инструменти за разработване на гръб

За разработка от страна на сървъра, Брад предпочита Node.js за неговата скорост и защото може да използва JavaScript както отпред, така и отзад.

За рамки за разработка на сървърна страна той препоръчва да се учи Express, тъй като е най-популярният и "ви дава много свобода да изграждате нещата, както искате по ваш начин."

Той също използва Python за някои проекти и също го препоръчва.

"Python има две страхотни рамки. Django е голяма, пълнофункционална рамка, където тъй като Flask е по-минималистичен. Той ви дава това, от което се нуждаете, но вие вземате останалите решения. обичайте ги и двамата и ги използвайте за различни неща. "

И той бързо излиза в защита на PHP:

"Много хора дават глупости на PHP и това е жалко, защото PHP може да бъде страхотен език. Практичен е и е лесно да се внедри почти навсякъде. PHP е чудесен за фрийлансъри, които трябва да извадят нещата бързо. Ако планирате работейки за голяма компания, PHP може да не е най-добрият избор, но ако работите на свободна практика и изграждате лични проекти, PHP може да бъде чудесен избор. Стана готино да разбивате PHP. PHP беше първият език, който научих и все още много харесвам то ... Ако погледнете кода на Laravel, той е много елегантен. "

Брад прави и бързо разглеждане на бази данни и препоръчва многогодишен любим PostgreSQL.

Други инструменти, които вероятно са тук, за да останат

GraphQL е алтернатива на REST за API. Има няколко курса, които покриват GraphQL както на канала на Брад, така и на канала на freeCodeCamp. Но той казва, "GraphQL не е нещо, което трябва да научите в наши дни, но е достатъчно голямо, че мисля, че е тук, за да остане. Това е повече от тенденция."

Брад също така говори за Системите за управление на съдържанието (CMS) и как те се развиват в нови опции „без глава“, където просто ги използвате като заден край и кодирате собствения си преден край.

„CMS са много удобни за фрийлансъри, които имат клиенти, които искат да могат да влизат и да създават публикации в своите блогове и подобни неща. Много хора разбиват WordPress, но в интернет има огромен процент уебсайтове, които се управляват от WordPress и все още е много популярен. "

За уеб сървърите той предпочита NGINX пред Apache, защото „изглежда по-малко сложен“. Използваме широко NGINX в freeCodeCamp и съм склонен да се съглася.

Брад също обяснява как работи виртуализацията и говори за това как може да опрости по-сложни проекти, като стандартизира околната среда на множество компютри. Но той предупреждава да не се опитва да виртуализира всичко:

"Docker наистина е добър за екипи. Това, което не ми харесва, е, когато хората казват, че винаги трябва да използвате Docker. Това е просто предпочитание. Ако просто искате да стартирате локален LAMP сървър, няма нищо лошо в това. Не изпитвайте натиск за да научите нещо като Docker. "

И добавя, за да подчертая нещо, което аз лично не мога да подчертая достатъчно: „Знам, че много изперкали типове искат просто да усложнят нещата и го мразя. Това, че изброявам всичко това, не означава, че го натискам ти."

Той също така бързо отбелязва, че повечето големи компании имат специални екипи на DevOps (наричани още „Инженери за надеждност на сайта“), които могат да направят много от това за вас.

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

Ако искате да тествате ръцете си при разработването на мобилни приложения, Брад настоятелно препоръчва рамката на Flutter. Той използва Dart, който е по-неясен език. Той описва Dart като нещо средно между Java и JavaScript и казва, че ако знаете някой от тези езици, трябва да можете да го изберете.

Вторият му избор за разработване на мобилни приложения е React Native, който е лесен за избор, ако вече познавате React.

След това Брад се справя чудесно с обяснението какво представляват Прогресивните уеб приложения и някои от ползите от тях. Ето слайда, но отново силно ви препоръчвам да гледате пълния му видеоклип.

След това той засяга Electron, който ви позволява да създавате настолни приложения, използвайки JavaScript. Първоначално той беше скептичен, но казва, че някои от любимите му настолни приложения - като VS Code и Discord - сега са създадени с помощта на Electron.

Той споменава JAMstack (JavaScript, API и Markup) и безсървърна архитектура. Това са по-напреднали теми, на които както неговият канал, така и YouTube каналът на freeCodeCamp имат видео уроци.

И тогава той стига до големите тенденции за 2020 година.

Машинно обучение и уеб асемблиране

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

И да, можете да правите машинно обучение и в JavaScript.

"Python е царят за машинно обучение. Но дори и с JavaScript имате TensorFlow.js, имате Brain.js, за да създавате невронни мрежи и да правите истински страхотни неща."

От начина, по който той говори за Web Assembly, става ясно, че е доста развълнуван от това.

"Web Assembly все още е в начален етап, но мисля, че ще видим повече от него тази година. Традиционно използваме JavaScript на уеб страницата, за да манипулираме DOM и да изпълняваме изчисления. JavaScript има ограничения по отношение на скоростта. Език като C или C ++ е много по-бърз от JavaScript. Така че Web Assembly е ефективен байт код на ниско ниво, който може да се изпълнява от браузър и е изключително бърз. Може да се генерира от езици като C, C ++ и Rust. "

Rust е един от езиците, които можете да използвате с WebAssembly (в допълнение към C и C ++). Заучаването и използването е значително по-лесно от C и C ++.

Но е важно да се отбележи, че WebAssembly не ви извинява от необходимостта да научите JavaScript.

"Почти можете да мислите за JavaScript като за шеф и той може да каже на Web Assembly какво да прави. Така че ни позволява да използваме наистина бързи езици на ниско ниво като C ++ в нашите уеб приложения и това ни дава много повече възможности - като видео игри от следващо ниво и инструменти за редактиране на видео направо в браузъра - неща, които са немислими само с JavaScript. "

В заключение той казва: "Колкото повече научавате, толкова по-лесно е да научите повече и да съчетаете всички тези технологии заедно. Опитайте се да не ви претоварват. Правете стъпка по стъпка и направете проучване и разберете какво искам да направя."

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

Хората постоянно ме питат „какво да науча, ако искам да стана уеб разработчик?“ И отговорът ми е "просто използвайте freeCodeCamp като основната си учебна програма и се разклонявайте в други учебни ресурси, докато вървите."

И аз съм щастлив да кажа, че канал на Brad's Traversy Media в YouTube е един от онези допълнителни ресурси, които препоръчвам най-горещо.