Özüm öyrədən peşəkar bir proqramçı kimi ilk ilimdə bir aparıcı inkişaf etdiricisi olmağımdan 4 şey öyrəndim

Bu esse, həmyaşıdlarının əksəriyyətinə nisbətən bir az sonra geliştirici bandında atlamağa qərar verənlərin hamısına aiddir. Bəlkə ilk "index.html" sənədinizi yaratmısınız və peşəkar proqram təminatının necə görünməsi ilə maraqlanırsınız. Bəlkə veb inkişafında ilk işinizi başa vurdunuz. Bəlkə bir neçə illik təcrübəniz var və indi şirkətinizdə daha yüksək vəzifəyə keçməyi düşünürsünüz. Burada kompüter elmində heç bir rəsmi təhsil almadan öz-özünə tədris olunan bir proqramçı kimi ilk ilimdə aparıcı inkişaf etdirici olduğum zaman öyrəndiklərimi təvazökarlıqla bölüşürəm.

Unsplash-də Alex Kotliarskyi-nin şəkli

Müvafiq bir sahədə təhsil almadan peşəkar proqram təminatı dünyasına daxil olmaq tam asan deyil. Sosial antropologiya ixtisası üzrə təhsil aldığım müddətdə işlədiyim böyük bir hüquq firmasında çalışan bir tələbə rolunda bir müəssisə veb tətbiqetməsinin hazırlanması ilə bağlı ilk təcrübəm var. Bir anda daxili 'İT' komandasının yeni müştərilər üçün inkişaf etdirdiyi yeni bir təyyarə sisteminin nəticələrinə nəzarət etməyimi istədi. Bir QA meneceri ilə qarşılıqlı olaraq yeni tətbiqetməni ictimaiyyətə təqdim etməyə hazır olmaqdan bir neçə ay əvvəl sınaqdan keçirdim.

Bir 'müasir' () bir veb tətbiqetməsində mümkün olanı görmək, özüm ekranda şeyləri düzəldə bilməkdən nə qədər məmnun qalacağımı dərk etdi. Beləliklə, jQuery ilə düymələrin necə hərəkət ediləcəyini və Ruby (Rels üzərində) ilə sadə bir blog yaratmağı və seçdiyim SPA-çərçivəm olan AngularJs-i öyrənərək Javascript Dərsliklərinə daxil olaraq onlayn inkişaf kursları axtarmağa başladım.

Bəxtim gətirdi və işləyən bir tələbə olaraq yerli bir startapa qoşulmaq şansım oldu. Şirkət yalnız veb tətbiqlərinin daha da inkişafı üçün yeni cəbhə tərtibatçılarını işə götürmək istəyirdi. Özümü sübut etmək üçün şans verdilər və mən də etdim. Çox iş təcrübəsi və geniş texniki bacarığım olmasa da, dərhal tam zamanlı bir cəbhə istehsalçısı kimi işə götürüldüm. Nəticədə getdikcə daha çox inkişaf etdirici və təcrübəçi komandaya qoşuldu və üç əsas məhsulumuz arasında təşkil edilməli oldu. Bu anda mənim yaxşı bir dostuma çevrilmiş CTO, məndən bir intizam qrupu rəhbərliyi olaraq bu məhsullardan birinə rəhbərlik etmək üçün rahat olduğumu soruşdu və mən (bir növ) təklifi inamla qəbul etdim.

Bu nöqtədə, ön tətbiqlərimizin necə işlədiyini yaxşı bir düşüncəm var idi, amma özümü "təcrübəli" veb tərtibatçısı etiketləməkdən uzaq idim. Mən CTO ilə danışdım və o, insanlarla danışmağı və onları nəyi təşviq etdiyini başa düşməyin, bir məhsuldan və texniki tərəfdən bir məhsulun daxili işlərini bilmək qədər eyni dərəcədə vacib olduğuna əmin oldu.

Bu rolda təxminən iki il işlədikdən sonra davamlı olaraq peşəkar bir veb geliştiricisi olaraq bacarıqlarımı artırmağı hədəflədiyim bir qrup lideri rolunda öyrəndiyim şeylərin siyahısını topladım. Ümid edirəm ki, növbəti yerə getmək barədə qərar verməyə kömək edir və ya stimullaşdırır!

# 1 Proqram təminatının inkişafı, hamısı şifrəli kod yazmaqla əlaqəli deyil

Komandaya qoşulduqdan sonra inkişaf etdirmək və qorumaq istəndiyim məhsullara 150.000-dən çox sətir kodu əlavə etdim. Ən azından Githubun mənə dediyi budur

