Yazılım Öğrenme Rehberi | Yazılım Nasıl Öğrenilir? | Kaynaklar | Sıkça Sorulan Sorular

Enistein

Kıdemli Üye
16 Eyl 2012
2,219
1,209
Amsterdam
a3b2jeo.png

İyi günler Türk Hack Team ailesi.

Bugün sizlere yazılım nasıl öğrenilir? Sorusunun cevabı olarak bir rehber oluşturacağım.

Konu içeriğinde anlatacağım birçok şey kendi tecrübelerim ve önerilerimdir.

Bu içeriğin yazılım öğrenme serüveninizde rehber olacağını umuyorum.

HZEJ3un.gif

Programlama Dili Seçimi

6OfL8I.gif

Evet, forumda çok sık denk geliyorsunuzdur. Yazılım nasıl öğrenirim? Başlıklarının çoğuna genelde ilk olarak cevap kendine göre bir programlama dili seç oluyor. "Başlangıç" için programlama dili seçimi gerçekten çok önemli. Fakat tırnak içerisinde belirttiğim gibi başlangıç için, ilginizi çeken bir alanda programlama dili seçmek çok önemli. Bir programlama dilini öğrendikten sonra diğer programlama dilleri temelde aynı. Bundan dolayı geçiş yapmak çok kolay. Ben gömülü sistemler öğreniyordum, şimdi sıkıldım web öğreneceğim gibi konudan konuya atlamayın. Bir dil belirleyip o dil üzerinden öğrenme sürecinizi ilerletin.

Ru3y3uV.png

Bildiğiniz gibi diller kendi içerisinde farklı amaçlar için kullanılabiliyor. Örneğin

gömülü sistemler için C/C++ , Java.

Bilgisayar bilimleri ve Veri analizi için Python, R.

Web Programlama için Javascript, PHP.

Bilgisayar programları için C#, Java,

Tercih edilebiliyor. Tabii burada öğrenmeye başlamak için seçim sizin. Fakat ben genel olarak insanların başlangıç için tavsiye ettiği Python dili yerine Javascript veya C# dillerini öğrenmenizi tavsiye ediyorum. Çünkü Python ile geliştirme yaparken temelinde bir arayüz sunmadığı için insanları kolay kolay tatmin etmiyor. Bu durum ben öğrenmeye çalıştım ama öğrenemedim aptal mıyım? Niye yapamıyorum? Gibi kendimizi demotive edecek sorulara neden oluyor.

Öğrenme Sürecinde Faydalanabileceğiniz Kaynaklar

6OfL8I.gif

Herşeyden önce bir yazılımcının en büyük yeteneği Google kullanmayı bilmesidir. Google'da derdini aramayı bilmeyen bir insan yazılımcı olamaz nokta ve imza.

ORzI4Ji.png

Google kullanmayı öğrendik. Şimdi diğer kaynaklara geçebiliriz.

Stackoverflow - Bu platform yazılımcılar tarafından problemlerinin paylaşıldığı ve sorularının yanıtlandığı bir platformdur. Mutlaka yazılımla ilgilenen herkesin yolu buraya düşer. Sizlerinde bir problemle karşı karşıya kaldığınızda ilk bakacağınız adres burası olmalı. Ayrıca hesap oluşturup sorulara cevap verirseniz, CV'nize Stackoverflow profilinizi ekleyebilirsiniz.

Github - THT'ye üye olupta bu platformu bilmeyen yoktur. Github kısacası açık kaynak kodların paylaşıldığı bir platformdur. Kariyer yapmayı planlıyorsanız aktif bir Github kullanıcısı olmanız gerekiyor. Kodlarınızı burada paylaşabilir, diğer insanların kodlarına bakıp kendinizi geliştirebilirsiniz. Aynı zamanda yazılım mülakatlarında ve iş başvurularıda Github hesabı mutlaka sorulur, kontrol edilir.

Medium - Medium insanların blog yazılarını paylaştığı bir platformdur. Burada yazılımla ilgili gerçekten ufuk açıcı konular paylaşılıyor. Burada paylaşılan içerikleri takip etmenizde fayda var. Eminim sizlere birçok konu hakkında farklı bakış açısı katacaktır.

TurkHackTeam - Evet yanlış duymadınız. Yazılıma ilk bu platformda başlayan birisi olarak TurkHackTeam programlama kategorilerinde yaptığım şeyleri paylaşıp, diğer kullanıcılardan geri bildirim almak beni inanılmaz motive etti. Sizlerde öğrenme sürecinizde geliştirdiğiniz projeleri uygun programlama kategorilerinde paylaşabilir ve insanlardan geri bildirim alabilirsiniz!

Yazılım öğrenme reçetesi

6OfL8I.gif

Yeni başlayacak arkadaşlar için hangi dil olursa olsun kullanabileceğiniz bir reçete oluşturuyorum. Sırasıyla bunları öğrendiğinizde birçok şeyi kafanızda oturtmuş olacaksınız. Burada konusu geçen bütün başlıklar, bütün programlama dillerinde mevcuttur. Fakat bazıları farklı şekilde isimlendiriliyor olabilirler.

hdbpczZ.gif

1. Değişkenler ve veri tipleri:Belirli türlerde verileri depolamak için kullanılır. (int,str,float,vb.)

2. Operatörler : Matematiksel ve mantıksal işlemler.(toplama,çarpma, çıkarma,vb.)

3. Kontrol yapıları : Programların akışını yönlendirmek için(if-else, while, for loop , vb.)

4. Diziler: Birbirine benzer türde verileri depolamak için kullanılır.

5. Fonksiyonlar: Bir kod bloğunun tekrar kullanılmasını sağlar.

6. Sınıflar: herhangi bir nesnesini karakterize eden bir özellik kümesi tanımlayan bir nesne için kullanıcı tanımlı bir prototiptir.

Genel Tavsiyeler

6OfL8I.gif

untitledf672302d90d7fa5f.gif

Herhangi bir dilin temelini öğrendikten sonra, öğrendiğiniz dil'in frameworklerini araştırabilirsiniz. Günümüz yazılım teknolojileri artık frameworklere doğru kayıyor. Örneğin Python öğrendiyseniz Django ile hızlıca web uygulamaları geliştirebilirsiniz. Javascript ile NodeJS frameworkunu öğrenebilirsiniz.

Yazılım öğrenme süreci, öğrendim bitti gibi bir süreç değildir. Temelleri sabit kalır fakat dilin kendisi sürekli gelişir ve değişir. Bundan dolayı öğrenmeye başlamadan önce sürekli birşeyleri öğrenmeniz bilinciyle öğrenmeye başlayın.

Yazılım defter ve kalemle öğrenilebilecek birşey değildir. Bundan dolayı sürekli deneme yapın ve yazılımın verdiği tepkilere göre kendinize sorular sorun. Saçma sapan fikirler üretin, kullanmayacak olsanız bile. Öğrenme aşamasında hayal edip, hayata geçirmek motivasyon açısından çok önemlidir.

Öğrendiğiniz komutları veya kopyala yapıştır yaptığınız komutları bir klasörde saklayın. İhtiyacınız olduğunda oradan kullanın. Kopyala yapıştır yaparken sürekli aynı şeyleri görmeniz neyi aradığınızı bilmeniz gelişiminize fayda sağlayacaktır ve göz aşinalığı oluşturacaktır.

Öğrenme sürecinde arkadaşlar edinin. Öğrenme sürecinde öğrenmekten çok motivasyon kaybıyla vakit kaybedeceksiniz. Farklı arkadaşlar edinmek ve beraber öğrenmek, motivasyon arttırma açısından etkili olabilir. Ayrıca yazılımcılar asosyal olur klişesini savunmaktan vazgeçin.

Yeni öğrenen arkadaşlarda çok sık rastlıyorum. Arkadaşlar çok geç olmadan lütfen şu for ile while ayrımını öğrenin.

Sıkça Sorulan Sorular

6OfL8I.gif

xwryMps.gif

Yazılım öğrenmek için matematik öğrenmek şart mıdır?

Aslında bu konu biraz karmaşık. Matematik bilmeden yazılım geliştirebilirsiniz. Fakat ben iyi bir yazılımcı olacağım, iyi bir kariyerim olacak diyebilmek için matematik şarttır. İyi bir yazılımcı olmak bence 2 temele dayanıyor.

1.si çok iyi Matematik çok iyi algoritmalar kurma konusunda önemli. Eğer backend alanında kendinizi geliştirecekseniz matematik önemli. Matematik olmadanda yazılım yapabilirsiniz. Fakat bu durumda çok basit çözümler için algoritma kuramadığınızda yolu çok fazla uzatıyorsunuz. Oysa bir kaç temel pratik matematik ile 1-2 satırda problemi çözebiliyorsunuz. Eğer bilgisayar bilimleri alanında kariyer yapacaksanız matematik şart. Görüntü işleme ile uğraşacaksanız geometri bilmek şart.

2.si yaratıcılık. Evet matematiği iyi olmayıp yaratıcı olan insanlar çok güzel çözümler üretebiliyor. Bunu çoğu zaman matematiğe ihtiyaç duymadan yapabiliyorlar.

Ben genel olarak en azından temel seviyede matematik bilmenizi eğer bilmiyorsanız yazılıma başlamadan önce öğrenmenizi tavsiye ediyorum. Matematik öğrenmekten kastım 2+2 = 4 hesaplamak değil! Matematiği nasıl kullanacağınız nerede neye ihtiyaç duyacağınız konusudur. Yoksa bilgisayarlar zaten 2+2'yi hesaplıyor.

Yazılım öğrenmek için İngilizce şart mıdır?

Evet yazılım öğrenmek için İngilizce şarttır. İngilizce bilmekten kasıt su gibi ingilizce konuşmak değil. En azından tıkandığınız noktalarda büyük topluluklardan yardım isteyip, kendinizi ifade edebilecek kadar ingilizce şart.

Hangi editörü kullanmalıyım?

Kullanacağınız dile göre çok fazla değişkenlik gösterebilir. Fakat ben vscode kullanıyorum ve memnunum. Vscode indirip eklentiler ile zenginleştirebilirsiniz. IDE'ler yazılım öğrenme sürecinde sizin silah arkadaşınız olacaktır. Bundan dolayı iyi bir tercih yapmak çok önemli.

Yazılımda çok fazla terim var, o kadar şeyi nasıl öğreneceğim?

Türkçe dilimiz çok güzel bir dil. Fakat ingilizce kadar esnek değil. Bundan dolayı bazı terimlerin Türkçe karşılığı olmayabiliyor. Olmasına da gerek yok zaten. Bu konuyu çok fazla dert etmenize gerek yok. Öğrendikçe yerine oturuyor.

Ne kadar sürede yazılım öğrenebilirim?

Yukarıda bahsettiğim gibi yazılım öğrendim bitti gibi bir süreç değil. Öğrenme süreci sürekli devam ediyor. Sadece bir yerden sonra öğrenmenin temposu azalıyor. Temel bir yazılım dilini öğrenmek, kavramak fikir üretebilmek çalışma azminize bağlı olarak 1 ay ile 1 yıl arasında değişebilir. Elbette bu süreç içerisinde bir çok proje geliştirebilirsiniz. Fakat bu o dili öğrendiğiniz anlamına gelmiyor.

Hangi projeleri yapabilirim?

Basitten başlayın. İlerledikçe projeleri karmaşıklaştırın.

Abi bi ton kütüphane var hepsini nasıl öğreneceğim?

Arkadaşlar yazılım mesleğinin büyük bir kısmı dökümantasyon okuyarak geçiyor. Bundan dolayı kütüphanenin kendisini öğrenmekten çok dökümantasyon okumayı öğrenmeye zaman harcarsanız bu kısmı hızlıca çözersiniz.

Yazılım için önerebileceğin kitap önerisi?

Ben yazılıma başlarken kitap okuyarak başlamanızı tavsiye etmiyorum. Yazılım için bilgisayar ortamından erişebileceğiniz kaynaklar daha değerli. Gördüğünüz kodu hemen çalıştırıp bilgisayarın reaksiyonunu gözlemlemek daha mantıklı geliyor. Kitaptan yazılım öğrenenlerin nasıl öğrendiği konusunda bir fikrim yok.

İnternetten yazılım öğrenebilir miyim?

Evet hiçbir kursa gitmeden bilgisayarınızın başında internetten yazılım öğrenebilirsiniz. Tek ihtiyacınız olan şey motivasyon. Birde ingilizce.

Programlama temelini öğrendim, şimdi ne yapacağım?

Pratik, pratik, pratik, pratik......

Eğer imkanınız varsa her yıl farklı farklı kuruluşlarda staj yapın.

Open Source (Açık Kaynak) Nedir?

Open-source, kaynak kodunun kamuya açık olarak paylaşıldığı yazılım anlamına gelir. Bu, diğer programcıların yazılımı değiştirmesine, geliştirmesine veya dağıtmasına izin verir. Açık kaynak yazılım, genellikle ücretsizdir ve geniş bir topluluk tarafından desteklenir.

Kod yazarken hata alıyorum, ne yapmalıyım?

Kod yazarken hata almak normaldir. Bunlar genellikle yanlış sözdizimi, yazım hatası, değişken adı hatası vb. gibi basit hatalardır. Hata mesajını okuyarak hatanın nedenini anlamaya çalışın ve hatayı düzeltin. Hata mesajı size hangi dosya ve hangi satırda hata olduğunu söyleyecektir. Ayrıca, kodlama hatalarını önlemek için sık sık kaydedin ve kodunuzu test edin.

Kapanış

6OfL8I.gif

untitleda58f8f45035b6ddb.gif

Umarım faydalı ve yön gösterici bir içerik olmuştur.

