Yazılım mühendisi olmak için matematik şart mı?

Merhaba, ben de ufak bir fikir belirteyim.

Mühendislik bir unvan.
Bu unvana sahip olmak için ne gerekiyor? Mühendislik Bölümündeki matematik derslerini vermen gerekiyor.
Bu unvana sahip olmadan canavar yazılım geliştirebilir misin? Matematik zekan varsa evet
Matematik zekan yoksa ne olur Canavar gibi yazılım geliştiremezsin, pek çok şeyi öğrenmeden mesela bulduğun kodu copy-paste yaparak, biraz editleyerek bir şey üretebilirsin, başkalarının kısa sürede öğreneceği yazılımla ilgili bir şeyi daha uzun zamanda öğrenebilirsin vb.
Yazılım Mühendisleri yazdıkları kodlarda diferansiyel denklem falan mı çözüyor? Hayır
Yazılım Mühendisleri (ya da herhangi bir mühendis) matematik gerektiren bir iş yapacağı zaman bu hesaplamaları yapabilir mi? Evet, mesela oyun geliştiriyorsan 3 boyutlu objelerin hesapları için, robotik üzerine çalışıyorsan her türlü hareket ve etkileşim için, mesela NASA'da çalışıyorsan roketin t anındaki hızını, yönünü vesairesini hesaplamak için bunları yapabilir/yapabilmelidir.

Dünyayı standart matematik ile lisede basit halini öğretiyorlar. (Benim zamanımda lisede diferansiyel denklemler falan yoktu bu arada) Yani bir araba fren yaptı, her saniye hızı x kadar sabit yavaşlıyor gibi bir durum gerçek dünyada yok. Serbest düşen bir cisim şak diye her saniye sabit 9.8 m/s ivmeleniyor diye bir şey de yok vb. Böyle düşünürseniz temel matematik her alanda herkese yetecektir 5x = 25 ise x =5 diyebilen herkes her işi yapar.

Mühendislik bunun böyle olmadığını bilir, integralidir, lineer cebirdir, nümerik analizdir bunları hesaplamalarında kullanır çünkü kullanması gerekmektedir.

Üniversiteler unvan verir, yani bu örnekte üniversite size mühendis unvanı vermek için bu hesaplamaları yapabilmenizi beklemektedir. Okulda öğreneceğiniz her bilgiyi kullanacaksınız diye bir kural yok, gerektiği zaman kullanabileceğinizi sınavlarla ispatlamanız gerekir sadece.

Matematik zekanız yüksek ise iyi bir yazılımcı olabilirsiniz. Matematik gerektiren bir işte çalışacaksanız da gereken matematiği öğrenebilirsiniz. Matematik zekanız yoksa temel yazılım bilgisi olan abstraction (interfaceler, abstract classlar falan) bile size zor gelecektir, soyut düşünme yeteneğiniz kısıtlıdır. Bu veritabanına yazma-okuma ya da web sitesi sayfası yapma işleminden daha kapsamlı bir şey yazılım.

Herhangi bir firmada mühendis olun ya da olmayın bir iş için mülakata girerken sorulara verdiğiniz cevaplardan işe yatkınlığınız anlaşılıyor. Matematik zekanız yeterli ise doğru yerde doğru algoritmayı kullanacağınızı, hızlı çözüm üretebileceğinizi, gereksiz yere zaman/malzeme/iş gücü kaybı yaşatmadan firmaya fayda sağlayabileceğinizi mülakatta göstermenizi beklerler, kabiliyete + potansiyele göre de iş ve maaş sunarlar. Matematik zekası yeterli olmayan birinin mülakatlarının iyi geçeceğini sanmıyorum, yazılım için gerekli bir şey bu.

Yazılım mühendisliği hedefiniz varsa ve bu işlerin altından kalkabileceğinizi düşünüyorsanız matematiğinizi güçlendirmeniz gerekli, temeliniz yoksa temelinizi güçlendirin ve ilerde zorlanmayın.

Zorlanma için de şöyle anlatayım, üniversite sınavında matematik netim 42 civarıydı diye hatırlıyorum (45 soru üzerinden) yani temel lise matematiğim iyiydi diyebilirim. Bölümde matematik derslerine giren hocamız mühendislik fakültesinin pek çok bölümüne gidip oralarda da ders veriyordu. Bize direkt "diğer mühendisliklerde standart ders işliyorum, sizin bölüme mahsus canınıza okumak zorundayım" gibi bir ön bilgi verip gerçekten canımıza okumuştu (her seneki tarifesiymiş zaten, mevcut 120 öğrencinin 100ü kalıyordu, bütünleme diye bir şey de yoktu). Dersi benim de iki kere alttan almam gerekti.

