< Bu mesaj bu kişi tarafından değiştirildi eski_nesil -- 12 Nisan 2020; 1:31:4 > |
Bildirim
< Bu mesaj bu kişi tarafından değiştirildi eski_nesil -- 12 Nisan 2020; 1:31:4 > |
deneyimli bir yazılımcı olarak elimden geldiğince yol göstermeye çalışayım. uzun olacak ama, aktarabileceğim önemli şeyler olduğunu düşünüyorum.
birçok kişi yazılım ya da bilgisayar bilimleri konusunda ilerleyip, gelişip, kariyer yapmanın yolunun "çok çalışmaktan" geçtiğini düşünür. ancak bu aslında oldukça yanlış. önemli olan doğru çalışmaktır. ve bu süreçte kendi zihinsel, psikolojik durumunuzu yönetebilmeniz çok önemlidir. çalışırken, çalışma programının kendisine aşırı odaklanıp, gerçek amacımızı unutabiliyoruz. "psikolojimizi yönetmek" derken bundan bahsediyorum. bir yazılımcının gerçek amacı, çalışan, bitmiş, servise verilmiş, son kullanıcının kullanımına hazır bir yazılım üretmektir. yani, yazmaktır. burada şöyle bir hataya düşülüyor: 1- evet, farkındayım, amacım yazılım ürünü üretmek. 2- bu yazılımı üretecek duruma gelmek için çok teknik bilgi gerekiyo. 3- ben bu bilgiye sahip değilim, o zaman güzelce bi öğrenmeliyim. 4- öğrendikten sonra yazacağım. yukarıdaki mantık sizin yazılım öğrenmeye ilk başlarken ürettiğiniz mantık oluyor, siz bu mantığı yazılımcı olmayı gerçekten istediğiniz için ürettiniz, niyetiniz kötü değil yani, ürettiğiniz mantık da hatalı değil aslında. ancak, öğrenme sürecine öyle bir dalıyorsunuz ki, çünkü internette o kadar çok kaynak var ki, ve o kaynaklardan çalışmak insana öyle güzel geliyo ki, sonunda öğrenme sürecinin kendisi sizin hayat rutininiz olabiliyor, artık sizin "isteğiniz" yani "motivasyonunuz" eğitimleri ve kitapları bitirmek oluyor. ve, beşinci madde olan gerçek amacınızı unutuyorsunuz: 5- öğrendim tamam, şimdi gerçek bir projeye başlayıp çalışan ürünü elde edene kadar yazacağım. çünkü zaten benim isteğim bu idi. şöyle bir durum var. mükemmel yazılım yazmak için size faydalı olabilecek yüzlerce farklı konu var, ve hepsi için de internette yüzlerce farklı (fayalı ve eğlenceli) kaynak da var. ancak, yazılım yazmaya başlamak için bunların çoğunda bilgili olmaya gerek yok. bilmemek kötü yazılım yazarak işe başlamanıza neden olur, ama olsun. ayrıca, bunları hepsine dalmanın mümkünatı da yok. ve, bunların kötü yan etkileri de isanı kendilerine hapsetmeleri, gerçek amacı unutturmalarıdır. size ciddi tavsiyem şudur; yukarıdaki 5 maddelik "sıralı" gelişim mantığını sakın ola sakın benimsemeyin. şu iki şeyi aynı anda ve ömür boyu yapmak zorundasınız: A) yazılım yazmak, ama, laf olsun diye değil, amaca yönelik yazmak B) yazılım öğrenmek (illa yazılım demeyelim de, mesleki konularda okuyup öğrenmek) bakın, bilerek 1 ve 2 olarak yazmadım. çünkü bu A ve B maddeleri aynı anda ve ikisi de ömür boyu olmak zorunda! ve, "önce bi öğreneyim, çünkü öğrenmeden yazmaya başlayamam" deme! öğrenme eylemini de yapacaksınız, ama, oturacaksınız editörün başına, yazmaya da kasacaksınız. çünkü "yazmaya kasmak" sizin gerçek amacınızın zihninizde canlı kalmasını sağlayacak. canlı kalmak zorunda çünkü yazılım yazmak meşakkatli bir iştir, ama, hep "çabuk yapılması gereken" projelerle muhatap olacaksınız. projeleri çabukça gerçekleştirebilmenin tek yolu da, hep "idmanlı" ve dinç-formda kalmaktır. bu da, düzenli yazılım yazmak ile olur. ayrıca, kendiniz sürekli yazılım yazarsanız tabii ki gelişmenizi sağlayacak bu. çünkü en iyi ders çalışma metodu her zaman "kendin yapmak"tır. ben mesela ilk defa yazılım ile tanıştığımda evimde internet yoktu. gittim internet cafe'den C kitabı indirdim PDF olarak. eve geldim, tüm kitabı kendim de Visual Studio'da deneyerek bitirdim. tüm C konularını bitirdim yani. örneklerini falan çözdüm. ancak, bu noktada kafamda öyle "oturmuş" bir C bilgisi yoktu aslında. sonra kendim bir C projesi yapmak istedim ve 3 boyutlu simülasyon motoru yazmayı akıl ettim. ilk önce bunun matematiksel temelini kurmam gerekiyordu. gittim trigonometri kitabı aldım. ilk önce kağıt üzerinde trigonometrik olarak üç boyutlu bir cismin iki boyutlu bir yüzeydeki izdüşümünü bana verecek formülleri elde etmeye çalıştım, ve sonunda başardım. bundan sonrası bunu yazılıma döküp gerçek bir 3 boyutlu görüntü motoru ortaya çıkartmak idi. C kitabını henüz yeni bitirmiştim zaten. yazılıma başladım ve 2 ay falan gece-gündüz yazdım. zorlandım. kitabı sil baştan iki kez daha hatmettim. ama, denedikçe tek tek oldu hepsi. asıl bu projeyi yaparken öğrendim ben C dilini. çünkü, kitabı okurken bir konuyu okuduğumda o konuda anlatılan şeyin (mesela fonksiyonların pointer olarak aktarılıp çağırılabileceği gibi) ne işe yarayacağı kafanızda oturmuyor. konuyu okuyosunuz, örnekleri çözüyosunuz, o kadar. ama, gerçek proje yaparken o işleve ihtiyaç duyduğunuz bir an geliyor. işte o zaman o işlev kafanıza oturuyor. ben bu proje bittiğinde iki şey elde ettim: 1- C dilini artık gerçekten öğrendiğimi hissettim. çünkü tüm konuları gerçekten ihtiyaç duyduğum için kullanmıştım. 2- elimde gerçek bir projem vardı. iş bulmamda da yardımcı olacak bir proje. günümüzde yazılımcı olarak üreteceğin yazılımları artık çok daha basit dillerle üretebiliyorsun. daha pratik programlama dilleri de geliyor yani. hatta, programlama bilmeden uygulama üretmek için sistemler bile geliyor artık. bu yönüyle günümüzde C'nin "olmazsa olmaz" bir dil olmadığını kabul etmemiz gerekiyor artık. ancak, yine de C ile başlayın. çünkü, eğer bu konuda kariyer yapacaksanız bu işin mantığını kavramanız gerekiyor. ve işte C dili "temel" bir dil olması dolayısıyla size bu mantığı kavrama yolunda yardımcı olacak. C ile başlayın. bir kitap ya da eğitim seti aracılığıyla bitirin. sonra öğrendiklerinizle kendiniz bi yazılım ortaya çıkarmaya çalışın (böylece öğrendiklerinizi kullanma gereksinimi doğsun, yani kullanmak zorunda kalın) sonra, Java gibi bir dil ile nesneye dayalı programlamaya girin, onu da bi görün. sonra, Javascript gibi bir dil ile fonksiyonel programlama olayına bakın, onu da bi görün. veri yapıları falan, bu tarz öğrenecek çook şey var, ama bunlar birincil şeyler değil, onları da okuyabilirsiniz ama, yukarıda da dediğim gibi yani bunların kitaplarını elinize alıp hızlıca bir haftada okuyup sonra kapatmanız gerek. bir kitabı alıp 2 ay harcarsanız detaylı olarak, enerjiniz heba olacak çünkü o 2 ay sonunda enerjiniz tükenmiş olacak, hemen yazılım yazmaya devam edemeyeceksniz. asıl amacınızdan kayacaksınız. yani, çok dallanmayın. ana yoldan sapmayın. ana yol = yazılım yazmak. "tali yola" girdiğinizde bir haftada geri dönüp ana yolu bulabilmeniz gerek. tali yola girip 2 ay ilerlerseniz, 2 ay sonunda ana yolu bir daha bulmakta çok zorluk çekersiniz. -------------------------------------------------------------------------- tüm bunlardan farklı olarak, işin bir de kariyer kısmı var. ki, kariyer kısmının dinamikleri bambaşkadır. şunu bilin, evde ne kadar kitap başında sabahlarsanız sabahlayın, iş başvurusuna gittiğinizde etiket sunamazsanız, muazzam bilginizin bir kıymeti olmuyor. kariyer ile yazılım bilgisi iki ayrı şeydir. doğru düzgün bilgi olmadan da kariyer yapılabilir. bunun tersi de gerçek. yani, kariyer yapamayan, iş bulamayan, tercih edilmeyen, ama muazaam bilgili kişiler de bulunabilir. ama kariyer gereklidir çünkü para kazanmak gerek. kariyer için yapılması gerekenler: 1- gündemi takip etmek. yazılım dünyasındaki önemli kişilerin hesaplarını takip etmek. git sistemleri ile sosyal kodlama yapmak .yani dünyaya bağlı kalmak ve güncel gereksinimlerden haberdar olmak. 2- etiket. evet, etiket. yani, sen evde veri yapıları kitabını 2 ay gece-gündüz çalışabilirsin. ama, iş başvurusunda bunu söylemenin bir anlamı olmuyor ne yazık ki. elinden çalışan bir projen yoksa, elinde sertifika-diploma gibi şeyler yoksa, ya da network'ün (yani sana torpil geçirecek tanıdıkların) yoksa, işte o noktada okuduğun kitaplar çöp olup uçup gidiyolar. bu noktada kimse: "ne çöpü? bilgi bilgidir" demesin. kariyer = "karşındaki insanı ikna etmek"tir. eğer okuduğun kitap ikna konusunda işe yaramıyorsa, o noktada o kitabın-bilginin bir değeri olmaz. https://medium.com/m/global-identity?redirectUrl=https%3A%2F%2Ftowardsdatascience.com%2Fwant-a-data-science-job-use-the-weekend-project-principle-to-get-it-a86ba2da514f%3F bu yüzden çoğu kişi amaç olarak sertifika edinme gibi şeyleri koyar kendisine. mesela, linux konusunda uzmanlaşıp manyak şeyler yapmak için 2 sene harcamaz. gider bakar sektörde tanınan linux sertifikası hangisi, sonra da o sertifikayı alabilmek için en kısa yoldan çıkmış soruları falan ezberler. sınavına girip sertifikayı alır. bu adam iş bulur. özetle: 1- yazılım dünyasını aktif takip edin. twitter gibi yerlerden önemli kişileri takibe alın. aslında yazılım dünyası dememek lazım, genel olarak teknoloji dünyası. 2- öğrenme ve aktif bir projede yazılım yazma faaliyetlerinin paralel olarak ömür boyu sürmeleri gerektiğini, birinin diğerinden sonra gelmediği, ikisinin de sonunun olmadığını kavrayın. 3- etiketiniz (sertifika, diploma) ya da yapılmış projeniz olmadıkça kariyer yapmakta çok büyük güçlük çekeceğinizi bilin, yani zaten yapıyor olduğunuz çalışmalarınızı elinizden geldiğince kağıt üstünde belgeleyecek duruma getirin. unutmatın, biz türklerin içinde çok sayıda çalışkan ve özverili insan var, ancak, bu insanlar genellikle çalışamalrını yarıda kestikleri için değerli emeklerini dünyaya yayamıyolarlar. Cezeri gibi bir dehanın çalışmaları bile Cizre'ye turistlik olarak gelen bir Alman herifin çabaları sayesinde ortaya çıkmış. o Alman turist oraya gitmemiş olsaydı, biz bugün Cezeri gibi bir adamın varlığından haberda olamayacaktık. her şey kapalı kapılar ardından kalıp, yok olup gitmiş olacaktı. bu yüzden her zaman sektör ile iç içe olun, medium.com'da yazılar yazın, yazmak geliştirir. takipçi olun, takipçiler edinin, "community" denilen topluluk içerisine dahil olmak hem müthiş bir motivasyon verir, hem de kariyerinize katlı sağlar. aslında DH'de böyle bir konu açmak bile bu community'ye dahil olmanın ilk adımıdır. son olarak, ingilizce çalışın her gün. biliyorum deyip geçmeyim. pratik eksiğiniz var ise, pratik yapın düzenli. |
Yıllar yıllar önce bir dönem 5-6 ay kadar assembly dersi verdim, şunu söyleyebilirim ki direk işlemciyle uğrüşmayacaksan hiç gereği yok, boşuna kendini paralama
Çeşitli dillerde ufak tefek program yazdım en kolayı php diyebilirim, hem öğrenmesi hem proje geliştirmesi hem bol miktarda kaynağı hem veritabanı yönetimi, hepsi bir arada php de öğrenilebilir |
< Bu ileti mobil sürüm kullanılarak atıldı > |
|
< Bu ileti DH mobil uygulamasından atıldı > |
|
|
< Bu ileti DH mobil uygulamasından atıldı > |
|
|
< Bu ileti mobil sürüm kullanılarak atıldı > |
< Bu mesaj bu kişi tarafından değiştirildi 01001101 -- 12 Nisan 2020; 4:3:31 > < Bu ileti mini sürüm kullanılarak atıldı > |
|
< Bu ileti mini sürüm kullanılarak atıldı > |
< Bu ileti mini sürüm kullanılarak atıldı > |
< Bu ileti mobil sürüm kullanılarak atıldı > |
< Bu ileti mobil sürüm kullanılarak atıldı > |
< Bu mesaj bu kişi tarafından değiştirildi I0SER_b0y -- 12 Nisan 2020; 7:5:50 > |
< Bu mesaj bu kişi tarafından değiştirildi 01001101 -- 12 Nisan 2020; 9:47:21 > < Bu ileti mini sürüm kullanılarak atıldı > |
< Bu ileti mobil sürüm kullanılarak atıldı > |
< Bu ileti mobil sürüm kullanılarak atıldı > |