• benim yapacagim tavsiyeler sunlar,

    birincisi okudugunuzu cok iyi anlayabilecek seviyede ingilizce bilmeniz. cunku cogu kaynak ingilizce ve ingilizceniz yoksa kod yazmayi ogrenmeniz bir hayli zor olur.

    ikinci tavsiyem ise bu ise ciddi zaman ayirmaniz olacaktir. kod yazmak icin oyle ustun zeka veya ustun yetenek filan gerekmez ama zaman cok gerekir. millet aksam evde dizi izlerken sizin oturup bilmediginiz konulari calismaniz ve bunlari pratik yapip ogrenmeniz lazim olay tamamen bundan ibaret.

    ucuncu tavsiyem ise linux/unix olaylarina erkenden girmeniz. gerek script yazma olsun gerek genel anlamda linux in mimarisi olsun linux ile ilgili ogrenebildiginiz herseyi ogrenin. isin altyapi ve uretim kisminda linux sistemler cok onemli bir rol oynamakta.
  • yazdığınız kodu çok sevmeyin. muhtemelen iki ay içinde önemli bir kısmı çöp olacak. iki yıl içinde kesin hepsi çöp olacak.

    bu yüzden, öğrenme faslını geçtikten sonrası oluyor gerçi bu, bir işi yaparken, mümkün olduğunca az kod yazın, mümkün olduğunca basit kod yazın, sizden istenen absolute minimumun üzerinde de tek bir satır yazmayın.

    ben mevcutta bu yazılımların müşterisi pozisyonunda bir yerdeyim, kodu yazan arkadaş programı benim istemediğim bir şeylerle süslemeye kalkınca neyi eksik yaptı da kapatmaya çalışıyor diye şüpheleniyorum. kesin istenir diyorsanız sorun, isterim desinler, ondan sonra yazın. muhtemelen gerek yok diyecekler zaten.
  • object oriented bişey yapacaksanız lütfen neyin nerden ne aldığına dair comment yazın. çağırılacak objelere düzgün isim verin 1.obj 2.obj yerine main.obj main.dba giris.prj gibi şeyler seçin. 1-2 gibi isim vermektense main giris veya ana.* isimli dosya vermek daha akılda kalıcıdır. sonra nerde lan bu mouse over code diye tırmalamayın.

    kodların en başı en sola, alt rutinler veya subcode'lar başlıklar commentli halde 1er tab kayarak yapın ki neyin nerede başlayıp bittiği belli olsun.

    muhasebe veya demirbaş için birşey yapıyorsanız muhasebe kitaplarınızı yanınızdan ayırmayın. kasa, dönen çekler, vadeli alacaklar, banka borçları hangi hesaptan demirbaş kodları nereden geliyor bilin. test userlarınız olsun.

    çetrefilli saçma sapan istekler gelecek yılmayın. okuyun, okuyun, okuyun..

    dipnot : visual foxpro candır *
  • bir programlama dili hakkında her şeyi bilmeniz biraz hayaldir ve yapmak istediklerinizi büyük ihtimalle sizden daha önce yapmaya çalışmış ve takılmış insanlar mevcuttur. o yüzden mutlaka internette aratın. daha öncelerden bahsedilen stackoverflow ve benzeri siteler mükemmel imkan sunarlar.

    ingilizce biliyorsanız kodlama işi sizin için 10 kat daha kolay hale gelecektir. hem komutları daha iyi anlarsınız hem de teknik desteği çok daha iyi alırsınız.

    --- bu kısım önemli ---

    en önemli şey soru sorduğunuzda basit ve çalışan örnek (minimum working example) olayını iyi kavrayın. sorunu ne kadar iyi anlatırsanız anlatın çalışan bir kod parçası olduğu zaman çok daha doğru cevap alırsınız. ecnebilerin çoğu da vermezseniz 'abicim bana bir örnek yolla, hadi abisi' derler.

    bu örneği oluştururken kendi veri setini kullanmanız gerekmez. rastgele sayılar ve değerlerden oluşan ama ihtiyacınız olan yapının veya çözmek istediğiniz problemin bire bir modelini vermeniz önemli.

    bütün kodunuzu da copy paste yapmayın. sadece çözümünü merak ettiğiniz kısmını.

    soruyu sormadan önce de ufaktan bir araştırın başkaları benzer sorunla karşılaşmışlar mı istediğiniz cevap o sorularda mı diye. böylece hiç soru yazmakla cevap beklemekle uğraşmazsınız.

    ben başımdaki pek çok belayı böyle savmayı başardım.

    --- spoiler ---

    son olarak biraz kaşarlandıktan sonra siz de cevaplayabildiğiniz birkaç soruya el atın. o sorular kendilerini cevaplamıyorlar.
  • geçenlerde bir sözlük yazarının konuyla ilgili sorusuna verdiğim yanıtı, eksikleri olsa da belki birine faydası olur diye buraya yapıştırıyorum:

    c++ ilk kez programlamaya baslamak icin dogru bir dil degil. oncesinde computer science ile ilgili okumak, arkasindan ogrenilmesi ve pratik yapmasi nispeten daha kolay bir dil secilmesi gerekiyor.

    software engineer olmanin iki yolu var. ilki, herhangi bir programlama dilini ogrenip, uygulamaya gecirmek.

    ikinci yolu, oncelikle computer science'in ilgili fundamental (temel) bilgilerini okumak, ozumsemek, ancak ondan sonra bir programlama dilini ogrenip uygulamaya gecirmek.

    ilk yolla hizli sonuc alirsin. 1 ayda program yazmaya baslarsin. fakat temelin eksiktir. saglam degildir. baska bir dili ogrenmek istediginde sikinti yasarsin. herhangi bir problemi cozmeye kalktiginda, problemin cozumu ile ilgili sikinti yasarsin (algoritma bilgisi eksikligi). data icin sectigin data tiplerinde sikinti yasarsin (data structrures), vs vs.

    24 saatte falanca dili ogrenin, 10 gunde fismanca dilde usta olun, gibi kitaplar ya da kaynaklar ilk yolla ilgili. senin okumaya basladigin kitap ise ikinci yolla ilgili, fakat yolun sonlarina dogru okunmasi gereken bir kitap, basinda degil. o yuzden ne birinci yolu, ne ikinci yolu secmis gorunuyorsun. konfucyus demis ki, eger bir dagi yerinden oynatmak istiyorsan, once ufak taslari tasiyarak ise baslarsin. dagi oldugu gibi kaldirmayi denersen, problem gozunde cok buyur, demotive olursun. analatik dusunmen gerekiyor, onundeki problemi ufak parcalara ayirip, her parcayi ayri ayri incelemen gerekiyor.

    ayni analojiden gidersek, onundeki dag software engineer olmak, iyi bir programci olmak. ufak taslari tasimak da computer science biliminin temel basamaklarini ogrenmek demek.

    ornegin:

    - information theory (bilginin kullanimi ile ilgili temel bilgi)
    - computer hardware (bilgisayar donanimi -- hangi parcasi nedir, nasil isler, birbirleriyle nasil iletisim kurarlar)
    - introduction to operating systems (bu donanimi kullaniciya sunabilmek icin arabirim nasil isler)
    - unix/linux (bu arabirim icerisinde en yaygin ve hizli olan unix/linux hakkinda bilgi)
    - introduction to programming languages (bu donanimi, isletim sisteminin sundugu ortamda nasil ve ne sekilde kullanabiliriz)
    - introduction to data structures (elimdeki bir bilgiyi, hangi sekilde programlama dilinde kullanmaliyim ki hem programim daha hizli calissin, hem de daha islevsel olsun)
    - introduction to algorithms (herhangi bir problemi en hizli ve verimli sekilde cozebilmek icin algoritmalari ogrenmek onemli. ornegin en basitinden, 52 kagitlik karistirilmis bir desteyi, en cabuk ve verimli sekilde nasil siralarsin -- kupa 1,2,3,4,.., maca 1,2,3,4.. vs)

    unuttugum bir kac basamak daha vardir mutlaka.

    bunlarin her biri vakit alacaktir. fakat bunlari yaptiktan sonra, herhangi bir dili ogrenmek sadece syntax'ini ogrenmek kadar kolay olacaktir. saglam program yazabilmek icin gerekli altyapi saglanmis olacaktir.

    youtube'ta yukaridaki konularla ilgili videolar arayip izleyebilirsin. khan academy, coursera, ya da stanford gibi universitelerin online kurslarina bakabilirsin. ya da bu konularla ilgili kitap okuyabilirsin (sikici olabilir, video izlemek hem gorsel hem isitsel kortexi kullandigi icin akilda kalmasi daha kolay olur)
  • başlamayın diyenlere inanmayın bence başlayın. ama başlamayın diyenlere de kızmıyorum bir yerde haklılar. eğer bu kod yazmaktan ekmek yemek, hayatını kazanmak istiyorsan bunun senin hayatın olacağından istediğin zaman herşeyi yapamayacağından haberin olsun da ona göre başla. kod yazmak özellikle büyük projelerde geliştirici olmak amiyane tabirle güven, özveri, tecrübe ister.

    en başta mesai saatini unutacaksın, arkadaşlarınla istediğin gibi sosyalleşme imkanın olmayacak çünkü oluşacak buglar, patron veya müşteri istekleri feedbackler bir türlü bitmeyecek hıh proje bitti ohh rahatım dediğin an emin ol proje aşamasından daha fazla bir maraton seni bekliyor. tabi bunlar işin ilerleyen kısımları için önemli ama niye anlattın dersen özverisiz, araştırmadan ya da kopyala yapıştırla bu işi öğrenemezsin. ama ben araştırırım, öğrenirim, kendimi buna adarım dersen o zaman şimdiden başarılar. ayrıca tekrar söylemekte yarar var yazmayın diyenlere de kızmayın. yıllarını vermiş olanlar bunu söyler, hayatının akışı sadece projesine bağlı, istediği zaman istediğini yapamayan, uyku düzeni olmayan yazılımcılar.

    başlayacaksan seni zaten tutan yok neden yeni fikirler, yeni beyinler görmeyelim sektörümüzde emin ol hoşumuza gider. atacağın ilk adım araştırmak olsun, bilgi toplamak olsun kod yazmaya başlarken, öğrenirken bile bunu yapmalısın çünkü kod yazmanın, proje oluşturmanın mantığı budur. konuya hakim olman gerekir, bilgi toplaman gerekir. örneğin bir proje 5 ay sürüyorsa bunun en az yarı süresi bilgi toplama, istekler mimariyle geçer. hatta mimariyi de sayarsak 3.5 ayı bilgi toplama mimari ile geçer zaten bütün yapıyı taslak halinde düzgünce oluşturduysan yazması en kolay kısmıdır.

    kısacası gel ne olursan ol gel ama bilgi toplayarak, araştırarak, kendine güvenerek gel.
  • birden fazla kişinin çalıştığı büyük projelerde kod yazıyorsanız sade ,açıklayıcı ve çok uzun olmayan commentler eklemeyi ihmal etmeyin.büyük hayır duası alırsınız sizden sonra gelenlerden aksi taktirde kulağınızda bol bol çınlama hissedersiniz.

    ha bir de hız ve düzen arasındaki ilişkiyi iyi kurun.düzensiz karman çorman bir şekilde kod yazdıktan sonra hızlı olmanızın hiçbir anlamı olmaz.düzenli yazmayı alışkanlık haline getirirseniz zamanla hızınız artacaktır.

    40 yaşına gelmeden en azından müdür , şirket ortağı gibi bir pozisyona gelip kod işlerinden olabildiğince elinizi ayağınızı çekip ,teknik ünvan olarak yazılım danışmanı , yazılım mimarı benzeri pozisyonuna gelmelisiniz.bu mesleğin en kötü tarafı vadenizin çabuk dolmasıdır.

    sporu ihmal etmeyin , sosyalleşmeye diğer tüm meslek gruplarından daha çok ihtiyacınız olacak , çünkü bir süre sonra bilgisayarınız kişilik kazanıyor ve başkasına ihtiyaç duymayacak hale geliyorsunuz.
  • evvela, bir kağıt-kalem, daktilo ya da ne bileyim işte bir ibrahim müteferrika falan temin edin sonrası kolay.
  • kod yazmak onemli degil onemli olan kodu yazilacak algoritmayi tasarlayip uretmektirin de aralarinda bulunmasi gereken tavsiyerler.
  • amına kodumun lafının kökenini, nasıl ortaya çıktığını öğreneceksiniz.
hesabın var mı? giriş yap