bugün
yenile

    hangi programlama dilini öğrenmeliyim

    29
    +
    -entiri.verilen_downvote
    bir soru. cevremde ya da sozlukte bi cok insan tarafindan bana ya da @pascal borland'a sorulan soru. Bu ise baslamak isteyenler / yeni baslamis olanlar icin bir roadmap niteliginde, blog yazisi havasinda gececegine inandigim satirlarima baslamadan once fon muzigi olarak --> - Youtube Linki - Spotify Linki 2006 yilinda, lisede, siniftaki sevdigim bir kiz arkadasimin dogum gunu vardi. Hediye alacak param olmadigindan mutevellit o zamanlar yeni yeni merak duymaya basladigim programlama ile ilgili biseyler yapmaya karar verdim. Kafamdaki plan, kizin dogum gununu kutlayan bir bilgisayar programi yazip, bunun setup dosyasini cdye kaydedip cdyi arkadasima vermekti. ADSL bile olmayan internet baglantim uzerinden, ingilizce dogru duzgun bilmedigim icin, turkce sitelerden bu isi nasil yaparim diye arastirmaya basladim ve Visual Basic 6.0 diye bi programlama dili buldum. 1-2 hafta bunu inceledikten sonra programi yazmaya basladim. Bitirdigimde ortaya; Ortasinda uzun bir dogum gunu mesaji olan pembe arka planda, saginda solunda resimler ve uzerine bastiginde sempatik / ergen dogum gunu kutlama mesajlari gosteren butonlarin oldugu bir windows programi cikmisti. En son o arkadasimla konustugumda (3-4 yil once) hala sakliyordu cdyi. Bu ciddi anlamda yasadigim ilk programlama tecrubesidir. (15-16 yasimdaydim) Eger ingilizce bilseydim ve beni dogru kaynaklara yonlendirebilecek bir tanidigim / akrabam olsaydi Visual Basic 6.0 nin, son surumu 1998 yilinda yayinlanmis ve artik nerdeyse kullanilmayan bir dil oldugunu bilir; ve cok daha yeni bir teknoloji olan 2001 yilindan beri aktif olarak gelistirilen .NET teknolojisinde yazabilir ya da masaustu programi yerine bir web uygulamasi yapabilirdim. --- Konudan bagimsiz --- Ya da programlamayla kafayi bozmus bir ergen olmasaydim babamdan 50 lira alip kiza adam gibi bir hediye de alabilirdim. --- Konudan bagimsiz --- Ilk bolumden cikarmamiz gereken ders --- > Ingilizce ogrenin (ve babanizdan para istemeyi ogrenin) Yazinin bundan sonraki kismi ingilizce bildiginizi varsayarak hazirlanmistir. Asagidaki paragrafi anlamakta zorluk cekiyorsaniz ingilizce eksiginiz olabilir. Yine de merak ediyorsaniz devam edebilirsiniz tabii ki. --- MIT - Introduction to Computer Science and Programming --- Now, this course is primarily aimed at students who have little or no prior programming experience. As a consequence, we believe that no student here is under-qualified for this course: you're all MIT students, you're all qualified to be here. But we also hope that there aren't any students here who are over-qualified for this course. And what do I mean by that? If you've done a lot prior programming, this is probably not the best course for you, and if you're in that category, I would please encourage you to talk to John or I after class about what your goals are, what kind of experience you have, and how we might find you a course that better meets your goals. --- MIT - Introduction to Computer Science and Programming --- 1- Hangi programlama dilini öğrenmeliyim ? Bu sorunun cevabini net olarak veren uluslararasi ya da ulusal bir komite ya da otorite yok. Herkes farkli bir cevap verebilir. Ya da herkes kendi basladigi dili onerebilir. O yuzden en dogur cevabi bulmak icin, diger bi cok konuda oldugu gibi gavur bu konuda ne yapmis? sorusunu soruyoruz. mit (milli istihbarat teskilati degil) uzun yillardir programlamaya giris derslerini Python uzerinden vermektedir. (Ondan once scheme ile veriliyordu sanirim) https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/ Ayni zamanda (askerden bir arkadasimin yalancisiyim) Koc Universitesi de programlamaya giris derslerini Python uzerinden veriyormus sanirim. (Duyunca cok sasirmistim) Internette de kisa bir arastirma yaparsaniz bi cok web sitesinden bir cok programci / blogger in, Python / Javascript gibi yuksek seviyeli, ogrenmesi basit dilleri onerdiklerini goruyoruz. Bu diller gercekten cok yuksek seviyeli ve scripting dili olarak gectikleri icin, Memory Management, Garbage Collection, Thread, Stack, Pointer gibi biraz daha low level kavramlarla sizi nerdeyse hic mesgul etmemesidir. Mesela surada neden python un (ve dengi olan diger dillerin [ ruby / javascript gibi ]) baslangic olarak muazzam oldugunu anlatan guzel bir yazi var: http://blog.trinket.io/why-python/ --- Python --- print("Hello World") --- Python --- Yukaridaki en basit ve en kisa python program orneklerinden biridir. Bu tamamen gecerli, calisan, dogru bir python programidir. Ayni isi yapan kodu Java da yazmak istediginizde; --- Java --- public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); } } --- Java --- Yeni baslayan birisi bu kodu yazdiktan sonra sirasiyla sunlari soracak kendisine: 1- public ne? 2- class ne? 3- static ne? 4- void ne? 5- neden main yazdik? 6-... 7-.. diye gider. daha 4-5 tane daha bilmedigi sey cikacak. Ama Python da yazdigimiz kodu aciklamasi 20 saniye surer. Ozellikle ogrenme asamasinda yazdiginiz kodun tam olarak ne yaptigini anlamazsaniz buyuk sikintilara sebep olur ilerleyen donemde. O yuzden ilk ogrenme asamasinda mumkun oldugunda basit bir dil secerek, programlamanin temellerini ogrenmek en sagliklisidir. Ayrica Python, Javascript, Ruby gibi diller hem masaustu programlama hem web programlama projeleri cikarmaniza olanak saglar. Ilk temel seviyeyi gectikten sonra, ogrenme asamasinda kendinize browser inizda calisan bir web uygulamasi bile yazabilirsiniz. Web programlama kismi, ogrenme surecinizi daha eglenceli hale getirecektir. Python -> Flask Ruby -> Rails Javascript -> Node.js Seceginiz dile gore yukaridaki keywordleri google da arastirarak o dilde nasil web development yapabileceginizi ogrenebilirsiniz. Yazdiklarimin her birisi o dillerin web framework leridir. Begendiniz dil ile 2-3 ay kadar vakit gecirdikten sonra artik programlamanin temel mantigini ve bazi seylerin nasil calistigini biliyor hale geleceksiniz. 2. Bundan sonra ne olacak ? Asil olay simdi basliyor. Artik genel olarak programlamanin ne oldugunu ve genel mantigini kavradiginiza gore, kendinize ilerisi icin bir yol haritasi cizmeniz gerekmekte. Bu haritayi cizmeye de su soruyla baslayabilirsiniz? --- spoiler --- Ben ne programcisi olacagim? --- spoiler --- Envai cesit programlama alani var. Ilk aklima gelenlerden bazilari: - System Development - Mobile Development - Web Development - Game Development - Desktop Development (bu artik kalmadi gibi. nerdeyse hersey web uzerinden calisiyor) hic yoksa bi 10 gununuzu ayirip bu title lari arastirin. Zaten cogu hakkinda okuyunca fikir sahibi oluyorsunuz. Is ilanlarina bakin. Ortalama maaslarini arastirin. Sectiginiz alan icin on gereksinim varsa onlari arastirin. (Mesela Game Development icin ortalamanin uzerinde bir matematik / fizik bilginizin olmasi cok buyuk avantaj saglar) Olmak istediginiz programci turune karar verdikten sonra, bu alanda arastirmalari arttirin. Ornek projelere bakin. Bu isi yapan programcilarin blog sitelerini okuyun. Google da How to .... kalibinda arastirma yapmaya alistirin kendinizi. Bu yola basladiktan asagi yukari 1-2 yil sonra kendinize junior xx developer diyebilirsiniz. Junior, progralama sektorunde Bilgisi var ama tecrubesi yok anlamina gelen sirin bir kelimedir. Tam bu noktada, kendinize sizi yetistirmek uzere ise alma cesaretini ve buyuklugunu gosteren guzel bir yazilim firmasi bulabilirseniz hayirli ugurlu olsun. Bu sansi iyi degerlendirin ve profesyonellige ilk adimi atin. --- Tesekkur --- Yazinin tam bu noktasinda, 5 yil once bana bu sansi veren @pascal borland a bir kez daha tesekkur ediyorum. --- Tesekkur --- Bi kac maddeyle toparlayalim: - Unutmayin; herhangi bir seyi ogrenmenin en kolay yolu ornek yapmaktir. Mobile Development a merak saldiysaniz, ne kadar basit olursa olsun, elinizdeki android telefona kurup calistirabileceginiz ilk mobil uygulamanizi yazin. Ekranda sadece Merhaba! bile yazsa yeter. O sizin ilk mobil uygulamaniz olacak. Web Development a karar verdiyseniz; Ilk blog sitenizi yazabilirsiniz. Cok eglenceli emin olun. - Yukarida bahsettimiz o basit diller ile bir kere olayin mantiginiz kavradiginizda hepsi gozunuze ayni gelecek. Bir sure sonra daha once hic kod yazmadiginiz bir dilde / platformda bile kod yazmaniz gerekse bi kac saatlik okuma /arastirma evresinden sonra, yavas da olsa, ortaya biseyler cikartabilirsiniz. - Copy / Paste programcisi olmayin. Internetten isinize yarayacak ornek bir kod parcasi aldiysaniz bile (ki alabilirsiniz, bunda sorun yok) aldiginiz kodun ne is yaptigini anlayin. Ve sonraki seferlerde bu kodu kendiniz yazmaya calisin. - Piyasadaki binlerce lira isteyen kurslara gitmeyin. Oralara vereceginiz para ve zamanla kendinizi internet uzerinden ve dogru kitaplarla cok daha iyi yetistirirsiniz. - Dunyada sadece c# ve java yok. - Universitelerimizin %90 inin c# ve java ogretiyor olmasi yukaridaki gercegi degistirmez. - Ulkemizdeki is ilanlarinin %80 inde c# ve java bilen adam aranmasi da 2 yukaridaki gercegi degistirmez. - C# ve Java kotu programlama dilleri degildir. Sadece baslangic icin ideal degiller. Temeli kavradiktan sonra pekala bu dillerden birisini secip, profesyonel kariyerinizi bu dillerin uzerine insa edebilirsiniz. Son olarak bu zorlu ama bir o kadar da eglencili yolculuk boyunca her gun mutlaka ziyaret etmeniz gereken bir kac web sitesi: - stackoverflow -> Kod yazarken takildiginiz herhangi bir seyin cevabi %99 ihtimalle bu sitede daha once sorulmustur ve cevabi verilmistir. Bir sorununuz olmasa bile arada girip okuyun bi siteyi. - /r/programming -> Guncel haberler, teknolojiler, sorular, blog yazilari vs. - Hacker News -> Yukaridaki gibi ama sadece programlamaya ozel degil. Genel olarak nerdeyse butun IT dunyasinin haberleri ilk buraya duser. Efsanedir. Ha bi de, sözlük formatı ni okuyun. ekleme: tiobe index -> her sene dunya capinda programlama dillerinin populerlik siralamasini yapan bir kurulus. programlama dillerinin yillara gore dagilimini ve siralamasini gorebilirsiniz. ekleme [24.01.17]: http://marksheet.io/ -> Web tasarimin ve web in temel mantigini ozet gectikten sonra, html ve css (hatta sass bile var) i anlatan guzel hazirlanmis bir tutorial sitesi. yeni baslayanlar bakabilir. ekleme [02.03.17]: https://developer.mozilla.org/en-US/docs/Learn -> Mozilla'nin web dev. icin hazirladigi learning guide i. server ve client dahil olmak uzere komple set. tavsiye edilir.
    1eline sağlık üstadım. mükemmel olmuş. - ne zaferinden bahsediyorsun 20.01.2017 18:22:53 |#3129064
    ... diğer entiriler ...