Yazılım nasıl öğrenilir?

Yukarıdaki şemanın hiçbir anlamı yok. Para kazanmak istiyorsam Java öğrenmem gerektiğini söylüyor, hayatımda böyle saçma sapan bir şema görmedim.

Bu şekilde cımbızlamak ne kadar doğru? Eğer tek amaç paraysa ve kişi para harici hiçbir şeyi umursamıyorsa geniş iş imkanları dolayısıyla Java önerilmiş. Burada bir yanlışlık yok. Bu şema da profesyonel bir yönlendirme/danışmanlık hizmeti değil, seçimi kolaylaştıran bir araç.

Yöneleceği alanı kafasında belirtmesi hiçbir anlam ifade etmiyor. Bu başlangıçta belirlenecek bir şey değil.

Kişinin kendi tercihinin hiçbir anlam ifade etmediğini, kendi seçimini yapacak yeterlilikte olmadığını mı düşünüyorsunuz?

Mantıken düşününce çoğu kişi yazılıma başlarken oyun geliştirerek başlamak ister çünkü oyun oynamayı seviyordur. Fakat oyun geliştirirken nasıl bir yol haritası izleyeceği ve ne tür zorluklarla karşılaşacağı hakkında en ufak bir fikri yoktur.

Bu durumda oyun geliştirmeyi dener, başarısız olur veya sıkılır. Bu alanın kendisine uygun olmadığını anlar ve vazgeçer. Ezbere tavsiye almasından daha verimli buluyorum. Diğer türlü hiç alakası olmayan bir dili öğrenirken çok daha hızlı sıkılacaktır.
 
İlk önce alanına karar ver. Oyun mu yapmak istiyorsun. Web siteleri mi? Veya mobil App'ler mi? vs. vs.

Kararını verdikten sonra araştırmalar yap YouTube'tan videolar izle mesleğin alanın zorluklarını güzelliklerini öğren. Detayları kap.

Hangi alanda hangi dilde iş yapacağına karar verdikten sonra alanınla ilgili 1 algoritma kitabı alırsan çok iyi olur. Algoritma kitapları basit olur hem de temelini attırır.

Ardından en iyi kurs araştırmalarına başla Udemy, coursera, YouTube yeter de artar. Türkçeye bağlı kalma İngilizce çok güzel kurslar var. Bunlarda ki İngilizce alt yazıyı Türkçeye çevirerek çalışabilirsin.

Edge üzerinde Udemy kurslarında ki İngilizce alt yazıyı sayfayı Türkçeye çevirerek kullanabilirsin çalışıyor Chrome için eklenti lazım galiba. YouTube için de otomatik çeviri vardı.

Öğrenirken ezber mantığıyla ilerleme hiçbir yararı olmaz. Sürekli kodla sürekli projeler mini şeyler yap. Öğrendiklerinin ne işe yaradığını anlamalısın.

Senin alanında ki senden önde kişiler bul örnek veriyorum mobill App için çok iyi developerlar var. Bunları araştır bul LinkedIn ve GitHub'larını incele neler yapmışlar. Hangi kursları alıp seltifika kazanmışlar gibi gibi ne projeler yapmışlar. Sana yol gösterici olabilir.

Basit seviyeyi geçtikten sonra;
GitHub ve LinkedIn profilleri oluştur. Buralarda her yaptığın mini projeyi Clone'u yayınla. Açıklamalar ve linkler oluştur.

Başlangıç tavsiyesi olarak da; her gün en az 2-3 saat bu işe yatırman. En zor günün de bile minimum 1 saat ayır. Alışkanlık edinmelisin.
Zevk alacağın alanı seç. Oyuna ilgiliysen oyun alanına yönel. Sırf para için çalışacaksan başaramazsın.
 
Zaten sürekliliği sağlamak için rastgele kolay bir dil değil o kişinin ilgisini çekebilecek bir alana uygun bir dil onun sürekliliğini sağlar. Misal web front end öğrenmek ve bunun ilgisini çekebileceğini düşünen biri neden python öğrensin js için gibi en bariz buradan örnek verilebilir.

Tabi kişi kendisine net bir alan seçmediyse python doğru olabilir
Benim kast ettiğim, kişi daha denemeden o alanla ilgili bir çalışma yapmadan, kütüphaneleri tanımadan, programlamanın mantığını oturtmadan nasıl spesifik bir alan seçecek onu söylüyorum.

Python'u temel seviyede adam akıllı öğrenir ve diğer alanların zorluklarıyla ilgili araştırma yapar, spesifik bir alanı seçer, bunla ilgili öğrenmesi gereken dilleri ve framework'leri, kütüphaneleri, öğrenir ve bu süreçten sonra o alanla ilgili çalışmaya başlar. Programlamaya başlamadan önce ben de oyun geliştiririm diye düşünüyordum fakat başladıktan sonra zannettiğim gibi olmadı.