Eğer konu hoşunuza gittiyse aşağıdaki diğer konular ilginizi çekebilir.

 
Son düzenleme:

kingkong01

Yeni üye
10 Ocak 2023
10
2
Elinize sağlık hocam çok güzel olmuş 👏❤️
a3b2jeo.png

İyi günler Türk Hack Team ailesi.

Bugün sizlere yazılım nasıl öğrenilir? Sorusunun cevabı olarak bir rehber oluşturacağım.

Konu içeriğinde anlatacağım birçok şey kendi tecrübelerim ve önerilerimdir.

Bu içeriğin yazılım öğrenme serüveninizde rehber olacağını umuyorum.

HZEJ3un.gif

Programlama Dili Seçimi

6OfL8I.gif

Evet, forumda çok sık denk geliyorsunuzdur. Yazılım nasıl öğrenirim? Başlıklarının çoğuna genelde ilk olarak cevap kendine göre bir programlama dili seç oluyor. "Başlangıç" için programlama dili seçimi gerçekten çok önemli. Fakat tırnak içerisinde belirttiğim gibi başlangıç için, ilginizi çeken bir alanda programlama dili seçmek çok önemli. Bir programlama dilini öğrendikten sonra diğer programlama dilleri temelde aynı. Bundan dolayı geçiş yapmak çok kolay. Ben gömülü sistemler öğreniyordum, şimdi sıkıldım web öğreneceğim gibi konudan konuya atlamayın. Bir dil belirleyip o dil üzerinden öğrenme sürecinizi ilerletin.

Ru3y3uV.png

Bildiğiniz gibi diller kendi içerisinde farklı amaçlar için kullanılabiliyor. Örneğin

gömülü sistemler için C/C++ , Java.

Bilgisayar bilimleri ve Veri analizi için Python, R.

Web Programlama için Javascript, PHP.

Bilgisayar programları için C#, Java,

Tercih edilebiliyor. Tabii burada öğrenmeye başlamak için seçim sizin. Fakat ben genel olarak insanların başlangıç için tavsiye ettiği Python dili yerine Javascript veya C# dillerini öğrenmenizi tavsiye ediyorum. Çünkü Python ile geliştirme yaparken temelinde bir arayüz sunmadığı için insanları kolay kolay tatmin etmiyor. Bu durum ben öğrenmeye çalıştım ama öğrenemedim aptal mıyım? Niye yapamıyorum? Gibi kendimizi demotive edecek sorulara neden oluyor.

Öğrenme Sürecinde Faydalanabileceğiniz Kaynaklar

6OfL8I.gif

Herşeyden önce bir yazılımcının en büyük yeteneği Google kullanmayı bilmesidir. Google'da derdini aramayı bilmeyen bir insan yazılımcı olamaz nokta ve imza.

ORzI4Ji.png

Google kullanmayı öğrendik. Şimdi diğer kaynaklara geçebiliriz.

Stackoverflow - Bu platform yazılımcılar tarafından problemlerinin paylaşıldığı ve sorularının yanıtlandığı bir platformdur. Mutlaka yazılımla ilgilenen herkesin yolu buraya düşer. Sizlerinde bir problemle karşı karşıya kaldığınızda ilk bakacağınız adres burası olmalı. Ayrıca hesap oluşturup sorulara cevap verirseniz, CV'nize Stackoverflow profilinizi ekleyebilirsiniz.

Github - THT'ye üye olupta bu platformu bilmeyen yoktur. Github kısacası açık kaynak kodların paylaşıldığı bir platformdur. Kariyer yapmayı planlıyorsanız aktif bir Github kullanıcısı olmanız gerekiyor. Kodlarınızı burada paylaşabilir, diğer insanların kodlarına bakıp kendinizi geliştirebilirsiniz. Aynı zamanda yazılım mülakatlarında ve iş başvurularıda Github hesabı mutlaka sorulur, kontrol edilir.

Medium - Medium insanların blog yazılarını paylaştığı bir platformdur. Burada yazılımla ilgili gerçekten ufuk açıcı konular paylaşılıyor. Burada paylaşılan içerikleri takip etmenizde fayda var. Eminim sizlere birçok konu hakkında farklı bakış açısı katacaktır.

TurkHackTeam - Evet yanlış duymadınız. Yazılıma ilk bu platformda başlayan birisi olarak TurkHackTeam programlama kategorilerinde yaptığım şeyleri paylaşıp, diğer kullanıcılardan geri bildirim almak beni inanılmaz motive etti. Sizlerde öğrenme sürecinizde geliştirdiğiniz projeleri uygun programlama kategorilerinde paylaşabilir ve insanlardan geri bildirim alabilirsiniz!

Yazılım öğrenme reçetesi

6OfL8I.gif

Evet yeni başlayacak arkadaşlar için hangi dil olursa olsun kullanabileceğiniz bir reçete oluşturuyorum. Sırasıyla bunları öğrendiğinizde birçok şeyi kafanızda oturtmuş olacaksınız. Burada konusu geçen bütün başlıklar, bütün programlama dillerinde mevcuttur. Fakat bazıları farklı şekilde isimlendiriliyor olabilirler.

hdbpczZ.gif

1. Değişkenler ve veri tipleri:Belirli türlerde verileri depolamak için kullanılır. (int,str,float,vb.)

2. Operatörler : Matematiksel ve mantıksal işlemler.(toplama,çarpma, çıkarma,vb.)

3. Kontrol yapıları : Programların akışını yönlendirmek için(if-else, while, for loop , vb.)

4. Diziler: Birbirine benzer türde verileri depolamak için kullanılır.

5. Fonksiyonlar: Bir kod bloğunun tekrar kullanılmasını sağlar.

6. Sınıflar: herhangi bir nesnesini karakterize eden bir özellik kümesi tanımlayan bir nesne için kullanıcı tanımlı bir prototiptir.

Genel Tavsiyeler

6OfL8I.gif

untitledf672302d90d7fa5f.gif

Herhangi bir dilin temelini öğrendikten sonra, öğrendiğiniz dil'in frameworklerini araştırabilirsiniz. Günümüz yazılım teknolojileri artık frameworklere doğru kayıyor. Örneğin Python öğrendiyseniz Django ile hızlıca web uygulamaları geliştirebilirsiniz. Javascript ile NodeJS frameworkunu öğrenebilirsiniz.

Yazılım öğrenme süreci, öğrendim bitti gibi bir süreç değildir. Temelleri sabit kalır fakat dilin kendisi sürekli gelişir ve değişir. Bundan dolayı öğrenmeye başlamadan önce sürekli birşeyleri öğrenmeniz bilinciyle öğrenmeye başlayın.

Yazılım defter ve kalemle öğrenilebilecek birşey değildir. Bundan dolayı sürekli deneme yapın ve yazılımın verdiği tepkilere göre kendinize sorular sorun. Saçma sapan fikirler üretin, kullanmayacak olsanız bile. Öğrenme aşamasında hayal edip, hayata geçirmek motivasyon açısından çok önemlidir.

Öğrendiğiniz komutları veya kopyala yapıştır yaptığınız komutları bir klasörde saklayın. İhtiyacınız olduğunda oradan kullanın. Kopyala yapıştır yaparken sürekli aynı şeyleri görmeniz neyi aradığınızı bilmeniz gelişiminize fayda sağlayacaktır ve göz aşinalığı oluşturacaktır.

Öğrenme sürecinde arkadaşlar edinin. Öğrenme sürecinde öğrenmekten çok motivasyon kaybıyla vakit kaybedeceksiniz. Farklı arkadaşlar edinmek ve beraber öğrenmek, motivasyon arttırma açısından etkili olabilir. Ayrıca yazılımcılar asosyal olur klişesini savunmaktan vazgeçin.

Yeni öğrenen arkadaşlarda çok sık rastlıyorum. Arkadaşlar çok geç olmadan lütfen şu for ile while ayrımını öğrenin.

Sıkça Sorulan Sorular

6OfL8I.gif

xwryMps.gif

Yazılım öğrenmek için matematik öğrenmek şart mıdır?

Aslında bu konu biraz karmaşık. Matematik bilmeden yazılım geliştirebilirsiniz. Fakat ben iyi bir yazılımcı olacağım, iyi bir kariyerim olacak diyebilmek için matematik şarttır. İyi bir yazılımcı olmak bence 2 temele dayanıyor.

1.si çok iyi Matematik çok iyi algoritmalar kurma konusunda önemli. Eğer backend alanında kendinizi geliştirecekseniz matematik önemli. Matematik olmadanda yazılım yapabilirsiniz. Fakat bu durumda çok basit çözümler için algoritma kuramadığınızda yolu çok fazla uzatıyorsunuz. Oysa bir kaç temel pratik matematik ile 1-2 satırda problemi çözebiliyorsunuz. Eğer bilgisayar bilimleri alanında kariyer yapacaksanız matematik şart. Görüntü işleme ile uğraşacaksanız geometri bilmek şart.

2.si yaratıcılık. Evet matematiği iyi olmayıp yaratıcı olan insanlar çok güzel çözümler üretebiliyor. Bunu çoğu zaman matematiğe ihtiyaç duymadan yapabiliyorlar.

Ben genel olarak en azından temel seviyede matematik bilmenizi eğer bilmiyorsanız yazılıma başlamadan önce öğrenmenizi tavsiye ediyorum. Matematik öğrenmekten kastım 2+2 = 4 hesaplamak değil! Matematiği nasıl kullanacağınız nerede neye ihtiyaç duyacağınız konusudur. Yoksa bilgisayarlar zaten 2+2'yi hesaplıyor.

Yazılım öğrenmek için İngilizce şart mıdır?

Evet yazılım öğrenmek için İngilizce şarttır. İngilizce bilmekten kasıt su gibi ingilizce konuşmak değil. En azından tıkandığınız noktalarda büyük topluluklardan yardım isteyip, kendinizi ifade edebilecek kadar ingilizce şart.

Hangi editörü kullanmalıyım?

Kullanacağınız dile göre çok fazla değişkenlik gösterebilir. Fakat ben vscode kullanıyorum ve memnunum. Vscode indirip eklentiler ile zenginleştirebilirsiniz. IDE'ler yazılım öğrenme sürecinde sizin silah arkadaşınız olacaktır. Bundan dolayı iyi bir tercih yapmak çok önemli.

Yazılımda çok fazla terim var, o kadar şeyi nasıl öğreneceğim?

Türkçe dilimiz çok güzel bir dil. Fakat ingilizce kadar esnek değil. Bundan dolayı bazı terimlerin Türkçe karşılığı olmayabiliyor. Olmasına da gerek yok zaten. Bu konuyu çok fazla dert etmenize gerek yok. Öğrendikçe yerine oturuyor.

Ne kadar sürede yazılım öğrenebilirim?

Yukarıda bahsettiğim gibi yazılım öğrendim bitti gibi bir süreç değil. Öğrenme süreci sürekli devam ediyor. Sadece bir yerden sonra öğrenmenin temposu azalıyor. Temel bir yazılım dilini öğrenmek, kavramak fikir üretebilmek çalışma azminize bağlı olarak 1 ay ile 1 yıl arasında değişebilir. Elbette bu süreç içerisinde bir çok proje geliştirebilirsiniz. Fakat bu o dili öğrendiğiniz anlamına gelmiyor.

Hangi projeleri yapabilirim?

Basitten başlayın. İlerledikçe projeleri karmaşıklaştırın.

Abi bi ton kütüphane var hepsini nasıl öğreneceğim?

Arkadaşlar yazılım mesleğinin büyük bir kısmı dökümantasyon okuyarak geçiyor. Bundan dolayı kütüphanenin kendisini öğrenmekten çok dökümantasyon okumayı öğrenmeye zaman harcarsanız bu kısmı hızlıca çözersiniz.

Yazılım için önerebileceğin kitap önerisi?

Ben yazılıma başlarken kitap okuyarak başlamanızı tavsiye etmiyorum. Yazılım için bilgisayar ortamından erişebileceğiniz kaynaklar daha değerli. Gördüğünüz kodu hemen çalıştırıp bilgisayarın reaksiyonunu gözlemlemek daha mantıklı geliyor. Kitaptan yazılım öğrenenlerin nasıl öğrendiği konusunda bir fikrim yok.

İnternetten yazılım öğrenebilir miyim?

Evet hiçbir kursa gitmeden bilgisayarınızın başında internetten yazılım öğrenebilirsiniz. Tek ihtiyacınız olan şey motivasyon. Birde ingilizce.

Programlama temelini öğrendim, şimdi ne yapacağım?

Pratik, pratik, pratik, pratik......

Eğer imkanınız varsa her yıl farklı farklı kuruluşlarda staj yapın.

Open Source (Açık Kaynak) Nedir?

Open-source, kaynak kodunun kamuya açık olarak paylaşıldığı yazılım anlamına gelir. Bu, diğer programcıların yazılımı değiştirmesine, geliştirmesine veya dağıtmasına izin verir. Açık kaynak yazılım, genellikle ücretsizdir ve geniş bir topluluk tarafından desteklenir.

Kod yazarken hata alıyorum, ne yapmalıyım?

Kod yazarken hata almak normaldir. Bunlar genellikle yanlış sözdizimi, yazım hatası, değişken adı hatası vb. gibi basit hatalardır. Hata mesajını okuyarak hatanın nedenini anlamaya çalışın ve hatayı düzeltin. Hata mesajı size hangi dosya ve hangi satırda hata olduğunu söyleyecektir. Ayrıca, kodlama hatalarını önlemek için sık sık kaydedin ve kodunuzu test edin.

Kapanış

6OfL8I.gif

untitleda58f8f45035b6ddb.gif

Umarım faydalı ve yön gösterici bir içerik olmuştur.

