emrahday

  • 116
  • 0
  • 0
  • 0
  • 3 ay önce

kod yazmaya başlayacaklara tavsiyeler

profesyonel anlamda kod yazan insanlara disaridan bakanlar isin ic yuzunu goremezler. disaridan bakildiginda bu kisiler su sekilde gozukur; kafalarinda bir algoritma tasarliyorlar, ve sonra ellerini klavyeye koyuyorlar ve hayal ettikleri algoritmayi koda dokuyorlar. bu buyuk bir yanilgidir cunku bu isin en zevkli tarafi ama cok kucuk bir tarafidir.

peki profesyonel dunyada kod yazan bir kisinin bir gunu nasil gecer, kod yazmak icin ne gibi aktiviteler yapar? bunu saat saat anlatayim.

- ise giderken 1 saat kafasinda bir problemle ilgili algoritma kurar, sonra kafasindaki soru isaretlerini gidermek icin cesitli sitelere bakar ve bir plan olusturur. bu noktada cok iyi niyetlidir ve kafasindakini uygulayabilecegini zanneder. bu bu isin en zevkli dakikalarindan biridir. planlamak, ve hayal kurmak. bu gelistiricinin bir gunde yaklasik 1 saatini alir.

- ise vardiginda maillerine bakar, cesitli bug raporlari, toplanti istekleri ve birkac geyik muhabbeti vardir mail kutusunda. sonra toplanti istekleri kabul edilir, gunun bir saat plani cikartilir. bug raporlarina ise korkarak goz gezdirilir, sonra "oh benin yazdigim kod ile ilgiil degilmis" denilip kapatilir. eger kendi yazidgi kod ile ilgili ise "acaba ne desem de sucu baska birine, veya bir 3. parti yazilma atayim" diye dusunulur. bu surec gelistiricinin yaklasik yarim saatini alir.

- sonra toplantilar baslar. toplanti masasinda egosu tavanda yoneticiler, hicbirsey yapmayip bos bos konusan bazi calisanlar, onu da yapalim bunu da yapalim diye nerdeyse olasi herseyi nedensizce isteyen musteri temsilcileri, ve her bug sonucu panik yapip gerilim yaratan tipler vardir. bu toplantilar o kadar cok zaman alir ki bir gunde yaklasik 3 saat boyle toplantilar icin gecer.

- dikkat edin oglen oldu ve hala kod yazamadi bu bahsettigimiz gelistirici. ve hala kod yazamaz cunku toplantida birkac yeni gorev verilmistir gelistiriciye ve "acilen" (genelde hersey acillen istenir) o gorev ve isteklerin incelenmesi gerekir, bir problem var ise bunlar bildirilmeli, eksiklikler tamamlanmali, ve ne kadar zamanda o isin yapilacagi tahmin edilmelidir. bu da yaklasik gelistiricinin 1 saatini alir.

- bir onceki incelemede kafaya birkac sorun takilmistir kod ile ilgili, diger gelistiriciler ile bunlar konusulur, sonra birkac stackoverflow incelemesi yapilir ki olasi problemler onceden kestirilsin ki isin kac gunde yapilacagi tahmin edilsin. bir yandan da o is icin ne gibi kutuphaneler kullanilacak onlar konsunda tahminler yapilir ve birkac aday kutuphane incelenir. bu da yaklasik 1 saat surer.

- tamam inceleme isi bittiyse kod yazayim artik dersin ama bu inceleme sonucunda cikan bazi alt gorevler olur, onlari sisteme girersin. aciklamalarini yazarsin. bu her girilen gorev ilerde onune tekrar gelecek gorevlerdir. bu da yaklasik 1 saat surer.

- ogleden sorna olmus, aksam yaklasmaktadir. sonra bir bakarsin mail, slack veya skype uzerinden birkac mesaj gelmistir. genelde yonetici yazar "sabah dedigim seyi halledebildin mi ?" yazmistir. once durup dusunursun sabah ne demisti diye. sonra bu islerden dolayi o ise hic bakamadigin aklina gelir ve "su bu isler girdi araya bakamadim dersin". yoneticinin tripli bir sekilde "acilen o isi halledelim" cevabini alir ve acilen probleme bir bakarsin. belki bir iki satir kod yazman gerekir ama genelde bu tarz isler birilerinin beceremedigi islerin nasil yapilacagi ile ilgili problemlerdir. bu da 1 saat surdu.

