Yazılımcı olmak istiyorum ne yapmalıyım? Yeni başlayanlara tavsiyeler

Herkese merhabalar efenim

Öncelikle bu blog sayfasının ilk yazısı olmasından ötürü ve benimde bu serüvene adeta bir giriş anahtarım olduğundan, bu yazının önemini ayrı bir yere koymak istiyorum. Adeta bebek adımları ile bu işe başlamanın keyfi deyim yerindeyse heyecan verici ve bir o kadar da acemice ama sonuçta her iş böyle başlamıştır sizce de öyle değil mi?

Şimdi aramızdan “abi lafı amma uzattın ya sonuca gel” diyen arkadaşlar olabilirler onları duyar gibiyim evet bu kısa giriş sekansımızın ardından gelelim asıl meseleye. Nedir bu yazılım? Nerden başlayabilirim? Nasıl öğrenebilirim? Her şeyden önemlisi nasıl ilerleyebilirim. Ben bu noktada düşüncülerimi bir profesyonel olarak değil bir acemi olarak aktardığımın altını bir kez daha çizmek istiyorum sihirli cümleler falan beklemenizi tavsiye etmiyorum :) Sadece kendi başımdan geçen tecrübeyi aktarmaya çalışacağım ve bunu da liste haline getirip hiç başlamamış arkadaşların “ha onu da şöyle yapabilirim” demesini sağlamak, işlerini bir tık olsa da kolaylaştırmak aslında.

1.Adım Karar Ver!

Evet başlığımızdan da anlaşılacağı gibi her şeyin başı aslında bir kararla başlıyor. Ben bu noktada daha şanslı olduğumu düşünüyorum ilk başta abi ne öğrensem sorusu benimde kafamda canlandı elbette. Fakat bu durum aşırı bir karmaşıklığa sebep olmadı en azından benim için. Java mı öğrensem C# da iyi diyorlar yoksa Javascript, Pyhton bunlar da günümüz teknolojileri olmaya başladı gibi sorular kafamda kısa bir süreliğine de olsa dönmüştü diyebilirim. Bu nokta da yeni başlayan arkadaşlara vereceğim tavsiye Frontend ve Backend konusunda bir karar vermeleri ve daha sonra her hangi bir dili seçip ondan devam etmelerini tavsiye edebilirdim. Kısaca ne hoşunuza gidiyorsa onu yapın ve ben bir dil öğreneceğim ama 5 yıl sonra çöp olacak kimse kullanmayacak diye bir kaide yok. Tabi ki öğrenmek istediğiniz dilin nerelerde kullanıldığını güçlü taraflarını(bu demek değildir bir dil diğerinden iyidir!)bunları mutlaka araştırmadan seçiminizi yapmayın bana kalırsa. Fakat demek istediğim nokta A,B,C dilinden ziyade daha çok programlamayı öğrenmemiz gerektiği programlamanın mantığını kavradığımız sürece bütün dillerin %80–90 oranında birbirine benzediğini göreceksiniz. Kısaca bu konuda olabildiğince rahat olun!

2.Adım Azimli Ol!

Kazananlar hiç hata yapmayanlar değil asla vazgeçmeyenlerdir!

Bu lafı nerede gördüm veya kim söylemiş bilmiyorum ama buraya sanki cuk diye oturduğunu düşündüm nedense. Bu nokta da şunu söyleyebilirim ki yazılımcı olmak için aşırı zekaya sahip olmanıza kesinlikle gerek yok her ne kadar dışardan öyle gözükse de işin için de aslında öyle değil! Kesinlikle bu işi yapmamız için gerçekten azimli ve kararlı olmamız gerekli bunu biraz açarsak. Yazılım problem çözme ve bir nokta da hataların üstesinden gelme işidir. Günümüz de en profesyonel insan bile hata yaparken siz nasıl yapmadan gelişebileceksiniz ki. Bu işin doğasında aslında hata yapmanın olduğunu unutmayın. Yaptığımız hatalar biz fark etmeden bir şeyler öğrenmemizi o hata ile tekrar karşılaştığımızda daha kolay ve pratik çözmemizi sağlarlar bazen saatler, günler sürebilir yorucudur ama bu işin en güzel tarafı bence bir çözümü ararken size başka bir bilgi sunması bana kalırsa.

3.Araştırmacı Ol!