Başladıktan sonra ise framework'lere bağlı kalmadan saf Python kodu yazmanın çok zevkli olduğunu keşfettim, çünkü analitik zekayı kullanmak ve her şeyi kendi mantığınla yazmak çok hoşuma gitti ve bu alandan devam etmeye karar verdim. Bu alanda devam ederken web alanını da işim sayesinde deneyimledim ve hoşuma gitti.

En başta oyun geliştirerek başlasaydım, muhtemelen hüsranla sonuçlanacak ve programlamayı bırakacaktım fakat öyle olmadı. İyi ki de olmamış.
Bu şekilde cımbızlamak ne kadar doğru? Eğer tek amaç paraysa ve kişi para harici hiçbir şeyi umursamıyorsa geniş iş imkanları dolayısıyla Java önerilmiş. Burada bir yanlışlık yok. Bu şema da profesyonel bir yönlendirme/danışmanlık hizmeti değil, seçimi kolaylaştıran bir araç.



Kişinin kendi tercihinin hiçbir anlam ifade etmediğini, kendi seçimini yapacak yeterlilikte olmadığını mı düşünüyorsunuz?



Bu durumda oyun geliştirmeyi dener, başarısız olur veya sıkılır. Bu alanın kendisine uygun olmadığını anlar ve vazgeçer. Ezbere tavsiye almasından daha verimli buluyorum. Diğer türlü hiç alakası olmayan bir dili öğrenirken çok daha hızlı sıkılacaktır.
Geniş iş imkanları Java'da var ama Python'da yok mu ya da Javascript'te? Hala tek amacı paraysa diyorsun, tek amacı para olup bu işte başarılı olan bir kişiyi görmedim. Hepsi işlerine gelmeden bıraktı. Python öğrenmenin amacı genel programlama konseptini hızlı bir şekilde kavramasını sağlamak. Alakasız dil derken anlamadım. Python'daki temel programlama bilgilerinin hepsini diğer dillerde hızlı bir şekilde kullanabilir.

Senin mantığınla diyelim ki; ben machine learning alanına yönelmek istiyorum, zira yapay zekaya çok ilgim var. O zaman hemen başlamalıyım değil mi? Sonuç ne? Tabii ki hüsran. Sonra programlama ne kadar zormuş diyerek programlamayı bırakacağım. Süreklilikten kastım budur.

Kişinin isteğinin önemi yoktur diye bir genelleme yapmadım. Kişi programlama temellerini öğrendikten sonra mantıklı bir seçim yapmalıdır, o seçeceği dilin de ne olduğunun bir önemi yok, tamamen kişinin zevkine kalmış. Öğrenim kolaylığı ve temeli anlaması açısından Python öğrenmenin nesi yanlış?

Başlangıçta Java öğrenen bir insanın düşüncesi de diğer dillerin de benzer olduğu yönünde olacak ve muhtemelen hemen bırakacak.

1649903342344.png

Bundan sonra yazdığın cevaplar ardına cevap vermeyeceğim, benim açımdan hiçbir çıkarım olmamasına rağmen bir saattir bunu tartışıyoruz, arkadaşın konusunu baltalamanın bir gereği yok. Herkes kendi düşüncesine sahip ve herkes fikirlerini arkadaşa sundu, ne sen benim fikrimi değiştireceksin ne de ben seninkini.
 
Son düzenleme:
Geniş iş imkanları Java'da var ama Python'da yok mu ya da JavaScript'te? Hala tek amacı paraysa diyorsun, tek amacı para olup bu işte başarılı olan bir kişiyi görmedim. Hepsi işlerine gelmeden bıraktı. Python öğrenmenin amacı genel programlama konseptini hızlı bir şekilde kavramasını sağlamak. Alakasız dil derken anlamadım. Python'daki temel programlama bilgilerinin hepsini diğer dillerde hızlı bir şekilde kullanabilir.

Bu durumda yazılımdan para kazanma amacı güden birisine karşı susup tavsiye vermememiz mi gerekiyor? Bırakalım başarısız olsun ve hatasını gözden geçirsin. Java olayı sadece orada verilmiş bir örnek, bunda bir sorun görmüyorum. Ve evet, oyun geliştirecek birisinin Python öğrenmesi alakasız ve gereksizdir. Bunun yerine C#'ı derinlemesine öğrenir, syntax'i yine basit. Bu sayede Unity ve birçok oyun motorunu da kullanabilir ve küçük projeler yaparak hedefine yaklaştığını hissedebilir. Bu sayede sıkılmaz ve motive olur. Peki, bu kişiyi Python'ın başına oturtup bankamatik uygulaması yazdırdığımızda ne hissedecek? Çok yanlış yerde olduğunu ve çok yanlış alanda ilerlediğini. İlerleme kat edemediğini düşünerek sıkılacak ve bırakacak. Sizin amacınız sürdürülebilirlikse işte tam olarak burada doğru seçim devreye giriyor.

