CodeGym /Kurslar /Frontend SELF AZ /Proqramçı yolu

Proqramçı yolu

Frontend SELF AZ
Səviyyə , Dərs
Mövcuddur

6.1 Karyera pillələri

Karyera pillələri

Proqramçılar da öz səriştələrinə əsasən müxtəlif dərəcələrə malikdirlər. Bir zamanlar belə anlayışlar istifadə olunurdu: «koder», «proqramçı» və «haker», amma indi hamısı Amerikan İT-dən gələn adlara keçib.

Developer üçün 6 əsas dərəcə mövcuddur:

  1. Intern Software Engineer
  2. Junior Software Engineer
  3. Middle Software Engineer
  4. Senior Software Engineer
  5. Tech Lead
  6. Principal Software Engineer

Ölkədən ölkəyə bəzi parametrlər fərqli ola bilər, amma əsas mənası belədir:

Intern Software Engineer — bu, təcrübəçilərdir. Onlar proqramlaşdırmanı öyrənmə prosesindədirlər, nə kommersiya təcrübəsinə, nə də böyük layihələrdə iştirak təcrübəsinə malik deyillər. Adətən daha təcrübəli həmkarlarının nəzarəti altında işləyirlər. Onların əsas vəzifəsi işdə kod bazasını və proqram təminatı hazırlama əsaslarını öyrənməkdir, sadə kod tapşırıqlarını yerinə yetirir və test proseslərində iştirak edirlər.

Junior Software Engineer — artıq proqramçıdırlar, amma ciddi kommersiya təcrübəsi yoxdur və ya bir ildən az təcrübəyə malikdirlər. Daha təcrübəli developerların rəhbərliyi altında işləyirlər, layihələrin hissələrini həyata keçirirlər və code-review proseslərində iştirak edirlər. Bu mərhələ karyeranın texniki bacarıqların və layihə vəzifələrinin dərin şəkildə başa düşülməsinə yönəlib.

Middle Software Engineer (və ya sadəcə Software Engineer): texniki qərarların qəbulu üzrə daha çox müstəqilliyə malikdirlər, layihənin əhəmiyyətli hissələrinə cavabdehdirlər, daha az təcrübəli həmkarlarına mentorluğa başlayırlar və arxitektura müzakirələrində daha fəal iştirak edirlər. Adətən 2–5 il praktik təcrübəyə malik olurlar.

Senior Software Engineer: kompleks sistemlərin dizaynı və realizasiyasına cavabdehdirlər, komanda daxilində mentorluq və rəhbərlik təmin edirlər, layihələrin strateji planlaşdırılmasında iştirak edir və tez-tez komandanı müştərilərlə və digər maraqlı tərəflərlə ünsiyyətdə təmsil edirlər. Adətən 5–10 il təcrübəyə malikdirlər.

TechLead: texniki lider olaraq layihənin son texniki nəticəsinə cavabdehdir, inkişaf prosesinə rəhbərlik edir, ən çətin vəzifələri həll edir, texniki standartlara riayət olunmasını təmin edir və developerların fəaliyyətini koordinasiya edir.

Principal Software Engineer: ən yüksək texniki səviyyədə işləyir, şirkətin texniki strategiyasının hazırlanmasında, innovativ həllərin inkişafında və texniki standartların müəyyən edilməsində tez-tez iştirak edir, texniki liderlər üçün əsas mentor rolunu oynayır və mürəkkəb texniki məsələlərdə əsas ekspert olur.

Maraqlıdır

Böyük şirkətlərdə əlavə rollar və alt rollar mövcud ola bilər. Məsələn, Google-da belə rollar var:

  • Staff Software Engineer (L6): öz şöbəsinin texniki siyasətinə əhəmiyyətli təsir göstərir.
  • Senior Staff Software Engineer (L7): genişmiqyaslı və mürəkkəb layihələr üzərində işləyir, şirkətdə texnoloji inkişafın strateji istiqamətini müəyyən edir.

6.2 Lego məhsulları

Çoxdan, 1975-ci ildə, Pascal dilinin yaradıcısı Niklaus Wirth bir kitab yazdı: «Alqoritmlər + Məlumat strukturları = Proqramlar». O vaxtdan bəri çox şey dəyişib.

Müasir proqram məhsulu 10 il əvvəlki ilə heç əlaqəsi yoxdur, 20 il əvvəllə isə heç müzakirəyə dəyməz. 1975-ci ildən danışmağa dəyməz: 50 il keçib.