Ancaq kodlaşdırma seansları arasında maraqlı tərəflər və istifadəçilər üçün yaxşı bir interfeys olmağın eyni dərəcədə vacib olduğunu öyrəndim. Bir xüsusiyyətin arxasındakı ehtiyacı başa düşmədən bir inkişaf tapşırığını həmkarlarıma tam izah edə bilməzdim. İştirakçılar həmişə mükəmməl deyillər və tam hazırlıqlı bir istifadəçi hekayəsi ilə əlaqə qurmağınız çətin olur. Beləliklə, onların interfeysi olaraq məhsulunuzdan ehtiyac duyduğunu başa düşməyiniz və inkişaf etdiricilərinizin siyahı siyahısında işləyə bilən bir şeyə tərcümə etməyiniz vacibdir.

Şirkətinizdə xüsusi dizaynerlər və ya məhsul menecerləri işləmirsə, inkişaf etdiricilərin xüsusiyyətlərini qeyri-texniki səviyyədə konseptuallaşdırmasına imkan verməlisiniz. Hər iki halda, sizin və inkişaf etdiriciləriniz obyekt modellərini müəyyənləşdirmək üçün bir yol tapmalı və sisteminiz üçün uyğun arxitekturanı seçmiş olursunuz, ancaq işlək və asan bir interfeys yarada bilməyəcəksinizsə istifadəçiləriniz heç birindən qazanc əldə etməyəcəklər.

UI / UX mövzularında oxumaq və məhsulunuzu müxtəlif istifadəçi növlərinin gözü ilə görməyi öyrənmək sizə xüsusiyyət sorğularını sonda iş dəyəri yarada biləcək şəkildə hazırlamağa imkan verir.

# 2 Yaxşı rəhbər olmaq üçün komandada ən yaxşı proqramçı olmaq lazım deyil

Şirkətə qoşulduqda bir ildən az müddətdə veb tətbiqetmələrini xüsusi olaraq qurmuşdum. Mən mütləq kiçik səviyyədəydim və əlavə olaraq kompüter elmlərini bitirməyən yeganə üzv idim. Əslində, mən bir neçə il əvvəl 'sosial antropologiya' 'üzrə bir bakalavr dərəcəsini bitirmişdim və eyni sahədəki magistr dərəcəm üçün dissertasiyamı tamamlamaq niyyətindəydim. Tamamilə ənənəvi mənada texniki bir təhsil deyil. Komandam, kompüter elmləri üzrə magistr dərəcəsini yenicə bitirən və artıq illərdir bir proqram kimi inkişaf etdirən bir gənc mütəxəssisdən ibarət idi. Məni heyətə rəhbər təyin etmək riskli bir qərar idi, amma bir komanda olaraq çox məhsuldar olmağımıza kömək edən mövqeyə bəzi bacarıqlar gətirdiyimə görə yaxşı oldu.

Əgər maraqlı tərəflər və inkişaf etdiricilər arasında tərcümə etmək tələb olunarsa, özünüzü kiminsə ayaqqabısına sala bilmək vacib bir istedaddır. Bəzi təəssüf hissi ilə birləşən bu bacarıq sizə çox məhsuldar bir şəkildə rəhbərlik etməyə imkan verəcəkdir. Bir həmkarın güclü tərəflərini müəyyənləşdirmək və zəif tərəflərini anlamaq, onları səmərəli şəkildə tamamlamağa imkan verir. Məsələn, kiminsə müəyyən bir layihədə verdikləri məsuliyyət miqdarından narahat olduğunu hiss edirsənsə, onlara təlimat verə və daha müstəqil olmalarına imkan verə bilərsən. Həmkarlarınızı və istifadəçilərinizi həyəcanlandıran və həvəsləndirən şeyləri dərk etmək, onları əsəbiləşdirənləri anlamaq qədər eyni dərəcədə vacibdir.

Aparıcı olmaq o demək deyil ki, heç kim sizə bir şey öyrədə bilməz ...

Yeni bir muzdlu bir geliştirici ilə arxamca bir problemi necə həll etmək üçün bir neçə məsləhət istəməyimi xatırlayıram. Bu zaman mən yalnız müraciətlərimizin ön hissələrində işləyirdim və necə kömək edəcəyimi bilmirdim. Hələ o, əmin idi ki, rəhbər olduğumdan məsələni həll etmək üçün ondan daha yaxşı bir yol biləcəyəm. Bu dalğaya minmək əvəzinə, bəlkə də ondan daha az bacarıqlı olduğumu etiraf etdim, amma dəqiq olaraq nə etməyə çalışdığını izah edərkən onun məsələni həll etməsinə kömək etmək istəyərdim. Sonda bunu birlikdə başa düşdük və ikisi də yolda bir şey öyrəndik.