Yani lise matematiğinin üzerindeki matematiği (calculus 1, 2, lineer cebir, nümerik analiz, diferansiyel denklemler...) yapabildiğinizi göstermeden mühendis olmanıza izin vermiyorlar diye özet geçebilirim, sırf matematik zekası da değil, temel bilgi/formülleri ezberleyip daha sonraki zor problemler karşısında çözüm üretmeniz gerekiyor, hem matematikte hem diğer pek çok bölüm dersinde. Şimdiden kolay gelsin.
Gerçekten güzel bir yazı hatta işe alımlardaki mülakatlarda sorulan sorular arasında mutlaka matematik ile çözülen sorular oluyor bu konuya değinmeniz çok güzel oldu.
 
Kuyruk acısı mı? Bilakis zevk alıyorum böyle kivrananlari görünce. 20 net bile mühendis olmak için rezil bir durum. 30+ olmalı en az.
Bazılarının tek vasfı oturup matematik kasmak değil ki gerek yok. Arkadaş mühendis olmak dememiş. Yazılım mühendisi olmak için demiş.
Makine, uçak , inşaat , matematiksel mühendisi vb olsa dediğinize gene katılırdım ama yurtdışında Computer Science diye geçen bir şeyi sırf Türkiye'de ağırlığı altsın , içini dolduralım diye mühendisliğe çevirmekte enterasan.
Mühendis kavramı için matematik gereklidir bunu destekliyorum , lakin yazılımcıları kısmında alana göre değişiyor durum .
Web siteleri ile ilgilenecekse , basit seviyede fizik motoruna mudahele edecek oyunlarla ilgilenecekse , veya bu ayarda şeylerle ugrasacaksa ciddi bilgiye gerek yok bana göre.
He ileri seviyedeki yapay zeka , görüntü işleme vb konularda gerekebilir ama o zamanda öğrenecek seviyeye gelir zaten.
 
Son düzenleme:
Bazılarının tek vasfı oturup matematik kasmak değil ki gerek yok. Arkadaş mühendis olmak dememiş. Yazılım mühendisi olmak için demiş.
Makine, uçak , inşaat , matematiksel mühendisi vb olsa dediğinize gene katılırdım ama yurtdışında Computer Science diye geçen bir şeyi sırf Türkiye'de ağırlığı altsın , içini dolduralım diye mühendisliğe çevirmekte enterasan.
Mühendis kavramı için matematik gereklidir bunu destekliyorum , lakin yazılımcıları kısmında alana göre değişiyor durum .
Web siteleri ile ilgilenecekse , basit seviyede fizik motoruna mudahele edecek oyunlarla ilgilenecekse , veya bu ayarda şeylerle ugrasacaksa ciddi bilgiye gerek yok bana göre.
He ileri seviyedeki yapay zeka , görüntü işleme vb konularda gerekebilir ama o zamanda öğrenecek seviyeye gelir zaten.
Ben de yazılım mühendisi adayıyım yazılım mühendisliğinde diğer mühendisliklere nazaran matematikten daha önemli konular var mesela Yazılım Geliştirme Metodolojileri. Örnek vermek gerekirse şu an en çok kullanılan metodoloji Agile(Çevik) Yazılım Geliştirme Metodolojisi bunu bilmeyen birisinin bir yerde yazılım mühendisi olarak çalışması çok zor ama yine işin sonu analitik düşünebilme yeteneğine bağlanıyor çünkü proje geliştirirken her zaman benzer işler yapılmıyor bazen benzersiz işler karşımıza çıkıyor bu da yeni problemler doğuruyor işte bu yüzden bu problemlere hızlı ve doğru yaklaşabilmek için analitik düşünmek gerekiyor.
 
Ben de yazılım mühendisi adayıyım yazılım mühendisliğinde diğer mühendisliklere nazaran matematikten daha önemli konular var mesela Yazılım Geliştirme Metodolojileri. Örnek vermek gerekirse şu an en çok kullanılan metodoloji Agile(Çevik) Yazılım Geliştirme Metodolojisi bunu bilmeyen birisinin bir yerde yazılım mühendisi olarak çalışması çok zor ama yine işin sonu analitik düşünebilme yeteneğine bağlanıyor çünkü proje geliştirirken her zaman benzer işler yapılmıyor bazen benzersiz işler karşımıza çıkıyor bu da yeni problemler doğuruyor işte bu yüzden bu problemlere hızlı ve doğru yaklaşabilmek için analitik düşünmek gerekiyor.
Orası öyle tabi. Agile olayını da büyütmemek lazım tecrübe olmadan yazılardan ibaret kalıyor. En meşhur scrum du galiba.
Scrummuş sprintmiş ,backlog muş bir çırpıda öğrenilecek şeyler bakıldığı zaman.
Evet sayısal zeka kişinin analitik düşünmesini geliştirir bunu matematik le geliştirmek daha kolaydır belki ama bunu kodda yapar . Kimisi sevmiyor matematiği , ki sevmeye de gerek varmı bilmiyorum , Sonuçta mantığı kavradıktan sonra onu koda döktün mü iş bitiyor., matematikte herkesin tercihi farklı bana göre her fikre saygı duyuyorum.
 
