it-swarm-id.com

Apakah C ++ cocok sebagai bahasa pertama?

Sebuah perguruan tinggi setempat mengajarkan C++ kepada mahasiswa tahun pertama (16 tahun) tanpa pengalaman pemrograman sebelumnya.

Sebagai bahasa pemrograman pertama, apakah C++ cocok?

26
Ed James

Secara empati Tidak .

Untuk tujuan apa pun yang ada dalam pikiran Anda untuk siswa, bahasa lain atau urutan bahasa akan lebih cepat dan lebih baik. Contoh.

"Siswa perlu memahami konsep tingkat rendah."

Pengkodean "tingkat rendah" tidak terdiri dari mendapatkan objek dari new, mengumpankannya kembali ke delete, dan terkadang memiliki pointer yang menunjuk ke suatu tempat yang seharusnya tidak. Fungsi, kelas, dan templat bukan level rendah. RAII, 12 cara menggunakan const, std::ostream::operator<<, protected dan new bukan konsep tingkat rendah. Hal-hal itu memiliki implikasi tingkat rendah dan Anda melewatkannya selama berbulan-bulan atau sampai kelas masa depan dan mengajar pegunungan semantik C++.

Saya sarankan assembler dengan lingkungan dan materi pengajaran yang baik seperti MIPS atau MMIX. Jika Anda sedang terburu-buru, ajar C dengan jalan memutar untuk setidaknya melihat hasil assembler. Ini akan memberi Anda semua pemahaman tingkat rendah yang dilakukan C++, dan kemudian beberapa, lebih cepat.

"Siswa perlu memahami orientasi objek."

Orientasi objek yang dibangun ke dalam C++ adalah cara yang terlalu rumit untuk mengajar konsep OO, atau hampir semua konsep tingkat tinggi lainnya. Lihat C++ FAQ untuk daftar yang bagus dan panjang alasan potensial mengapa Anda harus menekan semua hal itu, yang akan memakan waktu sangat, sangat lama dengan programmer baru, atau Anda harus melewatkan banyak hal, meninggalkan programmer baru dalam gelap - secara efektif, tidak benar-benar mengetahui C++!

Saya sarankan belajar bahasa tingkat tinggi yang lebih sederhana dengan objek terlebih dahulu (Python, Ruby, Squeak, Common LISP, Racket), jika Anda harus mengajar C++ sama sekali. Di luar itu, pelajari polimorfisme sebagai konsep yang terpisah dari OO dengan mengunjungi bahasa fungsional.

"Siswa perlu memahami templat dan metaprogramming templat."

Tidak ada yang benar-benar menanyakan ini, tetapi saya berharap mereka akan melakukannya. C++ memiliki templat yang bagus dan STL keren, tetapi tidak seharusnya menjadi prioritas yang cukup tinggi untuk mengajar C++ terlebih dahulu. Mengajar sistem tipe OCaml atau Haskell dan kemudian retrofit konsep-konsep itu mungkin lebih cepat.

"Siswa perlu belajar pemecahan masalah."

Ya, Anda mendapatkan ini dalam bahasa apa pun, dan Anda mendapatkan lebih banyak jika dalam hampir semua bahasa selain C++ karena ada lebih sedikit bagasi. Sekali lagi, lihat FAQ C++ untuk daftar semua hal yang akan dipelajari siswa alih-alih keterampilan memecahkan masalah.

"Semua hal di atas, dan kami hanya perlu menggunakan satu bahasa." atau "Pengusaha menginginkannya." atau "Kami membutuhkan bahasa gaya-C." atau ...

Ajarkan lebih dari satu bahasa.

Gagasan bahwa Anda menghemat waktu atau energi dengan mengajar atau belajar hanya satu bahasa sama sekali konyol. Ini didasarkan pada gagasan bahwa mempelajari bahasa tertentu membutuhkan waktu tepat X man bulan ( PETUNJUK! PETUNJUK! ) di mana X adalah angka tunggal atau satu angka per bahasa. Ini hampir identik dengan gagasan bahwa Anda dapat menghemat waktu dan uang dengan melewatkan semua 'persyaratan' dan 'pengujian' sampah.

