Kami memiliki dosen tamu di sekolah kami, ia bersinggungan dengan mereka yang lulus dan tidak sampai pada tingkat keterampilan yang ia harapkan yaitu. pengetahuan tentang satu bahasa besar yang dikompilasi seperti Java, C ++ atau C #, satu bahasa scripting seperti Python atau Ruby, satu kerangka kerja web. Apa keterampilan lain yang menurut Anda harus benar-benar penting untuk siswa yang lulus?
9
Jawaban:
Sejauh ini, saya akan mengatakan keinginan untuk belajar. Perguruan tinggi tidak benar-benar dimaksudkan untuk memberi Anda keterampilan yang Anda butuhkan untuk menjadi seorang programmer. Ini dimaksudkan untuk mengajarkan Anda keterampilan yang Anda butuhkan untuk mempelajari keterampilan itu.
sumber
Lulusan baru membutuhkan lebih dari sekadar keinginan untuk belajar, mereka membutuhkan obsesi belajar, pemahaman tentang cara belajar, dan landasan yang kuat dalam realitas perangkat lunak. Saya biasanya tidak peduli bahasa apa yang Anda ketahui, tetapi setiap junior harus:
Pahami sejarah . Ilmu komputer adalah bidang yang diteliti dengan baik, dengan banyak masalah terpecahkan. Mengetahui fakta ini membuka pintu untuk belajar dari apa yang datang sebelum Anda. Bahkan mengetahui bahwa ada sejarah yang kaya untuk menambang pengetahuan dari lebih dari banyak lulusan grok. Ini termasuk hal-hal seperti notasi O besar, sejarah algoritma, prinsip-prinsip para nabi (Knuth, K&R, Hofstdater, dll.), Dan praktik serta pola yang diterima secara umum.
Ketahuilah bahwa itu bisa diselesaikan . Saya selalu terkejut ketika pengembang bingung dengan masalah. Bagian dari belajar untuk belajar adalah prinsip sederhana bahwa masalah selalu mudah dipecahkan. Setelah Anda mengetahui hal ini, itu membingkai pemikiran Anda untuk menemukan jawaban yang waras.
Memahami dekomposisi . Tidak hanya masalah yang dapat dipecahkan, tetapi jalan untuk melakukannya adalah sesederhana membagi dan menaklukkan. Kurangi masalah menjadi komponen yang lebih sederhana, dan jawaban Anda akan selalu muncul dengan sendirinya.
Tahu cara mengukur . Selain bisa menguraikan masalah, pengembang baru perlu tahu cara mengumpulkan fakta tentang masalah ini. Berapa lama? Seberapa besar? Seberapa cepat? Berapa banyak? Fakta sederhana adalah langkah menuju pemahaman dan pemikiran objektif. Membuat asumsi tanpa fakta adalah cara mudah tersesat di ruang masalah.
Jadilah objektif . Semua masalah dapat diuraikan, diukur, dan dipahami secara sederhana. Masalah yang tidak dapat dipahami hanya membutuhkan dekomposisi, pengukuran, dan pemahaman tambahan. Tidak ada gunanya marah atau frustrasi, juga tidak produktif untuk berdebat tentang teori atau menyalahkan tempat. Setiap perilaku atau keyakinan irasional yang terkait dengan proses penyelesaian masalah adalah racun, membuat solusi sangat sulit ditemukan.
Lebih suka pola dan prinsip . Anda akan menemukan lusinan cara yang tepat untuk melakukan berbagai hal, bahasa, model pemrograman, arsitektur komputer, dan bahkan metode teknik. Tidak ada satu cara yang benar, tetapi ada konsep dasar yang kuat yang dapat Anda terapkan berulang kali. Belajarlah untuk melihat pola-pola ini, karena akan memandu pembelajaran dan pemikiran Anda setiap langkah.
sumber
sumber
Sebagai majikan, saya hanya akan mempekerjakan orang sebagai programmer yang:
Dalam pengalaman saya, kurang dari 5% lulusan ilmu komputer yang melamar pekerjaan pemrograman sebenarnya memiliki keterampilan ini, pada tingkat dasar. Ini adalah keterampilan minimum yang diperlukan untuk berguna secara komersial, dan yang penting, tidak semua orang mampu mempelajari keterampilan ini.
Bagus lainnya untuk dimiliki adalah:
Ini membuat integrasi mereka dengan tim pengembangan yang ada lebih mudah, tetapi merupakan mata pelajaran yang biasanya dapat diajarkan di tempat kerja.
sumber
Saya pernah memiliki tim yang saya "wariskan" dengan sebagian besar staf yang baru lulus dan saya memiliki pengalaman bahwa mereka yang melakukan pemrograman nyata "di samping" belajar di sana (untuk mendapatkan uang tambahan) adalah anggota tim yang paling cakap. Karenanya pengalaman adalah kuncinya dan hanya sedikit bedanya bahasa apa.
Namun jika Anda mencari apa yang dicari oleh perekrut (di semua situs perekrut umum seperti jobserver.com dll.) Menarik untuk mengamati bahwa ada banyak yang diminta untuk C ++, C #, Java tetapi juga ada yang lain dicari dan juga hal-hal "eksotis" seperti COBOL masih ada.
sumber
Proses pembelajaran dalam profesi ini tidak pernah berakhir. Seseorang harus terus-menerus belajar dan meningkatkan dirinya sendiri, jika tidak, ia "gagal" dari permainan dengan sangat cepat.
sumber
Jawaban lainnya bagus, tetapi saya akan mengatakan keterampilan # 1 yang diabaikan di universitas tampaknya adalah rekayasa perangkat lunak yang sebenarnya .
Kelas dasar untuk mengajar OOP dan bahasa seperti Jawa sangat bagus, tetapi pada tahun ke-3 dan ke-4 mengapa para siswa (setidaknya di universitas lokal saya) menulis kompiler dan sistem operasi alih-alih belajar bagaimana mengidentifikasi dan membuat arsitektur yang baik, bagaimana untuk membedah persyaratan dan membuat dari itu daftar spesifikasi teknis, dan mungkin yang paling penting, apa perbedaannya antara kode yang baik yang bekerja dan kode yang buruk yang bekerja.
Sepertinya universitas kami hampir ingin membuat kode alih-alih insinyur perangkat lunak . Saya tidak akan pernah mempekerjakan seseorang yang tidak menunjukkan keterampilan / bakat di bidang teknik.
sumber