Yazılımda nasıl gelişilir?

Hocam önce İngilizce öğren. Sonra C#, Arduino vs kolay dillerden git. Sonra JavaScript vs. ben mesela şu an yazılım öğrencisiyim. C# öğreniyorum.
 
@TheAny niye beğenmedin kardeşim sıkıntı nerede? Çözelim hemen!
Yazılımda gelişmek isteyenler tek bir alana yönelip onunla ilgili her şeyi derinlemesine öğrenmelidir.
Sart degil her seyi derinlemesine ogrenmek. Hatta aksine imkansiz.
Benim önerim o iğrenç Microsoft ve otistik Bill Gates'in teknolojilerinden uzak durmaktır. Java ve onun etrafında dönen teknolojiler benim gözümde en iyisidir. Dasdandiksoft Bindows değil macOS olsa çok iyi olur para varsa tabi.
Konuyla alakasiz.
Benim tavsiyem başta bir teknoloji belirlemek ve farklı teknolojilere atlamadan sadece o alanda ilerlemek.
Iyi bir tavsiye degil. Hangi teknolojinin/alanin neler gerektirdigini bilmeyen, temel programlama bilgisinden noksan birinin, kendine en uygun alani secmesini beklemek mantikli degil. Kesfetmesi gerekecek. Belki oyun yapmak dusundugu kadar eglenceli olmayacak ama computer graphics alanlarindan birinde beklediginden daha fazla eglenecek ve basarili bulacak kendini.
Premium kurslar alıp
Direkt kotu bir tavsiye. Gerek yok. Cogu zaman bosa para israfi.
Ben Java'cı birisiyim. Microsoft'dan nefret eder hatta kin duyarım. Önce Java SE öğrenilmeli.
Konuyla alakasi yok ve yardimci olmuyor konuya.
Java Veri Yapıları, Java Server Faces, Java Server Pages, Swing, JavaFX, Restful, SOAP, JSON, XML, MySQL, PostgreSQL, Oracle, PL/SQL, Web API, Microservices, Spring Framework, Spring Boot(Web, Security, JWT, Cloud, Batch, Data JPA), JPA/Hibernate, IoC, DI, Liquibase, Flyway, Maven, Gradle, Docker, Kubernetes, Git, GitHub, OOP, SOLID, Unit Test, TDD öğrenilmeli.
Teknolojiler, paradigmalar ve mimariler neden tek bir cumlede?

Maven, Gradle build tool. Docker ve Kubernetes containerization toollari. OOP programlama paradigmasi, SOLID ve TDD prensip. Her seyi corba yapmissin.
 
Hâli hazırda iş bulması zor olan bir sektörde 5 yıl sonra iş bulmada sorun yaşar mıyım demek biraz absürt olmuş
 
Benim önerim o iğrenç Microsoft ve otistik Bill Gates'in teknolojilerinden uzak durmaktır. Java ve onun etrafında dönen teknolojiler benim gözümde en iyisidir. Dasdandiksoft Bindows değil macOS olsa çok iyi olur para varsa tabi. İngilizce, sorun çözme yeteneği ve matematik bilgisi aşırı önemlidir. Ancak bunlar olmadan da yapılabilir. Bence çok ileri seviye yapay zeka, ML, DL gibi algoritmalarda matematik bilgisi gerekiyor. Normal bir projede bence 4 işlem bilen herkes yapabilir. İngilizceye gelince A1 seviyesi bile olsa teknik dokümentasyonu takip edecek kadar olsa yine yeter ki bende böyle bir bilgiye sahibim. Benim tavsiyem başta bir teknoloji belirlemek ve farklı teknolojilere atlamadan sadece o alanda ilerlemek. Bir doktor aynı anda hem göz, hem diş, hem kulak burun boğaz doktoru olamaz tek bir ihtisas alanı vardır. Yazılımda gelişmek isteyenler tek bir alana yönelip onunla ilgili her şeyi derinlemesine öğrenmelidir. Premium kurslar alıp, kitaplarını okuyup, notlarını defterlere alıp, öğrendikleriyle proje yapmalıdır. Projeler çıktıkça AWS, Azure, GCP gibi ortamlarda yayınlamalıdır, böylelikle Cloud bilgiside oluşur. Benim kurs tavsiyem John Thompson, Amigoscode ve Mimar Aslan'dır. Ben Java'cı birisiyim. Microsoft'dan nefret eder hatta kin duyarım. Önce Java SE öğrenilmeli. Algoritma konusunda kişi kendini geliştirmeli. En azından bir ürettiği sayıyı bir daha üretmeyecek algoritma yazacak kadar bilmeli. İç içe forlar, while'lar, if'ler, vs... Java Veri Yapıları, Java Server Faces, Java Server Pages, Swing, JavaFX, Restful, SOAP, JSON, XML, MySQL, PostgreSQL, Oracle, PL/SQL, Web API, Microservices, Spring Framework, Spring Boot(Web, Security, JWT, Cloud, Batch, Data JPA), JPA/Hibernate, IoC, DI, Liquibase, Flyway, Maven, Gradle, Docker, Kubernetes, Git, GitHub, OOP, SOLID, Unit Test, TDD öğrenilmeli. Tüm bunlar bir anda olmayacak elbet. Hiç bırakmadan ömrünü bu işe vermelisin. Uzun sürece yayarak halı gibi dokumalısın. Bunları öğrenip sürekli olarak proje geliştirmeli GitHub'ında paylaşmalısın. README.md dosyasında proje görselleri ekleyip açıklamalarını yazmalısın. Tüm bunları yaparken yapay zeka işlerini kolaylaştıracak ancak tembelliğe alıştırdığı için öğrenmeyi zorlaştırabiliyor veya kişinin öğrenmediği halde öğrendiğini zannettirebiliyor buna da dikkat etmek lazım. Ben mühendis değilim lise web programcılığı, yüksek okul bilgisayar programcılığı mezunuyum. 150 civarı kurs bitirdim, Tobeto, BTK Akademi, Bilge Adam, ÇASGEM gibi yerlere hak kazandım. ÇASGEM'de Murat Yücedağ hocadan Full Stack .NET Core kursu aldım 210 saat 40 gün. En iyi öğrencim lafını duydum. Okuldaki hocalarımdan da en "iyi öğrencilerimdensin", "çok iyi kod yazıyorsun", "senden olur" cümlelerini duydum. Mühendis olamadım ama öğrencilik konusunda aşırı iyiyim ve bu yorumu profesyonel bir öğrenci olarak yazıyorum. Kendimi de asla uzman gibi görmüyorum asla da görmeyeceğim. Pişmiş, olmuş gibi hissetmek gelişmeyi durdurabilir kişi kendini yeterli görebilir kendini yeterli görmek bence tehlikelidir.

