Şimdi Ara

Programlamaya Başlamak İsteyenlere Tavsiyeler

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
55
Cevap
95
Favori
6.579
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
29 oy
Öne Çıkar
Sayfa: 123
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Selamlar arkadaşlar,

    Birkaç arkadaşla bu konu hakkında konuşunca bir şeyler yazmak istedim. Bilgisayar Mühendisliği okuyacaklar veya bu konuda şu an tek başına önden birkaç adım atıp gelecekte göreceklerini daha iyi kavramak isteyenler için önemli bir konu.

    Sabancı'da okuyorum ve yüksek ihtimal CS okuyacağım. Bu sene hazırlık olduğundan ve çok fazla boş zamanım olduğundan tam 1 yıl önce bu günlerde programlamaya başladım. Bu konular hakkında çok fazla okuyup eden birisiydim, bu yüzden nasıl başlamam gerektiği konusunda da çok fazla okudum. Şu an daha lisans hayatıma başlamadan iyi seviyede kod yazan ve iyi seviyede kod okuyan biriyim ve hala bu konuda kurslar almaya devam ediyorum. İnternetteki CS kurslarının birçoğunu denedim şimdi bunlar hakkında konuşacağım.


    Dil Konusu


    Bana göre bu sorunun belirli bir cevabı yok. Aslında kursları almaya başladığımda amacım bir CS altyapısı yapmaktı. O zamanlar algoritma mantığını ve problem çözme yeteneklerimi geliştirmeye çalıştım. C ve C++ ile programlamaya başlatan bir sürü kurslar var. Ama o zaman 0 olduğumdan C ve C++'ya açık söylemek gerekirse girmek istemedim. C ve C++ programlama dilleri syntax açısından zordur. İlk başlayan birisi için bence çok kompleks olabilir. Burada devreye Python giriyor. Python ciddi anlamda yazılı dile en yakın kodlama dili. Algoritma mantığını da çok güzel oturtan bir dil. Python için aldığım kurs Coursera'dan "Programming For Everybody Getting Started with Python" oldu. Kursa bu linkten ulaşabilirsin. Bu ders bence en güzel başlangıç derslerinden biri. Financial Aid yani burs başvurusu için seçenekler var eğer buna başvurursanız 15 gün içinde dönüyorlar ve eğer düzgün bir burs başvurusu yaptıysanız yüzde 90 kabul edilir. Eğer ücretsiz ilerlemek isterseniz sadece videoları izleyebiliyorsunuz. Ancak programlamada bir şeyleri izlemekten çok kendiniz yapmanız önemli. Burs alırsanız ödevlerine erişebiliyorsunuz ve asıl önemli olan kısım burası. Bu yüzden bursu almanızı tavsiye ederim.


    Bu kursun Data Structures altında bir devam kursu var. Ben hemen bu kurstan sonra o kursu aldım. O da uygulama odaklı bir kurs. Aslında baktığınız zaman iki kurs da belirli derecede temel oluşturmak için üretilmiş başlangıç kursları. Syntax yani dilin yapısını ezberletmekten çok örneğin if else nedir ne işe yarar for döngüsü nedir ne yapar böyle şeylere eğiliyor. Bu sayede siz if else nedir ne yapar öğreniyorsunuz ve bundan sonra Python'dan hangi dile geçerseniz geçin ne işe yaradığını bildiğinizden kolayca o dilin şartlarına hemen alışabiliyorsunuz.

    Bu iki kursu yaklaşık 2 içinde bitirdim. O zaman hazırlıkta olduğumdan İngilizce'ye de fazlaca vakit ayırıyordum aslında bence ikisi o kadar da uzun süren kurslar değil ciddi anlamda kendinizi verirseniz 1 ay sürecektir. Bu arada yanlış anlaşılmayayım bu kurslar kesinlikle zaruri değil programlama için. İnternette milyonlarca kurs var başlangıç için. Ama ben bu ikiliyi seçmiştim ve bana güzel bir temel oturttular, ve o temelle üzerine koyduğum hiçbir şeyde zorlanmadım.


    Bu iki kurstan sonra asıl babaya gelelim. CS50


    CS50 için programlama kurslarının babası demek yanlış olmayacaktır bence. En azından 12-13 yıllık eğitim hayatımda gördüğüm açık ara en kaliteli eğitim içeriği olduğunu söyleyebilirim. Bu kurs aslında Introduction To Computer Science diye geçse de öyle olmadığını söylemek gerek. Benim geçen yıl uzun süreli yaptığım planda CS50 bir temel sonrası alınacak kurstu. CS50 10 hafta süren uzun bir kurs. Ve bildiğimiz Harvard'daki Introduction to Computer Science kursu aslında. Mükemmel bir ders olduğunu söylemek lazım. C ile başlıyor, Python, SQL, Javascript gibi ayrı ayrı programlama dillerine eğiliyor. Ben bu kursa başlarken iyi bir Python temelim vardı çünkü ödevleri çok detaylı yapıyordum. Ama bu kurs ciddi anlamda zor. Ödevleri inanılmaz başarılı ve ciddi anlamda iyi bir topluluğu var. Ödevlerde zorlandığınız zaman size yardım eden mutlaka birileri oluyor. Programlamaya başlamak için uygun bir kurs olduğunu düşünmüyorum. Eğer bu kursla başlarsanız hevesiniz kaçabilir. Ama işte en azından yukarıdaki bir temel sonrası böyle bir kurs alınca gerçek anlamda çok iyi bir seviyeye geliyorsunuz. Derste bahsedilen şeylerin kapsamı çok geniş bir introduction kursu olmasına rağmen çok ileri konulara değindiği ve ödevlerinde bunu istediği oluyor. CS50 yeni başlayanların bir Python veya Algoritma temeli sonrası kesinlikle bakmasını önerdiğim bir kurs. CS50 Coursera'daki kursun aksine burs gerektirmeden direk tüm materyallerine ücretsiz erişebileceğiniz bir kurs. Türkçe versiyonu da yenilerde çıktı hatta bugün bir arkadaş linkini atmış. Bu konuya az sonra değineceğim.



    CS50 beni cidden yıprattı ama bittikten sonra ciddi anlamda iyi bir seviyeye geldiğimi hissettim ve Data Science hakkında çalışmaya karar verdim. Github Student Pack diye bir olay var, hala veriyor mu bilmiyorum, o zaman 3 aylık Datacamp üyeliği veriyordu. Ve Data Science serüvenine atılıp. Sayısını bilmeyeceğim kadar kurs bitirip bu alanda çalıştım. Bu Data Science sürecinin sonunda Machine Learning'e atlamaya çalıştım ancak Machine Learning beklediğim gibi çıkmadı (teorik anlamda ileri seviye istatistik ve linear cebir bilmeniz gerekiyor bu alanlar için şu an onlara girmek istemediğimden biraz Machine Learning konusunu kenara ittim, teorik Matematik ve teorik CS'i yalayıp yutmanız gerekiyor bu kısımlar için.) Şu an hala Python - Data Science arasında takılıyorum.


    Programlamada Türkçe başlanılabilir mi?

    Bence bu iş için İngilizce elzem. Programlamada Türkçe dersler var evet ama bunların yukarıda saydığım derslerin yarısı kadar bile başarılı olduğunu düşünmüyorum açıkçası. Programlamada kendi başına bir şeyler yapmak çok önemli. Kendi başınıza bir şeyler yapmaya başladığınız an araştırmaya başlıyorsunuz, bir kod yazıyorsunuz hatayı araştırıyorsunuz tekrar tekrar. Stackoverflow, Reddit gibi platformların hepsi İngilizce zaten. Kaynaklar da İngilizce. Günün sonunda bu işte bir şekilde İngilizce'ye muhtaç oluyorsunuz yani. Yukarıda attığım derslerin çok büyük bir kitlesi olduğundan İngilizce seviyeleri çok anlaşılabilir, temiz konuşuluyor. İngilizcenizi de geliştirir sizin için daha yararlı olur.

    Bahsettiğin şeyler için linkler.


    Coursera Python Kursları
    CS50x İngilizce
    Kod egzersizi için siteler.



    Okuduğunuz için teşekkür ederim. Bu başlık altında sohbet edebiliriz sorularınız varsa.



    < Bu mesaj bu kişi tarafından değiştirildi Gravitist -- 15 Ağustos 2020; 18:2:18 >







  • Sektörün içinden direkt bilgi vereyim. Javascript öğrenin. Udemy ve youtube da binlerce Türkçe İngilizce kurs var. Yanına da c#,java veya python öğrenebilirsiniz.

    Eğer ki hevesiniz yoksa bilgisayar mühendisliği yazmayın. Hele ki yazılımcılar çok iyi kazanıyor abiiiii kafasındasınız hiç yazmayın. Yazılım işi heves ve merak olmadan işkence gibi gelir.
  • Sağ olun hocam güzel tavsiyeler. Sorum şu olacak basit sanırım sorum ama yeni başlıyorum ben. Python ile neler kodlanabilir ?
  • quote:

    Orijinalden alıntı: Ray Allen 20

    Sağ olun hocam güzel tavsiyeler. Sorum şu olacak basit sanırım sorum ama yeni başlıyorum ben. Python ile neler kodlanabilir ?
    özellikle makine öğrenimi alanında sık kullanılıyor. bir çok şey kodlanabiliyor aslında library desteği sayesinde
  • Bu arada cs 50 türkçe dublajı var.

    https://www.kodluyoruz.org/news/cs50xkodluyoruz/
  • Güzel konu up
  • Ray Allen 20 kullanıcısına yanıt
    Python ile kodlanamayacak şey yok aslında. Arkadaşın dediği gibi inanılmaz bir library desteği var. Machine Learning alanında çok fazla kullanılıyor, bu yüz tanımalar felan hep Python temelli.
  • Rez aldim tercihler belli olsun
  • Bir dilin veri yapılarını,döngülerini,fonksiyon yazma gibi temel konuları öğrendikten sonra sürekli hackerrank.com codewars.com gibi sitelerde algoritma yazmanızı öneririm. Daha sonra ise ileri seviye konulara OOP,multithreading,GUI gibi alanları halledebilirsiniz. Ancak daha sonra bir alan seçip o alanın programlama dilini seçip uzmanlaşmak önemli. Örneğin mobil uygulamalar için java/kotlin/swift ya da tek bir dilde yazıp tüm cihazlarda kullanmak için flutter/react native(javascript) gibi dillerden birini öğrenebilirsiz. Öte yandan veri bilimi ve yapay zeka için python şu an standart dil durumunda. Eğer benim gibi gömülü sistemler alanına yönelmeyi planlıyorsanız embedded c dilini öğrenmeniz lazım.



    < Bu mesaj bu kişi tarafından değiştirildi Morpheus1911 -- 15 Ağustos 2020; 18:54:19 >
  • up faydalı çoğunu kullanmaktayım

    özellikle py3 ile verileri işleme konusunda kendimi geliştirmekteyim



    < Bu mesaj bu kişi tarafından değiştirildi Ankaratıplı -- 15 Ağustos 2020; 19:5:34 >
  • Bence kod öğrenmedeki en büyük problem bu işi kendi başına yapmaya çalışırken soyut konseptleri nasıl uygulamaya koyacağını o konseptin neyi çözdüğünü tam olarak kavrayamamaktan geliyor. Konu sahibinin de yazdığı gibi uygulama (ödev, proje vs.) yapmak çok önemli. Bu yüzden sadece dinlemeyeceğininz aktif olarak bir şeyler yazacağınız bir yol izlemeye çalışın. Bu noktada bir de site tavsiyesi yapayım.

    hyperskill.org

    site jetbrains'in ve erken erişim aşamasında o yüzden şuan üye olduğunuzda yılbaşına kadar ücretsiz kullanabiliyorsunuz. kodlamayı projeler yaparak öğretmeyi amaçlıyor. şu an java, python, kotlin ve frontend trackleri var.
  • Project Euler çok farklı bir kafa cidden, bazı problemlerini çözen insan sayısının çift haneli olması bile olayı açıklıyor. Benim de zaten önerdiğim siteler arasında var, kodlama yeteneklerinden çok problem çözme yeteneklerine inanılmaz bir etkisi oluyor.
  • quote:

    Orijinalden alıntı: saddlemaker64

    Bence kod öğrenmedeki en büyük problem bu işi kendi başına yapmaya çalışırken soyut konseptleri nasıl uygulamaya koyacağını o konseptin neyi çözdüğünü tam olarak kavrayamamaktan geliyor. Konu sahibinin de yazdığı gibi uygulama (ödev, proje vs.) yapmak çok önemli. Bu yüzden sadece dinlemeyeceğininz aktif olarak bir şeyler yazacağınız bir yol izlemeye çalışın. Bu noktada bir de site tavsiyesi yapayım.

    hyperskill.org

    site jetbrains'in ve erken erişim aşamasında o yüzden şuan üye olduğunuzda yılbaşına kadar ücretsiz kullanabiliyorsunuz. kodlamayı projeler yaparak öğretmeyi amaçlıyor. şu an java, python, kotlin ve frontend trackleri var.
    Soyut konseptler başlangıçta olmasa da işin tadını bir kere alınca sonrasında önemli oluyor. Zaten Data Science alanında felan çalışmak isteyen birinin deli gibi Matematik bilmesi lazım. Bir süre sonra teorik CS ile teorik Matematik iç içe giriyor zaten. O düzey öncesi ödev ve proje de dediğin gibi en kritik şey.




  • Belli bir temelim var:
    - Codewars üzerinden 2-3-4 kyu zorluklarında problemleri çözdüm javascript ile.
    - CS50'nin C ile ilgili kısmını tamamen bitirdim tüm ödevleri ekstra yardımsız kodlayarak. (Daha fazla devam etmeyeceğim çünkü bana en etli güzel kısmı C dersleri gibi geldi zaten)

    Bundan sonra ne yapsam, bunu düşünüyorum. Bu sene %99 hazırlık atlayıp Bilkent'te bölüme başlayacağım için fazla zamanım da yok aslında.

    "PY4E (Python for Everyone)" ve MIT'nin "The Missing Semester of Your CS Education" derslerini bitirsem mi diye düşünüyordum. İlki python'ın kapsamı çok geniş olduğu için bilmekte fayda var hem kolay olduğu söyleniyor diye. İkincisi de böyle ıvır zıvır diye atlanan şeyler işe yarar mutlaka diye. Acaba bu ikisine göz atsam mı diye düşünüyorum ama bir yandan PY4E artık seviyemin altında kalıyor da olabilir.

    Yani birikimim var ama aman aman sağlam hissetmiyorum kendimi. Github'da bir repo'ya girip ne yazmışlar diye bakınca anlamadığım oluyor bolca. Belli algoritma sorularını çözebilecek bir seviyedeyim sadece, ötesi yok. Teorik olarak da eksiğim mesela, cs50 ile en azından hashtable ödeviyle data structures deneyimi edindim ucundan en azından.

    Programlamaya Başlamak İsteyenlere Tavsiyeler




  • quote:

    Orijinalden alıntı: Vedddddddd

    Belli bir temelim var:
    - Codewars üzerinden 2-3-4 kyu zorluklarında problemleri çözdüm javascript ile.
    - CS50'nin C ile ilgili kısmını tamamen bitirdim tüm ödevleri ekstra yardımsız kodlayarak. (Daha fazla devam etmeyeceğim çünkü bana en etli güzel kısmı C dersleri gibi geldi zaten)

    Bundan sonra ne yapsam, bunu düşünüyorum. Bu sene %99 hazırlık atlayıp Bilkent'te bölüme başlayacağım için fazla zamanım da yok aslında.

    "PY4E (Python for Everyone)" ve MIT'nin "The Missing Semester of Your CS Education" derslerini bitirsem mi diye düşünüyordum. İlki python'ın kapsamı çok geniş olduğu için bilmekte fayda var hem kolay olduğu söyleniyor diye. İkincisi de böyle ıvır zıvır diye atlanan şeyler işe yarar mutlaka diye. Acaba bu ikisine göz atsam mı diye düşünüyorum ama bir yandan PY4E artık seviyemin altında kalıyor da olabilir.

    Yani birikimim var ama aman aman sağlam hissetmiyorum kendimi. Github'da bir repo'ya girip ne yazmışlar diye bakınca anlamadığım oluyor bolca. Belli algoritma sorularını çözebilecek bir seviyedeyim sadece, ötesi yok. Teorik olarak da eksiğim mesela, cs50 ile en azından hashtable ödeviyle data structures deneyimi edindim ucundan en azından.

    Programlamaya Başlamak İsteyenlere Tavsiyeler
    CS50 sonrası PY4E kekin keki gelir bence. 4 kursu bitirmeniz bile 2 hafta felan sürebilir. CS50 assignmentları sağlam ve eğer bunları bitirdiyseniz iyi bir temeliniz vardır. MIT kursunu bilmiyorum ama algoritmalarla daha haşır neşir olmak ve problem çözme yeteneklerinizi geliştirmek için Hackerrank, Project Euler denenebilir. CS50'yi de bitirebilirsiniz evet güzel kısmı C ama Python'da da çok ciddi soruları var. (DNA problemi çok güzeldi.) Bir de CS50 bittikten sonra trackler var onlar da çok ayrıntılı onlar da işinize yarayabilir. PY4E artık seviyenizin altındadır.




  • Gravitist kullanıcısına yanıt
    Galiba haklısınız hocam PY4E'yi sallasam daha iyi. MIT kursunu sırf elimdeki araçlar çoğalsın diye merak ediyorum, takım çantasına tornavida pense vs. eklemek misali.

    Codewars'tan çözebileceğim zor problemleri çözdüm ama artık çözemediklerim kaldı :(. Herhalde ünide teorik ders gördükçe ufkum açılır çözerim diye düşündüm ama belki yanılıyorumdur, uğraşmam gerekiyordur belki de.

    DNA probleminde istenenlere baktım, aslında hoşmuş aklımda nasıl bir algoritma yazabileceğim canlandı biraz. Zaten cs50'den önce codewars deneyimim olduğu için ödevler zorlamamıştı ama yeni başlayan için kabus olurdu. Benim aslında cs50'nin python kısmını silme sebebim 1.5 saatte bitmesi, yani dili yeterince derin öğrenemem diye düşündüm. Belki de yanlış düşünüyorum ama. Şu an belli bir temeli olan birine öğretmeyi amaçlayan bir python kursu bulmam lazım galiba. (Track'leri de aslında python ile aynı sebepten atlamıştım, Malan hocamız öğretmiyor ve o alanlarda gelişmek istesem daha özelleşmiş kurslar bulurum diye...)




  • Ben de konu anlatımı için freecodecamp ve praktik için hackerrank'i öneririm.Sadece bilgisayar mühendisliği değil tüm mühendislik okuyanlar öğrenmeye başlamasın kodlamayı,ve dersle öğretiyorlar zaten aw deyip öğrenmemezlik yapmayın kodlama derste öğrenilemiyor(en azından devlet üniversitesinde okuyanlar için).
  • quote:

    Orijinalden alıntı: Vedddddddd

    Galiba haklısınız hocam PY4E'yi sallasam daha iyi. MIT kursunu sırf elimdeki araçlar çoğalsın diye merak ediyorum, takım çantasına tornavida pense vs. eklemek misali.

    Codewars'tan çözebileceğim zor problemleri çözdüm ama artık çözemediklerim kaldı :(. Herhalde ünide teorik ders gördükçe ufkum açılır çözerim diye düşündüm ama belki yanılıyorumdur, uğraşmam gerekiyordur belki de.

    DNA probleminde istenenlere baktım, aslında hoşmuş aklımda nasıl bir algoritma yazabileceğim canlandı biraz. Zaten cs50'den önce codewars deneyimim olduğu için ödevler zorlamamıştı ama yeni başlayan için kabus olurdu. Benim aslında cs50'nin python kısmını silme sebebim 1.5 saatte bitmesi, yani dili yeterince derin öğrenemem diye düşündüm. Belki de yanlış düşünüyorum ama. Şu an belli bir temeli olan birine öğretmeyi amaçlayan bir python kursu bulmam lazım galiba. (Track'leri de aslında python ile aynı sebepten atlamıştım, Malan hocamız öğretmiyor ve o alanlarda gelişmek istesem daha özelleşmiş kurslar bulurum diye...)
    Hocam Python'da advanced bir kurs yok o kadar maalesef. Direk spesifik bir kurs değil de sizin için en azından soru üzerinden öğrenmek daha doğru olur gibi. Codewars profilinizden de anladığım kadarıyla konseptlere genel olarak hakimsiniz zaten ayrıca bir videolu ders eğitimine gerek yok. Direk Python egzersizlerini kovalayın.




  • hackerrank.com
    leetcode.com
  • Gravitist kullanıcısına yanıt
    Doğru diyorsunuz hocam. Bu saatten sonra videolu kaynakların neredeyse hepsi en baştan if/for/while/vs. öğretmeye çalışacak zaten. Galiba farkında olmadan bu seviyeden terfi edip kendim uğraşacağım seviyeye gelmişim, bunu düşünerek yol çizmeye çalışayım artık.

    Sadece aklımda bir şey var. Dilleri daha pratik kullanabilecek şekilde öğrenebilmek isterim doğrusu. Mesela automatetheboringstuff.com'daki gibi pratik günlük işlemler nasıl yapılır, bu konuda eksiğim var. Web scraping mesela iyi bir örnek. Siz o siteyi deneyimlemiş miydiniz, o da mı gereksiz kaçar?
  • 
Sayfa: 123
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.