Orası öyle tabi. Agile olayını da büyütmemek lazım tecrübe olmadan yazılardan ibaret kalıyor. En meşhur scrum du galiba.
Scrummuş sprintmiş ,backlog muş bir çırpıda öğrenilecek şeyler bakıldığı zaman.
Evet sayısal zeka kişinin analitik düşünmesini geliştirir bunu matematik le geliştirmek daha kolaydır belki ama bunu kodda yapar . Kimisi sevmiyor matematiği , ki sevmeye de gerek varmı bilmiyorum , Sonuçta mantığı kavradıktan sonra onu koda döktün mü iş bitiyor., matematikte herkesin tercihi farklı bana göre her fikre saygı duyuyorum.
Aktif olarak Unity kullanıyorum emin ol matematiksel kodların ne olduğunu bilmeden basit projeyi bile yapamıyorsun örnek olarak mutlak değer alma. Evet basit matematik ama sonuçta matematik.
İleri düzey matematik ise mühendislik bölümü okurken çok lazım oluyor. İntegral türev falan bilmek zorundasın okurken. İş hayatında bunların kullanıldığını görmedim.

Edit : C# Cafe Projemde kullanmamıştım matematik.
 
Aktif olarak Unity kullanıyorum emin ol matematiksel kodların ne olduğunu bilmeden basit projeyi bile yapamıyorsun örnek olarak mutlak değer alma. Evet basit matematik ama sonuçta matematik.
İleri düzey matematik ise mühendislik bölümü okurken çok lazım oluyor. İntegral türev falan bilmek zorundasın okurken. İş hayatında bunların kullanıldığını görmedim.

Edit : C# Cafe Projemde kullanmamıştım matematik.
hocam mutlak değer vb kullanılır doğrudur.Ama bunlar zaten temel konularda giriyor , illaki kullanılıyor matematik zaten ama ufaktan bilmek yeterli olur diye düşünüyorum , mühendislik matematiği de tabiki mühendislik için gerekli ama mesleği icra ederken lazım olacağı muamma , kendiniz bahsettiniz cafe projemde kullanmadım diye. Genelde bu tarz projelerde ufak çaplı toplama çıkarma dışı birşey kullanıldığına rastlamadım. Oyun hakkında da ciddi proje yapamadığım için birşey diyemeyeceğim bu konuda.Ama YouTube'dan türev ve integral ile , harika fiziğe sahip oyunlarda görmüştüm , örneğin slime düşünelim ve bunun hareketlerini bu şekilde yapıyorlardı , gerçekten gerçek hissettiriyordu lakin bu bile internette bulunup uygulanacak birşey diye düşünüyorum.
 
Bu soru bence şöyle örneklenebilir. "İnşaatlarda çalışmak istiyorum ama mimarların bilmesi gereken bazı teknik hesaplamaları öğrenmeme gerek var mı?

Soruyu bu şekilde düşünürsek matematik bilmeye gerek yoktur. Önceki cevaplardan birinde açıklanmaya çalışıldığı gibi bazı alanlarda matemetiğin bazı parçalarına ihtiyaç olur. Aksine Web ve mobil geliştirme gibi alanlarda ise neredeyse hiç ihtiyaç olmaz.

Çalışacağın alanı önceden belirlediysen doğrudan o alana odaklan geç bence. Yok belli değil ben bu meslekte kendimi geliştirmek istiyorum diyorsan ki bu da ilgili her konuyu iyice öğrenmek demek. Bu durumda hiç bitmeyen, asla yetişemeyeceğin bir öğrenme sürecine girmiş olursun. Herkes(projeleri için) X alanda uzman ararken sen Cem Yılmaz misali eeevverything little little, into the middle olursun. Sonra da bu sürecin altında muhtemelen inşaatçılar daha çok kazanıyor lanet olsun gibi sitemler içinde olaydan soğumaya başlarsın.

İnsan sevdiği işi yapmalı ilgin varsa bir an önce ne yapman gerektiğini belirleyip başlamalısın.

Ben, web tarafındaki biri olarak "matematik olmazsa olmaz" diyen cahiller yüzünden bir süre uzak kaldım yazılım konusundan.

Matematik düşmanı değilim ama şöyle bi cümle ekleyip bitireyim

Simit satana simitçi denir.
Herkes elindekini satma derdinde bana göre...
Bu bağlamda matematikÇİ lerin aksine ben de sana yazılım satmış oldum 🤔

Özetle Ne için yazılım öğrenmek istediğine göre değişir matematik gerekli mi değil mi?
 
Arkadaşlar şu an açık öğretimdeyim ve bolca zamanım var, C# class konusuna kadar geldim C# tamamen öğrenince Python gibi dillere geçeceğim, yazılım mühendisi olmak istiyorum yani olamazsam aklımda başka mesleklerde var. İngilizcem B1-B2 seviyesi ama matematiğim 0 gibi bir şey. Yazılım mühendisi olmak için matematik şart mı?
Matematiğim yok. Steamde oyunum var

" evil of fate "

Programlama için sadece matematiğin analitik algoritmik kısmı önemlidir :) matematiğim sıfır. Kodladığım oyun ortada.
 

Geri
Yukarı