Въведение

Най-накрая съм готов да напиша това ръководство, след като посветих 650 продуктивни часа (изключени телефони, часове без разсейване) в изучаване на цялостна уеб разработка от напълно начинаещ до изграждането на мой собствен продукт софтуер като услуга, който съм горд с

Ще напиша това ръководство малко по-различно в сравнение с други. Ще споделя дневника за това как е да научите умение от нулата и след това да създадете свой собствен продукт от самото начало. Аз ще споделя ресурсите, които използвах, за да изградя уменията си за кодиранезаедно с многото часове, които избрах да прекарам пред бюрото си, вместо на слънчевите и красиви плажове в Сидни. И трябва да отдам дължимото на ужасния Сидни дали тази година, правейки излизането много по-малко изкушаващо.

Какво ми дадоха 650 часа ангажирано учене и изграждане

Да се ​​научиш да кодираш е трудна и плашеща работа.

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

В случай, че се чудите какво построих с моите новопридобити умения (може би също така, за дави дам представа какъв е минималният минимум, който можете да изградите, ако следвате това ръководство):



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

С Element Hunter създателите на съдържание вече няма нужда да търсят ръчно и многократно различни ключови думи, за да намерят подходящи медии, които да включат в съдържанието си.

Кратката версия

Ще обясня плюсовете и минусите на всички изброени ресурси, но ако нямате време, ето резюмето с някои акценти, базирани на моя опит (текстовата версия на таблицата е налична на страницата с идеи).

1. Завършете тези два курса (завърших всеки от тях 3 пъти)

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

  • Курс на Udemy: Пълният учебен лагер за уеб разработка за 2022 г. — д-р Анджела Ю е достъпна тук.

  • Курс на Udemy: The Web Developer Bootcamp 2022 — Colt Steele е достъпен тук.

2. Бъдете информирани, като следвате инструктори

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

  • Следвайте Fireship тук: неговата серия от 100 секунди е изключително популярна и полезна за бързо разбиране на ключови концепции.

  • Следвайте Traversy Media тук: направо към точката и съсредоточаване върху „свършете работата“. Голямо покритие на концепции (ако се борите с внедряването на определена функционалност, вероятно Traversy я е покрил)

3. Мозъчна атака за вашия собствен проект

След като завършите двата основни курса по Udemy, ще имате доста добра основа и съм сигурен, че ще имате множество вдъхновения за проектите, които искате да изградите до този момент. И наистина, най-добрият начин да научите е чрез кодиране на собствена идея / проект, който обичате сами. Направете малко проучване и направете играта си лице в лице.

4. Сканирайте курсове, обхващащи концепции от средно ниво до напреднали

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

Например, основните курсове може да не покриват концепции като асинхронни функции, websocket, управление на производството и т.н., но трябваше да ги науча за продукта, който създадох. Сега като се замисля назад, би било много по-продуктивно, ако ги бях научил чрез курс / видеоклип в YouTube, вместо сам да чета документацията.

Изброих и разработих няколко по-долу, ако се интересувате. Но е вероятно да изградите свой собствен списък в зависимост от вашето внедряване.

5. Отбележете и маркирайте тези референтни ресурси

Всеки път, когато попадна на нова концепция, често я търся първо в w3school, което ми дава бързо и кратко обяснение какво представлява. Ако трябва да се потопя дълбоко, може да проуча в MDN или stackoverflow, ако знам достатъчно, за да го изразя в конкретен въпрос

  • w3school тук: кратко, но стегнато обяснение на концепциите с основни примери

  • Препълване на стека: не е необходимо обяснение. В 90% от случаите, ако познавате проблема достатъчно добре, за да го формулирате във въпрос, ще намерите отговора при препълване на стека
  • Уеб документи на MDN тук: изчерпателна и подробна документация за дълбоко гмуркане

  • Учебник: Вече не чета чрез учебник, но за тези, които разбират по-добре чрез четене на книги, ще включа няколко препоръки по-долу.

Дългата версия

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

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

  1. Защо избрах Udemy пред други курсове
  2. Подробен преглед с предимства и недостатъци на двата основни курса на Udemy
  3. Защо смятам, че е изключително полезно да започнете да се абонирате за инструктори за уеб разработка като Fireship и Traversy Media
  4. Наличие на налични ресурси за междинни/напреднали концепции
  5. Моят систематичен подход за решаване на всеки нов проблем с внедряването, като използвам видео уроци, препълване на стека и документи.
  6. Моят дневник за изграждането на собствен SaaS продукт. Няма да имате голяма полза от този разделно все пак ще напиша нещо за това за интересуващите се

