İşletim sistemine de hakim olun. hangi işletim sisteminde çalışacaksanız, o sistem hakkında az buçuk bilginiz olsun. hele ki işletim sisteminiz bir linux dağıtımıysa ve çalıştığınız ortamda (php, python, r, ruby fark etmez) shell/stdio/subprocess erişiminiz varsa, standart gnu/linux komutlarının nimetlerinden faydalanın.

kullandığınız programlama dilinin, veya arkadaş grubunuzun, veya çalıştığınız alanın programming style‘larını öğrenin ve elinizden geldiğince onlara uyum gösterin.

aşina olmanız için birkaç örnek:

python için pep-8
php için psr-2
c için nasa c-style guide
linux kernel coding style
gnu coding standards
code conventions for the java programming language

hatta pratik amaçlı kendi style guide’ınızı geliştirin.

text editör, ide vs. bolca deneyin. atom.io süpermiş deyip ilk denemede ona çakılı kalmayın. sublime deneyin, notepad++ deneyin, emacs deneyin, vi deneyin. birden fazla text editör kullanabilmek bazen işe yarıyor, özellikle server-side programlama yapıyorsanız.

çalıştığınız dil’in ya da framework’un standart kütüphanelerinin listesini arada bir açıp şöyle bir tarayın. bunun 2.5 tane faydası oluyor.

1) “lan zaten bunu yapan şey varmış, tekrar yazmayayım” diyorsunuz çokça. zaman kazandırıyor ve failsafe kod yazmanızı sağlıyor.

2) projenize fikir katabiliyor, uuid üreten fonksiyonun varlığını görünce bir anda aklınıza bir çözümü uuid üreterek çözmek gelebiliyor mesela.

3) open source dil veya framework’lerde standart kütüphanenin kodlarını okuyarak çok şey öğrenebiliyorsunuz. hatta 1. maddeyi gerçekleştirmemişseniz, yazdığınız fonksiyonla karşılaştırıp neleri atladığınızı ya da daha iyisini yaptığınızı görebiliyorsunuz.
(3’ün önşartı her durumda sağlanmadığı için 2.5 tane fayda var dedim)

regular expressions öğrenin. okuması zordur ama yazması o kadar zor değildir ve acayip eğlenceli, hayat kurtarıcıdır.

bir dili öğrenecekseniz, onu öğreten kitapları almayın, 15 sene önce bu gerekiyordu ama artık bütün dillerin online tutorialları var ve sizin internetiniz var. (yok mu? o zaman internet bağlantısı edinmeyi de listeye ekleyin)

alacağınız kitaplar şu kategorilerde olsun:

1) belli dilde uzmanlaşmayı sağlayan kitaplar. örneğin python için ilk aklıma gelen hacker’s guide to python gibi…

2) belli bir alanda programlama yapacaksanız ona eğilen kitaplar. örneğin görüntü işleme çalışacaksanız, bunu anlatan kitapları alıp okuyun tabii. eğer görüntü işleme işini özellikle c# ile yapacaksanız onu anlatan kitapları da alabilirsiniz. veya dil analizi yapan bir web servis yazacaksanız natural language processing hakkındaki kitapları alıp okuyabilirsiniz. amazon’daki reviewları dikkate değer bulabilirsiniz, garip biçimde sağlam adamlar takılabiliyor amazon’a.

3) bible‘lar.

her programcının kendine göre bible’ları vardır ama kesişim kümesi bir hayli geniştir bence. örneğin hayatınız boyunca c yazmayacak olsanız bile kernighan ve ritchie’nin c kitabınıokuyun. polya’nın how to solve it mesela problem çözme ve probleme saldırma açısından ufkunuzu genişletecek kitaplardandır. knuth’un the art of computer programming serisi de çoktan bible kümesine girmiştir kuşkusuz. programcıların bible’larını alıp okumanın size bir zararı neredeyse hiç olmayacaktır, eğer kitabı beğenmeseniz bile yarın bir gün ortamlarda “ben o kitabı okudum yea çok dandik” artistliği yaparsınız olur biter.

github veya türevi bir oluşumda kodlarınızı barındırın. örneğin open source yaptığınız işler varsa github’a commit edin, ama özel sektöre, müşterinize yaptığınız işler varsa da (ve github’a para ödeyip private repo açacak paranız yoksa da) bitbucket gibi servisler kullanın. hem kodunuzu rahat takip edersiniz, hem de su çok güzel lan.

kendinize problem/ödev yaratın. bunu beceremiyorsanız coding challengelara girin. project euler en popüler ve eğlencelilerinden ama forumlarda, stackoverflow‘da bazı problemler görüp onlara da dalabilirsiniz.

ortamları takip edinslashdot‘taki haberlerden çok yorumları okuyun, reddit‘te ilgili subreddit’lere subscribe olun, hackaday gibi siteleri takip edin, denk geldiğiniz ortamlardaki programcı/hacker’ların twitter hesaplarını, bloglarını bulup onları takip edin. alakasız konularda bir şeyler okusanız ve anlamasanız da zamanla kulak aşinalığı edinirsiniz. anlamadığınız konuları öğrenmek için önce wikipedia sayfasını açıp mal mal 3 kere okuyun, sonra da uyuyun. uyumak öğrenmek için iyidir.

lisanslar hakkında bilgi edinin. cömert olun, kodunuzu beerware ile dağıtın.

 

Kaynak : seyler.eksisozluk.com

BİR CEVAP BIRAK

Please enter your comment!
Please enter your name here