Programlama ve Kariyer Akın Kaldıroğlu akin@javaturk.org 6 Mayıs 2017 www.JavaTurk.org Programlama Nedir? - I • Bazışeyleri,onlarıyapan,icraedenlerüzerinden tanımlamakdahakolaydır. • Programlamayapankişiyeprogramcı (programmer)denir. • Peki,programcıkimdir? www.JavaTurk.org 2 www.JavaTurk.org 3 Programlama Nedir? - II • Birişiyapanıgözlemlemekoişleilgilisizeçok şeyanlatır. • Dolayısıylaprogramcıları,tabiortamlarında gözlemlemelisiniz. www.JavaTurk.org 4 www.JavaTurk.org 5 www.JavaTurk.org 6 Programlama Nedir? - III • • Hakikattenprogramlamanedir? • Bilimdir(science), • Sanattır(art), • Mühendisliktir(engineering)ve • Zanaattir(craftmanship). Dolayısıylaprogramlamaçokdisiplinli(interdiciplinary)biralandır. www.JavaTurk.org 7 Programlama, Bilimdir. • Programlama,bilimdirçünküprogramlama, matematiktir. • Programlama,temellerimantıkvecebirolan, aksiyomlarasahip,kendinehasnotasyonuolan biruygulamalımatematikdisiplinidir. • Programlamailegeneldedaimabiralgoritma yazılır. www.JavaTurk.org 8 Algoritma Nedir? www.JavaTurk.org 9 Programlama, Sanattır - I • Soyutoluşuveörneğininolmaması,yaratıcılık gerektirmesiveyapanınkişiselözelliklerine bağlıolması,programlamayıbirsanatyapar. • Hemenhiçbirprogramlamayapısıbirdiğerinin aynısıhattabenzeribiledeğildir. • Programcılar,yaptıklarıişitanımlarken,“aşk”, “tutku”,“bağımlılık”gibikelimeleriçok kullanırlar. www.JavaTurk.org 10 Programlama, Sanattır - II www.JavaTurk.org 11 • Muhtemelen, zekanın çıktısını, programlama kadaraçıkve hızlı görebilen fazlameslekuğraşıyoktur. www.JavaTurk.org 12 Programlama, Mühendisliktir • Programlamabirproblemçözmeyöntemidir, programlamaamaçdeğilaraçtır. • Süreçseldir,kodungeliştirilmesi,testlerinin yazılmasıveçalıştırılması,dokümantasyonuvb. çalışmalar,programlamanınparçalarıdır. • Buyönüylebirmühendislikdisiplinir. www.JavaTurk.org 13 Yazılım Geliştirme Nedir? • Yazılımgeliştirme,merkezindeprogramlamanın olduğubirmühendisliktir. • YazılımMühendisliği-SoftwareEngineering • Programlamayanında,analiz,tasarım,test, yönetimvb.faaliyetleresahiptir. • Fakatprogramlama,esasçıktıyıüretendirve muhtemelenenkarmaşıkolanfaaliyettir. www.JavaTurk.org 14 Programcılar Cesurdurlar! www.JavaTurk.org 15 Programlama, Zanaattır. • Usta-çırakilişkisiileöğrenilmesi,ciddiel(ve zihin)yatkınlığıgerektirmesiveyapanınkişisel özelliklerinebağlıolması,programlamayı,bir zanaat(craftmanship)kılmaktadır. • Herzanaattaolduğugibiprogramlamadada kullanılanaraçlarveişyapışşekillerivardır. www.JavaTurk.org 16 • Programlama da,yazılım geliştirmede çok karmaşıktır, muhtemelen mühendislikler arasındaen karmaşık olandır. www.JavaTurk.org 17 YM, Basitlik İllüzyonu Sanatıdır • Yazılım geliştirme takımının görevi, basitlik illüzyonu yaratmaktır. www.JavaTurk.org 18 • Basitlik,meziyettir. • Mükemmellik, basitliktedir. • KISS-Keepitsimple stupid www.JavaTurk.org 19 Programcı Olmak İçin - I • • İyibirprogramcı, • Farklısoyutlamaseviyeleriarasındarahatçagezebilen, matematikselbirzekayasahip, • Aynıandapekçokfaktörüyönetebilenbirdetaycı, • İğneilekuyukazabilenbirsabırtaşıve • Stresaltındaçalışabilendir,özellikleTürkiye’de. Tümbunlarınaltındankalkabilmekancaktutku ilemümkündür. www.JavaTurk.org 20 Programcı Olmak İçin - II • Eğerprogramlamakonusunda,yukarıdaki özellikleresahipvekendinizitutkulu görüyoranız,iyibirprogramcıolabilirsiniz. • Aksitaktirde,kariyerinizdemutluolmakiçin analist,tester,ağ,veritabanı,vb.sistem yöneticisivb.pozisyonlarıtercihetmeyi düşünün. www.JavaTurk.org 21 Programlama-Yazılım Kültürümüz • • Ülkemizdekiprogramlamakültüründezanaat tarafıağırbasmaktadır, • Dolayısıylaprogramlamapratiğimizde,öğrenmede formaleğitimyerine,bakıp-görmeveproblem çözmededesistematiklikyerinedeneme-yanılmaöne çıkmaktadır, • ÜlkemizdekiprogracılarınenbüyükyardımcısıcopypasteveGoogle’dır. Programlamaveyazılımgeliştirmekültürümüz, toplumsalkültürümüzünbiryansımasıdır. www.JavaTurk.org 22 Zanaat Kültürü ve Üniversiteler • Programlamadazanaatıaşağıçekip,matematik,sanatve mühendisliktara[larınıöneçıkartacakbirüniversite eğitimiönemlidir. • Buyüzdenüniversiteeğitimimiz • Matematikselvealgoritmikdüşünce, • OS,DB,networkvb.konulardateorik-pratikbilgibirikimini, • YazılımMühendisliğiveyazılımilesüreçselproblemçözme, • vebelkideenönemlisikeyi)lieğitim-öğretim noktalarınıöneçıkarmalı. www.JavaTurk.org 23 Fark Yaratan Programcı Olmak İçin • • Farkyaratanbirprogramcıolmakiçin, • Üniversiteler,master-doktoragibilisanssonrasıeğitimler, serti[ikasyon,onlineöğrenmeortamlarıvb.yollarlasürekli bilgilenmeye-gelişmeyeönemvermek, • Sistemliolmak, • Odaklıolmak, • Bilgisahibiolmadan[ikirsahibiolmamak, • Yurtdışınagidipçalışmak, önemlidir. www.JavaTurk.org 24 Dinlediğiniz için teşekkür ederim. Bu sunuma www.javaturk.org adresinden ulaşabilirsiniz. www.JavaTurk.org