Избирам Udemy като моя основна платформа за обучение

Със сигурност има и други платформи за обучение на кодиране като Udacity, codeacademy, Udex, Coursera, само за да назовем няколко.

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

  • Етикет

Курсовете на Udemy са относително по-евтини в сравнение с други премиум курсове като Udacity (платен курс може да ви върне хиляди долари). Ако просто искате да се научите да кодирате, а не след сертификат или персонализиран преглед, например, Udemy е достатъчно.

  • Изобилие от опции

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

С много опции в Udemy и много инструктори, публикуващи своите курсове в Udemy, това ви спестява проблемите с изучаването на нова платформа, като техния потребителски интерфейс.

Преглед на курса: The Complete 2022 Web Development Bootcamp — д-р Анджела Ю

Аз съм абсолютно голям фен на д-р Анджела Ю и дори създадох приложение за IOS, като следвах един от другите й курсове. Също като се има предвид, че Анджела е много опитен инструктор лице в лице, тя е много добра в преценката кога/къде учениците са склонни да се губят и дори да прецени кога учениците се чувстват обезкуражени. Точно затова, ако започвате от самото начало, това е курсът, който препоръчвам.

По същия начин този курс е и един от любимите ми начални курсове за изучаване на уеб разработка и мисля, че е абсолютно необходим за начинаещи. Аз самият съм минал през курса поне три пъти. За продукта SaaS, който създадох, бих казал, че този курс покрива 60% от това, от което се нуждаех.

Уникалното в нейното преподаване е, че курсът е:

  • Основно, но добро покритие на концепциитеобяснени изключително добре. д-р Ю е добре известен с това, че обяснява добре концепциите на обучаемите. Това е страхотен курс, ако се опитвате да разберете основните понятия като какво е преден край, какво е заден край, как работят заедно и т.н. Анджела ще ви предостави много добри примери, за да сте сигурни, че нямате да го запаметяват, но могат да разбират и свързват понятията с пример от реалния живот.
  • Тя може добре да предусеща какво може да ви обърка и да измисли чудесен пример/аналогия, за да го обясни добре. Това я прави не само добър програмист, пишещ стилен код, но дори и по-добър учител.
  • Допълнителнисъвети как да останете мотивирани и продуктивни. Към края на всеки модул ще има кратко видео на „Анджела, която ви развеселява“, което ще ви научи как да останете мотивирани. В допълнение, тя има много трикове и съвети за производителност, които да сподели (полезни инструменти и уебсайтове, шаблони за бележки, доказани като полезни от академични изследвания и т.н.)
  • Бързо вижте, че „резултатите“ от обучението ви се изплащат чрез изграждане на страхотни проекти. Един от начините да се обезсърчите е да инвестирате много време в учене, но да не виждате резултати. Този курс е проектиран по такъв начин, че напредъкът ви да се отразява добре от изграждането на проекта по пътя. Например, този курс много бързо създава и внедрява вашия собствен уебсайт с помощта на Heroku доста рано в курса (въпреки че приложението е много лесно за изпълнение), като ви дава известна награда/обратна връзка, преди да започнете да мислите за отказване. Като се има предвид, че Анджела има голям опит в провеждането на офлайн присъствени курсове, тя е много добра в преценката кога / дали учениците се обезсърчават.
  • Бонус модул запроектиране на приложения, маркетинг и оптимизация за търсачки (SEO): Анджела не е просто програмист. Тя също има забележителен усет за бизнес, където ще ви преведе не само за кодиране, но и как да пуснете приложението на пазара. Например, тя ще ви научи как да проектирате (комбинация от цветове, теория на цветовете, типография и т.н.), как да рекламирате приложението си с помощта на инструменти като търсене на продукти и изграждане на собствена аудитория и как да правите SEO и т.н. Аз лично мисля, че това е изключително интересно да научите, дори ако не мислите да създадете свой собствен продукт. Добре е да смесите малко нещата, за да направите „кодирането“ малко по-малко скучно.

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

Преглед на курса: The Web Developer Bootcamp 2022 — Colt Steele

Този курс всъщност е изключително популярен в Udemy (наистина заслужено) и е друг курс, през който съм минавал няколко пъти.

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

