CodeGym /Kurslar /C# SELF /Proqramçıların Yolu

Proqramçıların Yolu

C# SELF
Səviyyə , Dərs
Mövcuddur

1. Karyera Pilləsi

Proqramçılar da kvalifikasiya əsasında mərhələlərə bölünürlər. Bir vaxtlar "kodçu", "proqramçı" və "haker" kimi anlayışlar istifadə olunurdu, amma indi hamısı Amerikanın IT sənayesindən gələn ingilis dilində adlara keçiblər.

Proqramçı üçün əsas 6 mərhələ var:

  • Intern Software Engineer
  • Junior Software Engineer
  • Middle Software Engineer
  • Senior Software Engineer
  • TechLead
  • Principal Software Engineer

Ölkədən və hətta şirkətdən asılı olaraq bəzi parametrlər fərqli ola bilər, amma əsas mahiyyət aşağıdakı kimidir:

  • 🌱 Intern Software Engineer — təcrübəsiz stajyorlar. Onlar proqramlaşdırma öyrənmə prosesindədirlər, heç bir kommersiya təcrübəsi və böyük layihələrdə iştirak təcrübəsi yoxdur. Adətən daha təcrübəli həmkarların nəzarətində işləyirlər. Əsas vəzifələri kod bazasını və proqram təminatı inkişafının əsaslarını öyrənmək, sadə kod yazmaq və testdə iştirak etməkdir.
  • 🐣 Junior Software Engineer — artıq proqramçılar, amma ciddi kommersiya təcrübəsi olmayan və ya bir ildən az təcrübəsi olan. Daha təcrübəli inkişaf etdiricilərin rəhbərliyi altında işləyirlər, layihələrin hissələrini həyata keçirirlər və kod-ревью dövrlərində iştirak edirlər. Bu mərhələ texniki bacarıqları və layihə tapşırıqlarını daha dərindən anlamağa yönəlib.
  • 🦾 Middle Software Engineer (və ya sadəcə Software Engineer): daha çox müstəqil texniki qərarlar qəbul edir, layihənin əhəmiyyətli hissələrindən məsul olur, daha az təcrübəli həmkarlarına mentorluq edir və memarlıq müzakirələrində fəal iştirak edir. Adətən 2–5 il praktiki təcrübəyə malikdirlər.
  • 🧑‍🔬 Senior Software Engineer: mürəkkəb sistemlərin dizaynı və həyata keçirilməsindən məsuldur, komanda daxilində mentorluq və rəhbərlik edir, layihələrin strateji planlaşdırılmasında iştirak edir və tez-tez müştərilərlə və digər maraqlı tərəflərlə əlaqə saxlayır. Adətən 5–10 il təcrübəsi olur.
  • 🧠 TechLead: layihənin son texniki nəticəsindən məsuldur, inkişafı idarə edir, ən çətin tapşırıqları həll edir, texniki standartlara riayət olunmasını təmin edir və inkişaf etdiricilərin fəaliyyətini koordine edir.
  • 🏆 Principal Software Engineer: ən yüksək texniki səviyyədə işləyir, şirkətin texniki strategiyasını formalaşdırır, innovativ həllər hazırlayır və texniki standartların müəyyən olunmasında əsas rol oynayır, texniki liderlər üçün baş mentor olur və mürəkkəb texniki məsələlərdə əsas mütəxəssisdir.

Bu maraqlıdır. Böyük şirkətlərdə əlavə rollar və alt-rollar ola bilər. Məsələn, Google-də belə rollar mövcuddur:

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

2. Lego Məhsulları

Bir vaxtlar (1975-ci ildə) Niklaus Wirth, Pascal dilinin yaradıcısı, "Algoritmlər + Data Structures = Programs" adlı kitab yazıb. O vaxtdan çox şey dəyişib. Müasir proqram təminatı 10 il əvvəlkindən fərqlidir və 20 il əvvəlkindən də. 1975-ci il haqqında danışmağa ehtiyac yoxdur — artıq 50 ildən çox vaxt keçib ⏳

Müasir proqramçı artıq proqramları əl ilə yazmır. Əksinə, onları hazır hissələrdən (library-lərdən) yığır və bu hissələrin qarşılıqlı əlaqəsini təmin edən kod yazır🧩. Müasir proqram təminatları onlarla və yüzlərlə proqramdan ibarət ola bilər. Bəziləri istifadəçinin kompüterində və ya mobil cihazlarında işləyir, böyük əksəriyyəti isə data-центrlərdə yerləşən serverlərdə işləyir.

