- Programlamaya başlamak için süper bir bilgisayara ihtiyacınız yok. Stabil çalışan bir şekilde kodunuzu yazabildiğiniz herhangi bir laptop ya da desktop işinizi görecektir. Bu yola çıkmak için vakit kaybetmeyin.
- Google’lama en önemli yetenek. Ulaşabildiğiniz müddetçe her türlü bilgi mevcut. Neredeyse hemen her şey ücretsiz, yeter ki o bilginin nerede olduğunu bulabilecek kadar arama motorlarını iyi kullanın.
- Matematik dehası olmanız gerekmiyor. Size kimin ne söylediğine takılmayın. Programlamaya başlamak için bir matematik gurusu olmanız gerekmiyor ya da yüksek IQ’lu bir dahi. Gerçekte bilgisayar bilimi yetenekleri ile temel operasyonların nasıl ve ne şekilde olduğunu bilmeniz kafi.
- Versiyon nedir ve nasıl kontrol edilmeli, BİLMEK ZORUNDASINIZ. Sanıyorum son dönemde en önemli araçlardan biri ya da en önemlisi versiyon kontrol araçları. Her şeyden önce başka yazılımcılar ile ortak bir projede çalışma imkanı vermekte ve kodunuzu yedeklemekte.
- Bitirmek için mükemmel olmasını beklemeyin! İnsanlar sizi neyi ne kadar iyi yaptığınız ile değil ne kadar çok işi bitirdiğiniz ile tartacaktır. Bir işi kusursuz yapmak asla yapmamanın frapan söylem şeklidir. Size sadece tanrıların bildiği bir sır vereyim : tanıştığınız en bilgili uzmanlar var ya , evet onlar da bir zamanlar sizin gibi acemiydiler. Zamanla yaptığı işi keskinleştiren kişi profesyonel olur.
- İngilizce ‘de “Work Hard” diye bir deyim vardır. Türkçe ‘ye çevirince biraz anlam kayması oluyor o yüzden İngilizce’sini yazdım ama Türkçe devam edeyim ; yoğun çalışmak sizi hedeflerinize yaklaştırır, evet ama akıllıca çalışmak sizin görevlerinizi daha hızlı tamamlamanızı sağlar. İkisinin bileşimi ile hata yapamazsınız. Size 5000 imajın ebatlarının ayarlanması istendiğinde yaklaşık bir haftanızı harcamak zorundasınız, oysa bu işlemi bir script ile otonom yapmak için harcayacağınız 5-6 saat akıllıca bir yaklaşım olacaktır.
- İşinizi kolaylaştıracak araçlar edinin. Bu araçların hayatınızı kolaylaştıracak gereçler olduğunu anlamaya çalışın. Bu araçlar işlerinizi daha çabuk bitirmenizi sağlayacaktır. Eğer yapılmışını bulamazsanız kendi araçlarınızı yaratmalısınız.(Evet yazılımcı olmanın en büyük nimetlerinden biri kendi araçlarınızı yaratabilme imkanınızın olması.)
- “Tek bir tamamlanmış proje > Tamamlanmamış 1000 Proje” ‘den daha değerlidir. Daha önce de belirttiğim gibi hayatınızdaki kişiler sizi yaptıklarınız ile tartacak ve değerlendirecek , yapacaklarınız ve ya gelecek ile ilgili planlarınız veya hedefleriniz ile değerlendirmeyecektir. Bir de kimse sizin kodunuzu alıp direkt çalıştırmayacaktır , bu yüzden sizin tanıyabilmeleri ve yapabileceklerinizi anlayabilmeleri için bazı projelerinizi görmelerini sağlamalısınız.
- 10 yıl sonra nerede olacağınızı bugün yaptıklarınız belirleyecek. Gerçeklik sübjektiftir, şu anda olduğunuz yer, son 5-10 yıl içerisinde yaptığınız işler ve tercihlerinizin sebebidir. Hayatınızı değiştirmek için çalışırsanız gurur duyacağınız bir yerde olma ihtimaliniz hiçbir şey yapmadan olacağınız yerden çok daha yüksek olacaktır.
- Kendi kendine programlamayı öğrenen yazılımcılar hata bulmada ustadırlar. Kendi kendine öğrenenlerin en büyük problemi, bir sorun ile karşılaştıklarında genelde destek olacak birilerini o anda yanı başlarında bulamamalarıdır. Bu sebepten dolayı sayısız deneme yanılma yinelemeleri yoluyla sorunlarını çözmek zorunda kalırlar, bu yüzden de bugları temizleme ve bulma konusunda gerçek tecrübeye sahip olurlar.
- Doğru cevaba ihtiyacın yok, sadece daha az yanlış … Evet pek bir felsefi oldu ama insanlar başarısız olmaktan o kadar korkarlar ki, hiçbir şeyi denemezler, deneseler bile başaramayacaklarını fikrine kapılırlar, ancak denemezlerse kesinlikle başaramayacaklarını fark etmezler. Bu yüzden başarısız olmaktan değil de başarısızlıktan öğrenmemenin gerçek başarısızlık olduğunu aklınızdan çıkarmamalısınız.
- Hayat bir maraton kısa mesafe yani sprint değil. O yüzden yazılım işinin de bu maratonun bir parçası olduğunu ve sürekli değişim içinde olduğunu kabul etmelisiniz ve her daim yeni şeyler öğrenmeye açık olmalısınız. Ancak aynı maraton koşusunda olduğu gibi dengeli ilerlemelisiniz , haftada 100 saat bir çalışma temposunda çok çabuk tükenebilir, yarışta geride kalabilirsiniz.
- Tekerleği yeniden icat etmeyin. İşlerinizi çözmek için var ise o kütüphaneyi kullanmanızda bir sakınca yok, eğer zaten maksadınız benzer bir kütüphane yazmak değilse :D
- Eğitim videoları veya siteleri size sahip olmanız gereken en önemli yeteneği göstermeyecektir veya sağlamayacaktır. Yazılım işinde en önemli yetenek Problem-çözme yeteneğidir. Sadece deneme ve yanılma ile öğrenilebilir. Böyle bir yeteneğin videosunu ne kimse kaydetmez ne de paylaşır; paylaşsa bile çok ilginizi çekmeyecektir yazılımın son haline odaklanmışken.
- Hiçbir teknoloji mükemmel ya da en iyisi değildir. Bu dünyada görüyoruz ki her şeyin avantajları ve dezavantajları mevcut. En azından başka bir açıdan bakarsak her tercihin bir başka teknolojinin nimetlerinden vazgeçmek olduğunu görebiliyoruz. Bu yüzden hangi teknoloji diye mücadele ederek zamanınızı boşa harcamayın çünkü X teknolojisi Y teknolojisinden bazı alanlarda üstündür ve bunun tersi de geçerlidir. Sadece hızlı bir şekilde tercihinizi yapın ve minimal zaman kaybı ile bu süreci aşın.
- Bir proje esasında asla tamamen bitmez. Bir makalede fark ettim ki Pareto prensipleri gereği (Orantısız sonuçlar yasası). 20% lik bir çaba 80% bir üretim olarak neticelenir. Kendi %20 lik durumunuza odaklanın !
- Yanıltıcı ve sizi dolduruşa getirecek pozitif ya da negatif bilgiler her zaman olacaktır ve gerçek olma ihtimali de yüksek olabilir, siz yine de temkinle yaklaşın. Her zaman yeniler, iyiler, daha iyiler olacak ve olmaya da devam edecek. Etrafımızı bu hype teknolojiler marketin ve trendlerin ne tarafa gidiyor anlamanıza yardımcı olacaktır, ama bu yeni icatların veya teknolojilerin daha önceden de olduğu gibi başarasız olma ihtimalide bulunmaya devam edecek; bu yüzden hani tabiri caiz ise bir avuç tuz ile almakta fayda var. Azıcık kuşkucu olmanın zararı olmaz.
- “Ne öğrenmemelisiniz”‘i öğrenin. Maalesef her şeyi öğrenmeniz mümkün değil. Benim de en büyük hayalim Matriks filminde Neo’nun kafasının içerisine bilginin yüklenmesi gibi öğrenmek ama bugün böyle bir teknoloji hala mümkün değil. Size en uygun doğru teknolojiyi seçmek için sağ duyulu olun. Yüzebileceğiniz suyun derinliğini ölçmek için her şeyi deneyin ama sizin için en uygun derinlikte yüzün.
- Alçak gönüllülük en güçlü silahınız. İçeride başarınızla övünün ve gurur duyun ama dışarıya karşı her zaman alçak gönüllü olun. Kendiniz ile övünerek ve övünmenin ağırlığı ile çok uzağa gidemezsiniz. Bırakın sizi başkaları takdir etsin.
- Tutarlılık: Ortalama girdilerle olağanüstü çıktılar elde etmek için gerekli olan sihir. Hiç kimse ama hiç kimse günde 20 saat çalışarak profesyonel olmuyor ama her gün 1 saat 20 gün boyunca çalışarak bunu başarmak mümkün. Evet beyninizi bilgi ile beslemelisiniz ama beyninizin de bu bilgiyi sindirmek için zamana ihtiyacı olduğunu gözden kaçırmayın.
Yukarıda sıraladığım kısa başlıklar hem kendi tecrübelerim, hem de bu konuda tecrübelerini paylaşan sektörün önde gelen gurularının paylaştıkları fikirler. Size çok önemli gizli bilgiler paylaşmadım açıkçası! Ancak yolunuzu kaybettiyseniz, yola daha çıkamadıysanız ya da benzer bir ruh ve düşünce halinde sıkışıp kaldıysanız ışık olmak için paylaşımlarım. Siz de bir şekilde birilerine fayda sağlamak istiyorsanız bildikleriniz, okuduklarınızı ve öğrendiklerinizi paylaşmalısınız, paylaşın.