Bu makaleyi artik hezeyan haline gelmis bir durum icin yaziyorum.
Hic programlama bilmiyorum ve PHP'ye baslayacagim, nereden baslayayim ?
Baslamayin !
Bunun bir kac nedeni var. Olumlu nedenlerden baslarsam henuz birsey bilmiyorsaniz
PHP'den once ogrenmeniz gerekenler var. Bunlar kabaca nedir derseniz;
- Ingilizce
Ya ben nasi ogreneyim simdi onu diyip gecenler ogrenenelerin yarisi kadar maas alamayacak. Hep uyduruk yerlerde calisip, uyduruk isler yapacak. Buyuk bir ekibin parcasi olamayacaklar ya da olduklarinda cok gec olacak.
- HTML
Evet ogrenmelisiniz. Alternatif tabi ki var ama ogrenme surecinde isinize yaramaz. Zira bir sure cocuklar gibi yaptiginizi gorerek olcmek ve heyecanlanmak isteyeceksiniz. Alternatifi ne diyenleri duyar gibi oluyor. Duymazdan geliyorum simdilik kafaniz karismasin.
- Jquery
Ogrenin. JS ogrenmeyin bakin jquery ogrenin. Bu sizi eglendirecek sey. Aaa nasil yaptim ya diyeceksiniz. Zor falan da degil. Gayet eglencelidir.
- SQL ve JSON
SQL veritabanlarinin ortak dilidir denilebilir. Oracle sivesi vardir, o ayri. Bazi MySQL komutlari MsSQL'de calismaz o ayri. Onlari da PHP icinde ogreneceginiz ORM kavrami ile asmaya calisacaksiniz. Ama o da bir yerde calismaz olacak o da ayri. Her neyse bunu da ogrenmelisiniz.Bir hayli gicik durumlar olusturabilir. Bunun nedeni aslinda kotu tasarlanmis, normalizasyonu kotu yapilmis data structure yuzundendir. Ornegin bir magaza zincirinde kullanicilardan alinmis odemelerde magaza bilgisi degil kullanici bilgisi kaydedildigini dusunelim. Fakat kullanici magazasini degistirince yaptigi odeme hangi magaza icin gecerli sayilacak ? Hangi magazaya ne zaman gectigini kaydettiniz mi yoksa yeni magazasindaki ilk islem satirini bulup mu ondan oncekileri eski magazasinda sayacaksiniz ? iste bu garip sorunlarla karsilasmamak icin database tasarlamayi iyi bilmeniz gerekecek. Baslarda 100 saniye calisan sorgular yazip sub querylere siginacaksiniz elbet. Sonra temp table ve procedureler ile hayatinizi kurtardiniz sanacaksiniz ama yuk arttiginda yok artik diyip NoSQL ile tanisacaksiniz 10 kat hizli data yazacaksiniz o ayri. Cunku oncesinde muhtemelen key:value sistemlerden redis ile tanisirsiniz. JSON ise bir data tanimlama yapisi. Ayni abisi XML gibi ama SOAP bence Restful karisinda olmek uzere oldugundan ve antika java sistemler disinda yeni bir sistemde girmedigimden JSON diyorum. Ne oldugunu ve bir seyi nasil JSON ile formatlayip depolayacaginizi anlamalisiniz. Bu bilgileri google keyword edineceginize emin oldugumdan goy goy gibi geciyorum. Ha aramadiniz mi ? O zaman sarkidaki gibi aramazsan aramaa yar...
- GIT
Baska kardesleri, yasli abileri de var ama Linux'u yapan abi yapinca piyasayi domine ediyor. Dagitik, gercekten cok dagilabilen yapisi ile calismak icin sart. Evet bunu ogrenmesi hafif zor. Cunku senaryo olusturmak zorundasiniz. Hep ogrenecek yeni bir yani cikar. Fakat temel kisimleri mutlaka ogrenmeli ve github (benim tavsiyem bitbucket) gibi servisleri kullanabilmelisiniz. ( AWS ve Heroku ile simdilik ugrasmayin, hayir hayir onlar neymis diye acip bakmayin sirasi degil. )
- Linux
Eveeet, geldik windowsculuktan kurtulma zamanina. Ya bende MacOS var diyebilirsiniz. Hemen ikinci el fiyati iyi oldugu icin elden cikartip onu hypster kardesleriniz starbucksta ingiliz kis modasi bakabilsin diye satiyorsunuz. Adam gibi klavyeli bir PC tabanli alet aliyorsunuz. Ubuntu kuruyorsunuz. ( tamam debian da olur ama amac o degil su an ubuntu iyi ) Ayrica kusura bakmayin ama terminale hakim olmalisiniz. Dosya kopyalamaktan vs. degil, bir deb cakismasini cozmekten soz ediyorum.
- Composer
Evet. Erken ya ona hemen girmesinler diyebilirsiniz biraz PHP bilenler. Hayir efendim. Artik modern PHP dunyasindayiz. Hatta bunu ozellikle ve asiri vurgulu olarak soyluyorum. Artik muhendisligi cikmasi gereken is, dependency yani bagimlilik isidir. Eger isinizde iyi olacaksaniz bunun en muhim sartlarindan biri github trendingde harcadiginiz vakit ve buna bagli olarak bagimlilik yonetimi olacak. Bunu genis anlamda soyluyorum, sakin bir yerlerden duyduysaniz dependency injection ile karistirmayin. PHP surumlerini, yeri gelince server icin linux kerneli falan yonetirken bile basinize olmadik isler gelmesin diye paket yonetimine ciddi onem verin. PHP ogrenmeden composer yonetimini ogrenin. Ubuntu icinde de guili arac olarak synaptic etkilidir. Diger dpkg gibi terminal managerlari stackoverflow ile halledeceksiniz artik.
- Bazi teorik standartlar
Bunlar fizik kanunlari gibidir. Durduk yere ya da birinin fantazisi olarak ( hi ! uncle bob
) ortaya cikmazlar. Islerin akisi ve programlama dillerinin yapisinin teoride bulustugu noktalardir. Ornegin MVC. O neymis bir dil mi diyebilirsiniz. Sorun degil. Model-view-controller yapisidir. Kodlarinizi hangi dosyalara nasil yayacaginizi falan belirler. Fakat MVC sanildigi uzere en verimli falan yapi degildir. Eleman sayisi, proje boyutu vb. bir cok unsur bir araya geldiginde kullanilmasi mantikli bir hal alir ya da almaz. Ben seperation concern nedir onu da algilamanizdan ciddi sekilde yanayim. Ayrica SOA cok ciddi ( bakin cok ciddi gercekten saka degil ) bir mesela olacak. O yuzden API kavramini cok iyi anlayin. Oauth2 nedir onu bilmek lazim geliyor. Simdi bunlari ogrenmek yillar alir diyebilirsiniz. Evet efendim, alir. Fakat kendini oyalayip, bir sey yaptigini sanmak ise bir omur alir ve farketmezsiniz.
Su an icin yoruldum. Hala elastic search ve capifony dokumanlarini okumam lazim. Hayir okudum ama bizim data yapisini ben kurmadigim icin go to bashi ayri oynuyor gercekten. O yuzden devamini siz bunlari ogrendikten sonra ( saka saka 2 yil sonra yazarmisim gercekten ogrenip hani devami diye gelirmissiniz
) yani yarin yazarim diye umuyorum. Yarin moralinizi de bozucam zaten hahahah... Haydi iyi aksamlar...