# 3 Başlanğıclar böyümək üçün heyrətamiz bir yerdir

Proqram inkişafında karyeranızdan yeni başlayırsınızsa, onda başlanğıclar başlamaq üçün inanılmaz bir yerdir. Məhsul kateqoriyalarından asılı olaraq, mürəkkəb problemləri həll etmək və fantastik məhsullar yaratmaq ehtirasından irəli gələn çox geniş bacarıqlara sahib kiçik bir inkişaf qrupuna qoşula bilərsiniz.

Kiçik bir-biri ilə əlaqəli komandalarda şirkət mədəniyyəti ixtisas dərəcəsi qədər eyni dərəcədə vacib ola bilər. Şirkəti böyütməyə və böyütməyə səy göstərsəniz, ətrafınızdakı istedad sizi əhatə edəcəkdir. Müxtəlif şöbələrdən olan insanlarla danışmaq, boş vaxt layihələri üçün fikir mübadiləsi və həmkarlarınızla xarici tədbirlərdə iştirak etməklə çox şey öyrənəcəksiniz. İnsanlar biliklərini bölüşməkdən zövq alırlar. Yalnız sizinlə paylaşa biləcəkləri bir yer yaratmaq sizin məsuliyyətiniz ola bilər. Bu kontekstdə vacib olan, çətinliklər axtarmağa davam etməməyinizdir. Özünüzə və başqalarına meydan oxumağı dayandırmayın.

Özünüzə meydan verərkən boş vaxtınızda kiçik layihələr hazırlamaq, yeni bir çərçivə və ya həmkarınızın terasda bir pivə içərkən söylədiyi proqramlaşdırma dilindən istifadə etmək kimi hədəflər qoya bilərsiniz.

Başqalarına meydan oxuyarkən daha çox 'fikirli' həmkarlarınız və dostlarınızla aranızda bir iş görməyə cəhd edə bilərsiniz. Onlara yalnız 'pis proqramçılar kodlarını şərh etdiklərini, çünki etdiklərini unutduqlarını' söyləyin. 'Nişanlar vs boşluqlar' haqqında bir müzakirə də nahar fasiləsi üçün gözəl bir müalicədir.

# 4 Təvazökarlıq həmişə imtina edir

Bir çox karyera yollarında insanlar "düzəltməyincə saxta" maskasının arxasında gizlənməyə meyllidirlər. Bu, bir fikir satmağa çalışdığınız bir vəziyyətdə şübhəsiz faydalı ola bilər, ancaq məhdudiyyətlərinizin harada yerləşdiyini daim bilməlisiniz. Mənim bir yaxşı dostum 'həqiqi tanımaq' deməyi sevir. Tələbsiz qərarlar vermək üçün mövqeyinizdən istifadə edirsinizsə, real bacarıqlı insanlar tezliklə fərqinə başlayacaqlar. Digər tərəfdən, 'həqiqi' olsanız və əldə etdiyiniz biliklə dürüstlük və inamla ziddiyyətlərə yaxınlaşsanız, mütləq bacarıqlı həmyaşıdlarınız tərəfindən mükafatlandırılacaqsınız. Bir şeyi başa düşmədiyinizi etiraf etmək yaxşı bir şeydir və çox güman ki, texniki şərtlər və səthi bilik pərdəsi arxasında gizlənməkdən daha tez bir həll yoluna aparacaqsınız.

Özünüzlə həqiqi olsanız və dürüstlük və şəffaflığı bir liderlik vasitəsi kimi istifadə etsəniz, həmyaşıdlarınız sizə verilən mövqeyə yüksəlməyinizə imkan verərkən komandanıza verdiyi müsbət təsirlərə görə sizə hörmət edəcəkdir.

Bu esse o dövrdə bir geliştirici olaraq karyerasında sonrakı yerləri harada keçəcəyini düşünən yaxşı bir dostumla etdiyim bir söhbətdən ilhamlandı. Peşəkar proqram təminatı sənətinin gözəlliyi, müxtəlif istiqamətlərə getməyinizə imkan verir; əsas texnologiya üzrə bir mütəxəssis olmaqdan və bir proqramçı kimi üstün olmaqdan qazanc əldə etmək üçün gözəl məhsullar yaratmaq ətrafdakı proseslərə rəhbərlik və nəzarət etmək.

Göy həddi-hüdudu!