Saya telah memprogram selama 3-4 tahun sekarang dan merasa saya tidak bisa lagi disebut pemula, tetapi saya membaca beberapa pertanyaan di situs ini dan berpikir WTF yang mereka bicarakan? Saya merasakan hal yang sama ketika saya mengambil buku pemrograman saat ini.
Saya telah membaca beberapa buku pemrograman awal, beberapa di C / C ++ dan yang lainnya di game. Saya telah menulis beberapa hal yang lebih kompleks seperti AI yang sangat mendasar, serial dan antarmuka TCP / IP.
Saya berencana untuk menjadi programmer game, tetapi saya baru-baru ini menjadi agak tertarik pada sistem embedded setelah memiliki kesempatan untuk bekerja pada mereka (antarmuka serial).
Saya merasa sangat sulit untuk menemukan bahan untuk melanjutkan pembelajaran saya setelah menyelesaikan buku pendahuluan dan pemula karena tidak ada buku C ++ menengah yang dapat saya temukan.
Apa saran yang akan Anda berikan untuk tumbuh dan meningkatkan pengetahuan dan keterampilan saya? Sumber daya spesifik akan sangat dihargai.
Jawaban:
Jika Anda berbicara tentang C / C ++, maka Anda pasti bisa menggunakan beberapa pengalaman ekstra. Petunjuk pertama yang akan saya berikan adalah C dan C ++ adalah bahasa yang sama sekali berbeda . Sumber daya terbaik untuk belajar C ++ adalah StackOverflow- ada banyak orang di sana yang memiliki banyak pengalaman dan pengetahuan.
Hal berikutnya yang harus dilakukan adalah memulai proyek besar, seperti mencoba menulis mesin grafik 3D dalam API tingkat rendah seperti DirectX, dan ketika desain Anda gagal total seperti semua proyek pertama, maka Anda akan belajar sesuatu tentang bagaimana tidak untuk memprogram.
Anda dapat memeriksa tautan ini di StackOverflow untuk daftar besar buku bagus untuk belajar C ++.
sumber
Pertama-tama, tingkatkan latar belakang teori dasar Anda dalam apa pun yang belum Anda ketahui. Pelajari teorinya dan tulis beberapa contoh singkat.
Contoh latar belakang teori dasar meliputi:
Kemudian, pertimbangkan untuk belajar bahasa tambahan (misalnya Java atau C #). - Mempelajari bahasa tambahan membantu lebih baik di bawah pro dan kontra bahasa apa pun yang Anda gunakan dan membantu Anda mempelajari praktik terbaik yang mungkin tidak Anda sadari.
Selanjutnya pilih domain baru (pemrograman web, grafik komputer, pemrosesan gambar, visi komputer, akses data, ...). Pelajari teorinya dan tulis beberapa contoh singkat.
Selanjutnya buat contoh besar, yang merangkum aplikasi berlapis-lapis, menangani akses data, UI, dan domain tertentu yang telah Anda pilih. Beri penekanan pada arsitektur aplikasi (pastikan bagian-bagiannya digabungkan seringan mungkin).
Semoga, Anda akan belajar cara mempelajari pendekatan dan teknologi baru dan mengintegrasikannya dengan arsitektur yang baik.
Khusus untuk pemrograman game, saya sarankan memilih domain / teknologi berikut:
Edit:
Cara belajar:
sumber
Menggunakan C ++ (dalam kombinasi dengan C) misalkan Anda akan memiliki lebih banyak untuk belajar memahami WTF yang mereka bicarakan. C ++ adalah beberapa bahasa, beberapa lapis abstraksi yang hidup di tempat yang sama dan butuh banyak waktu untuk menjelajahinya sekali, lalu memahami apa yang baru saja Anda lihat.
Saya sudah menangani Anda dan saya masih belajar tentang bahasa-bahasa itu. Saya juga belajar banyak bekerja pada sistem embedded.
Ini saran saya:
Jangan menganggap Anda sudah tahu banyak tentang pemrograman. Kebanyakan pengembang mulai matang dalam pemrograman hanya setelah lebih dari 10 tahun berlatih di dunia nyata, dengan berbagai konteks dan jenis proyek, platform dll.
Anda baru memulai perjalanan Anda.
sumber
Berdasarkan minat Anda pada pemrograman dan permainan yang disematkan, saya juga akan merekomendasikan yang berikut ini - Anda dapat membaca dengan teliti daftar buku dari posting di atas untuk menemukan bahan sumber yang bagus tentang semua subjek ini. Satu buku yang saya temukan penting adalah The C ++ Standard Library: A Tutorial and Reference
Jika Anda tidak nyaman dengan dasar-dasar OOP - pelajari terlebih dahulu. Memahami dasar-dasar pewarisan dan enkapsulasi. Ketahui bagaimana berperilaku kata kunci virtual, publik / terlindungi dan pribadi, dan statis.
Nyaman menggunakan pointer dan referensi (dan umumnya lebih suka referensi). Pelajari dan gunakan konstruksi smart_ptr <> untuk mencapai manajemen memori "automagical".
Pelajari cara menggunakan templat C ++ - awalnya hanya sebagai tipe data wadah. Anda akan terus menemukan teknik baru dan lebih kuat yang dapat dilakukan templat C ++ melalui meta-pemrograman.
Pelajari STL: gunakan string, iostream, pengecualian, dan kelas-kelas penampung, dan pilih mereka daripada tipe data char *, FILE *, dan char [] level rendah kapan pun praktis.
Mulailah menggunakan bagian dari perpustakaan Boost - Saya sarankan Anda mempelajari pustaka asio dan utas mereka terlebih dahulu, mengingat minat Anda. Ini adalah basis sumber C ++ sumber terbuka yang sangat kuat, sumber terbuka, lintas platform yang memungkinkan Anda menulis kode berkualitas tinggi yang juga portabel. (Banyak tambahan pada standar inti C ++ berasal dari kontribusi Peningkatan)
Selamat bersenang-senang! Serius - pilih beberapa proyek hewan peliharaan untuk didaftar. Mungkin bermain-main dengan papan Arduino jika Anda suka proyek pemrograman tertanam.
Dapatkan pengalaman yang luas - jika Anda hanya menggunakan Windows / Visual Studio C ++, coba tulis beberapa kode untuk Linux / g ++, atau OS X / XCode (Anda dapat kode C ++ di Mac, atau Anda benar-benar dapat memperluas cakrawala dan pergi untuk Objective-C, untuk melihat bagaimana cabang lain dari bahasa OOP menangani hal-hal!)
sumber