Saya seorang pengembang perangkat lunak, berpengalaman dengan C # (pengalaman 5 tahun) bersama beberapa bahasa lainnya.
"Pekerjaan impian" saya bekerja di video game sebagai pengembang.
Sebagian besar pekerjaan membutuhkan pengetahuan tentang C ++, yang saat ini tidak saya miliki (kecuali untuk beberapa dasar-dasarnya).
Saya telah melihat-lihat, dan sebagian besar perusahaan game besar membutuhkan sesuatu selama 3-5 tahun pengalaman sebelumnya dengan C ++.
Pertanyaan saya adalah - rute apa yang baik untuk mencapai tingkat pengalaman yang diperlukan ini, yang berasal dari C #?
Saya telah memikirkan beberapa cara yang mungkin untuk melakukannya:
Dapatkan lebih banyak pengetahuan tentang C ++ dari buku. Berpartisipasi dalam proyek sumber terbuka yang ditulis dalam C ++. Apa yang akan menjadi cara terbaik untuk belajar C ++ dan memiliki pengalaman tingkat kerja dengannya, khususnya untuk industri game?
sumber
Jawaban:
Sebagai pengembang game, perhatian utama saya mempekerjakan seorang pria C # adalah kurangnya pengetahuan tingkat rendah.
Jadi, pertimbangkan sebuah proyek di mana pekerjaan Anda memerlukan optimasi tingkat rendah seperti mengatur ulang tata letak data kelas atau menulis ulang kode untuk mengambil keuntungan dari instruksi SIMD. Ambil game sumber terbuka C ++, optimalkan, dan posting peningkatan framerate di resume Anda.
Jika saya mewawancarai Anda, saya tidak akan terlalu peduli tentang C ++ di resume Anda dan lebih banyak tentang apakah Anda dapat menjawab pertanyaan wawancara C / C ++ / tingkat rendah saya. Saya akan coba-coba beberapa pertanyaan wawancara standar yang mungkin bermasalah dengan Anda (peringatan: Saya bukan pakar C #):
sumber
Apa yang Eric katakan. Saya juga akan menambahkan untuk menghindari "baru" di mana itu tidak perlu. Ini sangat umum di C # tetapi dianggap sebagai praktik buruk di C ++ 11 dan juga lebih lambat dari alokasi tumpukan dan lebih berbahaya karena Anda harus secara manual mengalokasikannya.
Saya juga akan berhati-hati dengan buku-buku tua, mereka mengajarkan praktik lama. Saya pribadi lebih suka forum / situs web yang dapat diandalkan, stackoverflow / isocpp.
sumber
new
" adalah rekomendasi yang benar-benar tidak masuk akal. Anda gunakannew
ketika Anda memiliki pointer. Jikaclass Derived : Base
, makaBase var = Derived();
itu ilegal, tetapiBase *var = new Derived();
legal. Jadi Anda perlu petunjuk untuk membuat polimorfisme bekerja dengan benar, banyak.Base var = Derived()
akan bekerja , tetapi itu akan diiris dan, tanpa Anda ketahui, informasi hilangvar
. Untuk memperbaiki masalah pemotongan, Anda bisa menggunakan pointer.