Veri yapıları ve algoritma için matematik gerekir mi?

Bence bu çok opsiyonel bir şey. Ben mesela bilgisayar bilimlerinin bir çok farklı alanıyla uğraştım genel olarak matematiği kullandığımı pek hatırlamıyorum (Arkadaşların matematiği bu kadar şart koşmasına şaşırdım doğrusu) en kötü basit bir fonksiyon o kadar. Bence matematiği, yazılımı, her şeyi öğrenip o şekilde başlayayım şeklinde değil de daha çok yaparken öğrenmen lazım çünkü yazılım geniş bir alan ve her şeyi bilmen mümkün değil ihtiyacına göre ilerleyebilirsin zaten eğer derine dalmak gibi bir merakın varsa (işlemciler ve işletim sistemleri gibi tabii yazılımdan biraz uzak şeyler) temelden başlamak iyi bir seçim olmaz.

Sen mesela bir oyun geliştiricisi olarak atıyorum bir fluid simulation yapmak istersen matematik, fizik ayrıca ekran kartı için optimizasyon gibi şeylere hakim olman lazım bu durumda sırf bu simülasyonu yapabilmek için öğrenme kabiliyetini kullanman lazım. Ancak günümüzde bir oyun geliştiricisi yüzde kaç ihtimalle matematik ve fizik bilgisini zorlayacak bir duruma düşer? Oyun motorlarının ve fizik kütüphanelerinin varlığı bile tek başına bir çok durumu eliyor.

Yani kısacası bence neye ihtiyaç duyacağını sana kimse söyleyemez tamamen senin yazılım kainatında ne ile uğraşmayı seçeceğine bağlı. Ha dersin ki "Ben net olarak şöyle bir projeyi şu platform için geliştirmek istiyorum ne ile karşılaşma olasılığım var?" o zaman insanlar sana daha fazla yardımcı olabilir. Teşekkürler.
 
Markete gittim, 199,- TL tuttu. Şimdi düşünüyorum, hesabımda kaç Lira kaldı. Bunun için matematiğe gerek var mı? Senelerdir çeşitli Marketlere gittim ve matematiğe hiç gerek duymadım. Gerçekten gerekli mi sizce?

Tabi siz bunu da yanlış anlarsınız. İnsan işine geldiği açıdan bakar her şeye. Kimse gereksiz bir şey öğrenmek istemez. Cehaletin temel kuralıdır bilgiyi filtrelemek.

Neyse. Takmayın kafanıza şapkadan başka bir şey.
 
Bence bu çok opsiyonel bir şey. Ben mesela bilgisayar bilimlerinin birçok farklı alanıyla uğraştım genel olarak matematiği kullandığımı pek hatırlamıyorum (arkadaşların matematiği bu kadar şart koşmasına şaşırdım doğrusu) en kötü basit bir fonksiyon o kadar. Bence matematiği, yazılımı, her şeyi öğrenip o şekilde başlayayım şeklinde değil de daha çok yaparken öğrenmen lazım çünkü yazılım geniş bir alan ve her şeyi bilmen mümkün değil ihtiyacına göre ilerleyebilirsin zaten eğer derine dalmak gibi bir merakın varsa (işlemciler ve işletim sistemleri gibi tabii yazılımdan biraz uzak şeyler) temelden başlamak iyi bir seçim olmaz.

Sen mesela bir oyun geliştiricisi olarak atıyorum bir fluid simulation yapmak istersen matematik, fizik ayrıca ekran kartı için optimizasyon gibi şeylere hakim olman lazım bu durumda sırf bu simülasyonu yapabilmek için öğrenme kabiliyetini kullanman lazım. Ancak günümüzde bir oyun geliştiricisi yüzde kaç ihtimalle matematik ve fizik bilgisini zorlayacak bir duruma düşer? Oyun motorlarının ve fizik kütüphanelerinin varlığı bile tek başına birçok durumu eliyor.