@TheAny niye beğenmedin kardeşim sıkıntı nerede? Çözelim hemen!
Gayet iyi konuşuyorsun fakat bazı sıkıntılar var.

Şimdi yine burada amaca yönelik çalışmadan bahsediyoruz, Kernel programlama dedim veya Mühendislik bu alanlarda sadece 4 işlem ile hiçbir şey yapamazsınız. Lineer cebir, istatistik, olasılık, türev/integral gibi ileri seviye matematik bilmelisiniz ki solo developer olmak yerine, adam gibi bir yerde mühendisliğe başlayın. Artık herkes kendi AI modelini geliştiriyor, sen Lineer cebir dahi bilmeden 4 işlem ile AI yapamazsın.

Supervised Learning
Unsupervised Learning
Accuracy, Precision, Recall, F1-Score, Cross-validation.
L1, L2, dropout gibi kavramları bilmeniz gerekir ve bunlar İngilizce olmadan olmaz, burada da İngilizce olmadan Udemy kursları ile bir noktaya gelinebileceği kanaatini destekliyor.

ReLU, Sigmoid fonksiyonlarının yapılarını bilmelisiniz ki bir sinir ağı oluşturabilin, Convolutional Neural Networks görüntü işleme teknolojilerini kullanabilin. Burada günümüzde çok değer gören AI üzerinden örnek verdim fakat eğer bu işte ilerlemek istiyorsanız Matematik ve İngilizce bilmelisiniz hocam.
 
Sart degil her seyi derinlemesine ogrenmek. Hatta aksine imkansiz.
İş ilanlarında tek bir alanı bilmeniz hatta o alanda gerçek manada uzman olmanız bekleniyor. Kişi kendi alanında gerçek manada ihtisas sahibi olamazsa bir işe yaramaz.
Konuyla alakasiz.
Konuyla alakasız olup olmaması mühim değil yan bilgi olarak vermek istedim.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