Adapun beberapa sintaksis, Anda berbahaya melumpuhkan siswa jika Anda mengajar mereka untuk mengharapkan sintaks C dalam setiap bahasa dengan membuat mereka sangat bias terhadap bahasa lain.

Hampir semua jalur lebih cepat dan lebih baik daripada memulai dengan C++. Mempelajari bahasa tingkat tinggi yang sederhana dan kemudian C++ akan lebih cepat. Mempelajari assembler dan kemudian C++ akan lebih cepat. Apa pun selain C++ akan membuat siswa di sana lebih cepat dan mereka akan lebih tahu cara mem-boot. Jangan mengajarkan C++ terlebih dahulu.

61
Jesse Millikan

Tidak, C++ adalah bahasa yang sulit bahkan untuk pengembang C++ yang berpengalaman. Bahkan untuk algoritma paling sederhana Anda harus menjelaskan banyak seluk-beluk bahasa. Pertimbangkan contoh Hello World:

#include <iostream>

int main()
{
  std::cout << "Hello World!" << std::endl;
}

Apa itu #include perintah? Apa std::cout. Mengapa ::? Apa yang <<? Ohhh, ini operator yang kelebihan beban! Apa itu operator yang kelebihan beban? Sooo, untuk ints, memang sedikit bergeser, tapi untuk apa pun std::cout adalah, ini menampilkan barang ke konsol. Ohhh, std::cout adalah stream, dan stream memiliki << dan >> operator kelebihan beban.

Mari kita lihat contoh yang sama dengan Python:

print("Hello World!")

Itu saja, mari kita buat kode beberapa algoritma.

54
Marco Mustapic

Ini mungkin bukan bahasa pertama yang baik: sintaksis kompleks, banyak aturan, bahasa lama, manajemen memori yang rawan kesalahan. Lebih baik mengajari siswa Anda sesuatu yang lebih OO seperti Smalltalk, atau sesuatu yang lebih baik untuk diprogram dengan seperti Python, atau sesuatu yang fungsional seperti Haskell.

Mereka dapat mempelajari C++ di kemudian hari (jika mereka tidak bisa menahannya), setelah mereka mempelajari bahasa yang lebih baik.

21
Andres F.

Jawaban singkat: Ya!

Saya akan mengatakan bahwa ada bahasa adalah awal yang cocok tetapi terutama C++ (atau equivivalent). Saat ini C # dan Java adalah bahasa utama yang digunakan dan pemrograman dengan ini Anda dengan cepat belajar untuk bersandar pada API dan IDE tetapi dengan C++ Anda mendapatkan kesempatan untuk belajar pemrograman dari bawah ke atas, termasuk kinerja optimasi, dll.

Tidak pernah merupakan ide yang buruk untuk mempelajari dasar-dasar pemrograman, perulangan dan penyortiran sebelum Anda hanya bergantung pada bahasa bawaan .Sort ();

18
Mantisen

Sebenarnya saya percaya itu mungkin merupakan pilihan yang baik sebagai bahasa pertama karena alasan yang sangat praktis: Setelah mempelajari C++ bahasa lain yang Anda temui akan terasa seperti angin untuk belajar.

14
ennuikiller

Saya belajar sendiri C++ ketika saya berusia 15-16.

Lebih baik menyerahkan keajaiban kepada orang lain dan mempelajari sendiri hal-hal dalam diri Anda.


Terus terang, jika Anda tidak bisa mengetahui sintaks dan semantik entry-level C++, Anda tidak terlalu mahir dalam komputer. Tidak sesulit itu. Tidak ada alasan bagus untuk menghindari "C with Classes".

Jika Anda mengharapkan siswa mulai bekerja pada pemrograman metaplat, menyimpulkan panggilan polimorfik, dan mengurai beberapa hierarki warisan - itu konyol untuk kelas entry level untuk jenis bahasa apa pun yang Anda gunakan.