Yani kısacası bence neye ihtiyaç duyacağını sana kimse söyleyemez tamamen senin yazılım kainatında ne ile uğraşmayı seçeceğine bağlı. Ha dersin ki "ben net olarak şöyle bir projeyi şu platform için geliştirmek istiyorum ne ile karşılaşma olasılığım var?" o zaman insanlar sana daha fazla yardımcı olabilir. Teşekkürler.

Haklısınız hocam ben zaten söyledim benim amacım web alanı frontend backend ve mobil alanı yani bunların hiçbirinde matematik görmedim ben sadece resim boyut ayarlanması px verme falan vs. bunları da zaten yapa yapa aşina oluyorsun ben matematik çalışmak derken bir problemle karşılaştıgımda mantıklı şekilde ilerleyip çözeyim diye matematik bilmek iyi zihinli bir kafa kazandırır insana problemler içinde algoritma öğrenmeyi düşündüm bende algoritma öğrenmek için matematiğin hangi konuları bilmem gerektiğini sordum.
 
Haklısınız hocam ben zaten söyledim benim amacım web alanı frontend backend ve mobil alanı yani bunların hiçbirinde matematik görmedim ben sadece resim boyut ayarlanması px verme falan vs. bunları da zaten yapa yapa aşina oluyorsun ben matematik çalışmak derken bir problemle karşılaştıgımda mantıklı şekilde ilerleyip çözeyim diye matematik bilmek iyi zihinli bir kafa kazandırır insana problemler içinde algoritma öğrenmeyi düşündüm bende algoritma öğrenmek için matematiğin hangi konuları bilmem gerektiğini sordum.
Aynen öyle zaten sevdiğin işi yaparken matematik öğrenmen gerektiğinde normal okuldaki gibi sıkıntılı bir öğrenme süreci geçmez çünkü okulda olduğu gibi bir şeyi artık ezbere değil mantığını bilerek öğrenmen gerekecek ve zorla değil isteyerek öğrenmiş olacaksın.
 
Her 4 işlem kadar normal bir şey kullandığımda "matematik" kullanmış olmuyorum bu insanlarda varsayılan olarak var.

Benim kastettiğim "prosedür" mantığı buydu aslında. Ben C#'ı, ıl ile Assembly arası bir seviyede (optimizasyon gereği doğrudan ıl yapmadım) olan bir dile dönüştürecek bir compiler yazdım ilk başta doğrudan açık kaynak kodundan ilham alacaktım ( GitHub - dotnet/roslyn: The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs. ) ancak doğrudan ıl'e dönüştürmeyeceğim için daha rahat ve özelleştirilebilir bir yöntem denemek istedim bu yüzden kendim bir algoritma yazdım bu bir parçalama algoritması kısacası ilk başta namespace, class, field, property ve metotları parçalayıp bir struct listesine saklayıp ardından metodların içindeki if else ya da döngü bloklarını en temeline inecek şekilde parçalayıp bir struct listesine atıyor en sonda ise bir parçalama fonksiyonunu döngüye alarak en temel parçaya inene kadar kod satırını parçalayıp dilimdeki stack mantığı ile gerekli Opcode'ları yazıyor. Ayrıca bir çalıştırılabilir dosya ve kütüphane dosyası yapısı bile düzenledim. Buradaki matematik; add, sub, mul, div, or, and vs. komutları kadardır herhangi bilindik bir algoritma ya da matematik sihri yok. Interpreter desen zaten toplama işleminden başka bir şey değil. Context free grammer "kendisi zaten matematik" dersen evet matematik ama gene aynı konuya çıkıyor olay, matematik ama nasıl matematik.

Adı zaten "mühendislik" bir zahmet ama benim kastettiğim şey insanların "mühendislik" ünvanını pek kaale almadıkları ve elbette bu disiplinler olmadığında çok kalitesiz işler ortaya çıkabiliyor benim henüz amatör olduğum yıllardan kalma bir uygulamam var girersen kafayı yersin optimizasyon falan 0 multithreading 0 RAM yönetimi 0 ama neredeyse 7 milyon indirmesi var ve o olmasaydı belki de tatmin olabileceğim bir seviyeye gelmezdim kim bilir insanların gelişmek gibi bir ihtiyacı var ve bunun maalesef tek bir yolunun olmaya zorlanması pek merhametli değil sonuçta dünyada kalitesiz "yazılım mühendisi" ünvanı olan zibilyon kişi vardır herkes hakkıyla üniversitelere girmyor maalesef. Teşekkürler.

