Yaxşı bir kiçik proqram mühəndisi olmaq necədir

Təbrik edirik! Sən bunu etdin! Kiçik bir proqram mühəndisi oldunuz. Eyni mükafatı bir il əvvəl AdHawk-a qoşulduğumda aldım və bu olduqca uğurlu oldu. Keçmişimdən öyrəndiklərimi ötürmək üçün necə də böyük bir proqram mühəndisi ola biləcəyinizə dair tövsiyələrin və tövsiyələrin siyahısını hazırladım.

Komandam (sağdayam) Məhsul Menecerimiz Joe ilə (ortada) - AdHawk Baş Qərargahı 2018

Yüksək olun!

Kodlaşdırma ilə qarşılaşsanız, özünüzü çox oturmasına icazə verməyin. Çözüm tapmaqda gücləndirmə üzərində çalışdığınızdan əmin olun. Ancaq çoxdan boş qalmısınızsa, ortaq inkişaf etdirici ilə əlaqə saxlayın. Bir həmkarı ilə cütləşərkən düşünə biləcəyiniz qədər sual verin. Axmaq suallar yoxdur və sizin üçün aydınlaşdıran şeylər hər iki tərəfə də fayda gətirir. Səsli olmamaq böyümə və inkişaf performansınızın azalmasına səbəb ola bilər.

Bir rəhbər tapın

Xüsusi komandanız üçün daxili və ya xarici bir mentor tapın. Bu mentorla görüşəndə ​​SMART hədəfləri (spesifik, ölçülə bilən, əldə edilə bilən, real və vaxtında) bu girişlərə gətirin və nəticələri mentorunuza bildirin.

Ayrıca, girişlərinizlə səhvləri bildirməyə çalışın. Öyrənmək üçün ən güclü vasitələrdən biri də baxışdır. Yaşadığınız hər hansı bir çətinliyi müzakirə edin və rəhbərinizdən bu təcrübələrdən necə inkişaf edə biləcəyinizi soruşun.

Bilinməyənə girməyə cəsarət edin

Məlumatınız xaricində olan işləri yerinə yetirmək üçün basın. Çətinliklərin öhdəsindən gəlmək təcrübə səviyyənizi artırır və həll edilməsi lazım olan yeni və bəzən ümumi problemlərlə tanışlığınızı artırır.

Öyrəndiklərinizi geri öyrədin

Dönmək və öyrəndiklərinizi öyrətmək üçün bir çox yol var. Sənədlər yaza, video təlimat yarada və ya blog yazısı yaza bilərsiniz. Hansı mühiti seçsəniz, geri öyrətmə hərəkəti təhsil böyümənizi gücləndirəcəkdir. Bir şey haqqında dəqiq bir məlumat əldə etməlisinizsə, bir problemi təhlil etməli və hər hansı bir məlumat boşluğunu doldurmalısınız.

İş qrafiki yaradın

İnkişaf edənlər kimi bir çox hərəkətli hissə və məsuliyyət var. Hər zaman yeni bir rol yaza, bir səhv düzəldə bilər, bir həmkarının kodunu nəzərdən keçirə, yeni bir texnologiya öyrənə, iclasda iştirak edə bilər və ya başqa bir sıra tapşırıqları yerinə yetirə bilər. Müəyyən bir iş həftəsi ərzində hər bir tapşırıq növü üçün vaxt təyin edən bir cədvəl yaratmaq, hər yeni məsuliyyət sahəsində irəliləyiş əldə etməyinizi təmin edir.

Mənim tipik günüm

  1. Çekmə istəklərini nəzərdən keçirin (yarım saatdan bir saata)
  2. Bir inkişaf kartı üzərində işləyin (qalxana qədər, təxminən 2-3 saat)
  3. Standup (yarım saat)
  4. Nahar vaxtı)
  5. İnkişaf kartları üzərində işləməyə davam edin
  6. Davam edən çəkmə tələbinin təkanlanması və / və ya yeni çəkilmə istəklərinin nəzərdən keçirilməsi

Görüşlər baş tutacaq və bütün bu vəzifələr arasında olacaqdır.

Bir test sürücüsü götürməyə məcbur edin

TDD, testlərə əsaslanan inkişaf deməkdir. Bir sözlə, TDD, əvvəlcə bir funksiyanın və ya mövcud olmayan qarşılıqlı fəaliyyətini yoxlayan testlər yazdığınız deməkdir. Bu, tapşırığınızın məqsədini və əhatə dairəsini aydın şəkildə müəyyənləşdirən çox vacib bir məlumat dövrü yaradır. Bu yaxınlarda yazdığım bir test nümunəsi belə ola bilər:

Bu kodu çalıştırdığınızda ilk səhv variant_path'ın olmamasıdır. İnkişaf hekayəniz artıq qurulub. Kiçik bir uşaq olaraq, Test İdarəetmə İnkişafı ilə müəyyən bir rola yol tapa bilərəm. Bu yol daha sonra mümkün olan həll yolundakı boşluqları doldurmağa kömək etmək üçün məni səhv mesajları marşrutu ilə yönləndirir.

Qoşmaq üçün basın

Kiçik yaşda inkişaf etmək üçün daha yüksək səviyyəli inkişaf etdiricilərlə birləşməkdən daha sürətli bir yol yoxdur. Yaşlı və kiçik cütlüklərin birlikdə çalışması nəticəsində yaradılan mühit hər kəsin uğur qazanması üçün tələb olunan davranışı gücləndirir. Yaşlılar fikirlərini və qərarlarını daha ümumi və qısa bir şəkildə çatdırmalıdırlar. Bütün mühəndislərin həll tapma kontekstində daha asan kod yaza biləcəyinə inanıram. Ancaq qərarlarını izah etmək və ya təsdiqləmək istənildikdə, yenidən işləmə məqsədi və potensialını həqiqətən anlamağa başlayırlar.

