Sat Oct 29 2022
[TR] Yazılıma başlamayı düşünenler ve henüz başlamışlar için tavsiyeler
Merhaba,
Bu yazıyı temel insan ihtiyaçlarından olduğunu düşündüğüm bilgiyi aktarma ihtiyacımdan dolayı ve aynı zamanda belki birilerine faydası dokunur diye yazıyorum. Bugün KOÜ Elektrik Mühendisliği bölümüne yeni başlamış olan birinci sınıf arkadaşların WhatsApp gruplarına girdiğimde mevcut dönem derslerinden olan “Bilgisayar Programlamaya Giriş” hakkında fikir alışverişi yaptıklarını gördüm ve ben de bilgim dahilinde birkaç şey paylaşmak istedim.
Peki ben kimim? Ben elektrik mühendisliği okuyan ama edindiği sektör tecrübeleri sonucunda kendisi için doğru yolun yazılım geliştiricilik olduğunu düşünen bir öğrenciyim.
Bu yazıyı okuyan öğrenci arkadaşları da iki kategoriye ayrımak istiyorum çünkü ona göre farklı önerilerde bulunacağım.
- Amacı dersi geçmek olan ve asıl mesleğinin yanında biraz da yazılım bilgisi edinmek isteyenler
- Profesyonel kariyerini yazılım geliştirme üzerine inşa etmek isteyenler
1. Kategori Önerileri
Eğer profesyonel olarak yazılım geliştirmek gibi bir niyetiniz yoksa kendinizi çok yıpratmanıza gerek olmadığını söyleyebilirim çünkü bu dersi geçmek için bir kitaba veya online kursa ihtiyacınız yok.
Bu dersi iyi harf notlarıyla geçmeniz için yapmanız gerekenler;
- Her derse katılmak
- Dersleri can kulağıyla dinlemek
- Derste anlamadıklarınızı sıcağı sıcağına hocaya sormak, tatmin edici bir cevap alınamadıysa çekinmeden tekrar sormak
- Ders bittikten sonra aynı gün o dersin tekrarını yapmak
- Derste öğrenilenlerle ufak programlar yazmak
- Bol bol deneme yanılma ile bir şeyleri kavramaya çalışmak
Bu adımların yanında ben farklı bir kaynak daha istiyorum derseniz (ki ben farklı kaynaklar takip etmenizi de öneririm) İngilizce olarak freeCodeCamp’in C Programming Tutorial for Beginners videosunu, Türkçe olarak ise Mustafa Murat Coşkun’un C Programlama Dersleri’ni önerebilirim.
2. Kategori Önerileri
Benim de dahil olduğum bu kategorinin önerileri biraz daha derin olacak. İlk olarak bu yazıyı birinci sınıf arkadaşlara hitaben yazdığım için çoğunluk henüz bu ayrıma girmemiş olacaktır, eğer girmiş olan varsa gerçekten tebrik ederim. Bu konuda aslında söylenecek çok söz var fakat onun için de ayrı bir yazı yazmak gerekebilir çünkü bu ayrımı yapabilmenin de çok önemli bir konu olduğunu düşünüyorum.
Önerilere gelince ilk olarak bahsedeceğim şey sadece bir yazılımcı veya bir mühendis için değil günümüzde herkes için çok önemli olduğunu düşündüğüm İngilizce konusu. İlk aşamada teknik döküman ve kaynak takip edebilecek seviyede İngilizce bilginizin olması yeterli olacaktır. Fakat uluslararası birtakım faaliyetlerde bulunmak istediğinizde daha fazlasına ihtiyacınız olabilir. Kod yazarken sık sık hatalarla karşılaşıp çözümü için araştırmalar yapıyoruz ve bu konuda en faydalı kaynaklar çoğunlukla İngilizce kaynaklar oluyor. Bu mesleğin dili İngilizce arkadaşlar eğer sağlam temeller üzerine başarılı bir kariyer inşa etmek istiyorsanız ilk önceliğiniz bahsettiğim düzeyde İngilizce bilgisine erişmek olmalı.
Şimdi işin rengi biraz daha değişecek çünkü yazılım sektöründe “al kardeşim şunu oku, bunu yap, hopp tamam oldun sen” diyemiyoruz. Fakat her yerde olduğu gibi burada da sabırlı olan, çalışan, pes etmeyen, olumlu bakan kazanıyor. Bu mesleğe adım atmak isteyen fakat henüz araştırmaya başlamış olan insanlar için girmeden önce bilmeleri gereken birkaç şey söyleyeyim ve siz değerli okurlar da güzel güzel çıkarımlarınızı yapabilin.
1. Gelişim bu meslekte asla bitmiyor
Yazılım sektörü çok hızlı gelişen, değişen ve sürekli yeni teknolojilerin çıktığı bir sektör. Bu sektörün çalışanları da sektörün bu hızına ayak uydurmak durumundalar ve sürekli yeni şeyler öğrenip gelişimin peşinde koşarlar.
2. Sabır kilit nokta
Yeri gelecek ufacık bir yazım hatasından dolayı saatlerce programınız çalışmayacak ve sebebini anlayamayacaksınız. Yeri gelecek sizin doğru yaptığınız şeyi kullandığınız editörün bir eklentisi yüzünden doğru test edemeyip hatalı sanacaksınız. Bu ve benzeri nice durumlarla karşılaşacaksınız ve karşılaştığınızda o an üzerinde çalıştığınız dilden veya kullandığınız diğer araçlardan nefret etmeden sorunun çözümüne odaklı kalabilmeniz gerekiyor. Çoğu yeni başlayan insan ya dile küfrediyor ya editöre ya işletim sistemine ve hem kendi motivasyonunu düşürüyor hem de işi ilerletmeden oracıkta bırakıp başka şeylere yöneliyor.
3. İşini severek yapmak
Her işi aslında severek yapmak gerekir fakat yazılımda bunun yarattığı fark inanılmaz derecede büyük, çünkü neredeyse bir sınırınız yok. Sınır yok derken yanlış anlaşılmasın bir bilgisayar ve internet bağlantısıyla tabiki Facebook’a rakip olamazsınız fakat rakip olacak bir şirket kurabilir düzeye gelme ihtimaliniz var. Tabi bu sizin hedeflerinize ve başarı kriterlerinize göre de değişkenlik gösterebilir.
Bu başlık altında aslında demek istediğim sırf iyi bir sektör diye bu işe atılan ve aslında sevmediğini fark edip vasat düzeyde kalan bir yazılımcı olmanızı engellemek. Peki sevip sevmediğinizi nasıl anlayacaksınız? Deneyerek. Öğrenciliği sevmemin asıl nedenlerinden birisi de pek bir şey kaybetmeden çok fazla şey deneme imkanımızın olması. Bu imkanı kullanın arkadaşlar deneyebildiğiniz kadar çok şey deneyin. Farklı sektörler deneyin, farklı diller, farklı alanlar, farklı insanlar. Farklı olan her şey size bir şeyler katar denemekten asla çekinmeyin. Denediniz ve sevmediniz mi? Hiç sorun yok, zaman falan da kaybetmediniz ve artık neyi sevmediğinizi biliyorsunuz. Sevdiğiniz şeyi bulmaya bir adım daha yaklaştınız, harika! Kariyerinizin başında olabildiğince fazla şey denemek iyidir fakat bir yerden sonra da tek bir alana yönelip o alanda uzmanlaşmanız sizi daha değerli kılacaktır bu noktayı da kaçırmayalım.
If you try, you may fail. If you don’t try, you’re guaranteed to fail.
Yazılıma başlarken hangi dili öğrenmeliyim, hangi alana yönelmeliyim gibi sorular sıklıkla soruluyor ve bu sorunun da tabiki keskin ve net bir cevabı yok. Fakat bu konuda bolca fikir edinmenizi sağlayacak çok değerli iki tane Türkçe video var. Bunlardan biri daha somut ve maddeler halinde sizi neler yapmanız gerektiği konusunda fikir sahibi yapacağını düşündüğüm Adem İlter’in “Yazılıma nasıl başlarım?” videosu. Bir diğeri ise daha felsefik bir yaklaşımla konuyu ele alan Bilgem Çakır’ın “Yazılımda Başlamak ve Gelişmek” isimli videosu. Bu videolar tabiki tüm sorularınıza yanıt niteliğinde olamaz fakat ilk aşamada güzel birer rehber niteliğinde olduklarını düşünüyorum ve eminim bunlar gibi daha nice yararlı içerikler vardır. Onları da zamanla ihtiyaç duyduğunuz durumda sizler keşfedeceksiniz zaten.
Öğrenmeyi öğrenmek
Yazılım geliştiricilikten bağımsız olarak hayatta sürekli yaptığımız bir şey var, öğrenmek. Fakat konu yazılım geliştirici olmaya gelince öğrenmenin önemi biraz daha artıyor çünkü meslek hayatında da sürekli öğrenen insanlarız. Bu konuda da tahmin edersiniz ki genele hitap eden bir yöntem yok. Öğrenme işinin verimi kişiden kişiye fazlasıyla değişiklik gösteren bir kavram. Bazı insanlar okuyarak, bazıları izleyerek, bazıları yaparak öğrenir. Sizin göreviniz nasıl öğrendiğinizi öğrenmek olmalı ve mümkünse bu yöntemlerin hepsini denemelisiniz. Bu konuda da yardımcı olacağını düşündüğüm işi bilimiyle ve tarihiyle ele alan harika bir ücretsiz Coursera içeriği mevcut fakat İngilizce.
Takip Önerilerim
Konuya özel önerilerin sonuna geldik ve şimdi takip etmeniz gerektiğini düşündüğüm yazılımcıları ve içeriklerini listeliyor olacağım, yanlarına da kısaca hangi konuda içerik ürettiklerini belirteceğim. Kendim web geliştiriciliği ile ilgilendiğim için takip ettiğim kişiler de bu alan üzerine ağırlıklı olacak fakat diğer alanlarla ilgilenen geliştiriceleri de dahil edeceğim. Her kanalın faydasının dokunacağını düşünüyorum özellikle yeni başlayan insanlar için hepsinde öğrenilecek bir sürü şey var;
- Bilgem Çakır işin daha çok felsefik yanlarını anlatması ve ele aldığı konulara derinlemesine ama yormayacak biçimde girmesiyle şiir gibi bir kanala sahip.
- Doğukan Güven Nomak keşfettiğim için çok mutlu olduğum bir kanal. Piyasadaki onlarca iyi geliştiriciyle Yazılımcı Sohbetleri altında sohbetler gerçekleştiriyor ve hepsinin birbirinden değerli olduğunu düşünüyorum, özellikle de yeni başlayanlar için.
- Muhammed Hilmi Koca sadece efsane serisi Yazılımcılar İçin Hafta Sonu Okumaları için bile takip etmeye değer gördüğüm bir geliştirici.
- Uğur Umutluoğlu deneyim ve .Net kelimelerini yan yana koyunca aklıma gelen ilk isimlerden biri. Çok faydalı içerikleri olan bir Youtube kanalı da mevcut.
- Selman Kahya kanalında her türden içerik barındıran ve her anlamda fayda sağlamaya çalışan bir geliştirici. Web ağırlıklı işler ortaya koyuyor fakat kesinlikle herkesin bir göz atmasını tavsiye ederim.
Şimdi biraz da takip ettiğim yabancı kaynaklardan ve kişilerden ilerleyelim. Bu kaynaklar HTML, CSS ve JavaScript odaklı kanallar;
- freeCodeCamp ilk zamanlarında tamamen web odaklı olsa da zamanla içeriklerini çok genişletti ve neredeyse her konuda videoları mevcut. Youtube’un yanı sıra bir de hem web hem python öğrenmek isteyenler için kod yazdırarak öğreten ücretsiz ve sertifikalı kursları mevcut.
- Traversy Media bu alanda en çok aboneye sahip kanallardan biri ve web ile alakalı yok yok bir kanal. Brad Traversy’e ait olan kanalda son zamanlarda farklı isimlerin de videoları yayınlanmaya başladı ve her zamankinden daha renkli bir kanal haline geldi.
- Dev Ed tane tane anlatımıyla gayet öğretici içerikler çeken kanal. Yeni keşfettim fakat çok faydasını gördüm.
- Florin Pop yeni bir kanal olmasına rağmen çok başarılı ve çalışkan bir arkadaş kendisi. Bol bol kod yazma videosu ve canlı yayınları görmek isteyenler için bire bir.
- Kevin Powell CSS konusunda sizi bir sonraki seviyeye taşıyacak olan kanal işte tam olarak bu olabilir.
Son olarak çok güzel bir öğrenme ve keşfetme yöntemi olduğunu düşündüğüm podcast dinleme konusuna değinmek istiyorum. Arabada, otobüste, yürürken, ev işi yaparken, spor yaparken kısacası her yerde dinleyebileceğiniz ve ufkunuzu açacak birkaç podcast’in de linklerini ve kısa açıklamalarını aşağıya yazıyorum. (hepsi Spotify’da mevcut)
- Codefiction Podcast her alandan geliştiricinin bulunduğu Codefiction topluluğunun kurucularının kaydedip yayınladığı bir podcast ve her konuda keyifli sohbetler gerçekleştiriyorlar. Kurucuları arasında iki tane de KOÜ mezunu var :)
- kodpod Fatih Kadir Akın’ın samimi sohbetler gerçekleştirdiği seri.
- KodCast Selman Kahya ve iki diğer Silikon Vadisi geliştiricisinin kaydettiği podcast.
- Front End Happy Hour Netflix, Twitch, Atlassian ve LinkedIn gibi şirketlerin önyüz geliştiricilerinin belirli bir konu etrafında konuşması üzerine kurulu ve çook şey öğretiyor. Ama İngilizce.
- Üretim Bandı son zamanlarda keşfettiğim biraz da endüstriyi anlamaya yönelik faydalı bulduğum ve bu aralar seri üretime geçmiş durumda olan bir podcast serisi. Eran Filiba ve Ender Ahmet Yurt tarafından kaydedilip yayınlanıyor.
- (Ekstra) Fularsız Entellik bu biraz daha yazılımdan uzak ancak genel yaşama dair çok farklı bakış açıları katan bir podcast olduğunu düşündüğüm için eklemek istedim.
Bu yazıdan sonra yapmanız gereken ilk şey
GitHub neredeyse bütün yazılımcıların kullandığı ve her yeni yazılımcının kesinlikle kayıt olması ve kullanması gereken bir platform. İlk işiniz GitHub’ın ne olduğunu araştırmak ve bir GitHub hesabı açmak olsun.
Kapanış
Buraya şu an aklıma gelmeyen ve yazamadığım daha bir sürü geliştirici ve kaynaklar var, onları da zamanla eklemeyi düşünüyorum. Kesinlikle burada olması gerektiğini düşündüğünüz isimler veya kaynaklar varsa bi mail uzağınızdayım.
Her türlü sorunuz ve öneriniz için mert@duzgun.dev üzerinden mail atabilir ve hatta dilerseniz bana aşağıdaki sosyal medya hesaplarımdan da ulaşabilirsiniz. Okuduğunuz için teşekkür eder, keyifli günler dilerim :)