Madem sabaha kadar matematik ile iliskilendirebilecegin seyleri sayabilecektin, o zaman neden matematik kullanmadim diyorsun? Benim mesaj atmama gerek kalmazdi. Ayrica compiler yazmak matematigin kullanildigi "basit" bir alan degil. Context-free grammar dedigin seyin kendisi zaten matematik. ( Context-free grammar - Wikipedia )

Yazilim gelistirmek bir muhendislik disiplinidir ve diger muhendisliklerde oldugu gibi matematikle epey icli dislidir. Kimse matematik ogrenmek ya da yazilim muhendisi olmak zorunda degil ama bu isi hakkiyla yapacaksan yolu budur, biz de bunu soyluyoruz. Kimse matematik bilmek zorunda degil ama matematik bilmeyen kisiye de yazilim muhendisi denmiyor.

İngilizce - matematik bilmeden de piyasada yer bulabilir bir kullanici. List disinda data structure kullanmayan Frontend'ci arkadaşlar var, mulakatta goruyorum. 10 sene tecrubem var diyor ve set nedir bilmiyor.

Arkadaşlar benim sorularım çok yanlış yerlere geldi ben mühendis değil yazılımcı olmak istiyorum siz daha iyi biliyorsunuzdur ama genel anlamıyla kelime anlamıyla araştırdığım kadarıyla şunu söyleyeyim yazılım mühendisi yazılımı geliştiren, yazılım dili yapabilen, algoritma geliştiren kişilere denir. Yazılımcı ise yazılım mühendisinin geliştirdiği ortaya çıkardığı dilleri vb. şeyleri kullanıp ortaya proje çıkaran bu dilleri kullanarak bir şeyler yapıp geliştiren kişilere denir o yüzden software engineer ile software developer farklı şeyler benim bir diğer demek istediğim matematik oyun geliştiriciliği, veri bilimi, yapay zeka gibi alanlarda çok kullanılır o alanlarda gereklidir. Web, mobil gibi alanlarda sayısal zeka önemlidir problem çözebilme becerisi önemlidir mantıksal düşünme gibi şeyler önemlidir ama bazen abartıyorlar matematik matematik diye yazılımcı olmak isteyenler açısından söylüyorum bir mühendis zaten matematikte iyi olmalıdır orası ayrı ama bir yazılımcının en altın kuralı matematik değil problem çözme becerisi ve ingilizcedir.
 
Arkadaşlar benim sorularım çok yanlış yerlere geldi ben mühendis değil yazılımcı olmak istiyorum siz daha iyi biliyorsunuzdur ama genel anlamıyla kelime anlamıyla araştırdığım kadarıyla şunu söyleyeyim yazılım mühendisi yazılımı geliştiren, yazılım dili yapabilen, algoritma geliştiren kişilere denir. Yazılımcı ise yazılım mühendisinin geliştirdiği ortaya çıkardığı dilleri vb. şeyleri kullanıp ortaya proje çıkaran bu dilleri kullanarak bir şeyler yapıp geliştiren kişilere denir o yüzden software engineer ile software developer farklı şeyler benim bir diğer demek istediğim matematik oyun geliştiriciliği, veri bilimi, yapay zeka gibi alanlarda çok kullanılır o alanlarda gereklidir. Web, mobil gibi alanlarda sayısal zeka önemlidir problem çözebilme becerisi önemlidir mantıksal düşünme gibi şeyler önemlidir ama bazen abartıyorlar matematik matematik diye yazılımcı olmak isteyenler açısından söylüyorum bir mühendis zaten matematikte iyi olmalıdır orası ayrı ama bir yazılımcının en altın kuralı matematik değil problem çözme becerisi ve ingilizcedir.
Haklısın ben konuyu birazcık daha geniş bir bölüm olan "Computer Science" a çekmiş olabilirim neyse olan oldu kusura bakma moderatörlere mesajlarımı silme talebinde bulunurum.
 
