Saya seorang pemula dan hanya memiliki sedikit pengetahuan dalam pemrograman.
Apakah lebih baik jika saya langsung belajar C ++ dari buku yang mencakup C ++ 11 baru atau haruskah saya belajar melalui buku C ++ terbaik lama?
Haruskah saya memiliki sedikit pengetahuan tentang C ++ sebelum belajar C ++ 11? atau saya bisa mulai langsung dari sana?
Apakah akan menimbulkan masalah jika saya langsung mulai dari C ++ 11? Jika tidak, maka sarankan beberapa buku tentang C ++ 11.
Programmers — Stack Exchange is a site for professional programmers...
Dalam hal ini, maukah Anda membimbing saya ke situs untuk programmer pemula? Saya juga seorang pemula pengkodean dan saya akan memiliki beberapa pertanyaan mendasar ...Jawaban:
Ada banyak peningkatan kegunaan yang membuat C ++ 11 lebih mudah dipahami oleh pemula, terutama yang memiliki pengalaman dalam bahasa lain dengan fitur-fitur tersebut. Perubahan lain dalam C ++ 11 hanya menarik bagi pengguna tingkat lanjut, sehingga Anda mungkin akan kewalahan jika mengambil buku yang sebagian besar dirancang untuk mengajarkan perbedaan. Pastikan buku apa pun yang Anda dapatkan dirancang untuk pemula yang lengkap ke C ++.
Yang sedang berkata, Anda mungkin harus belajar cara lama pada akhirnya, karena ada banyak kode yang ada di luar sana, dan bahkan kode C ++ 11 baru akan berisi cara lama dalam melakukan sesuatu jika programmer memilihnya. Saya menulis C ++ untuk mencari nafkah, dan perusahaan saya masih belum sempat mengevaluasi kompiler yang kompatibel dengan C ++ 11, apalagi menggunakannya dalam produksi.
sumber
Anda tidak perlu menggunakan C ++ lama untuk mulai menggunakan C ++ 11, ada fitur-fitur baru di C ++ 11 tetapi penggunaannya opsional. Mengetahui cara menggunakan fitur C ++ 11 bisa menjadi keuntungan, tentu tidak akan merugikan ketika bekerja dengan leg-base kode (pra 11) setelah Anda tahu keanehan dari versi yang lebih lama.
Belajar C ++ akan menjadi tempat yang baik untuk mulai belajar dan Lampiran B akan mengajarkan Anda fitur-fitur C ++ 11 setelah Anda mempelajari dasar-dasarnya.
Saya dapat melihat mengapa beberapa orang menyarankan Java / CSharp dll sebagai bahasa alternatif yang lebih mudah tapi saya belajar sedikit C ++ sebelum pindah ke CSharp dan saya bukan programmer yang lebih buruk karena itu, sebaliknya, kemampuan pemrograman jauh lebih dalam daripada bahasa. sintaks / fungsionalitas dan dengan dasar yang kuat dalam C ++ Anda dapat mempelajari bahasa OOP penting lainnya dengan mudah.
sumber
Sulit dikatakan.
Old C ++ lebih merupakan ladang ranjau, dan senang mempelajari cara menavigasi binatang buas semacam itu. Ini juga akan membuat Anda memahami mengapa segala sesuatunya dilakukan sebagaimana adanya, dan apa implikasi dari konstruk yang berbeda.
Kemudian lagi, C ++ lama bukan yang Anda inginkan ketika Anda menulis kode.
Tapi kemudian, sekali lagi, C ++ lama adalah apa yang banyak industri akan berputar selama 20 tahun lagi.
Saya suka C ++ 11, tetapi hanya dapat digunakan di startup untuk saat ini. Tidak di basis kode warisan yang besar. Dan melompat langsung ke C ++ 11 mungkin meninggalkan Anda dengan keterampilan yang tidak berkembang di bagian-bagian C ++ jahat. Yang akan menjadi bumerang setelah beberapa C ++ 11 membangun kebocoran, atau crash karena digunakan dalam cara yang benar secara sintaksis, tetapi secara logis tidak benar.
sumber
Meskipun banyak perbaikan dalam
C++11
,C++
masih bukan bahasa yang mudah. Java, walaupun tidak semudah yang diperkirakan, masih merupakan bahasa yang lebih mudah dengan kinerja yang sangat baik (seringkali hampir secepatC++
) dan menawarkan IDE yang lebih baik (mungkinVisual C++
sebagus IDE Java saat ini tetapi tidak beruntung di Linux), banyak perpustakaan standar yang lebih komprehensif (JDK), lebih banyak perpustakaan (misalnya Hibernate , Spring , JEE , Lucene , dll) dan tidak ada kebocoran memori (well, hampir tidak ada - Anda masih dapat membangun kebocoran memori di Jawa tetapi lebih sulit untuk melakukannya dari padaC++
). Agar adil, dengan modernC++11
, jauh lebih mudah untuk menghindari perai ingatan.C ++ 11 memiliki banyak fitur keren seperti lambdas, kata kunci otomatis, pindahkan semantik dan banyak lagi. Ini jelas merupakan bahasa yang jauh lebih baik daripada
C++98
sebelumnya. Lihat ikhtisar ini oleh Herb Sutter tentang fitur-fitur baru diC++11
: ElemenC++
Gaya Modern .Singkatnya, saya pikir semua orang harus belajar setidaknya beberapa
C++
. Jika Anda telah pemrograman diJava
,Scala
,Ruby
atauPython
selama sepuluh tahun terakhir dan tidak pernah menyentuhC
atauC++
, sekarang denganC++11
saya pikir itu adalah waktu untuk belajarC++11
dan meningkatkan kemampuan pemrograman Anda saat melakukannya.Saya mungkin tidak akan menggunakan
C++
banyak di tempat kerja di tahun-tahun mendatang dan ketika saya membutuhkan bahasa yang lebih kuat daripadaJava
, saya mungkin akan pergi untuk Scala, tetapi saya akan melihat lebih dekatC++11
dan mencoba untuk belajar dan memahami fitur-fitur baru, terutama orang-orang tentang multithreading dan konkurensi.sumber
Ambil napas dalam-dalam dan baca artikel ini oleh Peter Norvig.
Sudahkah Anda membaca itu? Ok, jika Anda seorang pemula, Anda harus mulai dalam langkah-langkah kecil. -masukkan bahasa di sini- bisa datang nanti, periksa Coursera atau Udacity untuk beberapa kursus pengenalan ilmu komputer pemula.
Setelah menyelesaikan itu, saya akan menyarankan perlahan - lahan bekerja dengan cara Anda melalui bahasa pemrograman C & K jika Anda diatur pada bahasa 'C'.
Bekerja pada dasar-dasar, sisanya akan tiba pada waktunya.
sumber
Buku pengantar terbaru tentang C ++ juga semakin banyak membahas C ++ 11. Saya membaca Sam's Teach Yourself C ++ setelah bekerja dengan bahasa skrip tetapi tidak C / C ++ selama hampir sepuluh tahun dan merasa sangat membantu. Saya dengan cepat menjadi fasih dalam ide sentral C ++ (termasuk banyak STL) dan menyadari banyak sekali detail yang berbeda dalam C ++ 11.
Seperti beberapa poster lain sebutkan, C ++ 11 dalam banyak hal lebih mudah daripada standar yang lebih lama dengan penambahan gaya scripting seperti
auto
,for(int &i : m_vector){}
dll. Jadi jika "sedikit pengetahuan" Anda berasal dari bahasa seperti Python atau Matlab, Anda akan menemukan C ++ 11 agak lebih "alami" daripada standar sebelumnya.Saya juga akan menunjukkan bahwa sekarang, kompatibilitas kompiler untuk C ++ 11 sudah ( hampir ) lengkap sehingga memiliki kode yang "terlalu terkini untuk dikompilasi" tidak lagi menjadi masalah.
Singkatnya, lakukanlah.
sumber
Ketika waktu saya, C dianggap sebagai prasyarat C ++, terutama bagi mereka pemula pemrograman. Karena Anda harus mencari tahu apa yang dilakukan bahasa dan mengapa bahasa itu dirancang seperti itu. C mendapatkan banyak sekali ide bagus dan cukup bahasa pemrograman, yang tidak akan pernah ketinggalan zaman. Jadi, saya percaya ini adalah awal terbaik.
Dan setelah memiliki beberapa sudut pandang dasar mengenai hal-hal pemrograman, Anda mungkin harus memilih apa yang harus dilakukan sebagai langkah selanjutnya, yang berarti, pilih bahasa untuk dipelajari sedalam mungkin. Tidak peduli seberapa dalam Anda mendapatkan, umumnya dapat memutuskan seberapa dalam Anda bisa untuk bahasa lain, yang berarti, tidak peduli berapa banyak bahasa yang telah Anda pelajari, yang terdalam akan selalu menjadi yang pertama yang Anda gali. Bagi saya, saya telah melakukan penelitian tentang Java dan membuat beberapa model Java sendiri untuk lebih memahami fungsi kernelnya.
Setelah itu, Anda mungkin dapat mempelajari apa pun yang Anda inginkan, karena Anda benar-benar memahami teknologi bahasa pemrograman. Saya sudah mulai belajar C #, Go, Python bahkan Scala dan telah melakukan banyak proyek untuk bersenang-senang / bekerja. Catatan pribadi adalah 3 bulan dari mulai belajar bahasa hingga menjadi 1.0 kepala proyek yang sedang berkembang.
Dalam kasus saya, sudah lebih dari 15 tahun sejak program pertama saya dan saya bahkan tidak ingat apa itu. Saya percaya jika Anda bekerja cukup keras, Anda pasti akan menjadi lebih baik dan lebih cepat daripada saya.
sumber
Sebagai seorang pemula saya pikir pertama Anda harus melalui konsep C ++ karena C ++ 11 dan semuanya seperti versi baru tetapi C dan C ++ adalah dasar untuk semua jenis pengembangan. Setelah Anda mempelajari C ++ sebagian besar konsep akan dihapus secara otomatis.
sumber
C ++ adalah bahasa yang sangat hebat dan kuat. Namun itu juga menempatkan banyak tanggung jawab pada programmer.
Jika Anda benar-benar baru dalam pemrograman, buat hidup Anda lebih mudah dan mulailah dengan C #. Sintaksinya didasarkan pada C ++, tetapi penanganan kesalahannya jauh lebih ramah pemula dalam membantu Anda ketika ada masalah.
Jika Anda merasa nyaman dengan metode, kelas, warisan dan ingin berkembang di lingkungan di mana mengelola memori dan sumber daya sistem lebih penting daripada produktivitas, maka C ++ adalah pilihan yang baik, dan saya akan mulai dengan mempelajari standar saat ini. Ingatlah bahwa C ++ mengharuskan Anda untuk memahami memori dan mengelolanya secara aktif. Buat kesalahan di sini, dan yang Anda dapatkan hanyalah inti yang dibuang, atau data Anda berisi byte yang tidak masuk akal. Dan seringkali titik di mana Anda menemukan masalah tidak terkait dengan di mana penyebabnya sebenarnya.
sumber
Mengapa Anda ingin memulai dengan C ++?
Saya pribadi merekomendasikan C ++ sebagai bahasa pertama. Ini rumit, rumit, sulit ... hanya level yang jauh lebih rendah dan lebih "tidak aman" daripada kebanyakan bahasa pemrograman lainnya.
Saya menyarankan untuk memilih c #, java, python atau javascript ... dan buku yang bagus di sepanjang jalan. Anda akan memiliki waktu yang jauh lebih menyenangkan dengan ini.
sumber