Yazılım öğrenmeye nereden başlanmalıdır?

CaertoX

Hectopat
Katılım
30 Eylül 2020
Mesajlar
140
Yer
Antalya,Kepez
Daha fazla  
Cinsiyet
Erkek
3 yıldır aslında öğrenmek istiyorum ama hiç olmadı. Birkaç gün önce YouTube'da bedavaya Python öğreten bir adam buldum ve gayet iyi anlatıyor. PyCharm'ı da kurdum ama bu işin gereklilikleri nedir bilmiyorum. Ben aslında tarihe ilgisi olan birisiyim ama tarihin gelecek vadetmediği için gelecek vaat eden şeylere yönelmek istiyorum. Günde kaç saat çalışmam gerekir? Bunun için matematiğimin iyi olması gerekir mi? Çünkü matematiği iyi olan birisi değilim. Bir sorun olduğu zaman nerelere danışmam gerekir? Bunların cevabını merak ediyorum.
 
Son düzenleyen: Moderatör:
3 yıldır aslında öğrenmek istiyorum ama hiç olmadı. Birkaç gün önce YouTube'da bedavaya Python öğreten bir adam buldum ve gayet iyi anlatıyor. PyCharm'ı da kurdum ama bu işin gereklilikleri nedir bilmiyorum. Ben aslında tarihe ilgisi olan birisiyim ama tarihin gelecek vadetmediği için gelecek vaat eden şeylere yönelmek istiyorum. Günde kaç saat çalışmam gerekir? Bunun için matematiğimin iyi olması gerekir mi? Çünkü matematiği iyi olan birisi değilim. Bir sorun olduğu zaman nerelere danışmam gerekir? Bunların cevabını merak ediyorum.
Kodlamayı hangi alanda kullanacağına bağlı, oyun falan yapacaksan matematik gerekiyor bir tık. (oda ne tarz oyun yaptığına bağlı ama neyse) program falan yapıcaksan o kadarda gerek yok gibi. Ama her türlü gerek matematik.
 
Son düzenleme:
Matematik ile bazı alanlar dışında çok alakası yok. Her gün kafanın yorulduğunu hissettiğin ana kadar çalışabilirsin. Belli bir saati yok. Bir sorun olduğunda en iyi yardımcın Google olur. Orada da cevabı bulamazsan buradan konu açabilirsin. Bu arada ingilizcen iyi değilse ilk öğrenmen gereken dil ingilizcedir. Bunu unutma.
 
lisans ve lisansüstü Boğaziçi Bilgisayar Mühendisliği mezunu @bitwise hocamın matematikle ilgili yorumunu bırakayım.
Bu cok soruluyor.

Eger uzerinde calistigin proje icin ileri matematik gerekmiyorsa ve hazir kutuphaneleri kullanmak problemi cozmen icin yeterliyse gerek yok. Sadece 4 islem ve boolean algebra yapabiliyor olman kafi. Ozet olarak -> kiyiya yakin yuzeceksen hayir, acilacaksan kesinlikle evet.

Eger ozel ihtiyaclara proprietary cozumler gelistiriyor, standart kutuphanelerde bulunan ozellikler seni kesmiyorsa kesinlikle gerekli.

Ancak:

- Eger sifirdan web framework ya da isletim sistemi yazacaksan scheduling theory bilmen gerekir. ( Scheduling theory - Encyclopedia of Mathematics ) Kaynaklari optimal sekilde harcamalisin, starvation ve deadlock yaratmamalisin. Hic dusundunuz mu kullandiginiz isletim sistemi arkada acik onlarca process'i hangi sirayla calistiracagina nasil karar veriyor diye? En dogru karar nasil olmalidir peki? 4500 tane process var fakat 20 tane thread var, nasil karar verecegiz hangisini hangi sirayla calistiracagimiza? Cozum -> Scheduling theory.

- Veri tabani ya da Neural network icin pooling yapacaksan Lp pooling fonksiyonlarini bilmen gerekir.

- Snowflake gibi ( Snowflake Data Cloud | Enable the Most Critical Workloads ) non-structured data destegi veren RDBMS yaziyorsundur, Set theory bilmelisin. ( Fuzzy, Descriptive vs )