Hangi dili seçersen seç veya hangi teknoloji ile çalışıyor olursan ol mutlaka araştırma ve öğrenme hissiyatını içinde taşımalısın hatta taşımalıyız bu durum bu işe baş koymuş herkes için geçerli bir kural :) Özellikle kendimden örnekleyerek gideyim. Bir süreden sonra her gün yeni bir şeyler duymak ve “o neymiş abi ya” demek sıradan bir durum olabiliyor. Fakat bu durum sizi yıldırmasın aksine daha çok gaza getirsin. Yazılım ve bilişim dünyasında çok fazla kavram, çok fazla teknoloji var ve bu durum yerinde de durmuyor aslında sürekli ve çok hızlı bir şekilde ilerliyor. Bu işe bir noktadan tutunmak istiyorsak başlıkta da belirttiğim gibi hepimizin araştırmacı olması gerekli. Peki neler yapabiliriz araştırmak, yeni şeyler öğrenmek için? Ben gene kendi yöntemlerin üzerinden gideyim elimizin altında ki internet özellikle bu işe yeni başlamışsak bir sürü Türkçe kaynak ile dolu bunun yanında Udemy gibi eğitim siteleri de sizi güzel noktalara taşıyacaktır. Kitap ile öğrenmeyi seven biri iseniz bir çok kaynak da bulabilirsiniz şimdiden söyleyeyim Türkçe olarak ilke etapta kaynak sıkıntısı çekeceğinizi sanmıyorum. İş İngilizceye gelecek olursa tabi ki kaynaklar daha fazla günceli takip etmek açısından İngilizce çok önemli !

4.Pratik Yapmalıyız!

Her ne kadar araştırsak, makaleler okusak internette bir çok farklı kaynaktan bilgi toplasak da bir noktadan sonra o kodların içine dalmamız ve deyim yerindeyse saatin kaç olduğunu unutmamız gerekli açıkçası ben az da olsa tecrübe ettim ki bu işi ne kadar teorikte öğrensek de kaliteli bir yazılımcı olmak istiyorsak o işin içine girmeliyiz. Kısaca o elleri bir kirletmemiz gerecek bu sayede hem yaptığımız işi daha fazla öğreneceğiz belki de yeni hatalar alacak yeni şeyler deneyecek ve en nihayetinde fark etmesek de gelişiyor olacağız eminim ki.

5.Tekrar et!

Bu konu hakkında daha bir çok şey söyleyebiliriz. Belki onlarca seçenek sıralayabiliriz internette de bir dünya kaynak bulabiliriz. Ben her şeyi tek tek yazmayacağım maalesef ama önemli bir pratiği de buraya eklemek istiyorum. “Tekrar etmek” Özellikle yazının üst kısımlarında belirttiğim durumları tekrar etmenin önemli olduğunu kanısındayım. En yoğun günümüzde bile açıp bir kaç makale okumak veya bir kaç satır kod yazmak, projenin küçük bir yerini bitirmek bunlar önemli konular. Yazılımın uzun süre ayrı kaldığımızda paslanabileceğimiz, unutabileceğimiz bir husus olduğunu da düşünüyorum açıkçası belki böyle bir durum yaşamayanlar da olabilir ama genel olarak böyle olduğunu düşünüyorum. Ayrıca tekrar etmek pratikte öğrenmediğimiz şeyleri daha iyi kavramamıza her zaman olanak veriyor ve sürekli kondisyonumuzu yüksek tutmakta cabası :)

Eveeet geldik son kısma!

Kısaca yazılıma yeni başlayan veya başlayacak olan biri iseniz tekrar tekrar dediğim gibi bu işi severek yapıyor olmanız gerekli ve kesinlikle bir tutkunuz olmalı aksı taktirde ben bu işi yapacağım ama para için diyorsanız muhtemelen 1 ay sonra sıkılıp başka sektörlere bakayım ben diyebilirsiniz. Sonuçta herkes bu işi yapacak diye bir kaide yok :) İşin özüne gelirsek yazılım sektörü derin insanın kaybolabileceği bir okyanus gibi adeta yolumuzu iyi belirlemek hangi konularda kendimiz geliştirmek istediğimize iyi karar vermek gerçekten şart hatta bununla alakalı “Learning Hell” diyebileceğimiz çok değerli bir hocamızdan duyduğum bir terim bile var bu cehenneme düşmemek gerekli motivasyonu yüksek tutmak ve en önemlisi bu işin zeka işi değil kararlılık işi olduğunu unutmamak gerektiğini söylemek isterim.

Bir sonra ki yazılarımda görüşmek dileğiyle..