Arkadaşlar benim sorularım çok yanlış yerlere geldi ben mühendis değil yazılımcı olmak istiyorum siz daha iyi biliyorsunuzdur ama genel anlamıyla kelime anlamıyla araştırdığım kadarıyla şunu söyleyeyim yazılım mühendisi yazılımı geliştiren, yazılım dili yapabilen, algoritma geliştiren kişilere denir. Yazılımcı ise yazılım mühendisinin geliştirdiği ortaya çıkardığı dilleri vb. şeyleri kullanıp ortaya proje çıkaran bu dilleri kullanarak bir şeyler yapıp geliştiren kişilere denir o yüzden software engineer ile software developer farklı şeyler benim bir diğer demek istediğim matematik oyun geliştiriciliği, veri bilimi, yapay zeka gibi alanlarda çok kullanılır o alanlarda gereklidir. Web, mobil gibi alanlarda sayısal zeka önemlidir problem çözebilme becerisi önemlidir mantıksal düşünme gibi şeyler önemlidir ama bazen abartıyorlar matematik matematik diye yazılımcı olmak isteyenler açısından söylüyorum bir mühendis zaten matematikte iyi olmalıdır orası ayrı ama bir yazılımcının en altın kuralı matematik değil problem çözme becerisi ve ingilizcedir.

Birisi bir seyi nasil ogrenebilirim dediginde en ideal yontemi soylemeye calisiyorum. Ben de o yuzden gereksiz muhalefet yapmis olabilirim. Yoksa Ingilizce ye bile gerek yok bu isten para kazanabilmen icin.
 
Birisi bir seyi nasıl ogrenebilirim dediginde en ideal yontemi soylemeye calisiyorum. Ben de o yuzden gereksiz muhalefet yapmis olabilirim. Yoksa İngilizce ye bile gerek yok bu isten para kazanabilmen icin.

Haklısın ben konuyu birazcık daha geniş bir bölüm olan "Computer science" a çekmiş olabilirim neyse olan oldu kusura bakma moderatörlere mesajlarımı silme talebinde bulunurum.

Şimdi rica etsem bana söyler misiniz Frontend/backend/mobil alanlarına yöneleceğim problem çözme becerimi geliştirme açısından veriyapıları ve algortima öğrenmek için hangi matematik konularına çalışmalıyım.
 
Şimdi rica etsem bana söyler misiniz Frontend/backend/mobil alanlarına yöneleceğim problem çözme becerimi geliştirme açısından veriyapıları ve algortima öğrenmek için hangi matematik konularına çalışmalıyım.
Yazılımcı diye bir meslek tanımı yok.
İş ilanlarını gözden geçir. Bak bir neler isteniyor, kimler aranıyor. Ona göre kafanda gerçekçi bir vizyon kurarsın. Gerçekçi bir hedef seçip gerçekçi bir yol izlersin.
 
Şimdi rica etsem bana söyler misiniz Frontend/backend/mobil alanlarına yöneleceğim problem çözme becerimi geliştirme açısından veriyapıları ve algortima öğrenmek için hangi matematik konularına çalışmalıyım.

Matematik ogrenmene gerek yok. Baskasi senin icin hash fonksiyonu ya da efektif balanced tree yazacak, sen de kullanacaksin. Zaten cok muhtemelen standart ADT icinde String, List, Set ve Map|Dictionary disinda bir sey kullanmayacaksin; onlarin da perde arkasinda nasil calistiklarina ihtiyacin olmayacak cunku optimize etmeyeceksin.

API ogrenmen daha kiymetli, ornegin JavaScript kullanacaksan array'i nasil sort edecegini bilmen yeterli. ( Array.prototype.sort() - JavaScript | MDN ) Arka planda hangi sort algoritmasini kullandiginin onemi yok, sort edip gececeksin.

ben mühendis değil yazılımcı olmak istiyorum
 

Technopat Haberler

Yeni konular

Geri
Yukarı