Bu proqramların çoxu artıq yazılıb. Onları düzgün konfiqurasiya etmək lazımdır, ki, düzgün işləsinlər. Zamanla bu konfiqurasiya prosesi o qədər mürəkkəbləşə bilər ki, faktiki olaraq proqramlaşdırmaya çevrilir. 🤦‍♂️

Proqramçılar daim özləri ilə mübarizə aparırlar. Eyni və ya oxşar kodu müxtəlif proqramlarda yenidən yazmaq əvəzinə, onlar kitabxanalar yazırlar, bunları öz ehtiyaclarına uyğun konfiqurasiya edə bilirlər və sonra onları bütün lazım olan yerlərdə istifadə edirlər.

Son 20 ildə proqramçılar milyonlarla library, framework və açıq repository yazıblar. Onlar milyonlarla, və indi bütün kodu sıfırdan yazmaq artıq düzgün deyil. Əvəzində, keyfiyyətli və sınaqdan keçmiş həllərdən — library, framework, paket və modulardan ibarət proqram toplamaq lazımdır 🧱

Lakin belə yanaşma artıq köhnəlib. Son 10 ilin tendensiyası — buludlara keçid, böyük data-центrlər, hansı ki, proqramlarınıza lazım olan hər şeyi təmin edir. Məsələn, bazalar? Minlərlə variant mövcuddur. Unikal web-server istəyirsiniz? Var və onlar da mövcuddur! Hər istəyinizə görə, pul qarşılığında.

3. «Mən — mühəndis» © İlon Mask

img

İndi artıq mürəkkəb və maraqsız şeyləri özünüz yazmağa ehtiyac yoxdur. Əgər hansısa funksionallığa ehtiyacınız varsa — artıq hazır library və framework-lər mövcuddur. Sizin vəzifəniz: a) onların mövcudluğundan xəbərdar olmaq, b) uyğun variant tapmaq (bir çox analoq mövcuddur, fərqli keyfiyyət və xüsusiyyətlərlə), c) onları layihənizə necə inteqrasiya etmək lazım olduğunu anlamaq 🎓

Bundan işiniz daha da maraqlı olur. İndi siz 10 dəfə daha sürətlə yeni funksionallıq əlavə edə bilərsiniz. 30 il əvvəl, əgər web-server lazım olsa, onu sıfırdan yazırdınız. 20 il əvvəl — alıb quraşdırır və konfiqurasiya edirdiniz. İndi isə — sadəcə Azure və ya AWS bulud portalına daxil olub lazım olan xidməti aktivləşdirirsiniz 🌐

Bu, həqiqətən də C# dilinin populyarlıq səbəblərindən biridir. Bu dil böyük həllər yazmaq üçün yaxşıdır, həm də müxtəlif komponentləri "yapışdırmaq" üçün — .NET vasitəsilə demək olar ki, hər şeylə inteqrasiya etmək mümkündür, məsələn, bazalar, mikrosistemlər, REST API-lər, message queues və bulud xidmətləri.

Bu səbəbdən, C#/.NET developer peşəsi artıq Fullstack .NET Software Engineer kimi dəyişib. Müasir proqramçı bazanın necə işlədiyini (SQL Server, PostgreSQL, MongoDB və s.) yaxşı bilməlidir ki, düzgün qarşılıqlı əlaqə qura bilsin. Frontend-in (HTML, CSS, JavaScript/TypeScript, Blazor) necə qurulduğunu anlamalıdır ki, backend ilə C# arasında məlumat mübadiləsini tənzimləsin. Və əlbəttə, Docker artıq standartdır — bu artıq sənayenin tələbi. 🐳

Müasir proqramlaşdırma ümumilikdə 20 il əvvəlkindən çox fərqlidir. Proqramçı kodun ən çox 50%-ni yazır — qalan vaxt sənədləşməni oxumağa, yeni texnologiyaları öyrənməyə, layihə planlaşdırmağa və komanda ilə görüşlərə sərf olunur. Tək proqramçılar artıq çox nadir hallarda olur.

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