Cara Pemula yang Optimal untuk C ++ / Qt

Pertanyaan yang sering diajukan oleh programmer pemula - bahan apa yang harus dibaca untuk meningkatkan level profesional mereka? Dalam bentuk paling umum ini, mustahil untuk menjawab pertanyaan ini. Itu tergantung pada pengetahuan dan keterampilan orang itu saat ini, pada spesialisasinya, pada tugas-tugas yang akan muncul sebelum dia di masa depan. Namun, saya akan mencoba menjawab pertanyaan ini untuk arah pemrograman yang paling saya fahami - membuat aplikasi desktop kompleks lintas platform. Aplikasi level dan kelas PhotoShop, VisualStudio, MS Word. Aplikasi semacam itu, di mana, dari sudut pandang programmer, ada tugas yang lebih beragam:

  • Rendering dari "kantor" GUI klasik seperti tombol, progress bar, widget, animasi.
  • Merender grafik yang tidak standar seperti terus bergerak grafik dari jutaan titik.
  • Bekerja dengan basis data
  • Jaringan
  • Bekerja dengan registry sistem operasi
  • Bekerja dengan printer
  • Eksekusi cepat (termasuk paralel) dari tugas komputasi yang kompleks.
  • Dan masih banyak lagi lainnya.

Tidak banyak rangkaian platform dan kerangka kerja yang memungkinkan Anda membangun aplikasi seperti itu secara efektif. Pada suatu waktu, setelah mencoba berbagai platform, para programmer di organisasi saya dengan percaya diri memutuskan tautan berikut: Bahasa C ++ dan platform Qt. Seperti waktu telah ditunjukkan, pilihan ini tidak gagal. Dengan memperhatikan pilihan ini, saya akan mulai mengemukakan serangkaian materi yang saya rekomendasikan untuk dipelajari oleh para programmer pemula jika mereka ingin menjadi guru sejati dalam arah ini.

Set bahan ini dipelajari pada satu waktu oleh penulis teks ini, rekan-rekan yang lebih tua dan lebih muda, dan melewati beberapa iterasi untuk menjadi optimal. Eksperimen telah mengungkapkan materi yang studinya memberikan peningkatan maksimum dalam efisiensi kerja dengan minimum, meskipun bukan waktu pelatihan yang singkat. Tentu saja, karena kita berbicara tentang optimalitas di bidang pendidikan, maka sentuhan subjektivitas tidak dapat dihindari di sini, tetapi saya mencoba menguranginya.

Jadi untuk siapa teks ini? Jika Anda seorang lulusan universitas yang memutuskan untuk menghubungkan hidupnya dengan pemrograman, maka teks ini cocok untuk Anda. Percayalah, Anda akan menghemat banyak waktu jika Anda mengikuti saran saya di awal karier Anda. Jika Anda lulus dari sekolah menengah beberapa tahun yang lalu, bekerja sebagai programmer, tetapi masih belum menyelesaikan masalah serius, maka teks ini cocok untuk Anda. Anda dapat tumbuh menjadi tugas yang sangat serius, yang tidak akan memalukan untuk diceritakan pada keturunan. Jika Anda telah bekerja sebagai programmer selama sekitar 5 tahun sekarang, tetapi Anda merasa bahwa karena suatu alasan karier Anda "tidak akan", dan bagi mereka yang duduk di dekatnya itu "pergi", maka teks ini adalah untuk Anda. Jika Anda seorang programmer yang berpengalaman dan mulai mengikuti jalur seorang pemimpin, maka cukup baca teks ini dan bagikan di antara bawahan. Dan jika Anda seorang guru,yang telah mengalami segalanya dan yang sulit untuk mengejutkan dengan sesuatu, Anda cukup membaca teks ini untuk nastalgit di sepanjang jalan yang dilalui, mengingat kesalahan atau keberhasilan masa lalu.

Jadi, apa cara optimal ini dari sudut pandang saya? Sangat sederhana - untuk mempelajari dalam urutan yang diperlukan set buku-buku mendasar. Buku tidak banyak, tetapi tidak sedikit. Mereka yang mengandalkan freebie dapat segera menutup teks ini. Buku-buku perlu dibaca, menggabungkan ini dengan kegiatan praktis, yaitu, dengan karya seorang programmer pemula. Sebagai aturan, programmer bahkan di tempat kerja memiliki beberapa periode waktu yang tidak diisi oleh pekerjaan, dan membaca buku pada interval ini adalah hal yang sakral. Jika celah ini tidak ada, maka buat aturan untuk membaca di malam hari. Jika di tempat kerja itu bekerja, tetapi tidak ada waktu lain, maka tutup teks dan jangan menyiksa diri sendiri, tetapi jangan menangis tentang gaji yang tidak naik.

