Programlama Konusunda Kendimi Nasıl Geliştiririm.
-
Hocam merhaba, bende zamanında böyle soruları çok sordum, hatta şöyle ki zamanında derken, hala bir yere gelmiş ya da ben uçarım, kaçarım demiyorum. Zaten bu meslekte 'ben tamamım' dediğin an kaybettiğin andır. benim tek rakibim, bir önce ki gün bulunduğum halim felsefesi ile yaşamak istiyorum.
1- Yabancı dil ( bu konuda bende eksiğim )
* Yabancı dil olmadıktan sonra, sürekli birilerine ve sorulara muhtacız. Çünkü bir bug olduğunda bunu araştırmamız gerekiyor, eğer ki dil hakkında türkçe kaynak yoksa ki zaten kısıtlı, mecburen ingilizce kaynaklar karşımıza çıkıyor, o yüzden 'how to use try-catch in java' dediğimizde derya deniz kaynak önümüze yığılıyor ve çözüme götürüyor.
2- Ezber değil mantık
* Hocam sakın kodları ezberliyeyim filan diye uğraşma, zaten intellisense bunun için var, mantığı öğrenmek gerekiyor. Ben ilk olarak python öğrenmeye başladım, hmm döngü bu işe yarıyormuş, class bu işe yarıyorum, function bu işe yarıyormuş gibi amaçları öğrendim. İlk başlar da kendi kendime şey diyordum, ' lan ben bu kadar kodu nasıl ezberliyecem ' sonra java'ya döndük, okulda programlama derslerinde de java ilerleniyordu, ilk dönem python ile eşzamanlı gittiğim için okulda ki basic java kodlarında da çok zorlanmam zannediyordum, öyle olmadı. :) python da print('') dediğim de yazdırıyorken, java da system.out.println(''); farklı bir dünya ya götürdü. Anladım ki ben ezber mantığı ile gidiyormuşum, tekrar başa sardım, tekrar başa sardım. Sonra OOP dersleri aldım ki bu derslerde de böyle okuduğum okul sebebi ile çok ileri derece de oop görmüyorduk, hatta bugün geri dönsen 50 kişilik sınıfta oop ile ilgili başlıkları açıklayacak 4-5 kişi anca çıkar.
OOP alanında tekrar tekrar yazdım, şöyle ki function bu işe yarıyormuş, static kavramı bu işe yarıyormuş, aa eğer bir değerim sabit olsun istiyorsam final terimi kullanacakmışım, convert diye bir şey varmış, değerleri çeviriyormuşum, final terimini nerede kullanabilirim? mesela ben bir değişkeni sürekli bir sabit değer ile çarpmak istiyorsam, bu sabit değeri back-end tarafında final ile tanımlarmışım, back-end varmış, peki kullanıcının değer girebilmes için ne yapılabilir? bir tasarım yapılır, buna da front-end deniliyormuş, peki java da bu nasıl yapılır? Swing diye bir kütüphane varmış, deyip swing ile uğraştım clickeventler ne işe yarıyor? bu gibi soruları araştırırken baktım ki C# için Silverlight, WİNFORM python için tkinter vs vs yani zaten 1 alanı araştırmaya başlayınca diğer alanlar ile de az çok bir şeyler okuyorsun.
Bu şekilde getter, setter vs vs diye dil öğrenmekten ziyade kavram öğrenmeye çalıştım, allah razı olsun forumda bana tavsiye veren herkes de zaten bunları söylemişti, Syntax değil, mantığı öğren, gerisi gelecektir diye. Javadan sonra bir iş çıktı, yukarıda ki mesajda ki gibi. bir otomasyon projesi, dedim ben yapayım, ama o güne kadar db ile nasıl çalışılır, stored procedure nedir, trigger nedir vs bir şeyden haberim yok, oturdum 10-15 gün SQL çalıştım, sql çalışırken , mssql, mysql, oracle, no-sql gibi kavramları okumaya başladım sonra programlama tarafından bunlarla bağlantı kurmaya çalıştığımda mesela java için ayrı bir library gerekirken JDBC için her firmanın da ayrı bir sürüm çıkardığını gördüm vs. o güne kadar hiç c# çalışmamıştım, ama ya mantık zaten aynı değil mi deyip, winform gözüme daha kolay ve hoş geldiği için c# ile yapayım dedim, zaten üç aşağı beş yukarı mantık aynı ya filan deyip kendimi gaza getirdiğim için başladım projeye, o proje esnasında çok şey öğrendim, mesela stored procedure yazmayı, bu yazılırken aslında db-data mantığını, DB' ye direkt erişimin aslında çok büyük bir sorun olduğunu ve bu yüzden APİ kullanılması gerektiğini, APİ çeşitlerini ( APİ YAZMADIM HİÇ ) ama okudum yani, 4-5 ay sonunda baktım ki benden istenilenin haricinde projeye bir ton şey eklemişim, 10.000+ satır kod yazmışım ve bu programı 3 tane yere satmışım, ve zaman ilerleyince anladım ki ne boktan bir proje yazmışım amk 10.000+ satır kod yazdım diye kendimi şişirmişim, aslında mesele kod satırı ne kadar az, işlev o kadar fazlaysa başlıyor :) baktım ki spagetti kod yazmışım tam amele işi, spagetti kod ne demek? bunun önüne nasıl geçilir? clean code denilen bir şey varmış ( aktif olarak kullanamıyorum ) sonra baktım ki php ile istek doğrultusunda bir web sitesi yazdım, java ile basit bir uygulama yazdım ( grafik uygulaması ) sonra hiç bilmememe rağmen flutter ile kaynak vs araştırarak istek doğrultusunda basit bir uygulama verdim, bootstrap, javascript, ajax vs biraz biraz bakındım vs vs liste öyle gidiyor.
Bende halen bir öğrenciyim, bana kalırsa arkadaşlarım sorduğunda da verdiğim tavsiye ;
1-Sürekli öğrenmeye açık olmak zorundayız, teknoloji ve yenilikler her gün artıyor react,flutter,nodejs gibi.
2-Herkes bana bir alanda derinleş demişti ve doğru olan bu ancak ben sektöre dahil olmadığım için, benden istenilen projeleri yaptım genelde öğrenciyken ve baktım ki bu durum böyle gidecek, en azından mantığı ve ortada ki pastada neler var, biraz biraz tadına bakayım dedim.
*3* - Buraya 2 yıldız koymamın sebebi ise, bence en önemli etken bu, İSTEK ve İSTEK bence yazılım ve programlama işi kesinlikle istek olmadan yapılacak bir meslek değil hocam, sıçarken bile aklında ya orada ki problem ne acaba diye düşünüyorsun, kilometrelerce öteden pc başındayken ailemden biri aradığında bile konuşurken kafamda bir şey beliriyordu. öğrenci evinde bilgisayarım yatağımın karşısındaydı 4. gece bir hatayı halen çözememiştim, yemin ederim yapım gereği sanırım sinirden klavyenin bir tuşunu kırdım ne küfürler ediyorum ama, program hata vermiyor, ama çalışırken bir yerde patlıyor, rakamlar ters çıkıyor vs ( para üstü modülü yazıyordum ) yattım, rüyamda bile onunla uğraşıyordum, rüyamda kendi kendime şöyle dedim, müşteri int para vermez ki, double de verir, para üstü de int olmaz ki double'da olabilir. rüyam da bile böyle düşündüm, uyandım vay amk gerçek mi acaba diye biraz düşündüm, sonra tekrar baktım para alım ve para üstü kısmında değer virgül ile ( ', ' ) geliyor program patlıyor bunu nasıl düzeltirim dedim, replace() metodunu buldum, yazdım düzeldi :D 4-5 gün bunu aramışım, farkında değilim. birde zamanında bulunduğum bir ortamda kendini aşmış bir adam şöyle demişti, bir işi, bir mesleği ya da uğraştığınız bir alanı, rüyanızda bile görmeniz lazım..
Ekleme : ben halen çok ama çok eksiğim hatta bir yazılımcı değil, daha yolun başında ki bir 'toy' olarak görüyorum kendimi ki öyleyimde, forum içinde bugüne kadar başını ağrıttığım, yardımcı olan, soru sorduğum herkese ayrı ayrı teşekkür ediyorum, haklarınızı helal edin. umarım bir gün iyi yerlere gelmek ve buraya teşekkür konusu açmak gerçek olur. sağlıcakla.
-
nedense aklıma bu geldi :D
-
wert bunu yazdı
nedense aklıma bu geldi :D
6 senedir aktif olarak uğraşıyorum. Çok doğru :d her şeyi akılda tutmak zor. Önemli olan doğru soruyu Google a sorabilmek bence.
-
C++ bırak beyin yakiyo
-
Algoritma,
Ilk önce algoritmayi cok iyi ogren.
Sonra yazilim dillerine gec.
-
Roark bunu yazdı
... birde zamanında bulunduğum bir ortamda kendini aşmış bir adam şöyle demişti,
bir işi, bir mesleği ya da uğraştığınız bir alanı, rüyanızda bile görmeniz lazım.. Burası çok doğru. Rüyamda görüp uyanip yazıp hatasız çalışan çok programım oldu. Bu noktaya geldiyseniz birçok şey oturmuştur kafanızda.
-
Roark bunu yazdı
Hocam merhaba, bende zamanında böyle soruları çok sordum, hatta şöyle ki zamanında derken, hala bir yere gelmiş ya da ben uçarım, kaçarım demiyorum. Zaten bu meslekte 'ben tamamım' dediğin an kaybettiğin andır. benim tek rakibim, bir önce ki gün bulunduğum halim felsefesi ile yaşamak istiyorum.
1- Yabancı dil ( bu konuda bende eksiğim )
* Yabancı dil olmadıktan sonra, sürekli birilerine ve sorulara muhtacız. Çünkü bir bug olduğunda bunu araştırmamız gerekiyor, eğer ki dil hakkında türkçe kaynak yoksa ki zaten kısıtlı, mecburen ingilizce kaynaklar karşımıza çıkıyor, o yüzden 'how to use try-catch in java' dediğimizde derya deniz kaynak önümüze yığılıyor ve çözüme götürüyor.
2- Ezber değil mantık
* Hocam sakın kodları ezberliyeyim filan diye uğraşma, zaten intellisense bunun için var, mantığı öğrenmek gerekiyor. Ben ilk olarak python öğrenmeye başladım, hmm döngü bu işe yarıyormuş, class bu işe yarıyorum, function bu işe yarıyormuş gibi amaçları öğrendim. İlk başlar da kendi kendime şey diyordum, ' lan ben bu kadar kodu nasıl ezberliyecem ' sonra java'ya döndük, okulda programlama derslerinde de java ilerleniyordu, ilk dönem python ile eşzamanlı gittiğim için okulda ki basic java kodlarında da çok zorlanmam zannediyordum, öyle olmadı. :) python da print('') dediğim de yazdırıyorken, java da system.out.println(''); farklı bir dünya ya götürdü. Anladım ki ben ezber mantığı ile gidiyormuşum, tekrar başa sardım, tekrar başa sardım. Sonra OOP dersleri aldım ki bu derslerde de böyle okuduğum okul sebebi ile çok ileri derece de oop görmüyorduk, hatta bugün geri dönsen 50 kişilik sınıfta oop ile ilgili başlıkları açıklayacak 4-5 kişi anca çıkar.
OOP alanında tekrar tekrar yazdım, şöyle ki function bu işe yarıyormuş, static kavramı bu işe yarıyormuş, aa eğer bir değerim sabit olsun istiyorsam final terimi kullanacakmışım, convert diye bir şey varmış, değerleri çeviriyormuşum, final terimini nerede kullanabilirim? mesela ben bir değişkeni sürekli bir sabit değer ile çarpmak istiyorsam, bu sabit değeri back-end tarafında final ile tanımlarmışım, back-end varmış, peki kullanıcının değer girebilmes için ne yapılabilir? bir tasarım yapılır, buna da front-end deniliyormuş, peki java da bu nasıl yapılır? Swing diye bir kütüphane varmış, deyip swing ile uğraştım clickeventler ne işe yarıyor? bu gibi soruları araştırırken baktım ki C# için Silverlight, WİNFORM python için tkinter vs vs yani zaten 1 alanı araştırmaya başlayınca diğer alanlar ile de az çok bir şeyler okuyorsun.
Bu şekilde getter, setter vs vs diye dil öğrenmekten ziyade kavram öğrenmeye çalıştım, allah razı olsun forumda bana tavsiye veren herkes de zaten bunları söylemişti, Syntax değil, mantığı öğren, gerisi gelecektir diye. Javadan sonra bir iş çıktı, yukarıda ki mesajda ki gibi. bir otomasyon projesi, dedim ben yapayım, ama o güne kadar db ile nasıl çalışılır, stored procedure nedir, trigger nedir vs bir şeyden haberim yok, oturdum 10-15 gün SQL çalıştım, sql çalışırken , mssql, mysql, oracle, no-sql gibi kavramları okumaya başladım sonra programlama tarafından bunlarla bağlantı kurmaya çalıştığımda mesela java için ayrı bir library gerekirken JDBC için her firmanın da ayrı bir sürüm çıkardığını gördüm vs. o güne kadar hiç c# çalışmamıştım, ama ya mantık zaten aynı değil mi deyip, winform gözüme daha kolay ve hoş geldiği için c# ile yapayım dedim, zaten üç aşağı beş yukarı mantık aynı ya filan deyip kendimi gaza getirdiğim için başladım projeye, o proje esnasında çok şey öğrendim, mesela stored procedure yazmayı, bu yazılırken aslında db-data mantığını, DB' ye direkt erişimin aslında çok büyük bir sorun olduğunu ve bu yüzden APİ kullanılması gerektiğini, APİ çeşitlerini ( APİ YAZMADIM HİÇ ) ama okudum yani, 4-5 ay sonunda baktım ki benden istenilenin haricinde projeye bir ton şey eklemişim, 10.000+ satır kod yazmışım ve bu programı 3 tane yere satmışım, ve zaman ilerleyince anladım ki ne boktan bir proje yazmışım amk 10.000+ satır kod yazdım diye kendimi şişirmişim, aslında mesele kod satırı ne kadar az, işlev o kadar fazlaysa başlıyor :) baktım ki spagetti kod yazmışım tam amele işi, spagetti kod ne demek? bunun önüne nasıl geçilir? clean code denilen bir şey varmış ( aktif olarak kullanamıyorum ) sonra baktım ki php ile istek doğrultusunda bir web sitesi yazdım, java ile basit bir uygulama yazdım ( grafik uygulaması ) sonra hiç bilmememe rağmen flutter ile kaynak vs araştırarak istek doğrultusunda basit bir uygulama verdim, bootstrap, javascript, ajax vs biraz biraz bakındım vs vs liste öyle gidiyor.
Bende halen bir öğrenciyim, bana kalırsa arkadaşlarım sorduğunda da verdiğim tavsiye ;
1-Sürekli öğrenmeye açık olmak zorundayız, teknoloji ve yenilikler her gün artıyor react,flutter,nodejs gibi.
2-Herkes bana bir alanda derinleş demişti ve doğru olan bu ancak ben sektöre dahil olmadığım için, benden istenilen projeleri yaptım genelde öğrenciyken ve baktım ki bu durum böyle gidecek, en azından mantığı ve ortada ki pastada neler var, biraz biraz tadına bakayım dedim.
*3* - Buraya 2 yıldız koymamın sebebi ise, bence en önemli etken bu, İSTEK ve İSTEK bence yazılım ve programlama işi kesinlikle istek olmadan yapılacak bir meslek değil hocam, sıçarken bile aklında ya orada ki problem ne acaba diye düşünüyorsun, kilometrelerce öteden pc başındayken ailemden biri aradığında bile konuşurken kafamda bir şey beliriyordu. öğrenci evinde bilgisayarım yatağımın karşısındaydı 4. gece bir hatayı halen çözememiştim, yemin ederim yapım gereği sanırım sinirden klavyenin bir tuşunu kırdım ne küfürler ediyorum ama, program hata vermiyor, ama çalışırken bir yerde patlıyor, rakamlar ters çıkıyor vs ( para üstü modülü yazıyordum ) yattım, rüyamda bile onunla uğraşıyordum, rüyamda kendi kendime şöyle dedim, müşteri int para vermez ki, double de verir, para üstü de int olmaz ki double'da olabilir. rüyam da bile böyle düşündüm, uyandım vay amk gerçek mi acaba diye biraz düşündüm, sonra tekrar baktım para alım ve para üstü kısmında değer virgül ile ( ', ' ) geliyor program patlıyor bunu nasıl düzeltirim dedim, replace() metodunu buldum, yazdım düzeldi :D 4-5 gün bunu aramışım, farkında değilim. birde zamanında bulunduğum bir ortamda kendini aşmış bir adam şöyle demişti, bir işi, bir mesleği ya da uğraştığınız bir alanı, rüyanızda bile görmeniz lazım..
Ekleme : ben halen çok ama çok eksiğim hatta bir yazılımcı değil, daha yolun başında ki bir 'toy' olarak görüyorum kendimi ki öyleyimde, forum içinde bugüne kadar başını ağrıttığım, yardımcı olan, soru sorduğum herkese ayrı ayrı teşekkür ediyorum, haklarınızı helal edin. umarım bir gün iyi yerlere gelmek ve buraya teşekkür konusu açmak gerçek olur. sağlıcakla.
Python eğitimi ni nereden almaliyiz