Python'da derinlemesine bilgi sahibi olmak ?


#1

Öncelikle hepinize iyi akşamlar. Python öğrenme sürecindeyim ve video ile UDEMY üzerinden eğitim alıyorum. Öğrendiklerimi sağlaştırmak için de YazBel’in belgelerini kullanıyorum. Bugün yine makale okurken kitabın tamamına bir göz atayım dedim ama sanki sayfanın sonu gelmiyordu ve ister istemez ben bunları öğrenemezsem nasıl developer olacağım diye düşündüm. Ayrıca Python sadece tek bir dil. Bunun Java’sı var C++’ ı var. Ben tüm komutları fonksiyonları nasıl öğrenip aklımda tutacağım. Çoğu kişi proje yap diyor. Haklılar da ama neler yapacağımı bilmeden nasıl proje tasarlayabilirim bilmiyorum. Bu sitede çok değerli insanlar olduğunu biliyorum. Tecrübelerini eksik etmezseniz memnun olurum. Teşekkür ederim , saygılar.


#2

Maalesef yeterli tecrübede insanlardan biri değilim ama ben de kendi fikrimi aktarmak isterim .

Programlama dili öğrenmek araba kullanmayı öğrenmeye bemzer. Nasıl bir arabada pedal ,vites, direksiyon vb. Var ise vr bunları bir sürücü sürekli ve devamlı olarak kullandığı için unutmuyorsa programlamada da fonksiyonların işlevi , oop vs. Unutulmuyor . Proje yapmaya gelince sanırım yeterince ilerlemediniz kursta . İlerleyin ve bir şeyler üretmeye çalışın . Ben öyle yapmıştım . İf else öğrendikten sonra bile yine de bir şeyler yapmıştım . Araba örneği üzerinden yürümek gerekirse siz drift atmak istiyorsunuz ama ehliyeti yeni aldınız. Direkt drift atamazsınız .Çalışmanız lazım .

Farklı programlama dilleri öğrenmeye gelince hepsi birbirine benzer. Yine araba mantığı biri kamyondur biri spor araba biri motordur biri biri atv . Sonuçta genel mantık aynı . Yalnız bazıları çok değişiktir bence .( c mesela ).şöyle örnek vereyim . Python : A arabası
C : B arabası

A arabası ile drift çekmek için çok zor bir şey yoktur. Temel bir kaç hareketi bilmen yeterlidir .

B arabası ile drift çekmek için ise bir sürü şey bilmen gerekir . A arasında olduğu kadar kolay olmayabilir .bir kaç şey fazladan isteyebilir fakat temel mantık aynıdır bu işlemde .


#3

Kamyon ile drift çekmek nasıl zor ise :smiley: c ile kod yazmakta biraz profesyönel işine giriyor işte böyle benzetebilirsiniz


#4

Teşekkür ederim ikinize de. İyi çalışmalar.


#5

Merhaba Dogukan,

Bu konuda yeni baslayan arkadaslarimizin sikintilari oluyor. Internette python dilinde baslangic seviyesinden orta seviyeyi daha sonra da ileri seviyeye gecmek isteyenler icin bircok roadmap(yol haritasi) olusturulmus. Bu yol haritalarini sen zaten bulursun. Ben direk senin sordugun sorular uzerine yogunlasacagim.

Udemy’den egitimler aliyorsun ve kaynaklari takip ediyorsun. Bir kitabin tamamini bitiremeden nasil developer olacaksin?

  • Ilk olarak developer olman icin kaynaklarin, konularin hepsini yalayip yutmana gerek yok. Konular uzerinde fikir sahibi olman basta yeterli. Programlama dilleri farkli amaclara, farkli domainlere, farkli yazim turlerine sahip. Oncelikle bir alan belirlemelisin. Yani belirlemen gereken ilk sey PROGRAMLAMA DILI DEGIL. Sen hangi alanda ilerlemek istiyorsun? Web, Mobil, Embedded, Scripting, System, Masaustu programlama vs gibi… Alanini belirledikten sonra, alana en uygun programlama dilini veya dillerini ogrenmen gerekiyor.

Ben tüm komutları fonksiyonları nasıl öğrenip aklımda tutacağım.

  • Tum komutlari ve fonksiyonlari kimse aklinda tutmuyor. Ihtiyacin oldugu zaman gider dokumanlara bakarsin. Eger IDE(tumlesik gelistirme ortami) kullaniyorsan zaten sana yardimci oluyor. Dilin sentaks yapisini ogrenirsin. Dillerin sentaks yapilari birbirlerine benzer. Yani bir programlama dilinde ogrendigin degisken tanimlamalari, sinif tanimlamalari, fonksiyon tanimlamalari, donguler vs. diger dillerde de benzer seyler olacaktir. Burada bir dilin sentaks yapisini ogrendikten sonra sana tavsiyem, OGRENDIGIN SEYLERIN NEDEN ORTAYA CIKTIGINI anlamak. Demek istedigim su; class diye bir yapi ortaya cikmis. Tamam cok basit class keywordunu yaziyorsun yanina sinif ismini vs. Olay bu kadar ile kalmamali. Diller gelistirilirken hicbirsey bos yere o dile eklenmemistir. Kesinlikle ortada bir PROBLEM vardir ve buna karsilik gelen COZUM. Siniflarda, fonksiyonlar, operatorlerde her biri bir problemi cozmek icin varlar. Hangi problem karsisinda hangi cozumler kullanilmis acisindan bakarsan ileride bir proje yap dediklerinde kullanacagin yapilari ve dizayni kafanda olusturabilirsin.