Iyi bir tavsiye degil. Hangi teknolojinin/alanin neler gerektirdigini bilmeyen, temel programlama bilgisinden noksan birinin, kendine en uygun alani secmesini beklemek mantikli degil. Kesfetmesi gerekecek. Belki oyun yapmak dusundugu kadar eglenceli olmayacak ama computer graphics alanlarindan birinde beklediginden daha fazla eglenecek ve basarili bulacak kendini.
Bu doğru başta keşfetmesi gerek. Ancak sonradan kendine ana bir dal seçmek zorunda. Bunu baştan bilmeli ki ilerde öğrenme cehennemine girmesin ilerde tek bir alana tam sahip olsun.
Direkt kotu bir tavsiye. Gerek yok. Cogu zaman bosa para israfi.
Evet premium kurslar aşırı pahalı ama satın almadan da elde edilebiliyor. Bence kötü değil.
Konuyla alakasi yok ve yardimci olmuyor konuya.
Olabilir ancak Microsoft'un kafa yapısının bozuk olduğunu her yerde söylemeden yapamıyorum.
Teknolojiler, paradigmalar ve mimariler neden tek bir cumlede?
İş ilanlarında gerçek bir yazılımcıdan teknolojiler, paradigmalar, mimariler isteniyor bu yüzden yazdım.
Maven, Gradle build tool. Docker ve Kubernetes containerization toollari. OOP programlama paradigmasi, SOLID ve TDD prensip. Her seyi corba yapmissin.
Her şeyi çorba falan yapmadım gerçek bir yazılımcı için bunların hepsi gereklidir. İş ilanlarında bilmeniz istenir. Benim anlatmak istediğim tam Java geliştirici. Tek bir alanda oturaklı bilgiye sahip olmak piyasada değerlidir ve kişiyi gerçek bir yazılımcı yapar. Eğer orada her şey çorbaysa iş ilanları da çorba o zaman. Mimar Aslan abinin de mimaraslan.com'da verdiği kurslar çorba o zaman. Elbette ki çorba değil gerçek yazılımcı için gerekli. Ha tabi konu sahibi ilk defa öğreniyor olabilir ama ben geleceği için yazmak istedim bunlar bir anda olmayacak elbet. Senelerce çaba gerekecek kişi yıllarını verecek hatta ömrünü.

Gayet iyi konuşuyorsun fakat bazı sıkıntılar var.

Şimdi yine burada amaca yönelik çalışmadan bahsediyoruz, Kernel programlama dedim veya Mühendislik bu alanlarda sadece 4 işlem ile hiçbir şey yapamazsınız. Lineer cebir, istatistik, olasılık, türev/integral gibi ileri seviye matematik bilmelisiniz ki solo developer olmak yerine, adam gibi bir yerde mühendisliğe başlayın. Artık herkes kendi AI modelini geliştiriyor, sen Lineer cebir dahi bilmeden 4 işlem ile AI yapamazsın.

Supervised Learning
Unsupervised Learning
Accuracy, Precision, Recall, F1-Score, Cross-validation.
L1, L2, dropout gibi kavramları bilmeniz gerekir ve bunlar İngilizce olmadan olmaz, burada da İngilizce olmadan Udemy kursları ile bir noktaya gelinebileceği kanaatini destekliyor.

ReLU, Sigmoid fonksiyonlarının yapılarını bilmelisiniz ki bir sinir ağı oluşturabilin, Convolutional Neural Networks görüntü işleme teknolojilerini kullanabilin. Burada günümüzde çok değer gören AI üzerinden örnek verdim fakat eğer bu işte ilerlemek istiyorsanız Matematik ve İngilizce bilmelisiniz hocam.
Kernel programlama ve mühendislik benim konularımın dışında zaten. Mühendislik kazanamadım ben zaten orası benim için karanlık. AI, ML, DL konuları hakkında zaten iddialı değilim. Evet dedikleriniz matematik olmadan olmaz olduğunu da asla iddia edecek değilim. Yapay zeka konuları da benim için eksik kalabilir, hayatta her şeye sahip olamam bazı şeylerin olması için bazı şeylerden feda etmek lazım. Ben Java ve teknolojilerinde çalışan solo developer'ım. Benimki bu kadar.
 
Son düzenleme:
Meslek lisesi bilişim bölümünde 4. sınıfım. Seneye YKS'ye girip üniversite kazanıp, ciddi anlamda gelecekteki işimi yazılım sektöründe yapmak istiyorum (yazılım sektöründe üniversiteden çok çalıştığım projelerin önemli olduğunu biliyorum). Ama hangi dilden başlayıp, gelecekte hangi dilde iş hayatımı devam ettireceğime karar veremiyorum. Yardımcı olur musunuz? Gelecekte yapay zekânın bana engel koymayacağı ve büyük projelerde yer alabileceğim bir dil öğrenmek istiyorum.
Senin şu an asıl hedefin iyi bir üniversiteye girmek ve İngilizceni geliştirmek olsun. Sorduğun soru zaten yanlış öylece sana şu dilden başla diyenleri ciddiye alma. Dil fanatikliği kadar boş bir şey yok. Yazılımdaki dil sadece bir araç. En iyi dil diye bir şey yok. İhtiyacına en iyi cevap veren dil senin için en iyisidir. Öncelikle ne yapmak istiyorsun? Yazılım yapmak istemendeki amaç ne? Hangi alanda çözümler üretmek, neyi geliştirmek istiyorsun? Hangi alanda bir şeyler yaparsan bu seni tatmin eder? Bunların kararını ver önce. Ne yapacağına karar verdiğinde zaten neyle, nasıl yapabileceğini anlayacaksın.
 