Mengapa buku? Mengapa fokus pada buku? Kenapa tidak internet, adakah yang ada di sana? Memang benar bahwa Anda harus menggunakan Internet dalam perjalanan belajar, dan cukup sering. Dan isi semua celah dengan Internet. Tetapi buku-buku yang ditawarkan adalah dasar di mana Anda akan belajar bagaimana menavigasi dunia pemrograman. Dan Anda akan dapat lebih jauh menemukan jawaban untuk pertanyaan apa pun secara mandiri, baik di buku-buku yang belum dibaca, dan di Internet. Saya telah memilih satu set buku sedemikian rupa untuk membentuk basis ini. Basis yang percaya diri dan solid yang bertahan selama bertahun-tahun. Tidak sampai akhir hayat, tapi tetap saja.

Berapa lama untuk menguasai semua buku ini? Pertanyaan bagus, dan kata kuncinya di sini adalah menguasai. Perlu tidak hanya membaca secara diagonal, tetapi untuk menguasainya. Yaitu, menerapkan pengetahuan ini, menerjemahkannya ke dalam kode. Kembali ke buku, baca kembali dengan memahami teks yang baru. Maka itu akan menjadi pengembangan. Tetapi hanya dengan demikian akan menjadi akumulasi dari pangkalan yang akan menyelesaikan masalah. Jadi jam berapa sekarang? Jawaban saya adalah 5 tahun. Panjang? Ya, tidak cepat. Tetapi pengalaman menunjukkan bahwa itu tidak mungkin lebih cepat. Apakah Anda ingin selama enam bulan atau satu tahun? Tidak, itu tidak akan berhasil, bahkan jika Anda adalah Einstein. Tidak ada yang berhasil. Ini adalah fitur pemrograman pada umumnya, dan bahasa C ++ pada khususnya. Seperti kata kolega saya yang lebih berpengalaman, bahasa C ++ bukan untuk yang bengkok, dan penciptaan sistem besar bukan untuk yang berkemauan lemah. Jadi jika Anda punya banyak waktu atau tidak mau,untuk menjadi karyawan yang berpengalaman dan dibayar tinggi, cari di tempat lain. Misalnya, membuat situs templat adalah hal yang jauh lebih sederhana daripada membuat aplikasi desktop yang kompleks. Desainer tata letak dan enikeyshchiki - halo!

Jadi, mari kita mulai daftar buku. Total volume mereka adalah 5150 halaman. Jika memungkinkan, saya akan mengomentari mengapa saya merekomendasikan buku ini dan bukan yang lain, atau menyarankan alternatif.

  1. ++ 600 . , « , C++: ». 800 . « : ++». , , . , – ! ! , . 2 – , . ( ), . , , , double . , , ! , . , 800 . . – ? , , , ++ (++11, ++14, ++17, ++20), – . , , , .

    , ? C++ . , . (, ), « » , , «». ! , – .
  2. « . C++. 55 ». 300 . , : « C++. 50 », « C++. 35 », « ++. 35 ». – , «55 ». , . , , , . . , – .
  3. «Qt 5.10. ++. . ». 1072 . – «Qt 4. GUI C++. , ». , , : , – , ( ). , GUI-, 5 000-30 000 . - — .

    2 3 , , – , .
  4. « : ++. ». 263 . ++, , . .
  5. « . . ». 350 . – , , , . , . – . , , - . , , .
  6. . 3 , -. , , . , . , , « » .

    , ! « , ». 406 . 6. , ( pdf), . , « »: «, , : - . ». . « », ; ; SmallTalk, « »; pdf, , , ( – , !)

    , «, , : ». , – Java ++.
  7. «. . , .». 720 . , – GUI, – . – «: , ». , 2005, 2018.
  8. « , . Git ». 493 . , , Git, , . , , Git, . , , Git. . , . Git, . , , . , , , Git , .
  9. ! . – . , . , , . , . .

    , « , : ++». 323 . , – . , , . , , . C++17, C++14, C++11. , , . , , ! , .

    – « : ++ . ». . (, ) . , , - .
  10. « , . . , ». 432 . , ( ) , , , . - . – « . . ., ». , , , «» .

Itu saja! Pemula, lakukanlah!

Untuk akhirnya menandai i, Anda dapat melihat ke belakang dan bertanya - mengapa tidak ada penulis terkenal seperti McConnell, Larman, Butch, Fowler dan lainnya dalam daftar buku? Hanya karena saya tidak menganggap studi buku-buku dari para penulis ini sebagai cara terbaik untuk mengembangkan pemula di dunia C ++ / Qt. Dan ternyata 10 buku dengan volume total 5150 halaman, dan untuk menambahkan buku yang tidak begitu sukses, bagi saya tampaknya terlalu banyak.

All Articles