Ada kecenderungan yang sangat buruk untuk ingin menyembunyikan seluk-beluk pemrograman untuk siswa. Itu tidak berakhir dengan baik (bdk Spolsky's Java esai sekolah). Orang-orang itu berakhir di DailyWTF jika mereka tidak meluruskan kepala mereka. Abstraksi bocor, dan ketika (tidak jika) abstraksi Kebocoran, itu lebih buruk daripada harus berurusan dengan itu. Aku bekerja sebagai TA untuk siswa tingkat C++. Entah semuanya harus disembunyikan sepanjang jalan, atau mereka harus dibawa ke cahaya untuk diperiksa. Sihir adalah musuh pembelajar.

Jika saya harus merekomendasikan bahasa awal yang dikompilasi ke kode mesin, varian Pascal mungkin akan menjadi pendekatan terbaik. Ini memiliki pendekatan yang lebih teratur dan terstruktur daripada keluarga C dari apa yang saya ingat.

10
Paul Nathan

Tidak.

Sebagai bahasa pengajaran, C++ hanya sedikit lebih baik dari C, yang merupakan salah satu bahasa pengajaran terburuk di sekitar. Ini memperkenalkan banyak kompleksitas di muka, beberapa bagian dari bahasa ini sangat tidak intuitif, dan sebagian besar waktu Anda belajar lebih banyak tentang C++ daripada tentang pemrograman pada umumnya.

Itu bukan untuk mengatakan bahwa C++ (atau C) adalah bahasa yang buruk, atau tidak layak untuk dipelajari; Hanya saja ada bahasa pengajaran yang lebih baik tersedia, seperti Python.

8
John Bode

Saya akan mengatakan 'tidak' - Saya memiliki hasrat dan keinginan untuk belajar pemrograman, dan langsung memasuki tahun intro saya di perguruan tinggi dengan C++ segera. Ditambah dengan seorang guru yang mengajar bahasa C++ seolah-olah itu adalah bahasa lain (konsep yang masuk akal bagi mereka, belum tentu konsep bahasa atau aplikasi dunia nyata), dan proyek yang dilemparkan kepada kami segera setiap minggu, saya jatuh dan terbakar bersama dengan setengah dari kelas. Pada saat saya bahkan dapat mencerna, bereksperimen dan menerapkan apa yang diajarkan kepada saya, saya bergumul dengan pekerjaan rumah proyek yang merangkap sebagai ujian. Saya berpendapat bahwa itu lebih dari 200 level saja daripada 100.

Saya benar-benar mencoba yang terbaik. Saya tidak meminta simpati, saya tahu itu akan menjadi tantangan, tetapi guru itu bahkan tidak mau membantu saya. Hanya mengatakan kepada saya untuk pergi membaca buku pelajaran, seperti yang telah saya lakukan.

Saya berpendapat (dan beberapa akan tidak setuju) bahwa Ruby atau Python adalah bahasa yang jauh lebih baik untuk memecah seseorang ke dalam dunia pemrograman. Bersih, ringkas, dapat dibaca , sintaksis yang lebih jelas.

8
Kevin

Ada dua jenis penting pendidikan pasca-sekolah menengah: universitas dan sekolah perdagangan. Perbedaannya terletak pada apa yang ingin Anda siapkan setelah lulus. Di bidang otomotif, apakah Anda akan menjadi mekanik atau insinyur mekanik.

Yang sedang berkata, C++ adalah bahasa pertama yang bagus jika Anda ingin menjadi seorang insinyur, dan yang buruk jika Anda ingin menjadi pemrograman yang setara dengan seorang mekanik.

Kelas intro tentang C++ akan menghabiskan banyak waktu berbicara tentang tipe data, definisi, deklarasi, pointer, alokasi memori, dan sebagainya. Ini adalah fondasi yang bagus jika Anda bermaksud menghabiskan beberapa semester membangun untuk dapat melakukan sesuatu yang bermanfaat, tetapi ingin tahu bahwa begitu Anda sampai di sana Anda memiliki fondasi untuk menangani tingkat kerumitan apa pun.

Di sisi lain, jika Anda ingin dapat melakukan sesuatu yang bermanfaat lebih cepat, tetapi tidak keberatan jika domain dan kompleksitasnya terbatas, maka menghabiskan semua waktu itu pada konsep-konsep tingkat rendah di depan akan menjadi sia-sia. Ada banyak programmer yang dapat menulis validator bentuk html yang hebat, tetapi tidak memiliki petunjuk cara pendekatan merancang driver perangkat.

7
Karl Bielefeldt

Tentu. Bahasa pertama saya adalah C, tapi itu benar-benar hanya untuk memudahkan kelas kami menjadi C++. Itu membuat Java jauh lebih mudah untuk ditangani begitu saya sampai di Universitas. C++ mungkin memiliki kurva belajar yang sedikit lebih curam, tetapi jika itu diajarkan dengan benar, itu akan baik-baik saja.

Tidak, C++ tidak cocok sebagai bahasa pertama. Seperti yang ditunjukkan di sini, banyak programmer profesional berbagi pendapat ini, tetapi ini juga merupakan pendapat yang dimiliki oleh guru profesional.

Inilah yang dikatakan laporan dari dekan Universitas Carnegie Mellon tentang penggunaan C++ untuk kursus pengantar untuk pemrograman untuk mahasiswa baru:

Bahasa standar seperti C atau C++ tidak cocok untuk kursus ini karena kompleksitas dan kekurangan mereka menghambat teknik penalaran informal dan mekanis.

CMU menawarkan dua kursus pengantar, yang penting dan yang fungsional. SML dipilih untuk pemrograman fungsional. Saya tidak tahu apa yang dipilih untuk kursus imperatif, tetapi laporan itu menyebutkan menggunakan subset C.

4
Joh

Sama sekali tidak.

Jika saya punya cara saya, saya akan melarang itu digunakan dalam pengaturan akademik hampir seluruhnya. Bukan karena alasan yang bertentangan dengan yang sudah dibuat, tetapi karena terlalu banyak berpikir C++ (atau variasi) adalah jawaban untuk hampir setiap masalah karena Anda dapat menggunakannya di hampir semua situasi. Ini adalah obeng pemrograman.

Beberapa orang menggunakannya untuk mengencangkan sekrup, alat yang sangat masuk akal untuk pekerjaan itu. Yang lain menggunakannya seperti prybar, sementara sering efektif, tidak benar-benar ideal karena obeng, tidak peduli apa yang ayah Anda katakan kepada Anda, bukan prybar, dan mungkin gagal karena disalahgunakan karena komposisi shank tidak sengaja dibuat untuk jenis kekuatan yang akan dihadapi prybar. Yang lain mungkin akan mencoba dan menggunakannya sebagai tinju atau pahat, dan mereka hampir selalu akan menghadapi masalah karena gagang obeng tidak dibuat untuk jenis pelecehan yang dipukul oleh tinju atau pahat yang dirancang untuk bertahan.

Menurut pendapat saya, tugas seorang programmer adalah untuk secara umum menerjemahkan masalah nyata ke dalam otomatisasi yang memberikan beberapa tingkat peningkatan efisiensi (mengurangi komitmen sumber daya untuk suatu tugas), kecepatan (mengurangi waktu untuk melakukan tugas), prediktabilitas (meningkatkan pengulangan suatu tugas), atau organisasi (meningkatkan kesadaran hubungan antara tugas).

Meskipun dapat dimengerti bahwa setiap orang yang memprogram harus memiliki pengetahuan umum tentang operasi komputer tingkat rendah, dan khususnya perangkat IO dan alokasi memori, sudah pasti jarang benar-benar harus menggunakan pengetahuan itu untuk setiap tingkat signifikan, apalagi memanfaatkannya untuk sebagian besar tugas.Mencoba untuk melakukannya tanpa memahami konteks yang lebih luas dari masalah memasukkan risiko yang tidak perlu untuk suatu upaya.

Tidak masuk akal bahwa bahasa pemrograman pertama harus C/C++ atau varian dekat, karena kelas masalah yang dipecahkan oleh C dan turunannya tentu tidak sesuai untuk beberapa persentase besar dari masalah saat ini dan di masa depan (kecuali di mana kita harus menyelamatkan program sebelumnya, program obeng), dan sebenarnya lebih merupakan masalah kecil yang akan datang. Sebagian besar programmer tidak akan pernah mendekati pengembangan fitur OS inti atau antarmuka perangkat langsung, meskipun peningkatan perangkat mobile kecil yang saling berhubungan. Sebagian besar akan bekerja dan hidup seperti kita. Memperbaiki dan menghapus kode yang berumur lebih dari dua generasi, menerapkan teknologi yang sudah menunjukkan usia, atau bekerja di pinggiran teknologi pada aplikasi pembunuh (x +1).

Untuk bahasa pertama, saya akan melihat Lego NXT, tugas ringan tapi varian kaya fitur LabView. Walaupun Lego NXT tidak digunakan secara luas dalam usaha komersial, Lego NXT akan menyajikan sifat dasar dari apa yang diprogram dengan cara "kaya sensor". Saya mungkin memasangkannya dengan bahasa scripting netral yang agak platform seperti Javascript atau TCL/TK. Keduanya akan berdampak relatif rendah dalam hal apa yang harus Anda temukan untuk melakukan tugas yang sangat mendasar tetapi efektif, dengan pengembalian tinggi dalam hal lingkaran umpan balik dan fleksibilitas untuk memperkenalkan dan memecahkan berbagai tingkat kompleksitas masalah. Plus, ini memberikan kesempatan baik bagi siswa ketika mereka maju untuk mengeksplorasi potensi melebihi apa yang disediakan di lingkungan kalengan: kesempatan untuk mencoba bekerja di tempat yang gelap, lembab, tempat tingkat rendah perangkat IO dan driver khusus dengan sedikit overhead.

Setelah mereka belajar mengendarai empat silinder otomatis, kemudian naikkan ke hotrod manual v8 yang besar, jika mereka benar-benar tertarik dan termotivasi. Jika Joel tidak dapat menemukan pemrogram bintang rock di bawah batu apa pun di bawah kakinya, ia mungkin harus terus mencari di tempat lain, atau memikirkan kembali mengapa ia mungkin membutuhkan lebih dari banyak obeng di kotak peralatannya.

2
JustinC

Tentu. Ada bahasa lain yang mungkin lebih mudah dipahami oleh siswa tahun pertama. Namun, ada beberapa cara dimana seorang guru dapat secara perlahan memperkenalkan konsep dalam C++.

2
jzd

Jelas C++ dapat menjadi bahasa pertama. Tapi ini tentang seberapa baik itu diajarkan.

Semua orang mengatakan, bahasa pertama harus sangat mudah dipahami. Tapi maksud saya adalah, sebagian besar orang mulai pemrograman di tingkat sarjana. Jadi, Anda bisa mengajarkan sesuatu yang mampu mereka pahami. Dan dengan C++, Anda dapat beralih dari level pemrograman yang lebih rendah ke level yang lebih tinggi.

2
Gulshan

Ketika saya masih di perguruan tinggi, C++ adalah bahasa dasar yang diajarkan sepanjang tahun pertama kuliah. Teorinya adalah bahwa ia mengandung beberapa konsep pemrograman yang kompleks, jadi jika Anda bisa menguasainya, Anda bisa mengambil bahasa lain. Itu bermanfaat bagi saya sebagai fondasi yang baik.

Karena itu, selama tahun senior saya, saya bertugas di sebuah komite untuk menentukan apakah akan mengganti bahasa inti ke Jawa. Setelah berbicara dengan beberapa majikan terkemuka dan beberapa alumni departemen, ditentukan bahwa beralih ke Java adalah minat terbaik para siswa. Para pengusaha yang kami ajak bicara ingin agar orang-orang memiliki pengalaman dalam suatu bahasa yang mereka gunakan untuk mempekerjakan mereka. Saya percaya sekarang, 10 tahun kemudian, mereka masih menggunakan Java sebagai bahasa inti mereka.

Pada catatan yang sama, kami telah mencari untuk mempekerjakan beberapa lulusan perguruan tinggi baru-baru ini dengan keterampilan C++ yang sangat bagus. Kami belum dapat menemukannya.

1
SchwartzE

Saya akan mengatakan ya. Tetapi bahasa apa pun bisa benar-benar menjadi bahasa pertama. Saya pikir C++ bagus karena walaupun kompleks dan terkadang sulit, ini menunjukkan kepada Anda apa yang benar-benar dapat Anda lakukan (sedikit batasan). Juga, ia memiliki beberapa desain berorientasi objek yang dapat membantu Anda bersiap-siap untuk mengambil bahasa lain.

C++ adalah bahasa pertama saya dan saya senang itu. Itu membuat saya berpikir dalam pola pikir OOP sejak awal dan saya berterima kasih untuk itu. Tetapi pada akhirnya, itu benar-benar tergantung pada apa yang ingin Anda lakukan. Bahasa tidak masalah banyak karena jika Anda dapat menjadi baik dengan satu bahasa, kemungkinan Anda tidak akan memiliki masalah mengambil yang lain. Apa yang ingin Anda lakukan? Membuat game? Program untuk ponsel? Masing-masing akan memiliki alat dan bahasa yang lebih cocok untuk itu.

1
user16281

C++ adalah bahasa ahli, bukan bahasa pemula ... akan mengatakan C pertama, bukan Java atau C # atau Python ... mengapa? Karena C mengajarkan Anda untuk menjaga memori Anda dan beberapa konsep-konsep rumit seperti pointer yang "disembunyikan" oleh semua bahasa namun hadir di mana-mana. Saya telah melihat begitu banyak pengembang muda yang bahkan tidak mengerti mengapa memori harus dikeluarkan kadang-kadang dan percaya bahwa pemulung tidak sedikit kerdil yang membersihkan semua coding craps: mereka instantiate, mereka instantiate dan boom itu meledak bahkan jika mereka memiliki XXXXGb RAM ... Tapi mereka tidak mengerti mengapa pengumpul sampah tidak hanya secara ajaib membersihkan semuanya! Dan saya telah melihat pengembang semacam ini mengkode di C++ (dan lebih gila lagi, di Corba) dan itu adalah pembantaian !!!!!!!!!! Jadi saya akan menyarankan untuk belajar coding dalam C dan kemudian pergi ke Python/Java/C # untuk konsep objek dan semua gula di sekitar Kemudian ketika Anda memahami semua itu, Anda pergi ke C++ dan Anda merasakan kekuatan C++ tetapi Anda juga menemukan semua bahayanya dan mengapa itu tidak boleh digunakan oleh siapa pun;)

1
mandubian

Beberapa poin di mana pemula dengan mudah membuat kesalahan dalam C++ adalah:

membuat tugas di mana Anda ingin menguji = vs ==

Tidak ada;

Keterbacaan tanda kurung keriting vs. misalnya Pascal awal-akhir

Dan kemudian ada semua file termasuk, makro, manajemen memori dll untuk membingungkan.

Jadi saya akan mengatakan C++ bukan bahasa terbaik untuk memulai - namun tidak ada keraguan bahwa itu bisa sangat berguna ketika Anda telah mempelajarinya.

Saya akan - seperti orang lain juga menyarankan - menggunakan C #, Java atau bahkan mungkin VB - dan IDE dengan sintaks yang baik sorot, debugger dll. untuk membantu mempermudah pemulihan dari kesalahan.

1
Rune Andersen

TIDAK. Ada begitu banyak hal yang dimiliki C++, yang membuat pemula sulit untuk memahaminya. Jangan masuk ke fallacie "semua bahasa pemrograman sama".

Mulailah dengan Basic atau Pascal, (abaikan barang-barang "mereka sudah usang"), dan kemudian, dengan C/C++/Java/C #/Perl. Atau jika Anda memiliki kesempatan, pertama dengan Logo & Karel, dan kemudian Basic atau Pascal.

P. Beberapa universitas & kolega memiliki kelas penggunaan & perbandingan Bahasa Pemrograman, dan kebetulan saya telah mengajar kelas itu ;-)