- artik aksam yaklasmistir, is askadasin baska bir gelistirici seni durter ve "dun yazdigin kod calismadi" der. genelde yaptigin seyde entegrasyon sirasinda bir uyumsuzluk olmustur. "keske biraz zaman olsa da su entegrason veya test yazilimini kursam ve calisir hale getirsem de bu tarz sorunlarla ugrasmasam" diye dusunurken arkadasina "daha gectigimiz gunun problemlerini halledemedik, ne zaman bu gunun islerine baslayacaz" dersin. ve iki kisi kodlari uyumlu hale getirmek icin ugrasirsin. artik kod yaziyoruz ama ne yaziyoruz, "surasini soyle degistirelim, burasini boyle konifigurasyon yapalim da senin kodun ile benimki uyumlu calissin" sabah hayal edilen o dunyayi kurtaracak, cok zekice tasarladigimizi zannettigimiz algoritmadan eser yok. bu is de 1 saatimizi aldi.

- artik yavas yavas sirketteki sekreter, insan kaynaklari, satis ekibi islerini bitirmenin gururu ile "iyi aksamlar, yarin gorusuruz" demeye baslar. sen de evi arayayim dersin ve "aksam yemegine beni beklemeyin, acil bir is var veya bir problem cikti gec cikacam" dersin. evet artik biraz daha zamanin vardir. yavas yavas ofis de sessizlesmistir. "hem gec cikayim da sehir trafigi biraz dagilsin, daha cabuk giderim eve" dersin ve mutlu olursun. sonra bilgisayarin basina oturur birkac satir kod yazarsin. o an o dille ilk "hello world" uygulamasi yazdigin an aklina gelir, gozlerin dolar. son yarim saattir kod yaziyorsundur mutlu olursun.

- kod yazanlar iyi bilir, iyi kod unit testleri yazilmis koddur. ve yine iyi bilinir ki 1 birim kod icin 10 birim unit test yazilir. unit test yazacaksin da neye gore yazacaksin, sonra donersin isteklerin listelendigi dokuman. birkac problem ya hic deginilmemistir, ya yanlis yazilmistir, ya da istenen sey yapilmasi problemlere yol acar. birkac yere mail atar bu problemleri bildirirsin, birkac "ticket" altina yorum yazarsin. kendin de birkac yere not alirsin ve tum bu eksiklere ragmen birkac unit test yazarsin. 2 saat de bu surdu. artik yorulmaya basladin.

- unit testler yazdigin o super zeki algoritmada birkac problem bulmustur. artik "debug" zamani, ve kodunda uygun yere "breakpoint" koyar baslarsin. bu noktada gelistirici disaridan kod yaziyormus gibi degil de ekrandaki pikselleri sayiyormus gibi gozukur. gozler sonuna kadar acik, bir parmak klavyede uygun "fonksiyon tusunda". debug isi o kadar kolay mi, her sey "asenkron" yuruyor, ama "breakpoint" ise o anda kodu durdurdugu icin "senkron" bir is. o an toplantida cok bilmis bos konusanin "lutfen o feature asenkron calissin lutfen" dedigi aklina gelir ve sen icinden "iyi de niye" dedigini dusunursun. sonra saatine bakarsin 2 saat daha gemisitr.

- sonra artik eve gitme zamani gelmistir, kod tam yazilmamistir, testler gecmiyordur ama en azindan testleri yazmissindir. artik eve gidebilirisin. yolda dusunursun aslinda en iyisi soyle guzel tatil kasabasinda domates yetistirmektir. "ne guzel" dersin "ne bug var ne de egosu tavanda yonetici", sonra domateste de bug oldugu aklina gelir ve "o bug bu bug degil" der, organik tarimi siktir edip tarim ilacini boca edersin ve temizlersin buglari. daha sonra eve gitmeden su bufeden yiyecek birseyler alayim dersin, "aslinda domates degil de en iyisi islek bir yerde bufe acmak" dersin.

yani ozetle "bu isi yap ama hobi olsun diye yap". kendi hayallerini gerceklestirmek icin yap, baskalarini hayallerini ve egosunu tatmin etmek icin yapma. isin o yuzu cok zevkli degil.

iste sirf bu nedenle her gelistiricinin calistigi bir yer yaninda icindeki bu duyguyu, kod yazma zevkini tatmin etmek icin uzerinde calistigi bir hafta sonu projesi vardir.

ha bu arada bu gelistirici kahramanimiz 14 saat calismis, ama sanki hicbir sey yapmamis gibi. turkiyede isler bu sekilde yurur, mesai normaldir. avrupali asla 8 saatten fazla calismaz, o yuzden avrupada isler de bitmez ya da yavas ilerler zaten. iste bu yuzden turkiyede "dunyanin en buyuk" havalimani insaatlari tum bu "yuregi en buyuk" mesai kahramanlari sayesinde birkac senede bitirilirken ornegin almaya da berlin-brandenburg hava limani yillardan beri bitirilemiyor. almanya bizi degil bizim emektar insanimizi kiskaniyor. o yuzden de parasi neyse verip ulkesinde istihdam ediyor.

devamını okuyayım »