+ Cevap Yaz
Toplam 7 sayfadan 1. sayfa
1 2 3 4 5 ... En SonEn Son
62 sonuçtan 1 ile 10 arası gösteriliyor

Konu: C dilinden sonra hangi dil?

  1. #1
    ftpyt
    misafir

    C dilinden sonra hangi dil?

    Merhaba, c dilini öğrenmeye çalışıyorum ve dilin temel olarak mantığını (bir kaç konu hariç) öğrendim diyebilirim.Ama bunu yaparken pratik olarak alıştırma yaparak ilerlemedim,sadece örnekleri inceledim.Tabi okuduğum bütün konuları 4/4 lük öğrenmedim elbette,zaten pratik yapmadan biraz zor.
    Aslında kendimi c üzerinde geliştirmeyi isterdim ancak ekranda görüntülemeyi sağlayan "%d" ifadeleri programı daha karışık bir hale getiriyor.c++ nın syntax ı daha derli toplu.Ayrıca c dili kolay gibi gözüküyor ama bence c ile program yazmak tek ayak üzerinde buzda yürümek gibi bir şey,şu kısa yazı bunun nedenini çok güzel bir şekilde ortaya koyuyor:
    acehreli.org/~ali/turkcecpp/cpp_ogrenmek.html
    Ben c++ dilini biraz araştırdım,nesne yönelimli olanak haricinde pek bir fark göremedim açıkçası.gözüme çarpan bir diğer fark ise "vektörler".
    "c++ dili çok zordur,öğrenilmesi için 5 yıl gerekir" diyorlar ancak ben bunu bir türlü anlayamıyorum.Öğrenmek ve programlama mantığını yerleştirmek için mi yoksa uzman olmak için mi 5 yıl?Bu yüzden c dilini bırakıp c++ diline geçme konusunda tereddüt yaşıyorum.Amacım java veya c#
    Bu konuda uzman olan arkadaşların bilgilerini bekliyorum.

  2. #2
    Ali Çehreli
    Üyelik Tarihi
    10/2002
    Mesaj
    2,901

    -----
    Not: Umarım başka C++ programcıları da deneyimlerini yazarlar. Başkalarının görüşlerini çok merak ediyorum. Örneğin bu forumun müdavimlerinden shurzan var... Kendisi C++ ile çok başarılı bir program geliştirdi:

    http://www.shurzan.com/

    Umarım o da bize C++ deneyimlerini ve görüşlerini anlatır.
    -----

    Dediğin gibi, pratik yapmadan olmaz...

    printf'in sorunu "%d" gibi format dizgilerinden çok, genişletilememesinden geliyor. printf yalnızca temel türlerden anlıyorlar. Kendi türlerimizi ekleyemiyoruz. (Ayrıca format dizgilerini C++'nın << işlecinden daha okunaklı bulanlar da var. Ben de bazı durumlarda öyle düşünüyorum. )

    C++'nın daha derli toplu olduğu doğru. C'de hayat aynı işlemleri tekrarlamakla geçiyor. Ben özellikle kurma ve temizlik işlemlerinin tekrarından bıkmış durumdayım. C++'nın kurucu ve bozucu işlevleri C++'ya geçmek için bence yeter neden.

    C++'nın diğer güzel tarafı, vector'ün de dahil olduğu standart kütüphanesi... Ama o da çok yetersiz tabii; her işe uygun başka kütüphaneler kullanmak gerekir.

    Ben C++ öğrenmeye karar verdiğim ilk beş yıl boyunca sürekli olarak artık öğrendiğimi sandım, ve hep çok şaşırtıcı yeni şeyler öğrendim. Bunlardan en önemlisi, "hata atıldığında da doğru çalışan" program yazmayı anlatan 'exception-safe programming'di.

    (Bunu çok tekrarladığımı biliyorum; özür dileyerek

    C'cinin işlevi:

    Kod:
    void foo()
    {
        BirYapi * p = malloc(/* ... */);
        // bir seyler yap
        free(p);
    }
    
    O program doğrudur. Temizlik elle yapılır, ama doğrudur... Karşılığını C++'da yaparsak:

    Kod:
    void foo()
    {
        BirSinif * p = new /* ... */;
        // bir seyler yap
        delete p;
    }
    
    Yanlış olur; çünkü bir şeyler yaparken hata atıldığında 'delete p' satırı işletilmez.

    İşte ben bunu beş yılın sonlarına doğru öğrendiğim için C++'yı öğrenmeyi o kadar uzun alır diye düşünüyorum. Belki artık daha iyi kitaplar vardır; C++'ın tuzakları daha iyi anlaşılmıştır ve daha kısa sürüyordur... Umarım...

    Ama artık başka diller var! İşin ilginci, o başka dillere C++ da dahil! C++0x çok güzel olanaklar getiriyor. C++ programcılığı çok daha güzel olacak. (Ben henüz kulaktan dolma düzeyinde biliyorum.)

    Eğer amacın Java veya C# ise bence hemen onlara yönelmelisin. Özellikle C'yi anladığın için, arka planda neler olup bittiğini biliyorsun demektir. Sonuçta bütün üst düzey diller öyle alt düzey işlerle uğraşırlar.

    Ali

  3. #3
    Ziraat Mühendisi _Onk@_ Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    09/2008
    Yer
    Ankara
    Mesaj
    711

    C "bildiğini sanan" biri olarak c++'ı öğreniyorum. Yalnız şöyle bir durum var. Yapısal programlama temellerini atmış olduğunu zanneden ben nyp mantığını kavramakta çok güçlük çektim. O yüzden keşke bir bilene danışıp önce C++ öğrenseydim diyorum. Öyle ki daha C++ hata yönetimi ve STL'ye bir türlü geçiş yapamadım. Ayrıca C++'deki polymorphism konusu da muallakta diyorlar. Okuduklarıma göre C++ NYP mantığına %100 oturmuyormuş. Söyleyenlerin yalancısıyım İşin teorisini bitirdikten sonra bir o kadar da pratik yapmak gerekiyor. Ha daha iyi C olarak C++ çok güzel tabi. Zaten C'ye eklenmiş gibi olan giriş/çıkış yöntemleri, string sınıfı, işlev aşırıyükleme gibi özellikler tabiri yerindeyse bal-kaymak.

    İleri yöneliminiz için Ali Hocamın tüm dediklerine katılıyorum. Eğer gönlünüzde başka bir dil varsa onu öğreniniz.

    Hem JAVA'yı hem de C#'ı kısa süre inceleyebildim. Ben kararımı C#'tan yana yaptım. Nedenine gelince:
    .NET olgunlaştı sayılır,
    WPF denen bir olay var,
    İşaretçiler var,
    JNI gibi ara basamaklar olmadan WinApi kullanabiliyoruz,
    Çapraz platform olmasa bile MONO gibi çalışmalar gelecek vaadediyor,
    Visual Studio gibi bir aracımız var,
    Debug yaparken zevk alıyorum gibi gibi.

    Bu arada BCB 2009 C++0x standardını şimdiden destekliyormuş ve VCL bileşenlerinde Unicode desteği varmış. Belki bir denemek gerekir.

    Basic dilini atlamayalım lütfen.

  4. #4
    ftpyt
    misafir

    Ali Hocam bilgine sağlık,c ile c++ nın arasındaki belirttiğin incelik örneğindeki gibi ayrıntılar için değil 5 yıl, 10 yıllık tecrübe gerekir belkide. c dilinde mantığı yerleştirdikten sonra, java veya c# a geçerim diye düşünmüştüm,ancak, “c ile bu düşüncemi gerçekleştireceğime c++ ile yapayım” dememden dolayı bu soruyu sorma ihtiyacı hissettim.Çünkü belirttiğin gibi,c++ nın syntax ı daha derli toplu.

    Alıntı acehreli, mesajından alıntı: Mesajı Gör
    Özellikle C'yi anladığın için, arka planda neler olup bittiğini biliyorsun demektir. Sonuçta bütün üst düzey diller öyle alt düzey işlerle uğraşırlar.


    Ali hocam bunu biraz daha ayrıntılı açıklarsan sevinirim, “arka planda neler olup bittiğini” bilmek nasıl oluyor?


    Alıntı _Onk@_, mesajından alıntı: Mesajı Gör
    Yapısal programlama temellerini atmış olduğunu zanneden ben nyp mantığını kavramakta çok güçlük çektim. O yüzden keşke bir bilene danışıp önce C++ öğrenseydim diyorum.


    Söylediklerinden sonra kafam iyice karıştı bu konuda

    Alıntı _Onk@_, mesajından alıntı: Mesajı Gör
    İleri yöneliminiz için Ali Hocamın tüm dediklerine katılıyorum. Eğer gönlünüzde başka bir dil varsa onu öğreniniz.


    Neden C bilmeden üst seviye bir dile geçmeyin diyorlar? _Onk@_ , programcılık ile ilgili tecrübelerini anlatırsan çok sevinirim,özellikle senin gibi birinin tecrübelerini çok merak ediyorum.Mesela şu an programcılığa sıfırdan başlıyor olsan ne yapardın ?(Mesela c# dan mı başlardın?,en azından c# öğrenmek isteyen birine tavsiyen bu mu olurdu?)

  5. #5
    Ziraat Mühendisi _Onk@_ Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    09/2008
    Yer
    Ankara
    Mesaj
    711

    Programcılık ile ilgili ben buyum diyebileceğim tecrübem fazla değil:
    İki adet otomasyon yazılımı (VB6), bellek test yazılımı(C+x86 gerçek mod asm(emu8086 ile)), sistem özelliklerini raporlayan uygulama(C+VB6), Menasoft Sphere (IBM'inki değil) UO emülatöründeki birkaç çalışmam(Sphere,C/C++,Delphi), ArmadilloRun adlı oyun için trainer, port test uygulaması, bir web sunucusu(VB6->C/C++), UO için bağlantı programı(Delphi/VB6), bir adet user-level tcp/ip port yönlendiricisi(VB6), Türkiye'de bir programlama sitesinde görev alma(VB6), bir iki projede danışmanlık yapma, bir im yazılımı için paket tablosu denemesi... Ve nihayet ONKA projesi. Gördüğünüz gibi maymun iştahı var bende, bu yüzden hiçbir konuda tam olarak uzmanlaştığıma inanmıyorum. O yüzden benim tavsiyelerimi rahatlıkla es geçebilirsiniz

    Konu sanırım biraz kaydı. Bana göre kendinize ilk olarak sormanız gereken soru şu: Niçin bir programlama dili öğreniyorum? Sistem programcısı mı olacağım, otomasyon mu yazacağım, Web içinde mi olmak istiyorum? Bu soruya vereceğiniz yanıt diğer üyelerin vereceği cevaplar üzerinde etkili olacak emin olun.

  6. #6
    Ali Çehreli
    Üyelik Tarihi
    10/2002
    Mesaj
    2,901

    Biz üst düzey olanakları kullanarak rahat rahat şöyle diyoruz:

    Kod:
    string s("abc");
    s += "d";
    
    Böylece s artık "abcd" oluyor... Dil, (derleyici veya kütüphane) arka planda string için herhalde şöyle bir yapı kullanılmıştır:

    Kod:
    struct string
    {
        size_t kapasite;
        size_t uzunluk;
        char *karakterler;
    };
    
    Bu gibi işleri C ile alt düzeyde yapmayı öğrenince, string gibi üst düzey bir olanakla karşılaşınca ister istemez arkada neler olduğu düşünülüyor.

    Ali

    Not: Bu arada, öyle bir yapı yazmak çok ilginçtir. İstersen çalışma olarak Dizgi isminde bir yapı ve onun örneğin şu işlevlerini yazmayı deneyebilirsin:

    Kod:
    typedef struct
    {
        size_t kapasite;
        size_t uzunluk;
        char *karakterler;
    } Dizgi;
    
    /* Bunlarin hepsinin donus degerleri hata kodudur;
       0 ise "basarili", degilse "hatali" anlamina gelir */
    
    // kurucu (constructor)
    int Dizgi_kur(Dizgi * dizgi, const char * karakterler);
    
    // bozucu (destructor)
    int Dizgi_sonlandir(Dizgi * dizgi);
    
    // kopyalayici (copy constructor)
    int Dizgi_kopyala(Dizgi * kime, const Dizgi * kimden);
    
    // sonuna ekleyici (append)
    int Dizgi_sonuna_ekle(Dizgi * dizgi, const char * eklenecekler);
    
    // cikisa yazdirici
    int Dizgi_yazdir(const Dizgi * dizgi, FILE * cikis);
    
    // vs.
    
    Ali

  7. #7
    Üye
    Üyelik Tarihi
    10/2006
    Yer
    İstanbul
    Mesaj
    592

    Alıntı acehreli, mesajından alıntı: Mesajı Gör

    Kod:
    typedef struct
    {
        size_t kapasite;
        size_t uzunluk;
        char *karakterler;
    } Dizgi;
    
    /* Bunlarin hepsinin donus degerleri hata kodudur;
       0 ise "basarili", degilse "hatali" anlamina gelir */
    
    Ali
    Bende C'yi elestiriyim, foksiyonlarinda o kadar cok tutarsizlik var ki, bazi fonksiyonlarda 0 basarili, bazilarinda basarisiz, if icinde 0 disi basarili nedir bu tutarsizlik yahu

    ALi

  8. #8
    Ziraat Mühendisi _Onk@_ Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    09/2008
    Yer
    Ankara
    Mesaj
    711

    Ha yazmayı unutmuşum: Eğer sıfırdan yeni bir dil öğrenmem gerekse C++ ve x86 asm olurdu. Neden mi?
    İkisi de zor ve C++ bilen iyi programcıdır, assembly bilen işi yalayıp yutmuştur düşüncesi toplumumuzda hakim. Sırf bana da böyle söylesinler diye. Ego tatmini anlayacağınız. Yoksa derlenen diller sabit diskte 1 ve 0'lara çevriliyor. Ha C++ ile yazmışsın ha basic ile ha delphi ile.

    Fakat ben bu işe Basic ile başladım ve basic'i seviyorum, sevdiriyorum

  9. #9
    Üye
    Üyelik Tarihi
    11/2009
    Mesaj
    225

    Alıntı ftpyt, mesajından alıntı: Mesajı Gör
    Neden C bilmeden üst seviye bir dile geçmeyin diyorlar?
    Bunu kim söylüyorsa o kişiyle birdaha programlama konusunda konuşma hatta bilgisayar konusunda hiç görüşme, tüm söylediklerini de unut.

    Eğer amacın sistem programlama konusunda uzmanlaşmak ise C ve Asm öğren, uygulama programcısı olmak istiyorsan, C#, Java, Delphi öğren, bir de veritabanı konusunda uzmanlaş.

    C yi gerçek anlamda öğrenmen ortalama 5 yılını alır. Ben 6 yıldır sistem programlama ile ilgileniyorum ve bugüne kadar C ve Asm bilgimle hatırı sayılır bir para kazanmadım, 1 yıllık bir Delphi programcısı senin C de yazacağın uygulama programının alasını yazar.

    Özetle her dilde hello world yazabilen ama hiçbir uzmanlığı olmayan, kendisini herşeyi bilen olarak gören bir hesap makinası programcısı olmak istemiyorsan hedefini iyi belirle ve her ay yeni bir dile başlama , başladığın dilde adam gibi uzmanlaş.

  10. #10
    Üye
    Üyelik Tarihi
    01/2008
    Mesaj
    54

    C++ Pratik yapmak için ne yapmak lazım önerebileceginiz bir kitap varmı uygulamalı örnek program vs. vs. içeren

+ Cevap Yaz

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Bookmarks

Mesaj Yazma Hakları

  • Yeni mesajgöndermezsiniz
  • Cevap yazamazsınız
  • Dosya ekleyemezsiniz
  • Mesajınızı düzenleyemezsiniz