Şimdi öncelikle yazıyı iki bölüme ayırmak istiyorum, birincisi web "programlama" yani back-end diye tabir ettiğimiz arka planda yapılan işlemler kısmı ; örneğin veritabanı işlemleri , siteye kayıt olma, ürün satın alma , pos işlemleri , veritabanına eklenen değerleri şifreleme vs vs..

İkinci kısım ise web "tasarım" yani front-end kısmı. Front-end (tasarım) ise temel olarak html ile kalıbı yapılan bir siteye css ile şekil vermek, jquery ile bunu daha da göze hitap eden ve dinamik hale getirilen kısım.

Web Programlama

Arkadaşlar web programlamada server taraflı kullanılan diller olarak bildiğiniz üzere php , asp.net var. Fakat server tarafı bunlardan ibaret değil, Java. Evet arkadaşlar bir çok kişinin atladığı java nın web programlamada yeri çok büyüktür. Zaten javanın tasarımın süreçlerine baktığımızda gerek taşınabilirliği vs.. olsun www çıkışının denk gelmesiyle internette yeri büyüktür.

"Php mi asp.net mi ?" sorusuna verilebilecek cevap şudur : "Sen hangisini istiyorsan".

Arkadaşlar php bildiğiniz gibi açık kaynaklı , yüzbinlerce geliştiricisi olan, sürüsüyle framework ü olan , ücretsiz , genelde linux sunucularda ve veritabanı olarak genel olarak mysql kullanılan bir dildir.

Asp.net ise arkadasında Microsoft'un olduğu, .net framework e bağlı bir teknolojidir. Yanında bir çok kolaylık getiren IDE (tümleşik geliştirme ortamı) yani Visual Studio ile geliştirme yapabileceğiniz , entity framework gibi mükemmel bir ORM (object relational mapping) aracı olan son yıllarda popülerlik kazanmış mvc teknolojisi olan bir yapıdır. Mvc ile veritabanı modellemede seçenekler sunulmuş Database first, code first, model first gibi. Bunlar şimdilik ayrıntılar.
Mvc nin ne olduğunu anlatmayacağım belki başka bir yazıda anlatırım , isteyenler google amcaya müracaat edebilir.

Php veya asp.net seçerken cevap vermeniz gereken sorular şunlardır ;

1-) Ben bu işi kariyer olarak seçecek miyim , yoksa hobi amaçlı geliştirme mi yapacağım

2-) Açık kaynak mı kullanacağım , .net taraflı mı

3-) Türkiye şartlarını mı göz önüne alacağım dünyaya mı açılacağım

4-) Yabancı dil (ingilzce) seviyem ne kadar yüksek

5-) Türkiye'de kurumsal bir şirkette çalışacak mıyım

6-) Bu iş için ne kadar vakit ayırabilirim

7-) Daha önce programlama geçmişim var mı ? Varsa hangi dil, c# - vb.net mi c/c++ mı yoksa java mı ?

Sorularımız özetle bunlar, şimdi bunları cevaplandırmak gerekirse ;

1-) Cevabınız evet ben kariyer yapmayı düşünüyorum ise size asp.net mvc öneririm, sebebini bir sonraki soruların cevabında açıklayacağım. Hayır ben web programlama öğrenmek hobi amaçlı kendi sitelerimi yapmak belkide netten birilerine freelancer olarak çalışmak istiyorum derseniz size php öğrenmenizi öneririm.

2-) Sorunun cevabı belli, eğer açık kaynak kullancaksanız php .net taraflı çalışacaksanız asp.net

3-) Can alıcı sorulardan birisi daha, arkadaşlar malesef mi desem bilemedim ama ülkemizde sektöre .net neredeyse hakim durumda 1. sorunun cevabının devamı olarak, Türkiye şartlarında kurumsal firmalar .net taraflı çalışmalar yapar (veyahut java). Sebebi ise şudur, php açık kaynak bir platformdur, siz kurumsal bir şirket olarak bir sorunla karşılaştığınızda karşınızda bir muhattabınızı bulamazsınız, ama .Net tarafında Microsoft'un müşterisi olmuş olursunuz.

4-) Eğer yabancı diliniz zayıfsa size php öneririm, Türkçe kaynak ve örnekler sizi belirli bir seviyeye ***ürecek kadar yeterli. Eğer yabancı dilim çok iyidir yabancı makaleleri , asp.net sitesindeki dersleri takip edebilirim , yabancı yardımlaşma forumlarında sorunumu anlatıp çözümleri anlayabilirim diyorsanız asp.net öğrenmek sizi fazla zorlamayacaktır.

5-) 3. sorunun cevabında anlattığım gibi ülkemizde kurumsal geliştirmeler .net veya java taraflı yapılır. Çünkü birinin arkasında Microsoft diğerinde Oracle vardır, siz bunların teknolojisini kurumsal olarak kullanmaya başladığınızda bu firmaların müşterisi olursunuz. Türkiye'de liselerden üniversitelere kadar hep .net taraflı eğitim verilir. Java öğretildiği nadirdir.