Senin mantığınla diyelim ki; ben machine learning alanına yönelmek istiyorum, zira yapay zekaya çok ilgim var. O zaman hemen başlamalıyım değil mi? Sonuç ne? Tabii ki hüsran. Sonra programlama ne kadar zormuş diyerek programlamayı bırakacağım. Süreklilikten kastım budur.

Hayır, dilde ustalaşırım ve sonra alanıma yönelirim. Senin mantığın saçma olan yönü bu; "herhangi" veya "temel", "basit" bir dilde değil, ileride de işime yarayacak bir dilde uzmanlaşırım. Machine learning, AI veya data science alanlarında ilerlemek için HTML öğren; sonra zaten kolayca Python'ı kavrarsın demek gibi oluyor bu.

Kişi programlama temellerini öğrendikten sonra mantıklı bir seçim yapmalıdır, o seçeceği dilin de ne olduğunun bir önemi yok, tamamen kişinin zevkine kalmış. Öğrenim kolaylığı ve temeli anlaması açısından Python öğrenmenin nesi yanlış?

Binary öğrenen birisi de temelleri kavrar zannımca, bu durumda binary öğrensin ve sonra karar versin. Evet, Python öğrenim kolaylığı sağlar fakat bu Python'a has bir durum değil.

Başlangıçta Java öğrenen bir insanın düşüncesi de diğer dillerin de benzer olduğu yönünde olacak ve muhtemelen hemen bırakacak

Başlangıçta Java öğrenilmesini öneren olmadı. Şemadaki başlangıç dili zaten Python olarak verilmiş, yolların çoğu da ona çıkıyor. Belki de en az önerilmiş dillerden birisi Java ve neden bu kadar taktığını anlamadım. Gayet yerinde bir öneri, isteyen pek tabii Java'yla da başlayabilir.

Bundan sonra yazdığın cevaplar ardına cevap vermeyeceğim, benim açımdan hiçbir çıkarım olmamasına rağmen bir saattir bunu tartışıyoruz, arkadaşın konusunu baltalamanın bir gereği yok. Herkes kendi düşüncesine sahip ve herkes fikirlerini arkadaşa sundu, ne sen benim fikrimi değiştireceksin ne de ben seninkini.

Burası bir forum ve amacımız da fikirleri tartışmak. Bir kusurumuz olduysa affola.
 
Öğrenerek öğreneceksin. Hangi yoldan gitmek istiyorsun? Mesela Microsoft' ta stajyer olarak mı çalışmak, Fiverr gibi sitelerde web tasarım yapmak, kendi oyununu geliştirmek, mobil uygulama yapmak, teknoloji platformu açmak, yapay zeka ve derin öğrenme gibi işleri keşfetmek, blokzincir oluşturmak gibi işlerden hangisini seçersin? Yazılımda kendini çok geliştirirsin. Bir kötü yanı var. Eğer teknoloji gibi hızlı bir treni yakalamak, ayak uydurmak istemiyorsan geri kalırsın. Ancak treni yakalayan tiplerdensen hemen kavrarsın. Önce hangi yoldan gitmek istediğine bak. O yol için doğru programlama paradigmanı seç. (Zorunlu programlama, Bildirimsel programlama, nesne yönelimli programlama, fonksiyonel programlama, yığın tabanlı programlama, prosedürel programlama...) Ondan sonra paradigmana uygun programlama dili seç. (Python, Ruby, C, C#, Assembly, C++, F#, Delphi, Ada, Visual Basic, Java, CSS, PHP, Javascript, Rust, Nim, HTML, SQL ve niceleri...) Sonra bu programlama dilinle yapacağın işi planla, hafif giriş yap. Sonra o programlama dili için bir IDE yada kod editörü bul. (Atom, VSCode, Sublime Text, Vim...) Sonra ise kendine bir düzenli çalışma programı belirle. O programa göre Youtube' dan yada Udemy gibi platformlardan kurs izle ve düzenli çalış. Sakın aksatma!
 
YouTube'da ücretsiz kaliteli kurslar varken neden parasını harcasın? Ben video bile izlemeden Java Wiki'sinden öğrendim. İsmini veremediğim birçok güzel yazılım kanalı varken para israfı saçma geliyor bence...

Aklıma bu geldi parası olan için parası yoksa veya olupta vermek istemezse tabii YouTube daha iyi.
 

Technopat Haberler

Yeni konular

Geri
Yukarı