Sıfırdan Full-Stack JavaScript geliştiricisinə - Özünüzü koda necə öyrətmək olar

Pexels-dən Kristina Morillonun şəkli

İki il yarımdan sonra proqramlaşdırma haqqında sıfır bilikdən tam bir JavaScript JavaScript hazırlayıcısına keçdim. Çətin bir səyahət idi və olmaq lazım deyildi.

Bu yazı, harada başlamaq barədə heç bir düşüncəsi olmayan bir proqramlaşdırma karyerası arzusunda olan bütün insanlar üçündür. Mən sizi proqramlaşdırma yolumda çətin yola yönəldəcəyəm və mənim kimi oxşar arzuları olanların faydalı ola biləcəyi strukturlaşdırılmış bir öyrənmə yolu quracağam.

Xəyaldan gerçəkliyə səyahət

İki il yarım əvvəl zilchini proqramlaşdırma haqqında bilirdim. Hətta bildiyimi düşündüyüm şeylər səhv şərhlərdir.

Rəsmi təhsilim Siyasi Elmdə idi və iş təcrübəm pərakəndə satışdan jurnalistikaya qədər müxtəlif idi. Həqiqi məqsəd hissi gətirən bir peşə tapmaq üçün mübarizə apardım.

28 yaşımdan əvvəl kod xətti yazmamışdım, WordPress-də bir yazı düzəltməmişəm və ya bir animasiya etməmişdim. Bilirdim ki, karyeramı dəyişmək istəyirdim və proqramlaşdırma mənə məxsus olan bir şey yaratmağa imkan verdi.

Oyun inkişafına olan həvəsim, veb inkişafının bacarıqlarımı qurmağa başlamaq üçün ən yaxşı yer olduğu qənaətinə gəldi.

Proqram təminatının inkişafı haqqında öyrənməyə başladıqda, müxtəlif mənbələr çox idi və aydın bir öyrənmə yolunun olmaması çaşdırıcı idi. Məlumat çaşqın oldu və düzgün əsas bilik olmadan daha mürəkkəb şeylər öyrəndim.

Mən indi səhiyyə proqram şirkəti Florence üçün tam yığılmış JavaScript inkişaf etdiricisiyəm. Bu gün mən özümə kod öyrətməyi necə öyrətdiyimi və daha az mübarizədə necə edə biləcəyinizi sizinlə bölüşəcəyəm.

Əsaslardan başlayın və ruhdan düşməyin

Veb inkişafında yaxşı bir başlanğıc nöqtəsi HTML-dir. Bu proqramlaşdırma dili deyil, səhv etmə.

HTML veb səhifədə elementlərin yerləşdirilməsi üçün istifadə olunan işarələmə dilidir. HTML ilə ayrılmaz olan CSS veb səhifə elementlərinin dizaynı üçün istifadə olunur. Bu bir səhifəlik portfel kimi sadə bir veb sayt yaratmağı mümkün edirlər.

Səyahətinizin əvvəlindəsinizsə, çox sadə və ya asan görünsə də, heç bir şey atmayın. Veb inkişafının təməli ən vacib hissədir.

Bir çox istəyən inkişaf etdiricilər və özlərini öyrənənlər sadə elementləri keçmədən səhv edirlər və bundan heç vaxt qurtarmırlar. Ön son inkişaf və ya UI / UX dizaynını heç etməyəcəksinizsə belə HTML və CSS-ni bilməlisiniz.

HTML və CSS haqqında məlumat əldə edərkən nəzərə alınmalı bəzi yaxşı kurslar bunlardır:

  • Codecademy - pulsuz onlayn platforma, sadəcə qeydiyyatdan keçin (HTML və CSS məlumat əldə edin). Ekran şaquli olaraq üç hissəyə bölünür. Vəzifə, mətn redaktoru (kod yazmaq üçün) və brauzer çıxışı. Yalnız bir neçə sətir kodu və bir sıra əsas biliklərinizlə özünüzə bənzərsiz bir şey edə bilərsiniz.
  • Cavabverici veb sayt əsasları: HTML, CSS və JavaScript kodları (Coursea) (Goldsmiths, London Universiteti) - Coursesa (ilk iki həftə) - Daxili iş mühiti yoxdur, ona görə də HTML və necə istifadə etməyi öyrənəcəksiniz CSS Sublime mətn redaktorundan istifadə edərək layihənizi brauzerinizdə sınayır.

