Proqramlaşdırmanı öyrənməyin ilk ilində AI-dan ümumiyyətlə istifadə etmirdim - əsl developerin problemi özü həll etməli olduğuna inanırdım, ona görə hər bug üçün ChatGPT-nin bir neçə saniyəsi əvəzinə Stack Overflow-da təxminən 10 saat vaxt sərf edirdim. O il məndə AI-nın hələ də əvəz edə bilmədiyi debugging və araşdırma bacarığını formalaşdırdı. Elə buna görə də indi AI-dan aktiv, amma ehtiyatla istifadə edirəm - 4 qaydaya əməl edərək.
TL;DR
- AI olmadan keçirdiyim debugging ili indi AI-dan düzgün istifadə etməyimin təməlini qoydu.
- AI öz arxitektura üslubunda yazır - hər dəyişikliyi kodbazana qoşulmadan əvvəl yoxla.
- AI-a hər gün işə saldığın komanda yoldaşı kimi yanaş: ortaq göstərişlər və təkrar istifadə olunan skilllər tək dəfəlik promptlardan daha vacibdir.
AI-nın sayılmadığına qərar verdiyim il
Fullstack öyrənməyə başlayanda ətrafımdakı hər kəsin yanında açıq ChatGPT tabı vardı. Hər bug, hər "bunu necə etmək olar" sualı birbaşa çata gedirdi. Bundan zəhləm gedirdi. O vaxt həqiqətən inanırdım: əgər kod yalnız AI ilə yaza bilirsənsə, developer və ya mühəndis adlanmağa layiq deyilsən. Əsl mühəndis bugu özü düzəldir və kodu AI-dan daha yaxşı yazır.
Ona görə ilk il AI-a əl vurmadım. Stack Overflow, sənədləşmə, gecə saat birdə Google-un çıxardığı istənilən forum mövzusu. Bəzi buglar 10 saat aparırdı. Fiksin özü çətin olduğu üçün yox - nə axtardığımı bilmədiyim üçün, və bütün məsələ də elə bunu tapmaqda idi.
AI olmadan keçən il məni əslində nəyə öyrətdi?
AI-dan qaçmağın həmişəlik doğru yol olduğuna yox. Bu il məndə əslində bunları formalaşdırdı:
- Error mesajını düzgün oxumaq, onu hardasa yapışdırıb cavab gözləmək əvəzinə.
- Əvvəlcə fərziyyə qurub sonra yoxlamaq vərdişini.
- Təxmin etmək əvəzinə araşdırmaq səbrini.
Məhz bu bacarıqlar indi AI-dan yaxşı istifadə etməyimə imkan verir - onun cavabının səhv olduğunu bilirəm, çünki düzgün cavabın necə göründüyünü bilirəm. Bu gün başlayanların çoxu məhz bunu keçir. Claude Code limiti bitəndə iş günü də bitir. İş qalmadığı üçün yox - AI qələmi tutmadan onu etmək bacarığı qalmadığı üçün.
Bu, AI-dan qaçmaq demək deyil. Əksinə - məhz burda AI özünü həqiqətən göstərir. Testlər, lokalizasiya, adaptiv dizayn, təkrarlanan və məntiqlə bağlı olmayan hər şey - indi bunların hamısını AI-a həvalə edirəm, və bu, əl ilə etməkdən həqiqətən sürətlidir. Aşağıdakı 4 qayda avtomatlaşdırmadan qaçmaq haqqında deyil. Onlar işin hansı hissəsini rahat həvalə edə biləcəyin, hansının isə hələ də sənin olduğunu bilməklə bağlıdır.
1-ci qayda: Claude Code-u açmadan əvvəl özün düzəlt
Bu, ən az pozduğum qaydadır - qəsdən. AI-a buga toxunmağa icazə verməzdən əvvəl özümə real cəhd verirəm:
- Terminaldakı xətanı və stack trace-i oxuyuram (Node və ya tsc çıxışı).
- Aydın yerləri yoxlayıram.
- Fərziyyə qururam.
Əksər hallarda bu, məni yolun 80%-inə özü çatdırır, AI isə sadəcə təsdiqləyir və ya qalanını bitirir. Bunun göründüyündən daha vacib olmasının səbəbi: dəfələrlə görmüşəm ki, AI bugu "düzəldir", amma iki fayl kənarda başqa bir şeyi səssizcə sındırır - çünki təsvir etdiyim simptoma optimallaşdırıb, ətrafdakı sistemə yox. Əgər həmin sistemin mental modelini özün qurmamısansa, ikinci sınığı prodakşna düşənə qədər görməyəcəksən.
AI-nın kodu niyə heç vaxt sənin kodunla tam üst-üstə düşmür?
Hər developerin öz kod imzası var: dəyişənləri necə adlandırırsan, qovluqları necə strukturlaşdırırsan, state-i necə idarə edirsən, logikanı necə bölürsən. AI-nın da öz imzası var, və bu sənin imzan deyil. Model və versiyadan asılı olaraq, sərt məhdudlaşdırmasan, öz arxitekturasına meyl edir, bu default isə az hallarda az öncə qoşulduğu kodbaza ilə üst-üstə düşür.
Bunu ən aydın öz işimdə vibe-coded saytları SEO və AI görünürlüyü üçün yoxlayanda görürəm - dizayn tez-tez həqiqətən yaxşı olur, amma alt kod və axtarış görünürlüyü adətən zəifdir: semantik struktur yoxdur, metadata zəifdir - heç kimin yoxlamadığı şeylər, çünki heç kim yoxlamırdı, sadəcə allow düyməsini basırdılar. Bununla bağlı bir intizam probleminə commit mesajı auditimdə daha ətraflı toxunmuşdum - eyni səbəb, fərqli simptom: nəticə daimi olmazdan əvvəl heç kim onu yoxlamadı.
3-cü qayda: AI-a axtarış sistemi kimi yox, yeni komanda yoldaşı kimi yanaş
Claude və Copilot-u paralel işlədirəm, əvvəllər bu, iki ayrı göstərişlər dəsti saxlamaq demək idi:
- Əvvəl:
CLAUDE.mdvəcopilot-instructions.md, dublikat - hər dəfə birini yeniləyib digərini unutduqda bir-birindən uzaqlaşan. - İndi:
.claudevə.githubhər ikisi kopya əvəzinə simlink vasitəsilə eyni skills qovluğuna istinad edir - tək mənbə.
Hər gün istifadə etdiyim tək skill - update-llms və create-llms cütlüyüdür. Bunlar hər commitdən sonra llms tipli kontekst faylını aktual saxlayır, beləliklə mən - ya da başqa biri - repo-nu pull edəndə onun AI-ı layihənin məntiqini sıfırdan çıxarmaq əvəzinə artıq anlayır. Təkcə bu, araşdırmaya sərf olunan tokenlərin real miqdarını azaldır, və AI artıq əvvəlcədən malik olmalı olduğu kontekst üzərində təxmin etmədikdə cavablar nəzərəçarpacaq dərəcədə yaxşılaşır.
4-cü qayda: anlamadığın kodu əslində necə yoxlayırsan?
Ondan özünü paraphrase etməsini istəyirsən. "Bu kodu izah et" yox - buna cavab adətən eyni dərəcədə çətin oxunan texniki təkrar divarı olur. AI-dan logikanı sadə sözlərlə, sanki həmin faylı heç görməmiş komanda yoldaşına izah edirmiş kimi izah etməsini istə. Əgər öz nəticəsini həqiqətən anladığın bir şeyə sadələşdirə bilmirsə, bu, kodu qəbul etməzdən əvvəl - sonra yox - yavaşlamaq siqnalıdır.
Vərdiş kiçikdir, amma məhz o, "kodu qəbul etdim" ilə "nə deploy etdiyimi anladım" arasındakı fərqdir.
Əsl test AI istifadə edib-etməməyin deyil
Lazım olsa, onsuz da bacarıb-bacarmayacağındır. Növbəti dəfə AI-nın təklifini qəbul etməzdən əvvəl beş saniyə dayan və özündən soruş: bunu, sadəcə daha yavaş, özün yaza biləcək qədər anlayırsanmı? Cavab "yox"dursa, bu, kodu rədd etmək üçün səbəb deyil.
Bu, prodakşna qoymazdan əvvəl yavaşlamaq üçün səbəbdir - çünki commit etdikdən sonra o artıq sənindir, AI-nın yox.
AI sənin bug düzəldə bilər. Amma onun niyə orada olduğunu sənə öyrədə bilməz.
Ogtay Iskandarov
Dizayner və fullstack tərtibatçı, Bakıda tək nəfərlik klauzzdcode studiyasını aparıram. 2023-cü ildən frilansdayam: məhsulları Figma-dan proda qədər özüm çıxarıram, prodla təmasdan sağ çıxanları isə yazıya salıram.