şimdi sayın beyaz şapkalı heykırlar, sevgili romalılar !
bununla ilgili daha önce de benzer sorularım olmuştu lakin tıkanmış hissediyorum ve benim moreli sıffır sıffır sıffır sıffır !
neyse özet geçmeye çalışayım: yaşım 32. android programlama öğrenmeye çalışıyorum online kurslar üzerinden (merak eden varsa tim buchalka ve saz arkadaşları) ingilizceyi gayet yeterli bir seviyede biliyorum. dersleri bir noktaya kadar anlıyorum sıkıntı yok. ama hoca arada öyle bir katakulli çeviriyor ki olayı anlamam, mantığına vakıf olmam neredeyse mümkünsüz. misal adam diyor ki: "bu işi yapmak için hedehödö sınıfının abuzittin özelliğini kullanıcaz." ki bilenler bilir, nesnenin sonuna noktayı koyunca zilyon tane fonksiyon çıkıyor. ben hangisini nasıl kullanacağımı, hangi tür hata verdiğinde nasıl üstesinden geleceğimi nasıl bilicem ki ?
böyle olunca ister istemez elin böğründe kalıyor. ne yapayım ben acı şurup içer gibi devam edeyim mi böyle ? 3-10 paraya çalışayım yeter ki öğreneyim diyebileceğim şartlarda da değilim. yurtdışına kendimi atayım desem (ki aklımda) şu anki halimle anca temizlikçi gidebilirim, türkiye'de ise benim durumumdaki adamların işi -bence- zaten yurtdışındakinden daha zor...
ne yabayım yav vaz mı geçeyim bu sevdadan :/
edit: eklemeyi unutmuşum. bilg. müh.'te tezsiz yüksek lisans yapıyorum. ama bu yüksek lisansın "içerik" olarak programcı olmak isteyen geleceğine -abartmıyorum- neredeyse hiç katkısı yok. dersler kitap üzerinde kalmak üzere tasarlanmış gibiydi adeta. bu dönem proje var bakalım inşallah orda dişe dokunur bir şey yaparız.
Android biraz zor. bence c#, . Net ile başlasaydın daha iyiydi.
Selam,
Aga işte mesele sadece kod yazmak değil. Sağlam bir yazılımcı olmak için geçilmesi gereken yollar, bir süreç var. Programlama öğrenmek uzun ve zahmetli bir süreç. Atıyorum veri yapıları, karar yapıları diye duyunca şaşıp kalmamak lazım. 2-3 ayda hatta 6 ayda uzman seviyesine gelemezsiniz. Yazılım geliştirme metodolojilerinden hangisini biliyorsunuz mesela? Yanlış anlamayın niyetim sizi yermek değil. Birazda isyanım her halta "programlama/kodlama öğren" diyenlere. Uygulamayı bir şekilde yazarsınız. Yazmak değil mesele sadece, projenizi sağlıklı şekilde yönetip, büyütebiliyor musunuz? Bu önemli.
Her neyse size gelecek olursak, heves ettiyseniz öğrenin, üsteleyin. Yeteri kadar çalışma ve zaman ayırmayla her şey yapılır.
www.youtube.com
Meet Japan's 82-year-old app-maker and programmer
www.youtube.com
7 year old Zora Ball, the world's youngest game programmer
iki örnek. Programcı olmak için yaş sınırı yok.
AMA
aması şu, bunu meslek olarak profesyonel olarak yapmak için belli bir tecrübe seviyesine erişmek lazım bu da zaman alır.
Sabrın ve azmin varsa, kafan da basıyorsa önümüzdeki sene bu zamanlar bu işten para kazanıyor olursun bence (junior dediğimiz, giriş seviyesi eleman gibi).
bi e önerim 3-30 oaraya vyea parasız calısma kendi mesleğini yap bos zamanlarını bu yola ada. Yoksa bizim sektör adam sömürmesi ile meshurdur.
android alaninda calismak, hatta yurt disinda calisir hale gelmek icin ciddi oranda sabirli ve uzun ogrenme surecinden gecmek grekiyor. bu konuda sifirdan ogrenmek sadece online kurslar ve internetten kendi kendine olmaz. birkac ogrenme methodu bir arada gitmeli.
- online kurslar onemli, takip edilmeli
- bir taraftan bir yerde calismak cok onemli, cunku online kurslar genelde giris seviyesinde anlatir, profesyonel hayatta karsilasilan problemler cok farkli oluyor. ayirca bir dil ve framework ogrenmek is yapmaya yetmez, isin temllerini ve yazilim gelistirme methodolojilerini ogrenmek gerkir, bunun icin de bir yerde calismak onemli.
- meetup lara katilip diger yazilimcilar ile bilgi paylasmak onemli
- kafana birsey takildiginda bir araya gelip cozebilecegin kisiler ile bir arada olmak onemli
- referans kitaplar kullanarak isin temel derinligine inmek onemli
tum bunlar paralel ilerlemeli, ama android alaninda daha onceden java programlama gecmisi olan birinin bile bir yerde calisacak kadar belli bir asamaya gelmesi 1 yildan az surmez. Sabirli olmak gerekir. Bir yerde calissan bile ilk iki yil "junior" seviyesinde olunup bircok durumda bir "senior" dan destek almak gerekir. O nedenle yazilim alaninda calismak isteyip, bu konuda para kazanmak isteyen biri icin o kisinin kendine ayirmasi gereken sure 3 yil olmali diye dusunuyorum. bu sure kisinin ayirdigi zamana ve imkanlarina gore uzar ama kastedilen bir template site yapmak degilse 2 yildan da az surmez.
Full Stack Developer olma hayali kuran bir bilgi işlemci (kamu) olarak seninle benzer bir kaderi paylaşıyor olabiliriz.
30 yaşındayım, ufak tefek freelance işler yapıyorum, kendi projelerimle de ilgileniyorum.
HTML, CSS, PHP, JQUERY, BOOTSTRAP, MYSQL gibi alanlarda hayal ettiğim her işi koda dökecek kadar yeterli bilgim var.
ama yemiyor.
öyle kolay mı lan diyorum istifa etmek?
aslında kolay be. yapabiliriz.
sorunun cevabı da şu:
zaten öğrenmen gereken şey nerede hangi sınıfı kullanman gerektiği. programlama budur. neyi nerede yapacağını bilmek.
bu konu ozelinde degil de herhangi bir alanda yazilim konusunda para kazanmak isteyen biri icin en onemli konu cevrede erisebilecegi, soru sorabilecegi, destek alabilecegi birinin olmasi. bu konuda 10 yildan fazla da calissan mutlaka bir yerde takilabilirsin. hatta cozumu cok basit olan bir problemi cozemeyebilirsin. ya da bir konuyu genel hatlari ile kavrayamayabilirsin. bu durum ne kadar uzun sure calisilsa da herkesin basina geliyor. genelde belli bir noktada olan bir problem stackoverflow gibi sitelede arama yapip, ya da dokumantasyon okuyup cozulebiliyor ama bazi problemler oluyor ki kisi sorunu kendi de tarif edemeyebiliyor. iste bu noktada yardimlasmak, bir kisiden destek almak onemli o nedenle cevrede mutlaka bu konularda ogretmeyi seven birilerinin olmasi cok onemli. elbette yeterli emek sarfedip bir sekilde asarsin ama bu tarz destekler yolu cok kisaltiyor.
o nedenle bir konuda takilinca, ilk olarak o problemi soru haline getirmek, yani tanimlamak gerekir. sonra internetten arastirmak gerekir. yine cozum bulunmazsa birine sormak gerekir. eger cevrede soracak biri yoksa morel bozmadan o konu bir yere not alinir ve gecilir. mutlaka bir noktada o sorunu kendi kendine cozebilecek seviyeye gelinecektir. yazilim ogrenmek bir "iteration" gerektirir yani tekrar tekrar basa donup yeniden baslamak, eksik kalan yerleri tamamlamak, bilgiyi tazelemek gerekir. yani ogrenme dogrusal gitmiyor yazilimda, zaten bu konunun ogrenilmesinin en buyuk zorlugu da bu. ve herkes icin boyle 10 yil calisan da yeri geliyor bir yerde takiliyor.
Soru: nesnenin sonuna noktayı koyunca zilyon tane fonksiyon çıkıyor. ben hangisini nasıl kullanacağımı, hangi tür hata verdiğinde nasıl üstesinden geleceğimi nasıl bilicem ki ?
Cevap: dökümantasyondan, manuellerden,
Hepimiz benzer yollardan geçtik, benim yöntemim senin dediğin gibi bir nesnenin veya fonksiyon adının bir kısmını yazdığımda otomatik tamamlamadaki fonksiyon/method listesinde geçenleri, dökümantasyondan ne olduklarına bakmak.
Bunu aynı sınıf için üç beş kere yapınca hatırlamaya başlıyorsun zaten. Senin örneğinde sınıfın kendi methodları, başka sınıftan miras aldıkları vs. ile liste uzayacaktır gözünü korkutmasın, çoğunu kullanmıyorsun zaten ama yine de ne olduklarını okuman önemli, bir kaç cümle bile kalsa aklında seneler sonra ihtiyacın olduğunda "ya sanki şöyle bişi vardı bi dakika" diye bir hissiyatla dalıyorsun hemen.
Senin o dersini aldığın eleman (çoğu online kurslarda bu var) sanki sen bütün dökümantasyonu/örnekleri incelemişsin ve standart kütüphanede neyin nerede olduğunu ne iş yaptığını ezberinde varmış gibi anlatması problem oluyor, senden beklenen karşına böyle bir şey geldiğinde (bu iş için, X sınıfının Y methodunu Z parametresi ile çağırıyoruz gibi) videoyu durdurup o sınıfın dökümantasyonuna gidip o sınıfa ait methodları gözden geçirmen, bir tur okuman, sonra videoya kaldığın yerden devam etmen.
TL;DR; d.android.com'a giriyorsan search ozelligini kullanarak her class'in her method'unun detayli aciklamasini goruyorsun.
ozelden yazarsan,ozellikle android konusunda, detayli yardimci olabilirim
Programcılık kavramı son 10 yılda çok büyük şekil değişikliğine uğradı, günümüz OOP araçları iyice işin bokunu çıkartıp sürükle bırak şovuna dönüştü ama bu araçları kullanan yeni yetme yazılımcılar bir hata ya da eksikle karşılaştıklarında far görmüş tavşan gibi ekrana baka kalıyor.
Öncelikle programlama sadece kod yazmak değil aynı zamanda bir bilgisayar ya da bilgisayar gibi davranan cihazlarla konuşmamızı sağlayan işletim sistemleri ile iletişim kurabilmek için gerekli olan sınıflar, kütüphaneler hatta framework'lerin ne olduğunu bilmeyi de gerektiriyor. OOP üzerinde hazır olarak sunulmuş kütüphanelerin örneklerini internetten araştırıp önümüze çıkan videoları izleyerek aynını yapmaya çalıştığımızda o son noktayı koyduğunda karşına çıkan item listin videodakine benzememesinin nedeni işte bu anlattıklarımın altında yatıyor.
Size tavsiyem öncelikle işin temeli olan kodlama tekniklerinden başlayın sınıfları, kütüphaneleri, fonksiyonları, vs öğrenin sonra örnekler üzerinden gitmeye çalışın. Programlama uzun yıllar gerektiren bir tecrübeye ihtiyaç duyar belki bir iki örnek video izleyerek ortaya bir şeyler çıkartabilirsiniz ancak özgün bir ürün çıkartmaya çalıştığınızda mutlaka karşınıza bir çözümsüz kalacağınız hata çıkacaktır.