Bu iki kurs daha mürəkkəb cəbhə işlərinə başlamaq üçün kifayət qədər məlumat verməlidir. Həm də kodlaşdırmadan həqiqətən istifadə etməyinizi və ya etmədiyinizi təyin etmək üçün qəza kursu kimi çıxış edirlər.

Proqramlaşdırma yüksək əzm, intizam və detala diqqət tələb edir. Məncə, hər kəs kodlamağı öyrənə bilər və yaxşı bir geliştirici ola bilər. Uğur, qabiliyyət məsələsi deyil, xarakter məsələsidir.

Bir proqramçı olmaq üçün problem həll edən olmalı və işi sevməlisiniz. Özünüzü öyrətmisinizsə, daha çətin işdir.

Həqiqətən proqramlaşdırmaya aşiq deyilsinizsə, bunu etməyin. Texnologiyada çox və ya az inkişafla əlaqəli, lakin kodlaşdırmanı tələb etməyən çox iş var (marketinq, məhsul inkişafı, müştəri dəstəyi və s.).

Bəzi təməl əsasları öyrəndinizsə və bundan zövq alırsınızsa, bundan sonrakı səyahət daha yaxşıdır.

Ön son əsaslarını öyrənmək

Təcrübəmdə, özünü öyrədən inkişaf etdiricilər üçün ən yaxşı və ən əhatəli veb inkişaf mənbəyi freeCodeCampdır. Birinci fəsildən Cavablı Veb Dizaynından başlayın.

Cavablı Veb Dizayn şəxsi layihələrinizi qurmağa və göndərməyə başlamaq üçün vacib bir yoldur. Bu ismarıclar gələcək işəgötürənlər üçün sizin və bacarıqlarınız haqqında ən yaxşı istinad olacaqdır. Layihələrinizə (xərac səhifəsi, portfel səhifəsi və s.) Ev sahibliyi etdiyinizə əmin olun. Codepen.io-u rahat bir hosting seçimi tapdım.

Git müasir inkişafda kod versiyasını bilməli, istifadə etməli bir vasitədir. Biliyiniz artdıqca bu veb sayt şablonunu təkrarlamağa çalışın və GitHub-a göndərin.

FreeCodeCamp-da Ön Son Kitabxanalar Sertifikatı əla bir addımdır. Kod problemlərindən əlavə Ön Son Kitabxanalar Layihələrində işləməyə vaxt ayırın. Layihələr daha çox vaxt aparır, ancaq kodu öyrənməyi deyil, qarşılaşdığınız problemlərin həllini tapmağı və həll tapmağı öyrənməyin ən yaxşı yoldur.

Ön əsasları öyrənmək üçün sürətli addımlar:
1. freeCodeCamp-a üzv olun
2. Kod problemlərinə əlavə olaraq Veb Dizayn Layihələri üzərində işləyin
3. Layihələrinizi codepen.io və ya başqa bir hosting istifadə edərək keçirin
4. freeCodeCamp-da cavabverici veb dizayn sertifikatı alın
5. Git ilə tanış olun
6. Bu veb sayt şablonunu təkrarlamağa çalışın və GitHub-a göndərin
7. Kod problemlərindən əlavə Ön Kitabxanalar Layihələri üzərində işləmək
8. FreeCodeCamp-da Ön Son Kitabxanalar Sertifikatı alın

Məlumatların qurulması və alqoritmlər

İndi ən çətin, lakin ən təltif hissə gəlir. Məlumat quruluşları və alqoritmlər qurarkən işlər daha çətinləşəcək, amma ruhdan düşməyin. İşlər yalnız tıklandığında, hiss mümkünsüzdür. Sən qazandın.

FreeCodeCamp-ın Javascript Alqoritmləri və Məlumat Quruluşları ilə başlayın, bu kod problemləri vasitəsilə bu mövzuda əsas məlumat verəcəkdir.