1
umlcat

Saya mulai dengan C++ di sekolah menengah. Saya mengambil salinan buku ini: C++ Cara Memprogram oleh Deitel dan Deitel . Buku ini cukup bagus.

Terus terang tidak ada jawaban benar atau salah di sini, saya pribadi menemukan bahwa C++ dapat dipahami. Saya mempelajarinya sampai ke OOP (saya tersandung pada "ini" yang sekarang saya tidak mengerti bagaimana saya tidak bisa mendapatkan itu tetapi apa pun). Cobalah, jangan berkecil hati. Jika Anda terjebak, periksa bahasa lain dan terus belajar yang baru. Idenya adalah bahwa ketika Anda melihat konsep yang sama dalam 2-3 bentuk yang berbeda Anda akan mengerti mereka lebih baik. Seperti saya katakan, konsep "ini "pointer membingungkan saya tetapi ketika saya melihat hal yang sama di Python (bukan nama diri), langsung masuk akal bagi saya karena saya memahaminya dalam C++. Belajarlah Java jika Anda bisa mengajar banyak perguruan tinggi, pelajari python atau Ruby karena ini adalah bahasa du jour dan jika Anda dapat menjelajahi lebih banyak niche)/hal baru seperti Clojure (dan semua lisps lainnya), Haskell, Scala ...