За уебсайта, който създадох,този курс даде 70% от това, което трябваше да знам.

Някои от уникалните аспекти на този курс

  • Голямо покритие на полезни концепции по много практичен начин (не толкова основни и съществени, но много вероятно ще ви трябват повечето от обхванатите концепции, особено ако възнамерявате да създавате свои собствени уеб приложения
  • Страхотни примери за кодиране: в сравнение с курса на Анджела, бързо ще забележите, че този курс е много по-практичен и практичен, с много повече примери за кодиране (вместо обясняващи понятия и основните понятия /рационални например). Това е една от причините, поради които, ако сте ново начало, бих преминал първо през курса на Анджела, преди да започна този курс (ако времето позволява, разбира се).
  • Курсът има достатъчно покритие, което ви предоставя достатъчно знания, за да знаете откъде да започнете, като същевременно избягвате да се гмуркате в твърде много ненужни концепции. Това, което открих, беше, че често започвах да преразглеждам определен модул от курса на Colt, преди да скоча в документацията (например MDN) и препълването на стека, просто за да знам какво търся и какви въпроси трябва да задам.

Минуси:

Самият курс е гигантски и ако имате предишен опит в кодирането (python, например), този курс ще бъде перфектен.

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

Това значително ще намали риска да се откажете след няколко месеца, което съм виждал много хора да правят.

Започнете да следвате популярни инструктори и обръщайте внимание на техните известия и публикации

Споменах как би било изключително полезно да следвате тези популярни инструктори от рано и това е така, защото програмирането не е седене и учене, а натрупване на знания. И тези инструктори често правят своите уроци въз основа на изискванията/полезността.

Много от вашите идеи, малките вдъхновения, може да ви осенит, когато готвите, докато слушате някой от видеоклиповете на тези инструктори. И именно тези малки идеи и произволни вдъхновения ви държат мотивирани. Може да чуете инструкторите да прилагат определена функция и да си помислите, добре, мога да включа това и в моя уебсайт!

Не знаете какво не знаете И не знаете какво да приложите, ако не знаете какво можете да приложите.

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

  • Следвайте Fireship тук:

Поредицата от 100 секунди е изключително популярна и полезна за бързо разбиране на ключови концепции. Ще забележите, че има определени общи концепции и речници, изговаряни от програмисти, при препълване на стека или във видео уроци. Понякога просто да знаете какви са те е много полезно и какъв по-добър начин да научите за популярните концепции (въпреки че може да не ги използвате директно в близко бъдеще), чрез 100 секундно бързо видео.

  • Следвайте Traversy Media тук:

Стилът на Traversy е директен към точката и се фокусира върху „свършване на работата“. Той е направил много видеоклипове, интензивен курс и практически ръководства, датиращи от години. Има голямо покритие на концепции и ако се затруднявате с внедряването на определена функционалност, вероятно Traversy я е покрил някъде.

По моя преценка Traversy ми спести поне 2 седмици време за изграждане, когато следвах неговите уроци, вместо сам да се ровя в документацията и да се опитвам да разбера грешка (понякога ще чуете Traversy да казва „това ме заби за известно време и в крайна сметка го разбрах). Така че, благодаря ти Traversy, че ги измисли, за да нямам и аз.

Не съм голям фен на twitter/reedit (въпреки че вярвам, че ще имам полза от това да съм), но ако сте, бих започнал да следя хората от рано. Понякога установявам, че когато за първи път чуя за концепция, усвоявам само 30% от нея, но усвоявам 80% втори път и я разбирам напълно след повтарящо се учене. Това, което искам да подчертая тук, е, че може бързо да попаднете на концепция и може да не си спомните по-голямата част от съдържанието, публикувано от инструкторите, но е добре, защото когато го попаднете втори път, ще си помислите, о, аз чувал съм за това и чувството е страхотно!

Наличие на ресурси за междинни/напреднали концепции, лесно достъпни или поне знаят, че съществуват

Нямам какво друго смислено да добавя в допълнение към това, което обсъдих в предишната сесия.

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

В екранните снимки по-долу ще включа някои примери за това, което намерих за полезно, което обхващаше реализации на функции, използвани в моя SaaS продукт. Но не забравяйте, че функциите, необходими за вашия проект, може да варират значително. Може дори да използвате напълно различна рамка (колба, използвайки Python, ако основната ви функционалност е анализ на данни и машинно обучение, например), в който случай вашият списък ще бъде много различен от моя. Текстовата версия на снимката е достъпна на тази страница с идеи. (Имайте предвид, че това е повтарящо се съдържание от горния раздел)

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

  • Уеб разработка с Node и Express: Използване на стека на JavaScript от Итън Браун, публикувано от O’Reilly

  • JavaScript — Окончателното ръководство: Овладейте най-използвания език за програмиране в света от Дейвид Фланаган, публикувано от O’Reilly

Систематичен план за атака за решаване на всякакви предизвикателства

Много хора биха ви казали, че програмирането е за извличане на подход стъпка по стъпка за решаване на проблем. Ето какво ще направим тук.

Ето как разреших грешките / новите концепции / предизвикателствата / внедряванията на нови функции, докато изграждах своя SaaS продукт.

  1. За преразглеждане на материалите за курса, ако имам нужда от опресняване на основните понятия и кодови шаблони
  2. Ако концепциите са напълно нови и не са обхванати от нито един от курсовете, преминавам направо към w3school, който ми помага бързо да разбера каква е концепцията със сбито обяснение и прости примери
  3. Въпреки че w3school е много добро начало, понякога установявах, че не ми дава достатъчно подробности за моето внедряване. Това е когато преминавам към MDN документи, които предоставят по-подробна и изчерпателна документация
  4. До този моментщях да съм знаел достатъчно за проблема, за да мога да формулирам въпроса си за търсене при препълване на стека или търсене в Google. В този случай 80% от въпроса ми, стига да са формулирани правилно след горните стъпки, ще бъдат решени от страница за препълване на стека
  5. В случай, че не е, бих направил повече проучвания в Google и бих се потопил дълбоко.

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

Това е пътуване на учене, разочарование и удовлетворение от решаването на проблем и постоянно убеждаване да завърша започнатото

Всъщност кодирането не ми е непознато.

В интерес на истината аз съм компютърен специалист по образование. Имам двойна диплома по финанси с математика и компютърни науки (специалност компютърни науки) и следвах магистърска степен по финанси, за да придобия по-добро усещане за бизнес. И се присъединих към четирите големи счетоводни фирми като консултант след дипломирането си.

Уеб разработката обаче е напълно нова за мен и те не преподават това в университета, дори ако правите компютърни науки.

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

Регистрирал съм общо 650 часа (имам навика да регистрирам продуктивните си часове с помощта на горското приложение или Atracker, ако искам да бъда по-точен, когато изключа телефона си и се фокусирам), откакто написах първия си ред в мрежата код за разработка от миналия декември. Понякога отивам в библиотеката. Понякога прекарвам няколко часа след работа в офиса и най-често седя пред бюрото си в малко студио в Сидни. Сега отново е Коледа и някак си осъзнах, че, Боже, това са много часове, които не съм прекарал навън, да отида на плаж и да се насладя на слънцето или да изляза на купон в петък вечер (нека си признаем , това така или иначе не беше опция хаха) или дори просто да се отпуснете.

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

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

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



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

Това, което се случи след това, беше доста скучно. Проектирах приложението, блок по блок, променях цвета и оформлението отново и отново, започнах от първия си ред код до толкова много итерации и безброй ангажименти и накрая го внедрих, за да бъде достъпно за всеки, който се интересува. Виждал съм как продуктът „израства“ от първия му ред, в който се казва „сървърът успешно стартира на порт 300“, до това как изглежда сега (знам, знам, може да не е великолепен за вас, но все пак е моето бебе хаха).

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

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

Заключение

Ето го как създадох своя продукт софтуер като услуга от самото начало, от изучаването на моя първи ред код за уеб разработка, през общо 650 часа, до внедрен и напълно функционален SaaS продукт сега.

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

Голям отказ от отговорност, че всички ресурси, които споменах, са такива, които лично съм използвал и ги познавам отвътре. Няма никакво обвързване или спонсорство.

Също така, това, което работи добре за мен, може да не работи добре за вас, в който случай бих искал да чуя вашия „план за атака“, защото те може да ми помогнат да подобря и настоящия си подход. Моля, не се колебайте да коментирате и аз също ще ги добавя, докато актуализирам това ръководство, за да помогна на повече хора.

И накрая, цитирам Алек Хардисън от Leverage: Age of Geek baby.