Evet her yazılımcı mecrasında, hocam bilmem ne yaptım orucum bozulur mu benzerliğindeki sorudur bu soru. Mutlaka sorulur ve mutlaka bir iki senedir if yazmaya başlamış birileri bu soruları soranlara saçma öğütler verir. Pythoncular ‘Python öğrenmelisin’ der. .Net yazanlar ‘C# öğren’ der hatta arada ‘HTML öğrenerek başla’ diyenler bile çıkar.
Aslında yazılım öğrenmenin hem bunlarla alakası yok hem de hepsi ile alakası var gibi felsefi bir yanıt verip ne demek istediğimi yazının devamında açıklayacağım.
Öncelikle bu işi hobi olarak yapıyorsanız biraz işsizsiniz ya da bolca zamanınız var demektir. Ama iş için öğrenmek istiyorsanız işte o zaman nasıl bir işe bulaştığınızı kısaca açıklamam gerek. Yazılım işi eğitim hayatını bitirince çalışmaya başlayacağınız diğer işler gibi bir iş değil maalesef. Her ay bir framework çıkıyor ve her sene bir dil popüler oluyor. Yani sen bugün Python öğrenebilirsin ya da C# hatta bu yazıyı yazarken en popüler backend dili Golang mesela. Ama bu sürekli değişiyor hatta sen bu dili tam kavradım derken başka bir şey gelecek. Şimdi başta söylediğim cümlenin doğrulamasına gelmiş oluyoruz. Aslında ne öğrenerek başladığınız önemli değil ama bunları öğrenirken yazılım ve prensipleri ile ilgili ne öğrendiğiniz çok daha önemli.
Bu işi öğrenmek için ilk öğrenilmesi gereken şey sorgulamak arkadaşlar. Öğrendiğimiz her bir kod satırının ve kullandığınız her bir methodun ne işe yaradığını sorgulamalısınız. Hocam ben sorgulamam chatgpt ye yazarım o yapar diyorsanız tabi ki yapabilirsiniz ama chatgpt nin sapıttığı ve demek istediğinizi anlamadığı o kadar yer var ki işte burada sizin sorgulayarak öğrendikleriniz sizi kurtarabilecekken sorgulamadığınızda gidip birilerine yazar cevap gelsin diye beklersiniz.
Yani bu iş için ilk olarak sorgulamayı, yani her şeyi sorgulamayı ve hiçbir şeyi kopyalayıp ne yaptığını bilmeden yapıştırmamayı öncelikle prensip edinmelisiniz. Yapıştırdığımız kodun ne işe yaradığını biliyorsanız zaten size bir şey diyen yok siz yeniden yazmamak için tembellik yapıyorsunuz ya da zaman kazanıyorsunuz bu iyi bir şey.
İkinci olarak araştırma yöntemleri çok büyük önem arz ediyor. Yani şöyle bir işi yapmaya başlarken bununla ilgili en çok kaynak bulabileceğiniz teknoloji ile yapmalısınız. Yani golang popüler diye gidip onda ben bunu yazayım derseniz ve yazılım konusunda yeterince tecrübeniz yok ise karşılaştığınız hataları çözemeyeceksiniz demektir.
Diğer öncelikli öğrenilecek şey Matematik ve temel elektronik arkadaşlar. Evet belki saçma gelebilir ama bir değişkenin tükettiği kaynağı hesaplamak büyük datalar ile çalışırken hafızada tutacağınız belki milyon değişkenin sizi nasıl etkileyeceğini bilmek yazılım için çok önemli. O nedenle bit nedir öğrenmeye başlayıp byte nasıl oluşuru öğrenmek ve değişkenler bu bitler ve byte lar ile nasıl bilgisayar tarafından yorumlanıyor temel seviyede anladık mı karşılaştığımız bazı temel hataları çok daha kolay çözebileceğiz.
Yazılımda her kod ve değişiklik bir ihtiyaç sonucu gelişiyor. Mesela nesne tabanlı diller bir ihtiyaçdan gelişti. Net core bir ihtiyaç sonucu gelişti ve kullanıcıların yazılım prensipleri ve temiz mimarileri göz önüne alındı. Her gelişme hep ihtiyaçlar sonrası. Ama bu ihtiyaçların ne olduğunu bilmek ve bunlara nasıl bir çözüm üretildiğini görmek çok daha önemli ve ufuk açıcı bir olay.
Farkındaysanız buraya kadar 3 madde saydım ve bunların hiçbirinde şu dille başla gibi bir şey söylemedim. Çünkü aslında daha temel şeyleri öğrenmek ve alışkanlık edinmek zaten istediğiniz her dili kolayca öğrenmenizi sağlayacak. Böylece ihtiyacınız olan şey doğrultusunda kendinizi geliştirebileceksiniz. Ama tabi ki her işi yapabileceğiniz ve kendinizi rahat hissettiğiniz bir dil olmalı. Bu C# olur Python olur Java olur inanın hiç farketmez. Önemli olan yapmak istediğiniz şeyi hızlıca yapabilip yapamadığınız.
Özetlemek gerekirse bir bilgisayarın yazılım ile nasıl çalıştığını anlamak, sorgulamak, araştırmak ve ihtiyaçları anlama yöntemlerinizi geliştirmek yazılıma başlamadan önce kendinizi geliştirip öğrenmeniz gereken şeylerin başında geliyor. Daha sonra dil ve diğer şeyler geliyor. Bu dilin ne olduğunun da ilk koşullar sağlandığında pek bir önemi kalmıyor.
Buraya kadar okuyup bu konunun sizi sıkmış olabileceğinin farkındayım ama bu yazı ile bu işin gel 3 ayda senior seviyesinde yazılımcı ol şeklinde olmadığını anlatmaya çalışıyorum. Bu iş özveri ve sürekli araştırma gerekiyor. Bir diğer ihtiyacınız olacak şey ise yabancı dil ve maalesef buda olmazsa olmazlardan sayılır. Bir çok konuda kaynaklar Türkçe değil ingilizce ve stackoverflow gibi platformlarda ingilizce yazışmak gerekiyor. Buraya kadar okuduysanız artık konunun sadece kodlama ya da bir dil olmadığını anlatabilmişimdir umarım.
Peki sektör nasıl gerçekten evden mi çalışıyoruz gerçekten para içinde mi yüzüyoruz? 🙂 Bunun da cevabı tamamen size ve birazda şansınıza kalmış. Ben kaç senelik iş hayatımda sadece pandemi döneminde sürekli evde çalıştım. Şimdi ise hibrit çalışıyorum yani bazen ev bazen ofisteyim. Para konusu da maalesef kendi işinizi kurmadığınız ya da serbest çalışmadığınız durumda şirketinizin size verdiği ve zam dönemlerinde merakla beklediğimiz %20 den ibaret. Çok az firma bunu eski elemanlar için çok iyi bir rakamda tutuyor. Maalesef, maaşınızı yükseltmek istiyorsanız sürekli firma değişikliği yapmanız gerekiyor ki bu da haklarınızı kaybetmeniz ve sürekli yeni bir oluşumla mücadele etmeniz demek.
Peki ben işimi seviyor muyum? Evet ama bunun nedeni evden çalışma ya da yüksek ücretler için değil ki bunlar gerçekçi de değil. Benim bu işi sevmemin nedeni bir şeyler üretiyor olmak. Bir şeyler üretmekten mutlu olmak. Çok eskiden öğrenci iken bir hediyelikçi dükkanında yakma tablo resim yaptığım ve o zaman da üretirken mutlu olduğumu hatırlıyorum. Aynı şekilde problem çözerken ve bilinmeyen bir şeyleri düzeltirken de mutlu oluyorum. Burada asıl kelime MUTLULUK. Yaparken mutlu olduğunuz işi yaparsanız yıpranmıyorsunuz. Ama mutlu değilseniz bu işi sevmiyorsanız kurumsalda tükenmişlik sendromu yaşıyorum diye ortada gezersiniz.
Sonuç olarak ne yaparsanız yapın sizi mutlu edecek şeyi yapın dostlar !
İlk Yorumu Siz Yapın