Basic JavaScript və Basic Alqoritm Skriptini bitirdikdən sonra edX-də HarvardX CS50 ilə başlayın. İlk beş həftə aktualdır və məlumat quruluşu, alqoritmlər və yaddaş idarəetmə kimi mövzularla kompüter elminin əsasını təmin edir. Bu kursda bir çox proqramlaşdırma dillərinin əsası olan C proqramlaşdırma dilini öyrənəcəksiniz.

Ən əsası, bu çətinliklərdə həll etdiyiniz problemləri başa düşməyi prioritet hala gətirin. Qaçılmaz vəziyyətdə qalacaqsınız. Məsləhətim bir az aldatmaq, bir həll axtarmaq, ancaq səni dayandıran hissədən istifadə et, qalanını itəl və öz başına həll etməyə çalış.

Məlumat strukturları və alqoritmlər haqqında məlumat əldə etmək üçün sürətli addımlar:
1. freeCodeCamp-ın Javascript Alqoritmləri və Məlumat Strukturları kod problemləri üzərində işləyin
2. EdX-də HarvardX CS50-nin ilk 5 həftəsi

Geri son əsasları mənimsəmək

CS50'nin ilk beş həftəsindən və freeCodeCampın Javascript Alqoritmlərini və Məlumat Quruluşlarını tamamladıqdan sonra, abstraksiyalardan ara verin və server tərəfindəki proqramlaşdırma ilə tanış olun.

Geri son əsasları haqqında məlumat əldə etmək üçün freeCodeCamp'ın API və Microservices fəslində Node, Express və MongoDB haqqında məlumat verilir.

Arxa plan əsasları ilə rahat olduqdan sonra Wes Bos tərəfindən öyrənilən hərtərəfli kurs əla bir növbəti addımdır. Müasir bir veb tətbiqini yaratmaq üçün lazım olan bir çox şeyi əhatə edəcəkdir.

CS50 qalan hissəsinə qayıdın və Python'a dalın. Kursun sonunda hələ ən böyük problem olacaq son layihəni təqdim etməyiniz tələb olunacaq. Mənim üçün məzuniyyət kimi hiss olunurdu. Tamamladıqdan sonra hər şeyə hazır olduğumu hiss etdim.

Geri son əsasları mənimsəmək üçün sürətli addımlar:
1. Kod problemlərinə əlavə olaraq API və Microservices Layihələri üzərində işləmək
2. freeCodeCamp-da bir API və Microservices Sertifikatı alın
3. Wes Bos tərəfindən Node öyrənmək üçün hərtərəfli kurs keçin
4. EdX-də HarvardX CS50-nin geri qalan hissəsini geri qaytarın

Son bir layihəni bitirmək

HarvardX CS50 kursunu bitirmək üçün son bir layihəni bitirməlisiniz. Layihəm Procooking adlı qeydlər və reseptlər saxlamaq üçün veb tətbiqetmə idi.

Prokooking var:

  • İstifadəçi qeydiyyatı və giriş
  • Qeydlər yaratmaq və silmək üçün funksionallıq
  • İstifadəçinin fərqli qeydlərə təyin edə biləcəyi kateqoriyalar əlavə etmək üçün funksionallıq
  • Qeydləri başlıq və ya mətn ilə süzgəcdən keçirmək üçün bar

App istifadə edərək hazırlanmışdır:

  • Ön tərəfdə Vanilya JS (çərçivəsiz / kitabxanasız təmiz JS)
  • Arxa ucunda PHP
  • Məlumatları idarə etmək üçün MySQL

Özünüzdə bir veb tətbiqini inkişaf etdirdikdən sonra onu yerləşdirməlisiniz. Heroku və ya bənzər bir şey istifadə edərək pulsuz olaraq yerləşdirin.

Son layihəni bitirmək üçün sürətli addımlar:
1. HarvardX CS50 üçün son layihənizi inkişaf etdirin
2. Veb Tətbiqinizi yerləşdirin

Təcrübə axtarılır

İndi GitHub-da layihələrinizi yerləşdirib CS50 son layihənizi yerləşdirdiyiniz üçün Portfel Veb saytınızı yaratmaq və LinkedIn səhifənizi yeniləmək üçün hər şeyiniz var. Portfelimi yaratmaq üçün WordPress-dən istifadə etdim (yenilənmir).

