Bu yazıyı yazma motivasyonum; Yazılımcı olmaya karar verdiğimizde veya bir iş arayışındayken bilgimiz, öğrendiklerimiz konusunda sorguluyoruz. Ancak bu süreçte hem gelişirken kaçırdığımız bir çok nokta oluyor. Kendi bilgim ve deneyimim dahilinde herkesin işine yarayabileceğine inandığım maddeleri yazacağım.
Aşağıda yazdıklarım tamamiyle kendi deneyimlerimle ilgilidir, tamamı doğru ve kesinlikle uygulayın iddiasında bulunmuyorum. Bu benim için kendime bir not.
Videoya değil dökümana yatırım yapın
Genç yaşlarımdan itibaren yazılım tutkum var, oyun sunucularında Lua ile geliştirmeye başladığım bu sürevenimi Front-end geliştirici olarak devam ettiriyorum. Bu süreçte sayısız hata yapsam da bunlardan ilki olduğuna inandığım video kurslardı. Özellikle günümüzde içerik skalası daha da arttı. Elbette bunun artı yönleri var ancak bahsedeceğim sık yapılan ve doğru sanılan bir yanlış.
Yeni başlayan birisi hem öğrendiği teknolojinin tamamının o kurs içerisinde barındığını sanıyor ya da her birini izlemeliyim fazla bilgi göz çıkarmar mentalitesinde oluyor, bunlardan ikisi de yanlış. Çünkü kurslar ( özellikle Türkçe içeriklerin bir çoğu ) size yüzeysel bilgileri barındırır bunun ardından sizlerin pratik yapması ve derinlemesine araştırması gerekir. Ayrıca yazılım öğrenmek bir yabancı dil öğrenmek gibi olduğundan ancak pratikle gelişebilirsiniz. Her ne kadar video izlerseniz izleyin eğer bunu pratikte ilerletmezseniz uzun bir süre olsa dahi gelişim gösteremezsiniz.
Bu yüzden yapmanız gereken döküman okuma alışkanlığı edinmek ve araştırma kabiliyetinizi güçlendirmek. Sayısız kurs izleyen biri olarak, çok azında döküman okumanın öneminden bahsedildiğini ve teşvik edildiğini gördüm. Araştırma bizim için bir refleks haline gelmeli. Ardından gelişiminizi kendinizin de fark edeceğine eminim. Bunların dışında github üzerinden açık kaynak projelere göz atmayı, eğer yapabiliyorsanız geliştirmeyi ihmal etmeyin.
Dil Seçimi
Eğer yeni öğrenme sürecinizde sık sık twitter veya benzeri platformları kullanıyorsanız elbette "PHP Öldü" gibi temelinde şaka yatan ama kiminin ciddiye alıp bunun üzerine kullandığı teknolojiyi değiştirdiğini gözlemleyebilirsiniz. Bunlar uzun zamandır yapılan ve dönem dönem gerek etkileşim gerekte eğlencesine yazılan paylaşımlar. Her yıl Jetbrains Survey adında bir rapor paylaşılıyor içerisinden en çok kullanılan dilden tutun her şeyi inceleyebilirsiniz.
Yazılım öğrenme sürecinizin başındayken herkes sizi bir noktaya çekecektir. Örneğin scripting tarafını saymazsak yazılım geliştirmeye ilk C# ile başladım ve gerçekten memnundum. Esnek ve OOP konusunda başarılı bir dil olduğundan sıfırdan öğrenme sürecinde size bir çok avantajı olacaktır. Paragrafın başında bahsettiğim gibi, siz bir teknolojiyi seçip başladığınızda farklı farklı ve çoğunlukla alakasız sebeplerle kendi kullandıkları teknolojileri önereceklerdir lütfen itibar etmeyin. Çünkü farklılıkları olsa da temelde her dil benzer bir araçtır eğer biri üzerinden iyi bir seviyeye gelirseniz sonrasında yeni diller üzerinde gelişmek ve anlamak daha da kolaylaşacaktır.
C# ile başladım ama ben frontend geliştirici olacaktım neden JavaScript öğrenerek başlamadım diye de sorabilirsiniz. Başlangıç diliniz tamamiyle opsiyoneldir burada size kalmış. Ayrıca bir dil ile başladığınızda tüm kariyerinizi onun üzerinden götürmenize gerek yok, diller ve alanlar arasında geçiş tahmin ettiğiniz kadar zor bir eylem değil. O yüzden ana odağınızı kullandığını teknolojide gelişmekte tutun.
Bu süreçlerin ardından alanınızı öncesinde de sonrasında da belirleyebilirsiniz, artık her yerde alanlara göre kullanılan belli başlı diller yazıyor bunları araştırmak size kalmış. Seçtikten sonra o alan dahilinde araştırma yapıp kullanılan teknolojileri, o alanda iyi insanları takip etmenizi öneririm. Çünkü o insanlar size rastgele sosyal medyada gezerken kullandığınız teknolojide ufak ama çok etkili taktikler sunabilir ve cidden işinize yarayabilir.
Feyz Almak
Ulaşılabilir ve mesleki deneyimi çok iyi olan bir çok insanlar mevcut. Yazılım sadece kod yazmaktan ibaret değil. Yazılım işinize başladıktan sonra siz de fark edeceksiniz; Problem çözme, stres yönetimi, iletişim, uyumluluk ve bir çok soft skills sizlerden beklenecektir. O yüzden bu konularda da tecrübeli insanların deneyimlerinden yararlanmayı, yaptıklarını, hatalarını ve onların da takip ettiklerini incelemeyi ihmal etmeyin.
Açık Olmak
İletişime, geri bildirime açık olun. Her birimiz insanız hata yapabiliriz ve bilmediğimiz noktalar olabilir. Yapıcı eleştirileri dikkate alın ve açıklarınızı kapatmaya çalışın hatalarınızdan öğrenin ve soru sormaktan çekinmeyin. Bu konuda duygusal davranıp rencide olmuş hissetmeyin lütfen.
Kendi Kendine Öğren
ilk maddede bahsettiğim gibi videolar tek başına yeterli ve uzun vadeli bir seçenek değil döküman okumayı bilmek ve kendimizi bir konuda nasıl eğitebiliriz bilmemiz gerekiyor bu yüzden self learning konusu üzerine araştırıp kendi öğrenme metodlarınızı oluşturabilirsiniz.
İngilizce
Bu konu eminim ki en sık duyduğunuz konulardan bir tanesidir. Nedeni ise bariz, yazılım her yerinde işinize yarayacak. Kimi yazılımcı ben ingilizce bilmeden buralara geldim opsiyonel bir konu dese de kesinlikle katılmıyorum. Tabii ki Adem İlter'in dediği gibi kalite evrenseldir ancak her türlü bir çok eksikliğe maruz kalırsınız;
Yukarıda eminim ki eklemeyi unuttuğum çok değerli maddeler de mevcuttur. Yazılım sürecimizde her konuda ingilizce ile karşı karşıya geleceğiz ve bundan kaçmak değil çözmek gerekli. O yüzden yazılımı öğrenmeyi düşünüyorsanız, öğreniyorsanız veya çalışıyor ve ingilizce konusunda eksikseniz kapatmak için gayret göstermeyi ihmal etmeyin. Pratik mükemmelleştirir.
Yukarıda paylaştıklarım benim sürecimden aklıma gelenlerdi ve buradan kendime hala dersler çıkarıyorum. Kendime notu sizlerle de paylaşmak istedim umarım faydasını görürsünüz.