0
nkassis

Jika "cocok" berarti "mungkin", ya. Kalau untuk "baik", pasti tidak.

Dimungkinkan untuk menyukai, bahkan mencintai C++, tetapi untuk itu Anda lebih baik belajar beberapa bahasa dan bekerja beberapa dekade dengan basis kode busuk kehidupan nyata, dapatkan pengalaman tentang "membuat perangkat lunak nontrivial yang benar-benar berfungsi" - maka C++ akan memiliki pesona.

Tidak di awal ketika Anda masih perawan, bermain-main dengan masalah kecil, sederhana (tetapi seharusnya menarik dan menyenangkan).

Saya akan mulai dengan python, diikuti oleh SICP (skema), atau yang serupa. Mungkin terbalik atau disisipkan. Dengan itu Anda bisa pergi dan mengatasi masalah tersebut. Alih-alih melawan sistem, berjalan di lumpur yang dalam dan belajar semua jenis kebiasaan tidak logis dan alasan historis mereka.

Kemudian, ketika Anda sudah bisa memprogram jalan keluar dari kantong kertas, beralihlah ke logam kosong: pelajari cara-cara Majelis dan beberapa arsitektur, plus mungkin Knuth's Mix. Saya tidak bermaksud menghafal opcode atau melakukan banyak hal nyata, hanya untuk memahami memori, register, ALU, cache, interupsi, dan mulai membaca.

Kemudian dengan fondasi itu Anda dapat diekspos ke bahasa lain, termasuk C++. Mungkin ide yang bagus untuk menambahkan "sejarah dan evolusi bahasa" di antaranya.

0
Balog Pal

Anda dapat memilih bahasa apa saja untuk mempelajari dasar-dasar pemrograman. Saya belajar banyak hal dalam C/C++. tetapi 7 tahun kemudian, alat/bahasa diubah di sekolah saya dan mereka lebih suka Java/C #. bahasa hanyalah alat. Yang Anda butuhkan untuk menjadi lebih baik adalah fundamental. misalnya di MIT orang mempelajari dasar-dasar algoritma menggunakan python. mis Java mungkin baik untuk pemrograman web. tetapi C/C++ bagus untuk layanan dan aplikasi kinerja tinggi. Jadi itu tergantung situasi Anda.

0
sarat