GitHub ismarıcları, CS50 son layihəsi, bir portfel veb saytı və yenilənmiş bir LinkedIn səhifəsi ilk proqramlaşdırma təcrübənizi açmağınıza kömək edəcəkdir.

Bilmədiyiniz şeylərdən narahat olmayın. İndiyə qədər öyrəndiklərinizə diqqət yetirin. Öyrənmək və işə götürənlər üçün yeni bir şeyin olacağını bilmək həmişə olacaq. Bu kursları və layihələri bitirmək sədaqətinizi, motivasiyanızı və öyrənmək istəyinizi göstərəcəkdir.

Təcrübə ovçuluğuna gəlincə, açıq bir mövqe olub-olmamasından asılı olmayaraq işləmək istədiyiniz yerə rezyumeni və portfelinizi göndərin. Bir şirkət açıq bir mövqeyə sahib deyilsə, bir şey açarsa, çox güman ki, nəzakət göstərəcəksiniz.

Karyera məqsədlərinizə uyğun bir iş tapmaq üçün, texnologiya, mədəniyyət və layihələr baxımından bir şirkətdə nə axtardığınız barədə ümumi bir düşüncəyə sahib olun. Mənim seçimim öz məhsulunu inkişaf etdirən bir şirkətdə işləmək idi. Məhz bu məhsulla bir inkişaf etdirici olaraq böyüyə bildim.

İş axtarmaq üçün sürətli addımlar:
1. Veb sayt portfelinizi yaradın
2. LinkedIn-i yeniləyin
3. Resume yeniləyin
4. Resume və Portfelinizi işləmək istədiyiniz yerə göndərin
5. Texnologiyanıza, mədəniyyətinizə və məhsulunuza uyğun bir təcrübə tapın

İlk təcrübə təcrübəm

Təcrübəm, ABŞ-da fəaliyyət göstərən bir səhiyyə müəssisəsinin kiçik bir inkişaf qrupu ilə idi. Kiçik bir komanda ilə kompleks bir məhsul üzərində işləyərək bütün inkişaf prosesinə erkən məruz qalma şansım var.

Şirkətlə birlikdə öyrənən və böyüyən tam bir proqram təminatçısı olaraq hələ buradayam.

Əvvəlcə hər şey çətin idi. Sadə bir mühit qurmasından tutmuş ilk peşə kodlarını yazmağa qədər. İlk günüm əsasən şirkətin rəhbərlik etdiyi texnologiyalar və anlayışlar haqqında oxumaq idi.

Ardından hər gün yeni bir problem gətirirdi. Verə biləcəyim ən yaxşı məsləhət həmişə sual verməkdir. Bilməməkdə utanc yoxdur, hamımız orada olmuşuq.

Başladıqdan qısa müddət sonra axtarış xüsusiyyətini həyata keçirmək üçün ilk layihəm gəldi. Hələ təcrübəçi idim və həm dizaynda, həm də həyata keçirilmədə işləmək mənə bağlı idi. Xüsusiyyət ifaçısını və təhlükəsizliyini qoruyarkən iş tələblərinə necə cavab veriləcəyini bilmək böyük bir problem idi.

Bir proqramçının işi heç vaxt bitməyən öyrənmə prosesidir, bu mənim ən çox bəyəndiyim şeylərdən biridir.

Bu layihəni uğurla başa vurduqdan sonra növbəti problem gəldi və növbəti. Hər biri yeni bilik və təcrübə toplusu gətirir.

Təcrübə müddətində faydalı gördüyüm bəzi əlavə kurslar FrontendMasters, MongoDB Universiteti və 30 günlük vanil JS kodlaşdırma problemidir.

Heç vaxt proqramlaşdırma xəyalınızdan imtina etməyin

Proqramlaşdırmaya bir karyera keçidi asan bir yol deyil, amma kodun nəhayət işlədiyi zaman aldığınız duyğu xüsusi bir şeydir.

Tez-tez baş verəcək bir qabar vurduğunuzda, ruhdan düşməyin, onun üzərindən itələyin və həllini tapın. Sonda müvəffəqiyyət hissi çox yaxşıdır.

Cəsarətli olun, heç vaxt təslim olmayın və uğurlar!