Hâli hazırda iş bulması zor olan bir sektörde 5 yıl sonra iş bulmada sorun yaşar mıyım demek biraz absürt olmuş

Is ilani miktarini belirleyen fonksiyonun turevinin onumuzdeki 5 yil boyunca 0 alti olacagindan eminsin?

yazılım sektöründe üniversiteden çok çalıştığım projelerin önemli olduğunu biliyorum

Bu bilgi her zaman dogru degil. kariyerinin baslarinda akademik birikim daha onemlidir. Belirli bir seviyeden sonra zaten icinde bulundugun zumredeki herkes 10+ senelik muhendistir ve o zaman proje farki ortaya cikar.

Temelini attigin ve kavramsal olarak iyi bildigin seyin uzerine tecrube koyarsan kiymetlenir.

En mantikli hareket dogru matematik ve Ingilizce bilgisiyle adam gibi bir bilgisayar muhendisligi/bilimi programina yerlesmeye calismak. Sonra istedigin dili, istedigin framework'u cok kisa surede ogrenirsin.
 
Son düzenleme:
İş ilanlarında tek bir alanı bilmeniz hatta o alanda gerçek manada uzman olmanız bekleniyor. Kişi kendi alanında gerçek manada ihtisas sahibi olamazsa bir işe yaramaz.
Uzmanlik farkli, her seyi derinlemesine bilmek farkli. Uzman kisi mimarilerde uzmanlasir, teknolojilerde degil. Spring gider baska teknoloji gelir ama microservice her frameworkte ayni. Implementasyon degisiklikleri mimari yapinin degistigi anlamina gelmiyor. Bir diyagram cizecek olsan teknoloji fark etmeksizin ayni sekilde gostereceksin yapiyi.
İş ilanlarında gerçek bir yazılımcıdan teknolojiler, paradigmalar, mimariler isteniyor bu yüzden yazdım.
Teknolojiler ve paradigmalar istenmesi bunlari corba sekilde yeni baslayacak bir kisiye sunmani mantikli yapmiyor.
Her şeyi çorba falan yapmadım gerçek bir yazılımcı için bunların hepsi gereklidir.
Hepsi gerekli degil. JSF, JSP, Swing, JavaFX, Spring, Spring Boot bilmek zorunda degil kimse. Projeye bagli olan teknolojileri sanki zorunlulukmus gibi gostermekten vazgecmelisin. TS veya Go ile calisacak birinin, yada sadece server side calisacak birinin JavaFX bilmesi hic bir isine yaramayacak. Corba yapmissin dememin sebebi bu.
Benim anlatmak istediğim tam Java geliştirici. Tek bir alanda oturaklı bilgiye sahip olmak piyasada değerlidir ve kişiyi gerçek bir yazılımcı yapar.
Alan != dil. Tam bir Java gelistirici UI frameworkleri bilmek zorunda degil. Eger java backend developerdan bahsediyorsak, Swing ve JavaFX uzerine harcanan zamanin neredeyse tamami cope gitmis zaman demektir.
Eğer orada her şey çorbaysa iş ilanları da çorba o zaman.
Evet, oyle zaten. Cogu is ilanini hazirlayanlar yazilimci degil. IK calisanlari cogunu hazirlayanlar. SOLID, DRY vb ne bilmeden sanki teknolojiymis gibi alt alta dizenlerin hepsi corba yapiyor.
Mimar Aslan abinin de mimaraslan.com'da verdiği kurslar çorba o zaman.
Kendisini tanimiyorum. Ama egitimi bu sekilde her seyi bir birine sokarak veriyorsa, evet, corba.
Elbette ki çorba değil gerçek yazılımcı için gerekli. Ha tabi konu sahibi ilk defa öğreniyor olabilir ama ben geleceği için yazmak istedim bunlar bir anda olmayacak elbet. Senelerce çaba gerekecek kişi yıllarını verecek hatta ömrünü.
"Gercek yazilimci" icin ogrenme becerisi, analitik dusunme becerisi, temel programlama bilgisi ve prensiplere yatkinligi, yapacagi projenin mimarisine asinalik ve yapacagi projedeki toollara yatkinlik disinda hic bir sey gerekli degil. Proje gerektiriyorsa bir dili ogrenmek 1 haftalik is. Framework'un kendi ihtiyacin duydugun kadar kismini ogrenmek ise 1 ay. Hadi seni mi kiracagim, olsun 2 ay. Ihtiyacin olmayan kismina harcadigin her vakit hem kendine, hemde calistigin sirkete vakit ve para israfindan baska bir sey degil.

Calistigim sirkette her spesifik bir teknoloji aldiysak temellerde net bilgi, advanced seylerde yatkinlik bekleniyor. Cunku ezberlemek anlamsiz. Gerektiginde dokumantasyonu acip eksik kaldigi yeri cozebilir zaten.
 

Technopat Haberler

Geri
Yukarı