Eğer konu hoşunuza gittiyse aşağıdaki diğer konular ilginizi çekebilir.

 

.net :)

Katılımcı Üye
6 Ağu 2022
326
373
: Onun olduğu hiçbir yerde
a3b2jeo.png

İyi günler Türk Hack Team ailesi.

Bugün sizlere yazılım nasıl öğrenilir? Sorusunun cevabı olarak bir rehber oluşturacağım.

Konu içeriğinde anlatacağım birçok şey kendi tecrübelerim ve önerilerimdir.

Bu içeriğin yazılım öğrenme serüveninizde rehber olacağını umuyorum.

HZEJ3un.gif

Programlama Dili Seçimi

6OfL8I.gif

Evet, forumda çok sık denk geliyorsunuzdur. Yazılım nasıl öğrenirim? Başlıklarının çoğuna genelde ilk olarak cevap kendine göre bir programlama dili seç oluyor. "Başlangıç" için programlama dili seçimi gerçekten çok önemli. Fakat tırnak içerisinde belirttiğim gibi başlangıç için, ilginizi çeken bir alanda programlama dili seçmek çok önemli. Bir programlama dilini öğrendikten sonra diğer programlama dilleri temelde aynı. Bundan dolayı geçiş yapmak çok kolay. Ben gömülü sistemler öğreniyordum, şimdi sıkıldım web öğreneceğim gibi konudan konuya atlamayın. Bir dil belirleyip o dil üzerinden öğrenme sürecinizi ilerletin.

Ru3y3uV.png

Bildiğiniz gibi diller kendi içerisinde farklı amaçlar için kullanılabiliyor. Örneğin

gömülü sistemler için C/C++ , Java.

Bilgisayar bilimleri ve Veri analizi için Python, R.

Web Programlama için Javascript, PHP.

Bilgisayar programları için C#, Java,

Tercih edilebiliyor. Tabii burada öğrenmeye başlamak için seçim sizin. Fakat ben genel olarak insanların başlangıç için tavsiye ettiği Python dili yerine Javascript veya C# dillerini öğrenmenizi tavsiye ediyorum. Çünkü Python ile geliştirme yaparken temelinde bir arayüz sunmadığı için insanları kolay kolay tatmin etmiyor. Bu durum ben öğrenmeye çalıştım ama öğrenemedim aptal mıyım? Niye yapamıyorum? Gibi kendimizi demotive edecek sorulara neden oluyor.

Öğrenme Sürecinde Faydalanabileceğiniz Kaynaklar

6OfL8I.gif

Herşeyden önce bir yazılımcının en büyük yeteneği Google kullanmayı bilmesidir. Google'da derdini aramayı bilmeyen bir insan yazılımcı olamaz nokta ve imza.

ORzI4Ji.png

Google kullanmayı öğrendik. Şimdi diğer kaynaklara geçebiliriz.

Stackoverflow - Bu platform yazılımcılar tarafından problemlerinin paylaşıldığı ve sorularının yanıtlandığı bir platformdur. Mutlaka yazılımla ilgilenen herkesin yolu buraya düşer. Sizlerinde bir problemle karşı karşıya kaldığınızda ilk bakacağınız adres burası olmalı. Ayrıca hesap oluşturup sorulara cevap verirseniz, CV'nize Stackoverflow profilinizi ekleyebilirsiniz.

Github - THT'ye üye olupta bu platformu bilmeyen yoktur. Github kısacası açık kaynak kodların paylaşıldığı bir platformdur. Kariyer yapmayı planlıyorsanız aktif bir Github kullanıcısı olmanız gerekiyor. Kodlarınızı burada paylaşabilir, diğer insanların kodlarına bakıp kendinizi geliştirebilirsiniz. Aynı zamanda yazılım mülakatlarında ve iş başvurularıda Github hesabı mutlaka sorulur, kontrol edilir.

Medium - Medium insanların blog yazılarını paylaştığı bir platformdur. Burada yazılımla ilgili gerçekten ufuk açıcı konular paylaşılıyor. Burada paylaşılan içerikleri takip etmenizde fayda var. Eminim sizlere birçok konu hakkında farklı bakış açısı katacaktır.

TurkHackTeam - Evet yanlış duymadınız. Yazılıma ilk bu platformda başlayan birisi olarak TurkHackTeam programlama kategorilerinde yaptığım şeyleri paylaşıp, diğer kullanıcılardan geri bildirim almak beni inanılmaz motive etti. Sizlerde öğrenme sürecinizde geliştirdiğiniz projeleri uygun programlama kategorilerinde paylaşabilir ve insanlardan geri bildirim alabilirsiniz!

Yazılım öğrenme reçetesi

6OfL8I.gif

Evet yeni başlayacak arkadaşlar için hangi dil olursa olsun kullanabileceğiniz bir reçete oluşturuyorum. Sırasıyla bunları öğrendiğinizde birçok şeyi kafanızda oturtmuş olacaksınız. Burada konusu geçen bütün başlıklar, bütün programlama dillerinde mevcuttur. Fakat bazıları farklı şekilde isimlendiriliyor olabilirler.

hdbpczZ.gif

1. Değişkenler ve veri tipleri:Belirli türlerde verileri depolamak için kullanılır. (int,str,float,vb.)

2. Operatörler : Matematiksel ve mantıksal işlemler.(toplama,çarpma, çıkarma,vb.)

3. Kontrol yapıları : Programların akışını yönlendirmek için(if-else, while, for loop , vb.)

4. Diziler: Birbirine benzer türde verileri depolamak için kullanılır.

5. Fonksiyonlar: Bir kod bloğunun tekrar kullanılmasını sağlar.

6. Sınıflar: herhangi bir nesnesini karakterize eden bir özellik kümesi tanımlayan bir nesne için kullanıcı tanımlı bir prototiptir.

Genel Tavsiyeler

6OfL8I.gif

untitledf672302d90d7fa5f.gif

Herhangi bir dilin temelini öğrendikten sonra, öğrendiğiniz dil'in frameworklerini araştırabilirsiniz. Günümüz yazılım teknolojileri artık frameworklere doğru kayıyor. Örneğin Python öğrendiyseniz Django ile hızlıca web uygulamaları geliştirebilirsiniz. Javascript ile NodeJS frameworkunu öğrenebilirsiniz.

Yazılım öğrenme süreci, öğrendim bitti gibi bir süreç değildir. Temelleri sabit kalır fakat dilin kendisi sürekli gelişir ve değişir. Bundan dolayı öğrenmeye başlamadan önce sürekli birşeyleri öğrenmeniz bilinciyle öğrenmeye başlayın.

Yazılım defter ve kalemle öğrenilebilecek birşey değildir. Bundan dolayı sürekli deneme yapın ve yazılımın verdiği tepkilere göre kendinize sorular sorun. Saçma sapan fikirler üretin, kullanmayacak olsanız bile. Öğrenme aşamasında hayal edip, hayata geçirmek motivasyon açısından çok önemlidir.

Öğrendiğiniz komutları veya kopyala yapıştır yaptığınız komutları bir klasörde saklayın. İhtiyacınız olduğunda oradan kullanın. Kopyala yapıştır yaparken sürekli aynı şeyleri görmeniz neyi aradığınızı bilmeniz gelişiminize fayda sağlayacaktır ve göz aşinalığı oluşturacaktır.

Öğrenme sürecinde arkadaşlar edinin. Öğrenme sürecinde öğrenmekten çok motivasyon kaybıyla vakit kaybedeceksiniz. Farklı arkadaşlar edinmek ve beraber öğrenmek, motivasyon arttırma açısından etkili olabilir. Ayrıca yazılımcılar asosyal olur klişesini savunmaktan vazgeçin.

Yeni öğrenen arkadaşlarda çok sık rastlıyorum. Arkadaşlar çok geç olmadan lütfen şu for ile while ayrımını öğrenin.

Sıkça Sorulan Sorular

6OfL8I.gif

xwryMps.gif

Yazılım öğrenmek için matematik öğrenmek şart mıdır?

Aslında bu konu biraz karmaşık. Matematik bilmeden yazılım geliştirebilirsiniz. Fakat ben iyi bir yazılımcı olacağım, iyi bir kariyerim olacak diyebilmek için matematik şarttır. İyi bir yazılımcı olmak bence 2 temele dayanıyor.

1.si çok iyi Matematik çok iyi algoritmalar kurma konusunda önemli. Eğer backend alanında kendinizi geliştirecekseniz matematik önemli. Matematik olmadanda yazılım yapabilirsiniz. Fakat bu durumda çok basit çözümler için algoritma kuramadığınızda yolu çok fazla uzatıyorsunuz. Oysa bir kaç temel pratik matematik ile 1-2 satırda problemi çözebiliyorsunuz. Eğer bilgisayar bilimleri alanında kariyer yapacaksanız matematik şart. Görüntü işleme ile uğraşacaksanız geometri bilmek şart.

2.si yaratıcılık. Evet matematiği iyi olmayıp yaratıcı olan insanlar çok güzel çözümler üretebiliyor. Bunu çoğu zaman matematiğe ihtiyaç duymadan yapabiliyorlar.

Ben genel olarak en azından temel seviyede matematik bilmenizi eğer bilmiyorsanız yazılıma başlamadan önce öğrenmenizi tavsiye ediyorum. Matematik öğrenmekten kastım 2+2 = 4 hesaplamak değil! Matematiği nasıl kullanacağınız nerede neye ihtiyaç duyacağınız konusudur. Yoksa bilgisayarlar zaten 2+2'yi hesaplıyor.

Yazılım öğrenmek için İngilizce şart mıdır?

Evet yazılım öğrenmek için İngilizce şarttır. İngilizce bilmekten kasıt su gibi ingilizce konuşmak değil. En azından tıkandığınız noktalarda büyük topluluklardan yardım isteyip, kendinizi ifade edebilecek kadar ingilizce şart.

Hangi editörü kullanmalıyım?

Kullanacağınız dile göre çok fazla değişkenlik gösterebilir. Fakat ben vscode kullanıyorum ve memnunum. Vscode indirip eklentiler ile zenginleştirebilirsiniz. IDE'ler yazılım öğrenme sürecinde sizin silah arkadaşınız olacaktır. Bundan dolayı iyi bir tercih yapmak çok önemli.

Yazılımda çok fazla terim var, o kadar şeyi nasıl öğreneceğim?

Türkçe dilimiz çok güzel bir dil. Fakat ingilizce kadar esnek değil. Bundan dolayı bazı terimlerin Türkçe karşılığı olmayabiliyor. Olmasına da gerek yok zaten. Bu konuyu çok fazla dert etmenize gerek yok. Öğrendikçe yerine oturuyor.

Ne kadar sürede yazılım öğrenebilirim?

Yukarıda bahsettiğim gibi yazılım öğrendim bitti gibi bir süreç değil. Öğrenme süreci sürekli devam ediyor. Sadece bir yerden sonra öğrenmenin temposu azalıyor. Temel bir yazılım dilini öğrenmek, kavramak fikir üretebilmek çalışma azminize bağlı olarak 1 ay ile 1 yıl arasında değişebilir. Elbette bu süreç içerisinde bir çok proje geliştirebilirsiniz. Fakat bu o dili öğrendiğiniz anlamına gelmiyor.

Hangi projeleri yapabilirim?

Basitten başlayın. İlerledikçe projeleri karmaşıklaştırın.

Abi bi ton kütüphane var hepsini nasıl öğreneceğim?

Arkadaşlar yazılım mesleğinin büyük bir kısmı dökümantasyon okuyarak geçiyor. Bundan dolayı kütüphanenin kendisini öğrenmekten çok dökümantasyon okumayı öğrenmeye zaman harcarsanız bu kısmı hızlıca çözersiniz.

Yazılım için önerebileceğin kitap önerisi?

Ben yazılıma başlarken kitap okuyarak başlamanızı tavsiye etmiyorum. Yazılım için bilgisayar ortamından erişebileceğiniz kaynaklar daha değerli. Gördüğünüz kodu hemen çalıştırıp bilgisayarın reaksiyonunu gözlemlemek daha mantıklı geliyor. Kitaptan yazılım öğrenenlerin nasıl öğrendiği konusunda bir fikrim yok.

İnternetten yazılım öğrenebilir miyim?

Evet hiçbir kursa gitmeden bilgisayarınızın başında internetten yazılım öğrenebilirsiniz. Tek ihtiyacınız olan şey motivasyon. Birde ingilizce.

Programlama temelini öğrendim, şimdi ne yapacağım?

Pratik, pratik, pratik, pratik......

Eğer imkanınız varsa her yıl farklı farklı kuruluşlarda staj yapın.

Open Source (Açık Kaynak) Nedir?

Open-source, kaynak kodunun kamuya açık olarak paylaşıldığı yazılım anlamına gelir. Bu, diğer programcıların yazılımı değiştirmesine, geliştirmesine veya dağıtmasına izin verir. Açık kaynak yazılım, genellikle ücretsizdir ve geniş bir topluluk tarafından desteklenir.

Kod yazarken hata alıyorum, ne yapmalıyım?

Kod yazarken hata almak normaldir. Bunlar genellikle yanlış sözdizimi, yazım hatası, değişken adı hatası vb. gibi basit hatalardır. Hata mesajını okuyarak hatanın nedenini anlamaya çalışın ve hatayı düzeltin. Hata mesajı size hangi dosya ve hangi satırda hata olduğunu söyleyecektir. Ayrıca, kodlama hatalarını önlemek için sık sık kaydedin ve kodunuzu test edin.

Kapanış

6OfL8I.gif

untitleda58f8f45035b6ddb.gif

Umarım faydalı ve yön gösterici bir içerik olmuştur.