- Functional programming paradigmasini destekleyecek yeni bir dil uzerinde calisiyorsundur, Category Theory bilmelisin. ( Morphism, Monad vs Haskell yazanlar bilir az cok )

- Black Friday gunu tekil 200 kisiye hizmet veren bir yazilim ihrac ediyorsundur silikon vadisi firmalarina ( biz yapiyoruz bunu ) , O halde kullandigin dildeki default sort() fonksiyonu nasil calisiyor elin parmagin gibi bileceksin. Hangi algoritmayi kullaniyor, time ~ mem complexity nasil degisiyor. Data icin uygun mu? Bu da bizi suraya goturuyor -> Sorting algorithm - Wikipedia

- Elinde neye gore degistigini bilmedigin bir davranis datasi vardir, gradient descent algoritmasi yapiyorsundur ama sonuclar cok degisken oldugu icin momentum destegi vermek istiyorsundur -> Stochastic Gradient Descent with momentum

Yazilim muhendisleri yetistirilirken her alanda calisabilecek, Computer Science'in tum alt branslarina yonelebilecek formasyonda yetistirilirler. Bu yuzden evet, baya ciddi matematik bilgisi gerekir.

---

Sonuc olarak baskasinin yazdigi scheduling kutuphanelerini, pooling ve sort algoritmalarini kullanip sadece 3 satir kod yazarak "Web sitesi" olusturabiliyor. Piyasadaki yazilim ihtiyacinin %80'i icin 4 islem yeterli. Cunku geri kalan %20'yi baskalari sizin icin yaziyor.

Kullandigi kutuphanelerin arkada nasil calistigini bilmeyen, bildigini iddia ettigi programlama dilinin hangi sort algoritmalarini kullandigini dahi bilmeyen bebeler sagda solda bu is icin matematigin cok da gerekli olmadigi konusunda fazlaca sacmalayabiliyorlar. Zaten bunun bir adim sonrasi "copy + paste yapiyorlar" diyen tayfadir.

Tum bu dediklerime ek olarak, zaten matematiksel yaklasim ve analitik zeka programlama icin sart. Cok calismasina ragmen matematigi beceremeyen birisinde bu zeka yoktur ve cok calismasina ragmen muhtemelen programlamayi da beceremez. ( ileri seviyelerde )
 
Son düzenleme:
Arkadaşlar matematik gerekli. Programlama dili bile bilmediğinize eminim ama kanıtlayamam.

Oyun için bile matematik gerekli.
Lineer cebir ve geometri kesinlikle bilinmeli.
Atiyorum unity uzerinde transform vektor kullanacagin zaman arkada donen matematigi bilmeli, anlamali ve gerektigi yerde manipule edebilmelisin.

Programlamada cok temel IO ya da CRUD yapmiyorsan ilgili matematigi bilmezsen ilerleyemezsin. Senin yaptigin isi saatligi 5$ a yapan Hintliye verirler.

Esas mevzu programlama dili degil bu zaten. Dili 3 gunde ogrenirsin.
 
Boğaziçi lisans ve lisansüstü bilgisayar mühendisliği mezunu @bitwise hocamın matematikle ilgili yorumunu bırakayım.

Yani matematiği uğraştığım zaman gayet iyi yapabiliyorum. O konuda bir sıkıntı yok yani aptal değilim sanırım. Hafızam iyidir. Bunun için İngilizce gereklidir lafını çok duymuştum. Ama ben kod yazarken gerekli olduğunu sanıyordum o yüzden A2 seviyesinde bir İngilizce gereklidir diye düşünmüştüm. Bu konuda Türkçe kaynaklar yok mudur hocam?
 
Matematik ile bazı alanlar dışında çok alakası yok. Her gün kafanın yorulduğunu hissettiğin ana kadar çalışabilirsin. Belli bir saati yok. Bir sorun olduğunda en iyi yardımcın Google olur. Orada da cevabı bulamazsan buradan konu açabilirsin. Bu arada ingilizcen iyi değilse ilk öğrenmen gereken dil ingilizcedir. Bunu unutma.
Hangi seviyede ingilizce gerekir?
 

Technopat Haberler

Yeni konular

Geri
Yukarı