Sejak saya menemukan pemrograman lima tahun lalu, saya telah melakukan banyak hal. Saya telah belajar banyak bahasa dan teknologi pemrograman dan mencoba banyak hal menarik. Saya telah menulis game, baik konsol maupun dengan grafik, konsol, dan aplikasi berjendela yang berjalan di desktop, aplikasi web CRUD, database file flat saya sendiri (jelek) berbasis XML XML. Selain Web dan desktop, saya sudah mencoba pengembangan ponsel dengan Android tetapi tidak menikmatinya, jadi saya menghentikannya. Saya baru saja menyelesaikan proyek Web saya dan saya sedang belajar pemrograman fungsional sekarang (Haskell).
Tapi saya belum pernah mencoba-coba pemrograman sistem sebelumnya. Gagasan membangun perangkat lunak (saya bahkan tidak yakin apakah itu istilah yang tepat untuk menggunakannya) pada tingkat rendah yang berinteraksi dengan sistem operasi tampaknya menarik. Masalahnya adalah, saya tidak yakin bagaimana tepatnya memulai, dan perlu lebih banyak contoh tentang apa yang saya lakukan dengan ini.
Haruskah saya mulai dengan mempelajari API Win32? Saya tahu beberapa C ++ karena saya menggunakannya untuk membuat beberapa aplikasi dan game konsol, tetapi belum menggunakannya dalam beberapa tahun. Apakah itu cara untuk pergi? Juga, bagaimana dengan C? Saya berencana untuk belajar lebih banyak tentang C (menggunakan buku K&R) sebelum musim panas berakhir dan kuliah dimulai. Saya ingin mendapatkan awal yang baik sebagai mahasiswa baru dengan latar belakang pemrograman yang solid.
Jawaban:
Saya percaya Anda membuat pemrograman sistem bingung dengan pengembangan aplikasi . Pemrograman sistem akan lebih sesuai dengan penulisan sistem operasi, tidak berinteraksi dengannya. Saya mungkin akan menyarankan memulai dengan pengembangan aplikasi biasa (pada Windows yang akan menjadi WinAPI ), kemudian beralih ke mengeksplorasi subsistem yang Anda temukan menarik secara mendalam.
K&R jelas merupakan panduan pasti tentang C, dan jika Anda akan menargetkan aplikasi Windows, saya sangat merekomendasikan untuk mengambil salinan Programming Windows .
Jika Anda benar-benar tertarik dengan interaksi "tingkat rendah", saya mungkin menyarankan tutorial Win32 Assembly dari Iczelicon ( MASM hebat, dan juga gratis).
Jika Anda berhasil memahami bahkan sebagian kecil dari informasi itu sebelum tahun pertama Anda kuliah, Anda akan menjadi tahun-tahun depan mungkin hampir semua orang.
sumber
Pertimbangkan untuk menulis proyek tertanam kecil pada pengontrol tertanam seperti Arduino. Ini adalah cara yang bagus untuk memulai proses pemrograman sistem pembelajaran, karena memulai Anda pada tingkat dasar dan memungkinkan Anda untuk berkembang ke dalamnya.
sumber
Jika Anda tertarik pada pemrograman sistem, tidak ada yang lebih baik daripada yang bekerja pada sistem operasi (baik pada inti kernel OS atau pada driver perangkat terkait)
Karena itu saya menyarankan untuk terlibat dalam pengembangan Linux - ini adalah komunitas yang sangat baik untuk belajar tentang OS internal. Saya belajar banyak tentang sistem operasi hanya dengan mengikuti daftar diskusi linux-kernel ....
Ini juga merupakan kesempatan untuk mengambil proyek nyata dan meningkatkan keterampilan Anda. Sebagai perekrut pengembang perangkat lunak, saya benar-benar memperhatikan ketika seseorang berkontribusi pada proyek open source - hampir selalu merupakan indikator positif dari keterampilan dan komitmen!
sumber