Eğer konu hoşunuza gittiyse aşağıdaki diğer konular ilginizi çekebilir.

Elinize sağlık hocam
 

Nemesa

Üye
15 Şub 2023
209
88
Kaplumbağalarbirligiderneği
a3b2jeo.png

İyi günler Türk Hack Team ailesi.

Bugün sizlere yazılım nasıl öğrenilir? Sorusunun cevabı olarak bir rehber oluşturacağım.

Konu içeriğinde anlatacağım birçok şey kendi tecrübelerim ve önerilerimdir.

Bu içeriğin yazılım öğrenme serüveninizde rehber olacağını umuyorum.

HZEJ3un.gif

Programlama Dili Seçimi

6OfL8I.gif

Evet, forumda çok sık denk geliyorsunuzdur. Yazılım nasıl öğrenirim? Başlıklarının çoğuna genelde ilk olarak cevap kendine göre bir programlama dili seç oluyor. "Başlangıç" için programlama dili seçimi gerçekten çok önemli. Fakat tırnak içerisinde belirttiğim gibi başlangıç için, ilginizi çeken bir alanda programlama dili seçmek çok önemli. Bir programlama dilini öğrendikten sonra diğer programlama dilleri temelde aynı. Bundan dolayı geçiş yapmak çok kolay. Ben gömülü sistemler öğreniyordum, şimdi sıkıldım web öğreneceğim gibi konudan konuya atlamayın. Bir dil belirleyip o dil üzerinden öğrenme sürecinizi ilerletin.

Ru3y3uV.png

Bildiğiniz gibi diller kendi içerisinde farklı amaçlar için kullanılabiliyor. Örneğin

gömülü sistemler için C/C++ , Java.

Bilgisayar bilimleri ve Veri analizi için Python, R.

Web Programlama için Javascript, PHP.

Bilgisayar programları için C#, Java,

Tercih edilebiliyor. Tabii burada öğrenmeye başlamak için seçim sizin. Fakat ben genel olarak insanların başlangıç için tavsiye ettiği Python dili yerine Javascript veya C# dillerini öğrenmenizi tavsiye ediyorum. Çünkü Python ile geliştirme yaparken temelinde bir arayüz sunmadığı için insanları kolay kolay tatmin etmiyor. Bu durum ben öğrenmeye çalıştım ama öğrenemedim aptal mıyım? Niye yapamıyorum? Gibi kendimizi demotive edecek sorulara neden oluyor.

Öğrenme Sürecinde Faydalanabileceğiniz Kaynaklar

6OfL8I.gif

Herşeyden önce bir yazılımcının en büyük yeteneği Google kullanmayı bilmesidir. Google'da derdini aramayı bilmeyen bir insan yazılımcı olamaz nokta ve imza.

ORzI4Ji.png

Google kullanmayı öğrendik. Şimdi diğer kaynaklara geçebiliriz.

Stackoverflow - Bu platform yazılımcılar tarafından problemlerinin paylaşıldığı ve sorularının yanıtlandığı bir platformdur. Mutlaka yazılımla ilgilenen herkesin yolu buraya düşer. Sizlerinde bir problemle karşı karşıya kaldığınızda ilk bakacağınız adres burası olmalı. Ayrıca hesap oluşturup sorulara cevap verirseniz, CV'nize Stackoverflow profilinizi ekleyebilirsiniz.

Github - THT'ye üye olupta bu platformu bilmeyen yoktur. Github kısacası açık kaynak kodların paylaşıldığı bir platformdur. Kariyer yapmayı planlıyorsanız aktif bir Github kullanıcısı olmanız gerekiyor. Kodlarınızı burada paylaşabilir, diğer insanların kodlarına bakıp kendinizi geliştirebilirsiniz. Aynı zamanda yazılım mülakatlarında ve iş başvurularıda Github hesabı mutlaka sorulur, kontrol edilir.

Medium - Medium insanların blog yazılarını paylaştığı bir platformdur. Burada yazılımla ilgili gerçekten ufuk açıcı konular paylaşılıyor. Burada paylaşılan içerikleri takip etmenizde fayda var. Eminim sizlere birçok konu hakkında farklı bakış açısı katacaktır.

TurkHackTeam - Evet yanlış duymadınız. Yazılıma ilk bu platformda başlayan birisi olarak TurkHackTeam programlama kategorilerinde yaptığım şeyleri paylaşıp, diğer kullanıcılardan geri bildirim almak beni inanılmaz motive etti. Sizlerde öğrenme sürecinizde geliştirdiğiniz projeleri uygun programlama kategorilerinde paylaşabilir ve insanlardan geri bildirim alabilirsiniz!

Yazılım öğrenme reçetesi

6OfL8I.gif

Evet yeni başlayacak arkadaşlar için hangi dil olursa olsun kullanabileceğiniz bir reçete oluşturuyorum. Sırasıyla bunları öğrendiğinizde birçok şeyi kafanızda oturtmuş olacaksınız. Burada konusu geçen bütün başlıklar, bütün programlama dillerinde mevcuttur. Fakat bazıları farklı şekilde isimlendiriliyor olabilirler.

hdbpczZ.gif

1. Değişkenler ve veri tipleri:Belirli türlerde verileri depolamak için kullanılır. (int,str,float,vb.)

2. Operatörler : Matematiksel ve mantıksal işlemler.(toplama,çarpma, çıkarma,vb.)

3. Kontrol yapıları : Programların akışını yönlendirmek için(if-else, while, for loop , vb.)

4. Diziler: Birbirine benzer türde verileri depolamak için kullanılır.

5. Fonksiyonlar: Bir kod bloğunun tekrar kullanılmasını sağlar.

6. Sınıflar: herhangi bir nesnesini karakterize eden bir özellik kümesi tanımlayan bir nesne için kullanıcı tanımlı bir prototiptir.

Genel Tavsiyeler

6OfL8I.gif

untitledf672302d90d7fa5f.gif

Herhangi bir dilin temelini öğrendikten sonra, öğrendiğiniz dil'in frameworklerini araştırabilirsiniz. Günümüz yazılım teknolojileri artık frameworklere doğru kayıyor. Örneğin Python öğrendiyseniz Django ile hızlıca web uygulamaları geliştirebilirsiniz. Javascript ile NodeJS frameworkunu öğrenebilirsiniz.

Yazılım öğrenme süreci, öğrendim bitti gibi bir süreç değildir. Temelleri sabit kalır fakat dilin kendisi sürekli gelişir ve değişir. Bundan dolayı öğrenmeye başlamadan önce sürekli birşeyleri öğrenmeniz bilinciyle öğrenmeye başlayın.

Yazılım defter ve kalemle öğrenilebilecek birşey değildir. Bundan dolayı sürekli deneme yapın ve yazılımın verdiği tepkilere göre kendinize sorular sorun. Saçma sapan fikirler üretin, kullanmayacak olsanız bile. Öğrenme aşamasında hayal edip, hayata geçirmek motivasyon açısından çok önemlidir.

Öğrendiğiniz komutları veya kopyala yapıştır yaptığınız komutları bir klasörde saklayın. İhtiyacınız olduğunda oradan kullanın. Kopyala yapıştır yaparken sürekli aynı şeyleri görmeniz neyi aradığınızı bilmeniz gelişiminize fayda sağlayacaktır ve göz aşinalığı oluşturacaktır.

Öğrenme sürecinde arkadaşlar edinin. Öğrenme sürecinde öğrenmekten çok motivasyon kaybıyla vakit kaybedeceksiniz. Farklı arkadaşlar edinmek ve beraber öğrenmek, motivasyon arttırma açısından etkili olabilir. Ayrıca yazılımcılar asosyal olur klişesini savunmaktan vazgeçin.

Yeni öğrenen arkadaşlarda çok sık rastlıyorum. Arkadaşlar çok geç olmadan lütfen şu for ile while ayrımını öğrenin.

Sıkça Sorulan Sorular

6OfL8I.gif

xwryMps.gif

Yazılım öğrenmek için matematik öğrenmek şart mıdır?

Aslında bu konu biraz karmaşık. Matematik bilmeden yazılım geliştirebilirsiniz. Fakat ben iyi bir yazılımcı olacağım, iyi bir kariyerim olacak diyebilmek için matematik şarttır. İyi bir yazılımcı olmak bence 2 temele dayanıyor.

1.si çok iyi Matematik çok iyi algoritmalar kurma konusunda önemli. Eğer backend alanında kendinizi geliştirecekseniz matematik önemli. Matematik olmadanda yazılım yapabilirsiniz. Fakat bu durumda çok basit çözümler için algoritma kuramadığınızda yolu çok fazla uzatıyorsunuz. Oysa bir kaç temel pratik matematik ile 1-2 satırda problemi çözebiliyorsunuz. Eğer bilgisayar bilimleri alanında kariyer yapacaksanız matematik şart. Görüntü işleme ile uğraşacaksanız geometri bilmek şart.

2.si yaratıcılık. Evet matematiği iyi olmayıp yaratıcı olan insanlar çok güzel çözümler üretebiliyor. Bunu çoğu zaman matematiğe ihtiyaç duymadan yapabiliyorlar.

Ben genel olarak en azından temel seviyede matematik bilmenizi eğer bilmiyorsanız yazılıma başlamadan önce öğrenmenizi tavsiye ediyorum. Matematik öğrenmekten kastım 2+2 = 4 hesaplamak değil! Matematiği nasıl kullanacağınız nerede neye ihtiyaç duyacağınız konusudur. Yoksa bilgisayarlar zaten 2+2'yi hesaplıyor.

Yazılım öğrenmek için İngilizce şart mıdır?

Evet yazılım öğrenmek için İngilizce şarttır. İngilizce bilmekten kasıt su gibi ingilizce konuşmak değil. En azından tıkandığınız noktalarda büyük topluluklardan yardım isteyip, kendinizi ifade edebilecek kadar ingilizce şart.

Hangi editörü kullanmalıyım?

Kullanacağınız dile göre çok fazla değişkenlik gösterebilir. Fakat ben vscode kullanıyorum ve memnunum. Vscode indirip eklentiler ile zenginleştirebilirsiniz. IDE'ler yazılım öğrenme sürecinde sizin silah arkadaşınız olacaktır. Bundan dolayı iyi bir tercih yapmak çok önemli.

Yazılımda çok fazla terim var, o kadar şeyi nasıl öğreneceğim?

Türkçe dilimiz çok güzel bir dil. Fakat ingilizce kadar esnek değil. Bundan dolayı bazı terimlerin Türkçe karşılığı olmayabiliyor. Olmasına da gerek yok zaten. Bu konuyu çok fazla dert etmenize gerek yok. Öğrendikçe yerine oturuyor.

Ne kadar sürede yazılım öğrenebilirim?

Yukarıda bahsettiğim gibi yazılım öğrendim bitti gibi bir süreç değil. Öğrenme süreci sürekli devam ediyor. Sadece bir yerden sonra öğrenmenin temposu azalıyor. Temel bir yazılım dilini öğrenmek, kavramak fikir üretebilmek çalışma azminize bağlı olarak 1 ay ile 1 yıl arasında değişebilir. Elbette bu süreç içerisinde bir çok proje geliştirebilirsiniz. Fakat bu o dili öğrendiğiniz anlamına gelmiyor.

Hangi projeleri yapabilirim?

Basitten başlayın. İlerledikçe projeleri karmaşıklaştırın.

Abi bi ton kütüphane var hepsini nasıl öğreneceğim?

Arkadaşlar yazılım mesleğinin büyük bir kısmı dökümantasyon okuyarak geçiyor. Bundan dolayı kütüphanenin kendisini öğrenmekten çok dökümantasyon okumayı öğrenmeye zaman harcarsanız bu kısmı hızlıca çözersiniz.

Yazılım için önerebileceğin kitap önerisi?

Ben yazılıma başlarken kitap okuyarak başlamanızı tavsiye etmiyorum. Yazılım için bilgisayar ortamından erişebileceğiniz kaynaklar daha değerli. Gördüğünüz kodu hemen çalıştırıp bilgisayarın reaksiyonunu gözlemlemek daha mantıklı geliyor. Kitaptan yazılım öğrenenlerin nasıl öğrendiği konusunda bir fikrim yok.

İnternetten yazılım öğrenebilir miyim?

Evet hiçbir kursa gitmeden bilgisayarınızın başında internetten yazılım öğrenebilirsiniz. Tek ihtiyacınız olan şey motivasyon. Birde ingilizce.

Programlama temelini öğrendim, şimdi ne yapacağım?

Pratik, pratik, pratik, pratik......

Eğer imkanınız varsa her yıl farklı farklı kuruluşlarda staj yapın.

Open Source (Açık Kaynak) Nedir?

Open-source, kaynak kodunun kamuya açık olarak paylaşıldığı yazılım anlamına gelir. Bu, diğer programcıların yazılımı değiştirmesine, geliştirmesine veya dağıtmasına izin verir. Açık kaynak yazılım, genellikle ücretsizdir ve geniş bir topluluk tarafından desteklenir.

Kod yazarken hata alıyorum, ne yapmalıyım?

Kod yazarken hata almak normaldir. Bunlar genellikle yanlış sözdizimi, yazım hatası, değişken adı hatası vb. gibi basit hatalardır. Hata mesajını okuyarak hatanın nedenini anlamaya çalışın ve hatayı düzeltin. Hata mesajı size hangi dosya ve hangi satırda hata olduğunu söyleyecektir. Ayrıca, kodlama hatalarını önlemek için sık sık kaydedin ve kodunuzu test edin.

Kapanış

6OfL8I.gif

untitleda58f8f45035b6ddb.gif

Umarım faydalı ve yön gösterici bir içerik olmuştur.

