şükela:  tümü | bugün sorunsallar (1)
50 entry daha
  • 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)
1585 entry daha
hesabın var mı? giriş yap