6-) Arkadaşlar bu iş için ayıracağınız vakit kısıtlıysa , yeni başlayan biri iseniz , php sizin için daha uygun gelecektir. Çünkü hazır bir çok örnek basit geliştirme yapısı ile sizi başlangıçta fazla zorlamayacaktır. Fakat vaktim var azimliyimdir çalışır öğrenirim diyorsanız asp.net te öğrenmek zamanla çocuk oyuncağı olacaktır.

7-) Belki de en önemli sorulardan birisi bu soru. Şöyle bir durum var, eğer daha önceden c#-vb.net ile geliştirme yaptıysanız bu dilleri kullandıysanız asp.net sizin için uygundur. Çünkü asp.net arka tarafta bu diller ile yazılır, üstüne bazı yeni ufak ayrıntılar eklenir.
Eğer c/c++ çalıştıysanız php sizin için uygundur, php nin yazımı c ye çok benzer. Fonksiyon isimleri de öyle. Zaten php nin c tabanlı bir dil olduğunu söylemeye gerek duymuyorum.
Gelelim javaya eğer daha önceden java ile geliştirme yaptıysanız , öyle ufak bir hello world den bahsetmiyorum gerçekten javayı kullandıysanız java ee üzerine yoğunlaşmanız sizin için daha iyi olacaktır.

Arkadaşlar size web programlamada dil seçiminde nasıl bir yol izlemeniz gerektiğini elimden geldiğince anlatmaya çalıştım. Aslında olay bunlarla sınırlı değil. Bu bahsettiklerimiz en temel seviye şeyler. Web programlama öğrenirken client taraflı geliştirmeyi de öğrenmek zorunda kalıyorsunuz ister istemez, javascript ile.

Hatta javascript o kadar yürüdü ki artık server tarafında bile kullanılıyor , bkz:node.js. Node.js ile bildiğim kadarıyla nosql kullanarak server taraflı işlemler yapılıyor . Ben daha önce kullanmadım o yüzden ayrıntılı olarak anlatamayacağım sizlere. Zaten önce yönelmeniz gereken şeyler yukarıda yazdıklarımdır.

Bu arada dikkat ettiyseniz anlatırken java üzerinde durmaya çalıştım, sanki piyasada sadece php asp.net var gibi hareket ediliyor. Aksine javanın yeri çok büyük, bugün girip kariyer.nette java iş ilanlarını aratırsanız ne kadar ihtiyaç olduğunu göreceksiniz. Fakat benim kanaatim öğrenmesi php ve asp.net ten daha zahmetli bunu söylemek isterim. Dili öğrenmesinden bahsetmiyorum javanın yapısı syntaxı zaten c# ile çok çok benzer. İşin içine girince öğrenilmesi gereken frameworkler ormler veritabanları vs vs java tarafında biraz daha karışık duruyor.

Şimdi birazda tasarım kısmından bahsedelim.

Web Tasarım

Şu soruyla çok karşılaşıyorum özellikle yardım merkezindeki arkadaşlar diyor ki "site yapmak için html bilmek gerekiyor mu ?" evet arkadaşlar html gerekiyor. Html sitenin yapı taşıdır. Çok yaygın bir örnek vardır bunun için, html bir binanın kolonlarıdır iç yapısıdır, css ise onun üzerine şekil ve renk katılmış halidir.

Web tasarımdan yazılım kısmı gibi uzun uzun bahsetmeyeceğim zaten söylenecek fazla bir şey yok . Eğer ben tasarım yapacağım derseniz öğrenmeniz gerekenler html,css,jquery olacaktır.
He tabiki photoshop kullanarak sitenin pds sini çıkartabilirsiniz. Veya çalışmanızı dreamweaver üzerinden gerçekleştirebilirsiniz. Ama ben dw kullanmayı sevmem. Hem hazırcılığa alıştırıyor hemde ısınamadım nedense.

Tasarım kısmında bahsedilmesi gereken, css tarafında özellikle, hazır frameworklerdir. Örneğin bootstrap. Peki ne işe yarar bu frameworkler, siz html ile kalıbı oluşturursunuz daha sonra html elemanlarına class larını giydirirsiniz, bu elemanlar için tek tek css style ları yazmazsınız da daha önceden yapılmışları kullanırsınız. Bootstrap güzeldir severim bir kaç defa kullandım işimi gördü ve baya hızlı geliştirme yapmanızı sağlıyor. Özellikle daha çok back-end taraflı çalışıp hızlıca görsel olarak yeterli bir şeyler arıyorsanız css ile tek tek uğraşmak istemiyorsanız bu tarz frameworklere yönelebilirsiniz. Tabiki kendi bootstrap ile aynı anda kendi css özelliklerinizide katabilirsiniz.




aLinti..