Digər tərəfdən, Juniors daha yüksək səviyyəli qərarlar verə bilər və qarşılıqlı qarşılıqlı əlaqələri təcrübələrinə tez bir zamanda daxil edə bilərlər. Bu yolla bəzi atalar sözləri ilə atılan daşları atlaya bilərlər: B. Bir testin necə yaradılacağına və ya səhvlərin daha uyğun şəkildə aparılmasına dair hərtərəfli rəhbərlik. Bu, düzgün vərdişlər qurur və tətbiqin sağlamlığını uzun müddətə yaxşılaşdırır.

Ən əsası, bütün iştirakçılar üçün geliştirici təcrübəsi də əhəmiyyətli dərəcədə yaxşılaşır. Köhnə bir deyim ağıla gəlir: "Tək başına sürətli gedə bilərsiniz, amma birlikdə uzağa gedə bilərik". Zıxa düşməkdən zehni və ya bilişsel yorğunluq konsepsiyası heç də bu qədər yaygındır.

"Sürücüdən" "naviqator" a (fikir yazan və ya yazmadan danışan) bir neçə fikir və ya əksinə rolları atarsa ​​və ya dəyişdirə bilərsə, bu idrak bloklarını sürətləndirə və inkişaf sürətini artıra bilər. Cütləşmə üçün bir xərc (ödənişli saat) olsa da, geliştiricinin təcrübəsindən gələn böyümə və dəyər ilk investisiyanı xeyli üstələyir.

Alətlərinizi kəskinləşdirin

Mühəndisliyin üfüqdə olduğunu bilməmişdən çox əvvəl, orta məktəbdə bir sıra qrafika dizayn kurslarına getdim. Bu sinif üçün etdiyimiz ilk sınaq klaviatura qısayolları idi. Niyə rəng nəzəriyyəsini və ya maska ​​alətindən düzgün istifadə etməyi öyrənmirik? Müəllimlərim alətlərinizi necə istifadə edəcəyinizi öyrənmədən həqiqətən sənətkar ola bilməyəcəyinizi bildiyindəndir. O dərs ömrümün sonuna qədər yanımda qaldı. Sadə, lakin çox güclü bir mesaj idi.

Bir mühəndis olaraq ağlınız ən güclü vasitələrdən biridir və hər keçən gün daha da güclənir. Lakin inkişaf mühitiniz səmərəli şəkildə qurulmayıbsa, qovluq quruluşlarında büdrəmək, ümumi qısayolların yerinə imleci istifadə etmək və yavaş yazma sürətləri həllərinizin koda çevrilməsinə ciddi təsir göstərə bilər.

Mövcud bir ovuc alət:

  • IDE (VSCode əsas qısayolları) qısa yollarını bilmək
  • Zsh - qabığınızın qarşılıqlı təsirlərini optimallaşdırmağa imkan verən bir Unix qabığı (avtomatik tamamlama əmrləri, əmrlərin dəyişdirilməsi və s.)
  • Bir pəncərə meneceri quraşdırın (Spectacle mənim üstünlük verdiyi tətbiqdir)

Mənbələrimə təsirli bir şəkildə girişim sayısız dəqiqə saxladı (vaxt keçdikcə əlavə olunur). Nəticə etibarilə, vaxtımın çoxunu ətrafımla mübarizə aparmaqdan çox həll yollarını axtarmağa sərf etdim.

Media mediası

Tarixdəki ən uğurlu insanların çoxu iş həftəsi boyunca oxumağa vaxt sərf etməyi tövsiyə edir. Elon Musk, Bill Gates və Oprah bu fəlsəfənin, 5 saatlıq qaydanın tərəfdarlarından yalnız bir neçəsidir. Qayda budur ki, bir insan ümumi uğurlarını artırmaq istəyirsə, həftədə ən azı 5 saat yeni bir şey öyrənməyə sərf etməlidir.

Qərarınıza etibar edərdim! Bir proqram mühəndisi kimi məlumatlarınızı genişləndirmək üçün istifadə edə biləcəyiniz sonsuz sayda blog, podcast, məqalə, konfrans təqdimatı, dərs və s. Kiçik yaşındakı səyahətiniz zamanı özünüzü tanımadığınız terminlər və anlayışlar dənizinə qərq edəcəksiniz. Bu təcrübədən qorxma. Əslində irəliləməyi təklif edərdim.

Ötən il ərzində istifadə etdiyim bəzi mənbələr:

  • Bike Shed Podcast - Thoughtbot-dakı insanlardan proqram inkişaf podkastı (başınızın üstündə görünən, lakin uzun müddət eşitməyiniz üçün dəyərli olan yüksək səviyyəli məzmun)
  • Egghead.io - Çox qısa və yaxşı biçimlendirilmiş video dərsləri ilə əla platformadır
  • Exercism.io - Bir çox populyar dillərin və çərçivələrin tədrisi üçün TDD mərkəzli platformadır

Bir neçə saat bu və bəlkə də digər vasitələrlə öyrənməyə sərf etmək böyümənizi optimallaşdıracaq və ola biləcəyiniz ən yaxşı inkişaf etdirici olmağa yönəldəcəkdir.

Davam edin və inkişaf edin

Səfəriniz münasibətilə təbrik edirəm. Təhlükəsiz olmayan bir şeydir. Proqrama bənzər vərdişlər və müvəffəqiyyət bir gecədə qurulmur. Bu tövsiyələr və çox çalışqanlıqla, ola biləcəyiniz ən yaxşı kiçik proqram mühəndisi olacağınıza əminəm.