Eğer konu hoşunuza gittiyse aşağıdaki diğer konular ilginizi çekebilir.

Sağolun hocam cok iyi
 

ACHERONN

Üye
7 Şub 2023
150
60
a3b2jeo.png

İyi günler Türk Hack Team ailesi.

Bugün sizlere yazılım nasıl öğrenilir? Sorusunun cevabı olarak bir rehber oluşturacağım.

Konu içeriğinde anlatacağım birçok şey kendi tecrübelerim ve önerilerimdir.

Bu içeriğin yazılım öğrenme serüveninizde rehber olacağını umuyorum.

HZEJ3un.gif

Programlama Dili Seçimi

6OfL8I.gif

Evet, forumda çok sık denk geliyorsunuzdur. Yazılım nasıl öğrenirim? Başlıklarının çoğuna genelde ilk olarak cevap kendine göre bir programlama dili seç oluyor. "Başlangıç" için programlama dili seçimi gerçekten çok önemli. Fakat tırnak içerisinde belirttiğim gibi başlangıç için, ilginizi çeken bir alanda programlama dili seçmek çok önemli. Bir programlama dilini öğrendikten sonra diğer programlama dilleri temelde aynı. Bundan dolayı geçiş yapmak çok kolay. Ben gömülü sistemler öğreniyordum, şimdi sıkıldım web öğreneceğim gibi konudan konuya atlamayın. Bir dil belirleyip o dil üzerinden öğrenme sürecinizi ilerletin.

Ru3y3uV.png

Bildiğiniz gibi diller kendi içerisinde farklı amaçlar için kullanılabiliyor. Örneğin

gömülü sistemler için C/C++ , Java.

Bilgisayar bilimleri ve Veri analizi için Python, R.

Web Programlama için Javascript, PHP.

Bilgisayar programları için C#, Java,

Tercih edilebiliyor. Tabii burada öğrenmeye başlamak için seçim sizin. Fakat ben genel olarak insanların başlangıç için tavsiye ettiği Python dili yerine Javascript veya C# dillerini öğrenmenizi tavsiye ediyorum. Çünkü Python ile geliştirme yaparken temelinde bir arayüz sunmadığı için insanları kolay kolay tatmin etmiyor. Bu durum ben öğrenmeye çalıştım ama öğrenemedim aptal mıyım? Niye yapamıyorum? Gibi kendimizi demotive edecek sorulara neden oluyor.

Öğrenme Sürecinde Faydalanabileceğiniz Kaynaklar

6OfL8I.gif

Herşeyden önce bir yazılımcının en büyük yeteneği Google kullanmayı bilmesidir. Google'da derdini aramayı bilmeyen bir insan yazılımcı olamaz nokta ve imza.

ORzI4Ji.png

Google kullanmayı öğrendik. Şimdi diğer kaynaklara geçebiliriz.

Stackoverflow - Bu platform yazılımcılar tarafından problemlerinin paylaşıldığı ve sorularının yanıtlandığı bir platformdur. Mutlaka yazılımla ilgilenen herkesin yolu buraya düşer. Sizlerinde bir problemle karşı karşıya kaldığınızda ilk bakacağınız adres burası olmalı. Ayrıca hesap oluşturup sorulara cevap verirseniz, CV'nize Stackoverflow profilinizi ekleyebilirsiniz.

Github - THT'ye üye olupta bu platformu bilmeyen yoktur. Github kısacası açık kaynak kodların paylaşıldığı bir platformdur. Kariyer yapmayı planlıyorsanız aktif bir Github kullanıcısı olmanız gerekiyor. Kodlarınızı burada paylaşabilir, diğer insanların kodlarına bakıp kendinizi geliştirebilirsiniz. Aynı zamanda yazılım mülakatlarında ve iş başvurularıda Github hesabı mutlaka sorulur, kontrol edilir.

Medium - Medium insanların blog yazılarını paylaştığı bir platformdur. Burada yazılımla ilgili gerçekten ufuk açıcı konular paylaşılıyor. Burada paylaşılan içerikleri takip etmenizde fayda var. Eminim sizlere birçok konu hakkında farklı bakış açısı katacaktır.

TurkHackTeam - Evet yanlış duymadınız. Yazılıma ilk bu platformda başlayan birisi olarak TurkHackTeam programlama kategorilerinde yaptığım şeyleri paylaşıp, diğer kullanıcılardan geri bildirim almak beni inanılmaz motive etti. Sizlerde öğrenme sürecinizde geliştirdiğiniz projeleri uygun programlama kategorilerinde paylaşabilir ve insanlardan geri bildirim alabilirsiniz!

Yazılım öğrenme reçetesi

6OfL8I.gif

Evet yeni başlayacak arkadaşlar için hangi dil olursa olsun kullanabileceğiniz bir reçete oluşturuyorum. Sırasıyla bunları öğrendiğinizde birçok şeyi kafanızda oturtmuş olacaksınız. Burada konusu geçen bütün başlıklar, bütün programlama dillerinde mevcuttur. Fakat bazıları farklı şekilde isimlendiriliyor olabilirler.

hdbpczZ.gif

1. Değişkenler ve veri tipleri:Belirli türlerde verileri depolamak için kullanılır. (int,str,float,vb.)

2. Operatörler : Matematiksel ve mantıksal işlemler.(toplama,çarpma, çıkarma,vb.)

3. Kontrol yapıları : Programların akışını yönlendirmek için(if-else, while, for loop , vb.)

4. Diziler: Birbirine benzer türde verileri depolamak için kullanılır.

5. Fonksiyonlar: Bir kod bloğunun tekrar kullanılmasını sağlar.

6. Sınıflar: herhangi bir nesnesini karakterize eden bir özellik kümesi tanımlayan bir nesne için kullanıcı tanımlı bir prototiptir.

Genel Tavsiyeler

6OfL8I.gif

untitledf672302d90d7fa5f.gif

Herhangi bir dilin temelini öğrendikten sonra, öğrendiğiniz dil'in frameworklerini araştırabilirsiniz. Günümüz yazılım teknolojileri artık frameworklere doğru kayıyor. Örneğin Python öğrendiyseniz Django ile hızlıca web uygulamaları geliştirebilirsiniz. Javascript ile NodeJS frameworkunu öğrenebilirsiniz.

Yazılım öğrenme süreci, öğrendim bitti gibi bir süreç değildir. Temelleri sabit kalır fakat dilin kendisi sürekli gelişir ve değişir. Bundan dolayı öğrenmeye başlamadan önce sürekli birşeyleri öğrenmeniz bilinciyle öğrenmeye başlayın.

Yazılım defter ve kalemle öğrenilebilecek birşey değildir. Bundan dolayı sürekli deneme yapın ve yazılımın verdiği tepkilere göre kendinize sorular sorun. Saçma sapan fikirler üretin, kullanmayacak olsanız bile. Öğrenme aşamasında hayal edip, hayata geçirmek motivasyon açısından çok önemlidir.

Öğrendiğiniz komutları veya kopyala yapıştır yaptığınız komutları bir klasörde saklayın. İhtiyacınız olduğunda oradan kullanın. Kopyala yapıştır yaparken sürekli aynı şeyleri görmeniz neyi aradığınızı bilmeniz gelişiminize fayda sağlayacaktır ve göz aşinalığı oluşturacaktır.

Öğrenme sürecinde arkadaşlar edinin. Öğrenme sürecinde öğrenmekten çok motivasyon kaybıyla vakit kaybedeceksiniz. Farklı arkadaşlar edinmek ve beraber öğrenmek, motivasyon arttırma açısından etkili olabilir. Ayrıca yazılımcılar asosyal olur klişesini savunmaktan vazgeçin.

Yeni öğrenen arkadaşlarda çok sık rastlıyorum. Arkadaşlar çok geç olmadan lütfen şu for ile while ayrımını öğrenin.

Sıkça Sorulan Sorular

6OfL8I.gif

xwryMps.gif

Yazılım öğrenmek için matematik öğrenmek şart mıdır?

Aslında bu konu biraz karmaşık. Matematik bilmeden yazılım geliştirebilirsiniz. Fakat ben iyi bir yazılımcı olacağım, iyi bir kariyerim olacak diyebilmek için matematik şarttır. İyi bir yazılımcı olmak bence 2 temele dayanıyor.

1.si çok iyi Matematik çok iyi algoritmalar kurma konusunda önemli. Eğer backend alanında kendinizi geliştirecekseniz matematik önemli. Matematik olmadanda yazılım yapabilirsiniz. Fakat bu durumda çok basit çözümler için algoritma kuramadığınızda yolu çok fazla uzatıyorsunuz. Oysa bir kaç temel pratik matematik ile 1-2 satırda problemi çözebiliyorsunuz. Eğer bilgisayar bilimleri alanında kariyer yapacaksanız matematik şart. Görüntü işleme ile uğraşacaksanız geometri bilmek şart.

2.si yaratıcılık. Evet matematiği iyi olmayıp yaratıcı olan insanlar çok güzel çözümler üretebiliyor. Bunu çoğu zaman matematiğe ihtiyaç duymadan yapabiliyorlar.

Ben genel olarak en azından temel seviyede matematik bilmenizi eğer bilmiyorsanız yazılıma başlamadan önce öğrenmenizi tavsiye ediyorum. Matematik öğrenmekten kastım 2+2 = 4 hesaplamak değil! Matematiği nasıl kullanacağınız nerede neye ihtiyaç duyacağınız konusudur. Yoksa bilgisayarlar zaten 2+2'yi hesaplıyor.

Yazılım öğrenmek için İngilizce şart mıdır?

Evet yazılım öğrenmek için İngilizce şarttır. İngilizce bilmekten kasıt su gibi ingilizce konuşmak değil. En azından tıkandığınız noktalarda büyük topluluklardan yardım isteyip, kendinizi ifade edebilecek kadar ingilizce şart.

Hangi editörü kullanmalıyım?

Kullanacağınız dile göre çok fazla değişkenlik gösterebilir. Fakat ben vscode kullanıyorum ve memnunum. Vscode indirip eklentiler ile zenginleştirebilirsiniz. IDE'ler yazılım öğrenme sürecinde sizin silah arkadaşınız olacaktır. Bundan dolayı iyi bir tercih yapmak çok önemli.

Yazılımda çok fazla terim var, o kadar şeyi nasıl öğreneceğim?

Türkçe dilimiz çok güzel bir dil. Fakat ingilizce kadar esnek değil. Bundan dolayı bazı terimlerin Türkçe karşılığı olmayabiliyor. Olmasına da gerek yok zaten. Bu konuyu çok fazla dert etmenize gerek yok. Öğrendikçe yerine oturuyor.

Ne kadar sürede yazılım öğrenebilirim?

Yukarıda bahsettiğim gibi yazılım öğrendim bitti gibi bir süreç değil. Öğrenme süreci sürekli devam ediyor. Sadece bir yerden sonra öğrenmenin temposu azalıyor. Temel bir yazılım dilini öğrenmek, kavramak fikir üretebilmek çalışma azminize bağlı olarak 1 ay ile 1 yıl arasında değişebilir. Elbette bu süreç içerisinde bir çok proje geliştirebilirsiniz. Fakat bu o dili öğrendiğiniz anlamına gelmiyor.

Hangi projeleri yapabilirim?

Basitten başlayın. İlerledikçe projeleri karmaşıklaştırın.

Abi bi ton kütüphane var hepsini nasıl öğreneceğim?

Arkadaşlar yazılım mesleğinin büyük bir kısmı dökümantasyon okuyarak geçiyor. Bundan dolayı kütüphanenin kendisini öğrenmekten çok dökümantasyon okumayı öğrenmeye zaman harcarsanız bu kısmı hızlıca çözersiniz.

Yazılım için önerebileceğin kitap önerisi?

Ben yazılıma başlarken kitap okuyarak başlamanızı tavsiye etmiyorum. Yazılım için bilgisayar ortamından erişebileceğiniz kaynaklar daha değerli. Gördüğünüz kodu hemen çalıştırıp bilgisayarın reaksiyonunu gözlemlemek daha mantıklı geliyor. Kitaptan yazılım öğrenenlerin nasıl öğrendiği konusunda bir fikrim yok.

İnternetten yazılım öğrenebilir miyim?

Evet hiçbir kursa gitmeden bilgisayarınızın başında internetten yazılım öğrenebilirsiniz. Tek ihtiyacınız olan şey motivasyon. Birde ingilizce.

Programlama temelini öğrendim, şimdi ne yapacağım?

Pratik, pratik, pratik, pratik......

Eğer imkanınız varsa her yıl farklı farklı kuruluşlarda staj yapın.

Open Source (Açık Kaynak) Nedir?

Open-source, kaynak kodunun kamuya açık olarak paylaşıldığı yazılım anlamına gelir. Bu, diğer programcıların yazılımı değiştirmesine, geliştirmesine veya dağıtmasına izin verir. Açık kaynak yazılım, genellikle ücretsizdir ve geniş bir topluluk tarafından desteklenir.

Kod yazarken hata alıyorum, ne yapmalıyım?

Kod yazarken hata almak normaldir. Bunlar genellikle yanlış sözdizimi, yazım hatası, değişken adı hatası vb. gibi basit hatalardır. Hata mesajını okuyarak hatanın nedenini anlamaya çalışın ve hatayı düzeltin. Hata mesajı size hangi dosya ve hangi satırda hata olduğunu söyleyecektir. Ayrıca, kodlama hatalarını önlemek için sık sık kaydedin ve kodunuzu test edin.

Kapanış

6OfL8I.gif

untitleda58f8f45035b6ddb.gif

Umarım faydalı ve yön gösterici bir içerik olmuştur.

Eğer konu hoşunuza gittiyse aşağıdaki diğer konular ilginizi çekebilir.

Elinize sağlık.
 

pawelyn

Katılımcı Üye
23 Nis 2022
469
159
Tor V3
a3b2jeo.png

İyi günler Türk Hack Team ailesi.

Bugün sizlere yazılım nasıl öğrenilir? Sorusunun cevabı olarak bir rehber oluşturacağım.

Konu içeriğinde anlatacağım birçok şey kendi tecrübelerim ve önerilerimdir.

Bu içeriğin yazılım öğrenme serüveninizde rehber olacağını umuyorum.

HZEJ3un.gif

Programlama Dili Seçimi

6OfL8I.gif

Evet, forumda çok sık denk geliyorsunuzdur. Yazılım nasıl öğrenirim? Başlıklarının çoğuna genelde ilk olarak cevap kendine göre bir programlama dili seç oluyor. "Başlangıç" için programlama dili seçimi gerçekten çok önemli. Fakat tırnak içerisinde belirttiğim gibi başlangıç için, ilginizi çeken bir alanda programlama dili seçmek çok önemli. Bir programlama dilini öğrendikten sonra diğer programlama dilleri temelde aynı. Bundan dolayı geçiş yapmak çok kolay. Ben gömülü sistemler öğreniyordum, şimdi sıkıldım web öğreneceğim gibi konudan konuya atlamayın. Bir dil belirleyip o dil üzerinden öğrenme sürecinizi ilerletin.

Ru3y3uV.png

Bildiğiniz gibi diller kendi içerisinde farklı amaçlar için kullanılabiliyor. Örneğin

gömülü sistemler için C/C++ , Java.

Bilgisayar bilimleri ve Veri analizi için Python, R.

Web Programlama için Javascript, PHP.

Bilgisayar programları için C#, Java,

Tercih edilebiliyor. Tabii burada öğrenmeye başlamak için seçim sizin. Fakat ben genel olarak insanların başlangıç için tavsiye ettiği Python dili yerine Javascript veya C# dillerini öğrenmenizi tavsiye ediyorum. Çünkü Python ile geliştirme yaparken temelinde bir arayüz sunmadığı için insanları kolay kolay tatmin etmiyor. Bu durum ben öğrenmeye çalıştım ama öğrenemedim aptal mıyım? Niye yapamıyorum? Gibi kendimizi demotive edecek sorulara neden oluyor.

Öğrenme Sürecinde Faydalanabileceğiniz Kaynaklar

6OfL8I.gif

Herşeyden önce bir yazılımcının en büyük yeteneği Google kullanmayı bilmesidir. Google'da derdini aramayı bilmeyen bir insan yazılımcı olamaz nokta ve imza.

ORzI4Ji.png

Google kullanmayı öğrendik. Şimdi diğer kaynaklara geçebiliriz.

Stackoverflow - Bu platform yazılımcılar tarafından problemlerinin paylaşıldığı ve sorularının yanıtlandığı bir platformdur. Mutlaka yazılımla ilgilenen herkesin yolu buraya düşer. Sizlerinde bir problemle karşı karşıya kaldığınızda ilk bakacağınız adres burası olmalı. Ayrıca hesap oluşturup sorulara cevap verirseniz, CV'nize Stackoverflow profilinizi ekleyebilirsiniz.

Github - THT'ye üye olupta bu platformu bilmeyen yoktur. Github kısacası açık kaynak kodların paylaşıldığı bir platformdur. Kariyer yapmayı planlıyorsanız aktif bir Github kullanıcısı olmanız gerekiyor. Kodlarınızı burada paylaşabilir, diğer insanların kodlarına bakıp kendinizi geliştirebilirsiniz. Aynı zamanda yazılım mülakatlarında ve iş başvurularıda Github hesabı mutlaka sorulur, kontrol edilir.

Medium - Medium insanların blog yazılarını paylaştığı bir platformdur. Burada yazılımla ilgili gerçekten ufuk açıcı konular paylaşılıyor. Burada paylaşılan içerikleri takip etmenizde fayda var. Eminim sizlere birçok konu hakkında farklı bakış açısı katacaktır.

TurkHackTeam - Evet yanlış duymadınız. Yazılıma ilk bu platformda başlayan birisi olarak TurkHackTeam programlama kategorilerinde yaptığım şeyleri paylaşıp, diğer kullanıcılardan geri bildirim almak beni inanılmaz motive etti. Sizlerde öğrenme sürecinizde geliştirdiğiniz projeleri uygun programlama kategorilerinde paylaşabilir ve insanlardan geri bildirim alabilirsiniz!

Yazılım öğrenme reçetesi

6OfL8I.gif

Evet yeni başlayacak arkadaşlar için hangi dil olursa olsun kullanabileceğiniz bir reçete oluşturuyorum. Sırasıyla bunları öğrendiğinizde birçok şeyi kafanızda oturtmuş olacaksınız. Burada konusu geçen bütün başlıklar, bütün programlama dillerinde mevcuttur. Fakat bazıları farklı şekilde isimlendiriliyor olabilirler.

hdbpczZ.gif

1. Değişkenler ve veri tipleri:Belirli türlerde verileri depolamak için kullanılır. (int,str,float,vb.)

2. Operatörler : Matematiksel ve mantıksal işlemler.(toplama,çarpma, çıkarma,vb.)

3. Kontrol yapıları : Programların akışını yönlendirmek için(if-else, while, for loop , vb.)

4. Diziler: Birbirine benzer türde verileri depolamak için kullanılır.

5. Fonksiyonlar: Bir kod bloğunun tekrar kullanılmasını sağlar.

6. Sınıflar: herhangi bir nesnesini karakterize eden bir özellik kümesi tanımlayan bir nesne için kullanıcı tanımlı bir prototiptir.

Genel Tavsiyeler

6OfL8I.gif

untitledf672302d90d7fa5f.gif

Herhangi bir dilin temelini öğrendikten sonra, öğrendiğiniz dil'in frameworklerini araştırabilirsiniz. Günümüz yazılım teknolojileri artık frameworklere doğru kayıyor. Örneğin Python öğrendiyseniz Django ile hızlıca web uygulamaları geliştirebilirsiniz. Javascript ile NodeJS frameworkunu öğrenebilirsiniz.

Yazılım öğrenme süreci, öğrendim bitti gibi bir süreç değildir. Temelleri sabit kalır fakat dilin kendisi sürekli gelişir ve değişir. Bundan dolayı öğrenmeye başlamadan önce sürekli birşeyleri öğrenmeniz bilinciyle öğrenmeye başlayın.

Yazılım defter ve kalemle öğrenilebilecek birşey değildir. Bundan dolayı sürekli deneme yapın ve yazılımın verdiği tepkilere göre kendinize sorular sorun. Saçma sapan fikirler üretin, kullanmayacak olsanız bile. Öğrenme aşamasında hayal edip, hayata geçirmek motivasyon açısından çok önemlidir.

Öğrendiğiniz komutları veya kopyala yapıştır yaptığınız komutları bir klasörde saklayın. İhtiyacınız olduğunda oradan kullanın. Kopyala yapıştır yaparken sürekli aynı şeyleri görmeniz neyi aradığınızı bilmeniz gelişiminize fayda sağlayacaktır ve göz aşinalığı oluşturacaktır.

Öğrenme sürecinde arkadaşlar edinin. Öğrenme sürecinde öğrenmekten çok motivasyon kaybıyla vakit kaybedeceksiniz. Farklı arkadaşlar edinmek ve beraber öğrenmek, motivasyon arttırma açısından etkili olabilir. Ayrıca yazılımcılar asosyal olur klişesini savunmaktan vazgeçin.

Yeni öğrenen arkadaşlarda çok sık rastlıyorum. Arkadaşlar çok geç olmadan lütfen şu for ile while ayrımını öğrenin.

Sıkça Sorulan Sorular

6OfL8I.gif

xwryMps.gif

Yazılım öğrenmek için matematik öğrenmek şart mıdır?

Aslında bu konu biraz karmaşık. Matematik bilmeden yazılım geliştirebilirsiniz. Fakat ben iyi bir yazılımcı olacağım, iyi bir kariyerim olacak diyebilmek için matematik şarttır. İyi bir yazılımcı olmak bence 2 temele dayanıyor.

1.si çok iyi Matematik çok iyi algoritmalar kurma konusunda önemli. Eğer backend alanında kendinizi geliştirecekseniz matematik önemli. Matematik olmadanda yazılım yapabilirsiniz. Fakat bu durumda çok basit çözümler için algoritma kuramadığınızda yolu çok fazla uzatıyorsunuz. Oysa bir kaç temel pratik matematik ile 1-2 satırda problemi çözebiliyorsunuz. Eğer bilgisayar bilimleri alanında kariyer yapacaksanız matematik şart. Görüntü işleme ile uğraşacaksanız geometri bilmek şart.

2.si yaratıcılık. Evet matematiği iyi olmayıp yaratıcı olan insanlar çok güzel çözümler üretebiliyor. Bunu çoğu zaman matematiğe ihtiyaç duymadan yapabiliyorlar.

Ben genel olarak en azından temel seviyede matematik bilmenizi eğer bilmiyorsanız yazılıma başlamadan önce öğrenmenizi tavsiye ediyorum. Matematik öğrenmekten kastım 2+2 = 4 hesaplamak değil! Matematiği nasıl kullanacağınız nerede neye ihtiyaç duyacağınız konusudur. Yoksa bilgisayarlar zaten 2+2'yi hesaplıyor.

Yazılım öğrenmek için İngilizce şart mıdır?

Evet yazılım öğrenmek için İngilizce şarttır. İngilizce bilmekten kasıt su gibi ingilizce konuşmak değil. En azından tıkandığınız noktalarda büyük topluluklardan yardım isteyip, kendinizi ifade edebilecek kadar ingilizce şart.

Hangi editörü kullanmalıyım?

Kullanacağınız dile göre çok fazla değişkenlik gösterebilir. Fakat ben vscode kullanıyorum ve memnunum. Vscode indirip eklentiler ile zenginleştirebilirsiniz. IDE'ler yazılım öğrenme sürecinde sizin silah arkadaşınız olacaktır. Bundan dolayı iyi bir tercih yapmak çok önemli.

Yazılımda çok fazla terim var, o kadar şeyi nasıl öğreneceğim?

Türkçe dilimiz çok güzel bir dil. Fakat ingilizce kadar esnek değil. Bundan dolayı bazı terimlerin Türkçe karşılığı olmayabiliyor. Olmasına da gerek yok zaten. Bu konuyu çok fazla dert etmenize gerek yok. Öğrendikçe yerine oturuyor.

Ne kadar sürede yazılım öğrenebilirim?

Yukarıda bahsettiğim gibi yazılım öğrendim bitti gibi bir süreç değil. Öğrenme süreci sürekli devam ediyor. Sadece bir yerden sonra öğrenmenin temposu azalıyor. Temel bir yazılım dilini öğrenmek, kavramak fikir üretebilmek çalışma azminize bağlı olarak 1 ay ile 1 yıl arasında değişebilir. Elbette bu süreç içerisinde bir çok proje geliştirebilirsiniz. Fakat bu o dili öğrendiğiniz anlamına gelmiyor.

Hangi projeleri yapabilirim?

Basitten başlayın. İlerledikçe projeleri karmaşıklaştırın.

Abi bi ton kütüphane var hepsini nasıl öğreneceğim?

Arkadaşlar yazılım mesleğinin büyük bir kısmı dökümantasyon okuyarak geçiyor. Bundan dolayı kütüphanenin kendisini öğrenmekten çok dökümantasyon okumayı öğrenmeye zaman harcarsanız bu kısmı hızlıca çözersiniz.

Yazılım için önerebileceğin kitap önerisi?

Ben yazılıma başlarken kitap okuyarak başlamanızı tavsiye etmiyorum. Yazılım için bilgisayar ortamından erişebileceğiniz kaynaklar daha değerli. Gördüğünüz kodu hemen çalıştırıp bilgisayarın reaksiyonunu gözlemlemek daha mantıklı geliyor. Kitaptan yazılım öğrenenlerin nasıl öğrendiği konusunda bir fikrim yok.

İnternetten yazılım öğrenebilir miyim?

Evet hiçbir kursa gitmeden bilgisayarınızın başında internetten yazılım öğrenebilirsiniz. Tek ihtiyacınız olan şey motivasyon. Birde ingilizce.

Programlama temelini öğrendim, şimdi ne yapacağım?

Pratik, pratik, pratik, pratik......

Eğer imkanınız varsa her yıl farklı farklı kuruluşlarda staj yapın.

Open Source (Açık Kaynak) Nedir?

Open-source, kaynak kodunun kamuya açık olarak paylaşıldığı yazılım anlamına gelir. Bu, diğer programcıların yazılımı değiştirmesine, geliştirmesine veya dağıtmasına izin verir. Açık kaynak yazılım, genellikle ücretsizdir ve geniş bir topluluk tarafından desteklenir.

Kod yazarken hata alıyorum, ne yapmalıyım?

Kod yazarken hata almak normaldir. Bunlar genellikle yanlış sözdizimi, yazım hatası, değişken adı hatası vb. gibi basit hatalardır. Hata mesajını okuyarak hatanın nedenini anlamaya çalışın ve hatayı düzeltin. Hata mesajı size hangi dosya ve hangi satırda hata olduğunu söyleyecektir. Ayrıca, kodlama hatalarını önlemek için sık sık kaydedin ve kodunuzu test edin.

Kapanış

6OfL8I.gif

untitleda58f8f45035b6ddb.gif

Umarım faydalı ve yön gösterici bir içerik olmuştur.

Eğer konu hoşunuza gittiyse aşağıdaki diğer konular ilginizi çekebilir.

Efso konu :D hocam ellerine sağlık çok güzel olmuş.
 

Speedy Gonzales

Katılımcı Üye
12 Kas 2021
636
294
in every technology system
a3b2jeo.png

İyi günler Türk Hack Team ailesi.

Bugün sizlere yazılım nasıl öğrenilir? Sorusunun cevabı olarak bir rehber oluşturacağım.

Konu içeriğinde anlatacağım birçok şey kendi tecrübelerim ve önerilerimdir.

Bu içeriğin yazılım öğrenme serüveninizde rehber olacağını umuyorum.

HZEJ3un.gif

Programlama Dili Seçimi

6OfL8I.gif

Evet, forumda çok sık denk geliyorsunuzdur. Yazılım nasıl öğrenirim? Başlıklarının çoğuna genelde ilk olarak cevap kendine göre bir programlama dili seç oluyor. "Başlangıç" için programlama dili seçimi gerçekten çok önemli. Fakat tırnak içerisinde belirttiğim gibi başlangıç için, ilginizi çeken bir alanda programlama dili seçmek çok önemli. Bir programlama dilini öğrendikten sonra diğer programlama dilleri temelde aynı. Bundan dolayı geçiş yapmak çok kolay. Ben gömülü sistemler öğreniyordum, şimdi sıkıldım web öğreneceğim gibi konudan konuya atlamayın. Bir dil belirleyip o dil üzerinden öğrenme sürecinizi ilerletin.

Ru3y3uV.png

Bildiğiniz gibi diller kendi içerisinde farklı amaçlar için kullanılabiliyor. Örneğin

gömülü sistemler için C/C++ , Java.

Bilgisayar bilimleri ve Veri analizi için Python, R.

Web Programlama için Javascript, PHP.

Bilgisayar programları için C#, Java,

Tercih edilebiliyor. Tabii burada öğrenmeye başlamak için seçim sizin. Fakat ben genel olarak insanların başlangıç için tavsiye ettiği Python dili yerine Javascript veya C# dillerini öğrenmenizi tavsiye ediyorum. Çünkü Python ile geliştirme yaparken temelinde bir arayüz sunmadığı için insanları kolay kolay tatmin etmiyor. Bu durum ben öğrenmeye çalıştım ama öğrenemedim aptal mıyım? Niye yapamıyorum? Gibi kendimizi demotive edecek sorulara neden oluyor.

Öğrenme Sürecinde Faydalanabileceğiniz Kaynaklar

6OfL8I.gif

Herşeyden önce bir yazılımcının en büyük yeteneği Google kullanmayı bilmesidir. Google'da derdini aramayı bilmeyen bir insan yazılımcı olamaz nokta ve imza.

ORzI4Ji.png

Google kullanmayı öğrendik. Şimdi diğer kaynaklara geçebiliriz.

Stackoverflow - Bu platform yazılımcılar tarafından problemlerinin paylaşıldığı ve sorularının yanıtlandığı bir platformdur. Mutlaka yazılımla ilgilenen herkesin yolu buraya düşer. Sizlerinde bir problemle karşı karşıya kaldığınızda ilk bakacağınız adres burası olmalı. Ayrıca hesap oluşturup sorulara cevap verirseniz, CV'nize Stackoverflow profilinizi ekleyebilirsiniz.

Github - THT'ye üye olupta bu platformu bilmeyen yoktur. Github kısacası açık kaynak kodların paylaşıldığı bir platformdur. Kariyer yapmayı planlıyorsanız aktif bir Github kullanıcısı olmanız gerekiyor. Kodlarınızı burada paylaşabilir, diğer insanların kodlarına bakıp kendinizi geliştirebilirsiniz. Aynı zamanda yazılım mülakatlarında ve iş başvurularıda Github hesabı mutlaka sorulur, kontrol edilir.

Medium - Medium insanların blog yazılarını paylaştığı bir platformdur. Burada yazılımla ilgili gerçekten ufuk açıcı konular paylaşılıyor. Burada paylaşılan içerikleri takip etmenizde fayda var. Eminim sizlere birçok konu hakkında farklı bakış açısı katacaktır.

TurkHackTeam - Evet yanlış duymadınız. Yazılıma ilk bu platformda başlayan birisi olarak TurkHackTeam programlama kategorilerinde yaptığım şeyleri paylaşıp, diğer kullanıcılardan geri bildirim almak beni inanılmaz motive etti. Sizlerde öğrenme sürecinizde geliştirdiğiniz projeleri uygun programlama kategorilerinde paylaşabilir ve insanlardan geri bildirim alabilirsiniz!

Yazılım öğrenme reçetesi

6OfL8I.gif

Yeni başlayacak arkadaşlar için hangi dil olursa olsun kullanabileceğiniz bir reçete oluşturuyorum. Sırasıyla bunları öğrendiğinizde birçok şeyi kafanızda oturtmuş olacaksınız. Burada konusu geçen bütün başlıklar, bütün programlama dillerinde mevcuttur. Fakat bazıları farklı şekilde isimlendiriliyor olabilirler.

hdbpczZ.gif

1. Değişkenler ve veri tipleri:Belirli türlerde verileri depolamak için kullanılır. (int,str,float,vb.)

2. Operatörler : Matematiksel ve mantıksal işlemler.(toplama,çarpma, çıkarma,vb.)

3. Kontrol yapıları : Programların akışını yönlendirmek için(if-else, while, for loop , vb.)

4. Diziler: Birbirine benzer türde verileri depolamak için kullanılır.

5. Fonksiyonlar: Bir kod bloğunun tekrar kullanılmasını sağlar.

6. Sınıflar: herhangi bir nesnesini karakterize eden bir özellik kümesi tanımlayan bir nesne için kullanıcı tanımlı bir prototiptir.

Genel Tavsiyeler

6OfL8I.gif

untitledf672302d90d7fa5f.gif

Herhangi bir dilin temelini öğrendikten sonra, öğrendiğiniz dil'in frameworklerini araştırabilirsiniz. Günümüz yazılım teknolojileri artık frameworklere doğru kayıyor. Örneğin Python öğrendiyseniz Django ile hızlıca web uygulamaları geliştirebilirsiniz. Javascript ile NodeJS frameworkunu öğrenebilirsiniz.

Yazılım öğrenme süreci, öğrendim bitti gibi bir süreç değildir. Temelleri sabit kalır fakat dilin kendisi sürekli gelişir ve değişir. Bundan dolayı öğrenmeye başlamadan önce sürekli birşeyleri öğrenmeniz bilinciyle öğrenmeye başlayın.

Yazılım defter ve kalemle öğrenilebilecek birşey değildir. Bundan dolayı sürekli deneme yapın ve yazılımın verdiği tepkilere göre kendinize sorular sorun. Saçma sapan fikirler üretin, kullanmayacak olsanız bile. Öğrenme aşamasında hayal edip, hayata geçirmek motivasyon açısından çok önemlidir.

Öğrendiğiniz komutları veya kopyala yapıştır yaptığınız komutları bir klasörde saklayın. İhtiyacınız olduğunda oradan kullanın. Kopyala yapıştır yaparken sürekli aynı şeyleri görmeniz neyi aradığınızı bilmeniz gelişiminize fayda sağlayacaktır ve göz aşinalığı oluşturacaktır.

Öğrenme sürecinde arkadaşlar edinin. Öğrenme sürecinde öğrenmekten çok motivasyon kaybıyla vakit kaybedeceksiniz. Farklı arkadaşlar edinmek ve beraber öğrenmek, motivasyon arttırma açısından etkili olabilir. Ayrıca yazılımcılar asosyal olur klişesini savunmaktan vazgeçin.

Yeni öğrenen arkadaşlarda çok sık rastlıyorum. Arkadaşlar çok geç olmadan lütfen şu for ile while ayrımını öğrenin.

Sıkça Sorulan Sorular

6OfL8I.gif

xwryMps.gif

Yazılım öğrenmek için matematik öğrenmek şart mıdır?

Aslında bu konu biraz karmaşık. Matematik bilmeden yazılım geliştirebilirsiniz. Fakat ben iyi bir yazılımcı olacağım, iyi bir kariyerim olacak diyebilmek için matematik şarttır. İyi bir yazılımcı olmak bence 2 temele dayanıyor.

1.si çok iyi Matematik çok iyi algoritmalar kurma konusunda önemli. Eğer backend alanında kendinizi geliştirecekseniz matematik önemli. Matematik olmadanda yazılım yapabilirsiniz. Fakat bu durumda çok basit çözümler için algoritma kuramadığınızda yolu çok fazla uzatıyorsunuz. Oysa bir kaç temel pratik matematik ile 1-2 satırda problemi çözebiliyorsunuz. Eğer bilgisayar bilimleri alanında kariyer yapacaksanız matematik şart. Görüntü işleme ile uğraşacaksanız geometri bilmek şart.

2.si yaratıcılık. Evet matematiği iyi olmayıp yaratıcı olan insanlar çok güzel çözümler üretebiliyor. Bunu çoğu zaman matematiğe ihtiyaç duymadan yapabiliyorlar.

Ben genel olarak en azından temel seviyede matematik bilmenizi eğer bilmiyorsanız yazılıma başlamadan önce öğrenmenizi tavsiye ediyorum. Matematik öğrenmekten kastım 2+2 = 4 hesaplamak değil! Matematiği nasıl kullanacağınız nerede neye ihtiyaç duyacağınız konusudur. Yoksa bilgisayarlar zaten 2+2'yi hesaplıyor.

Yazılım öğrenmek için İngilizce şart mıdır?

Evet yazılım öğrenmek için İngilizce şarttır. İngilizce bilmekten kasıt su gibi ingilizce konuşmak değil. En azından tıkandığınız noktalarda büyük topluluklardan yardım isteyip, kendinizi ifade edebilecek kadar ingilizce şart.

Hangi editörü kullanmalıyım?

Kullanacağınız dile göre çok fazla değişkenlik gösterebilir. Fakat ben vscode kullanıyorum ve memnunum. Vscode indirip eklentiler ile zenginleştirebilirsiniz. IDE'ler yazılım öğrenme sürecinde sizin silah arkadaşınız olacaktır. Bundan dolayı iyi bir tercih yapmak çok önemli.

Yazılımda çok fazla terim var, o kadar şeyi nasıl öğreneceğim?

Türkçe dilimiz çok güzel bir dil. Fakat ingilizce kadar esnek değil. Bundan dolayı bazı terimlerin Türkçe karşılığı olmayabiliyor. Olmasına da gerek yok zaten. Bu konuyu çok fazla dert etmenize gerek yok. Öğrendikçe yerine oturuyor.

Ne kadar sürede yazılım öğrenebilirim?

Yukarıda bahsettiğim gibi yazılım öğrendim bitti gibi bir süreç değil. Öğrenme süreci sürekli devam ediyor. Sadece bir yerden sonra öğrenmenin temposu azalıyor. Temel bir yazılım dilini öğrenmek, kavramak fikir üretebilmek çalışma azminize bağlı olarak 1 ay ile 1 yıl arasında değişebilir. Elbette bu süreç içerisinde bir çok proje geliştirebilirsiniz. Fakat bu o dili öğrendiğiniz anlamına gelmiyor.

Hangi projeleri yapabilirim?

Basitten başlayın. İlerledikçe projeleri karmaşıklaştırın.

Abi bi ton kütüphane var hepsini nasıl öğreneceğim?

Arkadaşlar yazılım mesleğinin büyük bir kısmı dökümantasyon okuyarak geçiyor. Bundan dolayı kütüphanenin kendisini öğrenmekten çok dökümantasyon okumayı öğrenmeye zaman harcarsanız bu kısmı hızlıca çözersiniz.

Yazılım için önerebileceğin kitap önerisi?

Ben yazılıma başlarken kitap okuyarak başlamanızı tavsiye etmiyorum. Yazılım için bilgisayar ortamından erişebileceğiniz kaynaklar daha değerli. Gördüğünüz kodu hemen çalıştırıp bilgisayarın reaksiyonunu gözlemlemek daha mantıklı geliyor. Kitaptan yazılım öğrenenlerin nasıl öğrendiği konusunda bir fikrim yok.

İnternetten yazılım öğrenebilir miyim?

Evet hiçbir kursa gitmeden bilgisayarınızın başında internetten yazılım öğrenebilirsiniz. Tek ihtiyacınız olan şey motivasyon. Birde ingilizce.

Programlama temelini öğrendim, şimdi ne yapacağım?

Pratik, pratik, pratik, pratik......

Eğer imkanınız varsa her yıl farklı farklı kuruluşlarda staj yapın.

Open Source (Açık Kaynak) Nedir?

Open-source, kaynak kodunun kamuya açık olarak paylaşıldığı yazılım anlamına gelir. Bu, diğer programcıların yazılımı değiştirmesine, geliştirmesine veya dağıtmasına izin verir. Açık kaynak yazılım, genellikle ücretsizdir ve geniş bir topluluk tarafından desteklenir.

Kod yazarken hata alıyorum, ne yapmalıyım?

Kod yazarken hata almak normaldir. Bunlar genellikle yanlış sözdizimi, yazım hatası, değişken adı hatası vb. gibi basit hatalardır. Hata mesajını okuyarak hatanın nedenini anlamaya çalışın ve hatayı düzeltin. Hata mesajı size hangi dosya ve hangi satırda hata olduğunu söyleyecektir. Ayrıca, kodlama hatalarını önlemek için sık sık kaydedin ve kodunuzu test edin.

Kapanış

6OfL8I.gif

untitleda58f8f45035b6ddb.gif

Umarım faydalı ve yön gösterici bir içerik olmuştur.

Eğer konu hoşunuza gittiyse aşağıdaki diğer konular ilginizi çekebilir.

Eline saglik aciklayici olmus
 

ACE Veen

Uzman üye
4 Şub 2023
1,034
511
Belirsiz
a3b2jeo.png

İyi günler Türk Hack Team ailesi.

Bugün sizlere yazılım nasıl öğrenilir? Sorusunun cevabı olarak bir rehber oluşturacağım.

Konu içeriğinde anlatacağım birçok şey kendi tecrübelerim ve önerilerimdir.

Bu içeriğin yazılım öğrenme serüveninizde rehber olacağını umuyorum.

HZEJ3un.gif

Programlama Dili Seçimi

6OfL8I.gif

Evet, forumda çok sık denk geliyorsunuzdur. Yazılım nasıl öğrenirim? Başlıklarının çoğuna genelde ilk olarak cevap kendine göre bir programlama dili seç oluyor. "Başlangıç" için programlama dili seçimi gerçekten çok önemli. Fakat tırnak içerisinde belirttiğim gibi başlangıç için, ilginizi çeken bir alanda programlama dili seçmek çok önemli. Bir programlama dilini öğrendikten sonra diğer programlama dilleri temelde aynı. Bundan dolayı geçiş yapmak çok kolay. Ben gömülü sistemler öğreniyordum, şimdi sıkıldım web öğreneceğim gibi konudan konuya atlamayın. Bir dil belirleyip o dil üzerinden öğrenme sürecinizi ilerletin.

Ru3y3uV.png

Bildiğiniz gibi diller kendi içerisinde farklı amaçlar için kullanılabiliyor. Örneğin

gömülü sistemler için C/C++ , Java.

Bilgisayar bilimleri ve Veri analizi için Python, R.

Web Programlama için Javascript, PHP.

Bilgisayar programları için C#, Java,

Tercih edilebiliyor. Tabii burada öğrenmeye başlamak için seçim sizin. Fakat ben genel olarak insanların başlangıç için tavsiye ettiği Python dili yerine Javascript veya C# dillerini öğrenmenizi tavsiye ediyorum. Çünkü Python ile geliştirme yaparken temelinde bir arayüz sunmadığı için insanları kolay kolay tatmin etmiyor. Bu durum ben öğrenmeye çalıştım ama öğrenemedim aptal mıyım? Niye yapamıyorum? Gibi kendimizi demotive edecek sorulara neden oluyor.

Öğrenme Sürecinde Faydalanabileceğiniz Kaynaklar

6OfL8I.gif

Herşeyden önce bir yazılımcının en büyük yeteneği Google kullanmayı bilmesidir. Google'da derdini aramayı bilmeyen bir insan yazılımcı olamaz nokta ve imza.

ORzI4Ji.png

Google kullanmayı öğrendik. Şimdi diğer kaynaklara geçebiliriz.

Stackoverflow - Bu platform yazılımcılar tarafından problemlerinin paylaşıldığı ve sorularının yanıtlandığı bir platformdur. Mutlaka yazılımla ilgilenen herkesin yolu buraya düşer. Sizlerinde bir problemle karşı karşıya kaldığınızda ilk bakacağınız adres burası olmalı. Ayrıca hesap oluşturup sorulara cevap verirseniz, CV'nize Stackoverflow profilinizi ekleyebilirsiniz.

Github - THT'ye üye olupta bu platformu bilmeyen yoktur. Github kısacası açık kaynak kodların paylaşıldığı bir platformdur. Kariyer yapmayı planlıyorsanız aktif bir Github kullanıcısı olmanız gerekiyor. Kodlarınızı burada paylaşabilir, diğer insanların kodlarına bakıp kendinizi geliştirebilirsiniz. Aynı zamanda yazılım mülakatlarında ve iş başvurularıda Github hesabı mutlaka sorulur, kontrol edilir.

Medium - Medium insanların blog yazılarını paylaştığı bir platformdur. Burada yazılımla ilgili gerçekten ufuk açıcı konular paylaşılıyor. Burada paylaşılan içerikleri takip etmenizde fayda var. Eminim sizlere birçok konu hakkında farklı bakış açısı katacaktır.

TurkHackTeam - Evet yanlış duymadınız. Yazılıma ilk bu platformda başlayan birisi olarak TurkHackTeam programlama kategorilerinde yaptığım şeyleri paylaşıp, diğer kullanıcılardan geri bildirim almak beni inanılmaz motive etti. Sizlerde öğrenme sürecinizde geliştirdiğiniz projeleri uygun programlama kategorilerinde paylaşabilir ve insanlardan geri bildirim alabilirsiniz!

Yazılım öğrenme reçetesi

6OfL8I.gif

Yeni başlayacak arkadaşlar için hangi dil olursa olsun kullanabileceğiniz bir reçete oluşturuyorum. Sırasıyla bunları öğrendiğinizde birçok şeyi kafanızda oturtmuş olacaksınız. Burada konusu geçen bütün başlıklar, bütün programlama dillerinde mevcuttur. Fakat bazıları farklı şekilde isimlendiriliyor olabilirler.

hdbpczZ.gif

1. Değişkenler ve veri tipleri:Belirli türlerde verileri depolamak için kullanılır. (int,str,float,vb.)

2. Operatörler : Matematiksel ve mantıksal işlemler.(toplama,çarpma, çıkarma,vb.)

3. Kontrol yapıları : Programların akışını yönlendirmek için(if-else, while, for loop , vb.)

4. Diziler: Birbirine benzer türde verileri depolamak için kullanılır.

5. Fonksiyonlar: Bir kod bloğunun tekrar kullanılmasını sağlar.

6. Sınıflar: herhangi bir nesnesini karakterize eden bir özellik kümesi tanımlayan bir nesne için kullanıcı tanımlı bir prototiptir.

Genel Tavsiyeler

6OfL8I.gif

untitledf672302d90d7fa5f.gif

Herhangi bir dilin temelini öğrendikten sonra, öğrendiğiniz dil'in frameworklerini araştırabilirsiniz. Günümüz yazılım teknolojileri artık frameworklere doğru kayıyor. Örneğin Python öğrendiyseniz Django ile hızlıca web uygulamaları geliştirebilirsiniz. Javascript ile NodeJS frameworkunu öğrenebilirsiniz.

Yazılım öğrenme süreci, öğrendim bitti gibi bir süreç değildir. Temelleri sabit kalır fakat dilin kendisi sürekli gelişir ve değişir. Bundan dolayı öğrenmeye başlamadan önce sürekli birşeyleri öğrenmeniz bilinciyle öğrenmeye başlayın.

Yazılım defter ve kalemle öğrenilebilecek birşey değildir. Bundan dolayı sürekli deneme yapın ve yazılımın verdiği tepkilere göre kendinize sorular sorun. Saçma sapan fikirler üretin, kullanmayacak olsanız bile. Öğrenme aşamasında hayal edip, hayata geçirmek motivasyon açısından çok önemlidir.

Öğrendiğiniz komutları veya kopyala yapıştır yaptığınız komutları bir klasörde saklayın. İhtiyacınız olduğunda oradan kullanın. Kopyala yapıştır yaparken sürekli aynı şeyleri görmeniz neyi aradığınızı bilmeniz gelişiminize fayda sağlayacaktır ve göz aşinalığı oluşturacaktır.

Öğrenme sürecinde arkadaşlar edinin. Öğrenme sürecinde öğrenmekten çok motivasyon kaybıyla vakit kaybedeceksiniz. Farklı arkadaşlar edinmek ve beraber öğrenmek, motivasyon arttırma açısından etkili olabilir. Ayrıca yazılımcılar asosyal olur klişesini savunmaktan vazgeçin.

Yeni öğrenen arkadaşlarda çok sık rastlıyorum. Arkadaşlar çok geç olmadan lütfen şu for ile while ayrımını öğrenin.

Sıkça Sorulan Sorular

6OfL8I.gif

xwryMps.gif

Yazılım öğrenmek için matematik öğrenmek şart mıdır?

Aslında bu konu biraz karmaşık. Matematik bilmeden yazılım geliştirebilirsiniz. Fakat ben iyi bir yazılımcı olacağım, iyi bir kariyerim olacak diyebilmek için matematik şarttır. İyi bir yazılımcı olmak bence 2 temele dayanıyor.

1.si çok iyi Matematik çok iyi algoritmalar kurma konusunda önemli. Eğer backend alanında kendinizi geliştirecekseniz matematik önemli. Matematik olmadanda yazılım yapabilirsiniz. Fakat bu durumda çok basit çözümler için algoritma kuramadığınızda yolu çok fazla uzatıyorsunuz. Oysa bir kaç temel pratik matematik ile 1-2 satırda problemi çözebiliyorsunuz. Eğer bilgisayar bilimleri alanında kariyer yapacaksanız matematik şart. Görüntü işleme ile uğraşacaksanız geometri bilmek şart.

2.si yaratıcılık. Evet matematiği iyi olmayıp yaratıcı olan insanlar çok güzel çözümler üretebiliyor. Bunu çoğu zaman matematiğe ihtiyaç duymadan yapabiliyorlar.

Ben genel olarak en azından temel seviyede matematik bilmenizi eğer bilmiyorsanız yazılıma başlamadan önce öğrenmenizi tavsiye ediyorum. Matematik öğrenmekten kastım 2+2 = 4 hesaplamak değil! Matematiği nasıl kullanacağınız nerede neye ihtiyaç duyacağınız konusudur. Yoksa bilgisayarlar zaten 2+2'yi hesaplıyor.

Yazılım öğrenmek için İngilizce şart mıdır?

Evet yazılım öğrenmek için İngilizce şarttır. İngilizce bilmekten kasıt su gibi ingilizce konuşmak değil. En azından tıkandığınız noktalarda büyük topluluklardan yardım isteyip, kendinizi ifade edebilecek kadar ingilizce şart.

Hangi editörü kullanmalıyım?

Kullanacağınız dile göre çok fazla değişkenlik gösterebilir. Fakat ben vscode kullanıyorum ve memnunum. Vscode indirip eklentiler ile zenginleştirebilirsiniz. IDE'ler yazılım öğrenme sürecinde sizin silah arkadaşınız olacaktır. Bundan dolayı iyi bir tercih yapmak çok önemli.

Yazılımda çok fazla terim var, o kadar şeyi nasıl öğreneceğim?

Türkçe dilimiz çok güzel bir dil. Fakat ingilizce kadar esnek değil. Bundan dolayı bazı terimlerin Türkçe karşılığı olmayabiliyor. Olmasına da gerek yok zaten. Bu konuyu çok fazla dert etmenize gerek yok. Öğrendikçe yerine oturuyor.

Ne kadar sürede yazılım öğrenebilirim?

Yukarıda bahsettiğim gibi yazılım öğrendim bitti gibi bir süreç değil. Öğrenme süreci sürekli devam ediyor. Sadece bir yerden sonra öğrenmenin temposu azalıyor. Temel bir yazılım dilini öğrenmek, kavramak fikir üretebilmek çalışma azminize bağlı olarak 1 ay ile 1 yıl arasında değişebilir. Elbette bu süreç içerisinde bir çok proje geliştirebilirsiniz. Fakat bu o dili öğrendiğiniz anlamına gelmiyor.

Hangi projeleri yapabilirim?

Basitten başlayın. İlerledikçe projeleri karmaşıklaştırın.

Abi bi ton kütüphane var hepsini nasıl öğreneceğim?

Arkadaşlar yazılım mesleğinin büyük bir kısmı dökümantasyon okuyarak geçiyor. Bundan dolayı kütüphanenin kendisini öğrenmekten çok dökümantasyon okumayı öğrenmeye zaman harcarsanız bu kısmı hızlıca çözersiniz.

Yazılım için önerebileceğin kitap önerisi?

Ben yazılıma başlarken kitap okuyarak başlamanızı tavsiye etmiyorum. Yazılım için bilgisayar ortamından erişebileceğiniz kaynaklar daha değerli. Gördüğünüz kodu hemen çalıştırıp bilgisayarın reaksiyonunu gözlemlemek daha mantıklı geliyor. Kitaptan yazılım öğrenenlerin nasıl öğrendiği konusunda bir fikrim yok.

İnternetten yazılım öğrenebilir miyim?

Evet hiçbir kursa gitmeden bilgisayarınızın başında internetten yazılım öğrenebilirsiniz. Tek ihtiyacınız olan şey motivasyon. Birde ingilizce.

Programlama temelini öğrendim, şimdi ne yapacağım?

Pratik, pratik, pratik, pratik......

Eğer imkanınız varsa her yıl farklı farklı kuruluşlarda staj yapın.

Open Source (Açık Kaynak) Nedir?

Open-source, kaynak kodunun kamuya açık olarak paylaşıldığı yazılım anlamına gelir. Bu, diğer programcıların yazılımı değiştirmesine, geliştirmesine veya dağıtmasına izin verir. Açık kaynak yazılım, genellikle ücretsizdir ve geniş bir topluluk tarafından desteklenir.

Kod yazarken hata alıyorum, ne yapmalıyım?

Kod yazarken hata almak normaldir. Bunlar genellikle yanlış sözdizimi, yazım hatası, değişken adı hatası vb. gibi basit hatalardır. Hata mesajını okuyarak hatanın nedenini anlamaya çalışın ve hatayı düzeltin. Hata mesajı size hangi dosya ve hangi satırda hata olduğunu söyleyecektir. Ayrıca, kodlama hatalarını önlemek için sık sık kaydedin ve kodunuzu test edin.

Kapanış

6OfL8I.gif

untitleda58f8f45035b6ddb.gif

Umarım faydalı ve yön gösterici bir içerik olmuştur.

Eğer konu hoşunuza gittiyse aşağıdaki diğer konular ilginizi çekebilir.

elinize sağlık hocam
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.