Sorularin cok genel oldugu icin boyle cevap vermek istedim. Insallah yardimci olabilmisimdir. Forumda yardimci olabilecek daha tecrube arkadaslarimizda vardir.


#6

Diller anahtar kelimeler (keywords) operatörler ve bir kaç diğer basit bileşenden oluşur.

Özellikle C dilinin türevlerinde anahtar kelimeler oldukça sınırlıdır. Yani ezberlemen gerekmez ne işe yaradıklarını öğrenir sonra ihtiyaç duydukça kullanırsın.

Örneklerse C Anahtar kelimeleri

https://en.cppreference.com/w/c/keyword

C++ Anahtar kelimeleri

https://en.cppreference.com/w/cpp/keyword

Gibi…

Komut ve fonksiyon kavramını açıklamak biraz karmaşık…

Aslında yukarıda linklerde verdiğim anahtar kelimeler dışında kalanlar bahsedilen fonksiyonlar kavramına girer…

Bunlar kütüphanelerde bulunur…

Temel ihtiyaç duyduklarını öğrenmekle yetin.

Girdi çıktı işlemleri vs gibi.

Tüm fonksiyonları asla ezbere bilemezsin.

Bilmen de gerekmez.

Bunun için yardım dosyaları ve dil referansları kullanmayı öğrenirsin.

Yine örnekleyecek olursam Windows SDK kullanan bir C kodunda sadece pencere oluşturmak için o kadar fazla parametresi olan fonksiyonlar ve bu fonksiyonların kullandığı yapılar vardır ki bunları asla bir insan ezbere bilemez.

Bunun yerine nereden bakacağını bilir ve gerektiğinde kullanır.

Yine örneklersem basit bir CreateWindowExA fonksiyonu:

Neredeyse 12 parametresi vardır ve bu parametrelerin bazıları, yapılara işaretçidir.

Bu nedenle profesyonel olarak programlama ile uğraşacaksanız, dil referansı okumayı ve kullanmayı öğrenmelisiniz. Aksi halde tüm hayatınız hesap makinesi kodlayarak geçirecek kadar fonksiyon öğrenebilirsiniz.

Özetle ezberlenmez, nereden bulunacağı nasıl kullanılacağı öğrenilir. Çünkü insan zihninin kapasitesinin çok üzerinde sayısız fonksiyon vardır ve bunları kullanmanın yolu ezberlemek değildir.


#7

Demek istediklerinizi çok iyi anlıyorum ama sanırım ben kendimi ifade edemedim. Şöyle diyeyim: mesela bir karakter dizisinde her harfin kaç defa geçtiğini yazmak istiyorum ama count() metodunu bilmiyorum. Bu derdime count() metodunun derman olacağını nasıl bilebilirim ?


#8

Tabii ki internette araştırma yaparak :grinning:

Önce Türkçe aratın, bulamazsanız İngilizce aratırsanız. Yine bulamazsanız bize sorarsınız.


#9

Yok doğru ifade etmişsiniz. Ben de bunu açıklamaya çalışmıştım. Ama biraz daha genişletmem gerekecek konuyu. Benim işime şu kod yarar bu yaramaz gibi bir sınırlama zor ve evet hangileri var diye ezbere bilemeyeceğiniz kadar fazlalar.

Bu durumda dil referansları bundan önemli. Eskisi gibi kitaplardan elle aramak yerine dijital bir referansta aramak daha kolay.

Mesela sizin örnek üzerinden gidelim.

Burada “python character counting” gibi basit bir arama yaptığınızda size count() ile ilgili örnekler çıkacaktır.

Yani neye ihtiyacınız olduğunu düşünürseniz ki neyin ne zaman gerekeceğini kestiremezsiniz.

Bu durumda basit referans aramaları size kolaylık sağlayacaktır.

https://docs.python.org/3/library/index.html

Mesela standart kütüphane fonksiyonlarına bakmak için kullanabilirsiniz.

Zaten yanlarında basit açıklamaları da olacaktır.

Seçenekler hepsini ezberlemek yada ne işe yaradıklarına göz atmak.

Ben insan beyninin ezberlemeye yetmeyeceğini düşündüğümden arama yaklaşımını tavsiye ederim.

Temel bilgiyi edinin geri kalanı nereden nasıl bulacağınızı öğrenin yeter.

Aksi halde bunların hepsini ezbere bilmek delilikten başka bir şey olmaz.

Ben bir mühendisim bize öğretilen her şeyi bilemeyeceğimiz ama her şeyi nerede bulabileceğimizi bilmemiz düsturudur.

Siz de dil referanslarında aramaya alışırsınız zamanla.


#10

Sanırım kafamda her şey netleşti. Vaktinizi ayırdığınız için teşekkür ederim.