Müasir proqramçı artıq proqramları əl ilə yazmır. O, daha çox hazır hissələrdən (kitabxanalardan) yığır və bu hissələrin qarşılıqlı əlaqəsini təmin edən kod yazır.

Müasir proqram məhsulları onlarla və yüzlərlə proqramdan ibarət ola bilər, bəziləri istifadəçinin kompüterində, mobil cihazlarında işləyir, amma böyük hissəsi — data-mərkəzlərdəki serverlərdə işləyir.

Bu proqramların bir çoxu, məsələn, veb-server və ya verilənlər bazası artıq yazılmışdır. Onları sadəcə düzgün konfiqurasiya etmək lazımdır, ki, lazım olduğu kimi işləsinlər. Amma zaman keçdikcə konfiqurasiya prosesi o qədər çətinləşə bilər ki, praktik olaraq bu da proqramlaşdırma olur. 🤦‍♂️

Proqramçılar daim özləri ilə mübarizə aparır. Fərqli proqramlarda oxşar kodu yenidən yazmaq əvəzinə, öz tələblərinə uyğun konfiqurasiya edilə bilən kitabxanalar yazırlar və onları lazım olan bütün yerlərə daxil edirlər.

Son 20 ildə proqramçılar çox sayda kitabxana, freymvork və açıq repo yazıblar. Onların sayı milyonlarla ölçülür. İndi sıfırdan bütün kodu yazmaq pis ton hesab edilir. Bunun əvəzinə, proqramı keyfiyyətli və sınaqdan keçmiş həllərdən — kitabxanalar, freymvorklar, paketlər və modullardan yığmaq lazımdır.

Amma bu yanaşma da artıq köhnəlir. Son 10 ilin trendi — buludlara köçməkdir — böyük data-mərkəzlər, proqramlarınıza lazım olan hər şeyi təmin edir. Verilənlər bazası istəyirsiniz? Bizdə yüzlərlə var. Nadir unikal veb-server istəyirsiniz? Məndə var. Pullarınıza görə hər cür kapriz.

6.3 «Mən mühəndisəm» (c) Elon Musk

Orbitdə raket

Artıq mürəkkəb və cansıxıcı şeylər yazmaq lazım deyil. İndi, əgər sənə hansısa əla və mürəkkəb funksionallıq lazımdırsa, bunun üçün həmişə bir kitabxana var. Sənə sadəcə a) onun mövcud olduğunu bilmək, b) lazımi kitabxananı tapmaq (keyfiyyəti fərqli olan onlarla analoqu ola bilər), c) onu layihənə inteqrasiya etməyi öyrənmək lazımdır.

Bu yanaşma ilə iş daha maraqlı oldu. İndi 10 dəfə daha sürətlə məhsula yeni funksionallıq əlavə edə bilərsən. 30 il öncə əgər sənə web-server lazım idisə, onu özün yazmalı idin. 20 il əvvəl — satın almaq, quraşdırmaq və konfiqurasiya etmək lazım idi. İndi isə — sadəcə “cloud” admin panelinə daxil olmaq və onu aktivləşdirmək.

Bu, məsələn, Frontend populyarlığının səbəblərindən biridir. İndi mürəkkəb backend-i JavaScript ilə Node.js istifadə edərək yazmaq olar ya da sadəcə “cloud” data mərkəzlərində müxtəlif servisləri aktivləşdirmək. Frontend artıq çox frontend-in məhdudiyyətlərinə bağlı deyil və tam gücü ilə işlədi. Onun populyarlığına baxaraq, öz funksiyasını mükəmməl şəkildə yerinə yetirdiyini demək olar.

Və, həmçinin, Frontend-dən olan peşə Frontend Fullstack Software Engineer olaraq transformasiya olub. Müasir Frontend-developer artıq verilənlər bazasının necə işlədiyini anlamalıdır ki, onunla düzgün işləyə bilsin. HTML & JavaScript, NginX haqqında biliklərə malik olmalıdır ki, frontend-in backend-lə əlaqəsini qura bilsin. Docker də lazımdır — bu artıq sənayenin standartıdır.

Müasir development ümumiyyətlə 20 il əvvəlkindən çox fərqlənir. Müasir proqramçı vaxtının 50%-dən çoxunu kod yazmağa sərf etmir. Qalan vaxtında sənədləri oxuyur, yeni texnologiyaları öyrənir və mitinqlərdə (iclaslarda) iştirak edir. Təkbaşına işləyən proqramçılar keçmişdə qalıb.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION