Kodlama mantığını kavramak

Ben bir faydasını görmedim bak öğreneceksen azim etmelisin her dilde olan bazı kalıplar vardır Python'dan tut C#'ta bile olan kalıplar;
İf else yapısı.
Switch case yapısı.
Ama bunlardan önce değişken yapılarını öğrenmelisin.
C#'ta intager (sayısal) değişken varken JavaScript'de yoktur JavaScript'te var diye bir değişkentanımlama kipi vardır içine hem sayısal hem sözel değişken alabilir.

Katılıyorum, önce programlamanın temel konuları öğrenilmeli.
  1. Değişkenler, sabitler.
  2. Matematiksel operatörler.
  3. Diziler, çok boyutlu diziler, dizilerin fonksiyonları, koleksiyonlar.
  4. Kontrol yapıları (if, if else, Switch case)
  5. Döngüler (for, foreach, do while)
  6. Metotlar.
Ardından zaten dil ile ilgili kafada bir fikir oluşmaya başlayacaktır.
 
Neyi neden yaptigini bilmek. Dilden bagimsiz, pseudo kod yazarak problemi cozmek.
Discrete matematik, algoritma ve theory of computation gibi programlama dili agnostik konseptlere dair bilgi edinerek baslanabilir.
Cogu insan icin yanlis secimdir, herkes hizlica bir seyler yapayim derdinde.
 
Mantığı kavramanın temelinde algoritmalar yatıyor, tavsiyelerim;

  1. Önce algoritmaları ve matematiğin temel konularını kafanızda oturtun(sayısal mantık, fonksiyonlar, önermeler vs. gibi)
  2. Daha basit ve daha çok kaynağı olan bir dil ile başlayın. C# buna harika bir örnek.
  3. Yazılan kodların mantığını kavramak şuradan geliyor, bu kodu neden burada yazdım, bu fonksiyonu neden kullandım, bunu fonksiyon kullanmadan nasıl yazabilirdim, eğer kullanıcı şöyle bir şey istese ne yapardım, bu metot neden burada, neden bu değişken tipini kullanıyoruz gibi her konuda her satır için sorular sorun kendinize.
  4. Bir kaynaktan asla ve asla çalışmayın, çalıştığınız kaynak sizi köreltebilir. En az 3 kaynaktan okuyun konuyu, ingilizceniz varsa stackoverflow, GitHub, Microsoft gibi sitelerdeki dokümanları soruları inceleyin.
  5. Kodların limitlerini sorgulayın, geçenlerde double veri türünün virgül sonrasındaki 15. hanesindeki tutarsızlık üzerine forumda konu açtım, sonucunda öğrendiklerim farklı şeylerin farkına varmamı, farklı yapıları öğrenmemi sağladı. Bunun gibi şeyler sizi her zaman ileriye taşır.
  6. Sürekli uygulama, fikir proje yapmaya çalışın. Fikrin ne kadar basit ya da saçma olduğuna takılmayın. Kendinize bir sorun üretin ve sorunu çözmeye çalışın. Yazılımlar temelde sorun çözen bir kod dizisidir.
  7. Konu ile ilgili kitap almaktan, not tutmaktan asla çekinmeyin. İlerleme hızınızın bir önemi yok, gerekirse her konuyu bir günde bitirin. Örneğin dizileri çalışıyorsunuz. 1-2 saatte öğrendim diyorsanız orada bir hata var. Eğitim içeriklerini oluşturanlar 10-20 dakikada anlatır geçerler, sizin aklınızda hangi soruların oluşacağını ya da neleri bilmediğinizin farkında olmazlar.
  8. Alandaki yazılımcıları takip edin, kendinize bu alanda bir çevre oluşturmaya çalışın. Soru sormaktan asla çekinmeyin insanları darlayın hatta. Gelin Technopat yazılım bölümünde sorun, soru sormak soru çözmeyi öğrenmenin yollarından biridir. İnsanlar sizin sorularınızı yanıtladıklarında onlara bu bilgiye nasıl ulaştıklarını hangi yolla bilgi edindiklerini sormaktan çekinmeyin.
Bu kadar açık anlattığın için gerçekten çok sağol. Kendimi fazla yalnız hissesiyorum bu konuda ve 19 yaşımda başlamama rağmen sektördekilerin ortaokuldan başlamış insanlar olduğunu görünce biraz öğrenme ışığım söndü. Açıklama için teşekkürler tekrar.
Mantığı kavramanın temelinde algoritmalar yatıyor, tavsiyelerim;

  1. Önce algoritmaları ve matematiğin temel konularını kafanızda oturtun(sayısal mantık, fonksiyonlar, önermeler vs. gibi)
  2. Daha basit ve daha çok kaynağı olan bir dil ile başlayın. C# buna harika bir örnek.
  3. Yazılan kodların mantığını kavramak şuradan geliyor, bu kodu neden burada yazdım, bu fonksiyonu neden kullandım, bunu fonksiyon kullanmadan nasıl yazabilirdim, eğer kullanıcı şöyle bir şey istese ne yapardım, bu metot neden burada, neden bu değişken tipini kullanıyoruz gibi her konuda her satır için sorular sorun kendinize.
  4. Bir kaynaktan asla ve asla çalışmayın, çalıştığınız kaynak sizi köreltebilir. En az 3 kaynaktan okuyun konuyu, ingilizceniz varsa stackoverflow, GitHub, Microsoft gibi sitelerdeki dokümanları soruları inceleyin.
  5. Kodların limitlerini sorgulayın, geçenlerde double veri türünün virgül sonrasındaki 15. hanesindeki tutarsızlık üzerine forumda konu açtım, sonucunda öğrendiklerim farklı şeylerin farkına varmamı, farklı yapıları öğrenmemi sağladı. Bunun gibi şeyler sizi her zaman ileriye taşır.
  6. Sürekli uygulama, fikir proje yapmaya çalışın. Fikrin ne kadar basit ya da saçma olduğuna takılmayın. Kendinize bir sorun üretin ve sorunu çözmeye çalışın. Yazılımlar temelde sorun çözen bir kod dizisidir.
  7. Konu ile ilgili kitap almaktan, not tutmaktan asla çekinmeyin. İlerleme hızınızın bir önemi yok, gerekirse her konuyu bir günde bitirin. Örneğin dizileri çalışıyorsunuz. 1-2 saatte öğrendim diyorsanız orada bir hata var. Eğitim içeriklerini oluşturanlar 10-20 dakikada anlatır geçerler, sizin aklınızda hangi soruların oluşacağını ya da neleri bilmediğinizin farkında olmazlar.
  8. Alandaki yazılımcıları takip edin, kendinize bu alanda bir çevre oluşturmaya çalışın. Soru sormaktan asla çekinmeyin insanları darlayın hatta. Gelin Technopat yazılım bölümünde sorun, soru sormak soru çözmeyi öğrenmenin yollarından biridir. İnsanlar sizin sorularınızı yanıtladıklarında onlara bu bilgiye nasıl ulaştıklarını hangi yolla bilgi edindiklerini sormaktan çekinmeyin.
Çok sağol.
 
Bu kadar açık anlattığın için gerçekten çok sağ ol. Kendimi fazla yalnız hissesiyorum bu konuda ve 19 yaşımda başlamama rağmen sektördekilerin ortaokuldan başlamış insanlar olduğunu görünce biraz öğrenme ışığım söndü. Açıklama için teşekkürler tekrar.

Çok sağ ol.

Ortaokuldan beri kod yazan adama nasıl yetişeceğim demişsin, bahsettiğin adamlardan biri de ben oluyorum 12 civarlarında merakım ile birlikte başladım araştırıp okumaya. Beni geçmen için oturup yıllarca çalışmana gerek yok herkesin bir uzmanlık alanı var, ona bakarsan internetin oluşumundan beri bilgisayarlarla yaşayan insanlar var onlarla hiç yarışamıyor olmamız gerek.
Sektördeki talep asla bitmiyor, sen kendi farkını her türlü ortaya koyacaksın emin ol. Herkesin farklı bir alanda farklı bir tecrübesi var, kendini yarım saat versen benden iyi Python yazarsın çünkü benim alanımda değil. Bunlar en son dert edeceğiniz şeyler olsun arkadaşlar, sektörde kendini geliştirene her zaman iş var. Belki Türkiye için geçerli değil bu söylediğim fakat her zaman bir yol bulunuyor.
 
Ortaokuldan beri kod yazan adama nasıl yetişeceğim demişsin, bahsettiğin adamlardan biri de ben oluyorum 12 civarlarında merakım ile birlikte başladım araştırıp okumaya. Beni geçmen için oturup yıllarca çalışmana gerek yok herkesin bir uzmanlık alanı var, ona bakarsan internetin oluşumundan beri bilgisayarlarla yaşayan insanlar var onlarla hiç yarışamıyor olmamız gerek.
Sektördeki talep asla bitmiyor, sen kendi farkını her türlü ortaya koyacaksın emin ol. Herkesin farklı bir alanda farklı bir tecrübesi var, kendini yarım saat versen benden iyi Python yazarsın çünkü benim alanımda değil. Bunlar en son dert edeceğiniz şeyler olsun arkadaşlar, sektörde kendini geliştirene her zaman iş var. Belki Türkiye için geçerli değil bu söylediğim fakat her zaman bir yol bulunuyor.
Doğru söze ne denir, haklısın. Umarım Türkiye'nin ihtiyacı olan bi alanda geliştirebilirim kendimi, aydınlattığınız için sağolun.
 
Ben hiç algoritma falan öğrenmeye çalışmadım direk daldım ne gerek var? Zaten kavrıyorsun onu da başlayınca bu şekilde daha çok zorlanırsın.

Herkesin elbette bir öğrenme yöntemi var, amaç program yazmak ise evet algoritmayı kodlarken öğrenebilirsin. Amaç spesifik sorunlara çözüm üretmek, uzun projelerde hızlı algoritma kurup hızlı çözümler üretmek ise algoritmanızın oturmuş olması gerekiyor. Algoritma demek sadece sayaç oluşturayım değer atayayım gibi şeylerden ibaret değil. En basitinden karınca koloni algoritmasını örnek vereyim, matematik bilmeden algoritma bilmeden bir oyun geliştirme firmasında çalıştığınızı düşünelim. Size iki nokta arasında en kısa yolu bulan fonksiyonu yazın dediler, araya engeller koyulduğunda farklı koşullarda mükemmel çalışması isteniyor. O noktaya geldiğinizde kodlarken öğrendiğiniz basit algoritmanın hiçbir değeri kalmıyor. Bu sadece bir örnekti bunlar çoğaltılabilir.
 
Herkesin elbette bir öğrenme yöntemi var, amaç program yazmak ise evet algoritmayı kodlarken öğrenebilirsin. Amaç spesifik sorunlara çözüm üretmek, uzun projelerde hızlı algoritma kurup hızlı çözümler üretmek ise algoritmanızın oturmuş olması gerekiyor. Algoritma demek sadece sayaç oluşturayım değer atayayım gibi şeylerden ibaret değil. En basitinden karınca koloni algoritmasını örnek vereyim, matematik bilmeden algoritma bilmeden bir oyun geliştirme firmasında çalıştığınızı düşünelim. Size iki nokta arasında en kısa yolu bulan fonksiyonu yazın dediler, araya engeller koyulduğunda farklı koşullarda mükemmel çalışması isteniyor. O noktaya geldiğinizde kodlarken öğrendiğiniz basit algoritmanın hiçbir değeri kalmıyor. Bu sadece bir örnekti bunlar çoğaltılabilir.
Benim hayalim savunma sanayisine katkıda bulunmak, biraz zor bir kadın olarak savunma sanayisine girmek diyolar bana ama kuzenim bilgisayar alanında kadın -erkek ayrımı azalıyor gittikçe dedi. İşlevsel yazılımlarla makinelere zeka vermek istiyorum, biraz geç fark ettim ilgi alanımı ama hiç denememekten iyidir dedim :) .
 
ve
İyi seviyede İngilizce biliyorsanız her şeyin mantığını çok çabuk kavrıyorsunuz.
Ayrıca bilgisayar aslında cahil bir alet. Ve sen bu alete ne yapması gerektiğini teker teker, satır satır programlama dillerinde yazıyorsun. Ve biz bu cahil alete ne yapması gerektiğini satır satır yazan yazılımcılar sayesinde her türlü bilgiye ulaşabiliyoruz. Unutma ki yazılımcılık, kodlama ve programlama bu kadar zor bir iş.
 
Benim hayalim savunma sanayisine katkıda bulunmak, biraz zor bir kadın olarak savunma sanayisine girmek diyorlar bana ama kuzenim bilgisayar alanında kadın -erkek ayrımı azalıyor gittikçe dedi. İşlevsel yazılımlarla makinelere zeka vermek istiyorum, biraz geç fark ettim ilgi alanımı ama hiç denememekten iyidir dedim :) .

Benim sektörde gördüğüm kadın yazılımcıların daha başarılı ve daha tercih edilir oldukları. Çünkü kadınlar daha disiplinli, daha odaklanmış olabiliyorlar erkeklere göre. Tabi bunlar genelleme asla o iyidir bu kötüdür denemez. Fakat sektörde aynı işe eşit beceri ve yetenek seviyesinde bir erkek ve bir kadın başvursa kadına daha çok öncelik vereceklerini düşünüyorum.
 

Yeni konular

Geri
Yukarı