Ilmu Komputer VS Rekayasa Perangkat Lunak - Jurusan Mana Yang Terbaik Untuk Anda?

Hai semuanya! Nama saya YK, dan saat ini saya menjalankan CS Dojo, saluran YouTube pendidikan pemrograman dengan 200.000+ pelanggan. Saya juga sebelumnya adalah pengembang perangkat lunak di Google.

Dua dari pertanyaan paling umum yang ditanyakan audiens saya adalah:

“Apa perbedaan antara jurusan Ilmu Komputer dan Rekayasa Perangkat Lunak?”

Dan…

“Haruskah saya memilih Ilmu Komputer atau Rekayasa Perangkat Lunak jika saya ingin menjadi insinyur perangkat lunak?”

Pada artikel ini, saya akan menjawab ini dan memberi Anda analisis singkat saya sendiri tentang jurusan ini.

Gambaran singkat dari dua jurusan ini

  • Ilmu Komputer adalah studi tentang bagaimana komputer bekerja, sebagian besar dari perspektif teoritis dan matematika.
  • Anda harus memilih Ilmu Komputer jika Anda menyukai matematika, logika, atau jika Anda ingin terjun ke bidang khusus dalam Ilmu Komputer seperti kecerdasan buatan, pembelajaran mesin, keamanan, atau grafik.
  • Rekayasa Perangkat Lunak adalah studi tentang bagaimana sistem perangkat lunak dibangun, termasuk topik-topik seperti manajemen proyek, jaminan kualitas, dan pengujian perangkat lunak.
  • Anda harus memilih Rekayasa Perangkat Lunak jika Anda lebih tertarik dengan pendekatan langsung, dan jika Anda ingin mempelajari siklus hidup keseluruhan tentang bagaimana perangkat lunak dibuat dan dipelihara.
  • Baik Ilmu Komputer dan Rekayasa Perangkat Lunak mengajarkan dasar-dasar pemrograman dan ilmu komputer, sehingga Anda dapat memilih salah satu untuk menjadi pengembang perangkat lunak.

Untuk memahami perbedaan antara jurusan Ilmu Komputer dan Rekayasa Perangkat Lunak, mari kita lihat kurikulum masing-masing di University of Waterloo di Kanada.

Saya memilih University of Waterloo karena memiliki salah satu program ilmu komputer terbaik di Amerika Utara.

Prospek pekerjaan

Mari kita bandingkan dulu jenis pekerjaan dan magang yang bisa Anda dapatkan melalui setiap program.

Untungnya, situs web Universitas Waterloo menyediakan beberapa contoh.

Untuk setiap jurusan, berikut adalah beberapa gelar yang dimiliki alumni, dan di mana mereka bekerja:

Ilmu Komputer

  • Pengembang Web / Arsitek, The Steele Group
  • Programmer, Harry Rosen Inc.
  • Pengembang Seluler / Cloud, Clearbridge Associates Limited
  • Rekayasa Perangkat Lunak, General Dynamics Kanada
  • Rekayasa Pengembangan Perangkat Lunak, Microsoft
  • Insinyur Agile, Labs Penting
  • Analis Bisnis, Perusahaan Ban Kanada
  • Advokat Pengembang, Google
  • Manajer Produk, Dropbox

Rekayasa Perangkat Lunak

  • Pengembang Perangkat Lunak, Tagged Inc
  • Pengembang Perangkat Lunak, IBM Kanada
  • Manajer Perangkat Lunak, Arius Software Corporation
  • Insinyur Perangkat Lunak, VistaPrint USA
  • Insinyur Perangkat Lunak, Harris Corporation
  • Pengembang Perangkat Lunak, Accenture Inc.
  • Manajer Produk Teknis - Desain & Pengembangan Perangkat Lunak, NexJ Systems Inc
  • Konsultan, Solusi Keuangan PureFacts
  • Konsultan Implementasi, Desire2Learn

Seperti yang Anda lihat, tidak ada perbedaan besar antara jenis pekerjaan yang bisa Anda dapatkan.

Pekerjaan yang paling umum didapatkan lulusan setelah mendapatkan gelar Ilmu Komputer atau Rekayasa Perangkat Lunak adalah Pengembang Perangkat Lunak atau Insinyur Perangkat Lunak.

Ada juga opsi terkait lainnya, seperti Manajer Produk, Analis QA, dan Konsultan Teknologi. Pilihan Anda akan tergantung pada keahlian khusus Anda.

Kursus tahun pertama:

Sekarang, mari kita lihat kursus wajib setiap program. Mari kita bandingkan dulu beberapa kursus yang perlu Anda ambil di tahun pertama Anda.

Ilmu Komputer

  • CS 135 - Merancang Program Fungsional
  • CS 136 - Desain Algoritma dan Abstraksi Data
  • MATEMATIKA 135 - Aljabar
  • MATEMATIKA 136 - Aljabar Linier 1
  • MATEMATIKA 137 - Kalkulus 1
  • MATEMATIKA 138 - Kalkulus 2
  • Ditambah beberapa pilihan

Rekayasa Perangkat Lunak

  • CS 137 - Prinsip Pemrograman
  • CS 138 - Abstraksi dan Implementasi Data
  • MATEMATIKA 115 - Aljabar Linear untuk Teknik
  • MATEMATIKA 117 - Kalkulus 1 untuk Teknik
  • MATEMATIKA 119 - Kalkulus 2 untuk Teknik
  • MATEMATIKA 135 - Aljabar Matematika Kehormatan
  • ECE 105 - Fisika Teknik Elektro 1
  • ECE 106 - Listrik dan Magnet
  • ECE 124 - Sirkuit dan Sistem Digital
  • ECE 140 - Sirkuit Linear
  • SE 101 - Metode Rekayasa Perangkat Lunak

Seperti yang Anda lihat, kursus tahun pertama juga cukup mirip. Keduanya mencakup beberapa kursus ilmu komputer dasar, dan beberapa kursus matematika dalam aljabar linier dan kalkulus.

Satu-satunya perbedaan utama adalah Rekayasa Perangkat Lunak memiliki komponen fisika dan teknik kelistrikan tambahan, sedangkan Ilmu Komputer memiliki beberapa pilihan lagi.

Kursus setelah tahun pertama:

Bagaimana dengan mata kuliah wajib dan pilihan setelah tahun pertama? Mari kita lihat beberapa contoh di sini:

Ilmu Komputer:

  • MATEMATIKA 239 Pengantar Kombinatorik
  • STAT 230 Probabilitas
  • STAT 231 Statistik
  • Struktur Data CS 240 dan Manajemen Data
  • CS 241 Foundation dari Program Berurutan
  • CS 245 Logika dan Komputasi
  • CS 246 Pengembangan Perangkat Lunak Berorientasi Objek <- tidak diperlukan untuk jurusan Rekayasa Perangkat Lunak
  • CS 251 Organisasi dan Desain Komputer
  • Algoritma CS 341
  • Sistem Operasi CS 350
  • Ditambah, beberapa pilihan Ilmu Komputer

Rekayasa Perangkat Lunak:

  • CHE 102 Kimia untuk Insinyur
  • Komputer Digital ECE 222 (termasuk bahasa assembly)
  • ECE 358 Jaringan Komputer
  • MATEMATIKA 213 Matematika Tingkat Lanjut untuk Insinyur Perangkat Lunak
  • MATEMATIKA 239 Pengantar Kombinatorik
  • STAT 206 Statistik untuk Rekayasa Perangkat Lunak
  • MSCI 261 Ekonomi Rekayasa: Manajemen Keuangan untuk Insinyur
  • CS 241 Foundation dari Program Berurutan
  • Struktur Data CS 240 dan Manajemen Data
  • CS 247 Software Engineering Principles <- tidak diperlukan untuk jurusan Ilmu Komputer
  • Algoritma CS 341
  • CS 349 User Interfaces <- tidak diperlukan untuk jurusan Ilmu Komputer
  • CS 343 Concurrent and Parallel Programming <- tidak diperlukan untuk jurusan Ilmu Komputer
  • CS 348 Pengantar Manajemen Database
  • SE 212 Logika dan Komputasi
  • Sistem Operasi SE 350
  • SE 465 Pengujian Perangkat Lunak dan Jaminan Kualitas
  • SE 464 Desain dan Arsitektur Perangkat Lunak
  • SE 463 Spesifikasi dan Analisis Kebutuhan Perangkat Lunak
  • SE 490 Proyek Desain
  • Plus, beberapa mata kuliah pilihan ilmu komputer dan teknik kelistrikan

Saya telah memberi Anda BANYAK informasi untuk dicerna di sini. Tapi inilah ringkasan saya:

Dalam hal persyaratan matematika dan statistik, Ilmu Komputer dan Rekayasa Perangkat Lunak hampir sama. Mereka mencakup kombinatorik, probabilitas, dan statistik.

Persyaratan inti ilmu komputer juga serupa, mulai dari algoritme, struktur data, dan sistem operasi.

Perbedaan utamanya adalah:

  • Rekayasa Perangkat Lunak memiliki lebih banyak persyaratan dalam teknik kelistrikan dan dasar-dasar rekayasa perangkat lunak, seperti pengujian perangkat lunak, desain, dan spesifikasi persyaratan perangkat lunak.
  • Ilmu Komputer memungkinkan lebih banyak pilihan dalam kursus ilmu komputer tingkat yang lebih tinggi. Anda dapat memilih dari berbagai topik seperti keamanan, dasar-dasar rekayasa perangkat lunak, visi komputer, pembelajaran mesin, dan manajemen basis data.

Jadi, jurusan mana yang harus Anda pilih?

Saya pikir itu sebagian besar tergantung pada preferensi Anda. Pendeknya:

  • Anda harus memilih Ilmu Komputer jika Anda menyukai matematika, logika, atau jika Anda ingin terjun ke bidang khusus dalam Ilmu Komputer seperti kecerdasan buatan, pembelajaran mesin, keamanan, atau grafik.
  • Anda harus memilih Rekayasa Perangkat Lunak jika Anda lebih tertarik pada pendekatan langsung, dan jika Anda ingin mempelajari siklus hidup keseluruhan tentang bagaimana perangkat lunak dibuat dan dipelihara.

Tapi tunggu - lalu yang mana? Jurusan mana yang lebih baik jika Anda ingin menjadi insinyur perangkat lunak?

Ini pendapat saya. Di universitas khusus ini (Universitas Waterloo), dengan seperangkat persyaratan program khusus ini, Ilmu Komputer adalah jurusan yang lebih baik jika Anda ingin menjadi insinyur perangkat lunak.

Hanya untuk kesederhanaan, anggaplah Anda berharap mendapatkan pekerjaan dengan bayaran tertinggi (~ $ 100.000 USD / tahun) sebagai insinyur perangkat lunak di Amerika Utara. Pekerjaan ini biasanya dilakukan di perusahaan perangkat lunak besar (seperti Microsoft, Google, Amazon, dll.) Atau di perusahaan berukuran sedang dan berkembang tinggi (seperti Dropbox, Lyft, Snapchat, Pinterest, dll.).

Biasanya, apa yang mereka cari dalam calon insinyur perangkat lunak adalah kemampuan untuk menulis kode yang solid dan membangun proyek yang menarik, serta dasar-dasar ilmu komputer termasuk struktur data dan algoritme.

Saya pikir cara terbaik untuk mengembangkan keahlian ini adalah dengan mempelajari dasar-dasar ilmu komputer dengan cepat, dan menghabiskan waktu Anda sendiri untuk berlatih memecahkan masalah dan menulis kode.

Berdasarkan kurikulum untuk Rekayasa Perangkat Lunak dan berdasarkan pada kesibukan siswa teknik secara umum, saya pikir akan lebih sulit untuk melakukan ini dengan Rekayasa Perangkat Lunak daripada dengan Ilmu Komputer.

Manfaat lain dari program Ilmu Komputer khusus ini adalah memungkinkan lebih banyak pilihan ilmu komputer. Ini bagus juga karena tergantung pada apa yang diminati di pasar kerja, Anda akan dapat menyesuaikan kursus Anda. Misalnya, jika pengembangan aplikasi seluler dibutuhkan, Anda dapat mempelajarinya. Dan jika komputasi paralel dibutuhkan, Anda dapat fokus pada hal itu.

Saya yakin ada beberapa manfaat mempelajari dasar-dasar rekayasa perangkat lunak (manajemen proyek, desain, pengujian, dll.). Tetapi saya pribadi lebih suka mengambil fleksibilitas daripada serangkaian keterampilan yang telah ditentukan sebelumnya. Itu sebabnya saya pikir Ilmu Komputer adalah jurusan yang lebih baik untuk menjadi insinyur perangkat lunak dengan kurikulum khusus ini.

Tentu saja, itu hanya pendapat saya, dan ini hanya satu universitas tertentu. Saya ingin mendengar pendapat Anda dan seperti apa pengalaman Anda jika Anda mengambil jurusan Ilmu Komputer atau Teknik Perangkat Lunak. Tolong beri tahu saya di komentar di bawah.

Beberapa catatan

Catatan 1: Universitas yang berbeda memiliki persyaratan yang berbeda untuk dua jurusan ini. Artikel ini seharusnya menjadi titik awal yang baik, tetapi Anda tetap harus melihat persyaratan program di universitas yang Anda minati.

Catatan 2: Beberapa universitas bahkan tidak memiliki jurusan Teknik Perangkat Lunak. Misalnya, University of British Columbia di Vancouver memiliki gelar Ilmu Komputer dan Teknik Komputer, tetapi tidak memiliki gelar Rekayasa Perangkat Lunak. Tetapi mereka memiliki konsentrasi rekayasa perangkat lunak dalam program Ilmu Komputer mereka, serta dalam Teknik Komputer.

Jika universitas yang Anda minati tidak memiliki jurusan Teknik Perangkat Lunak, saya akan memilih Ilmu Komputer jika Anda ingin menjadi pengembang perangkat lunak. Teknik Komputer lebih fokus pada perangkat keras daripada Ilmu Komputer atau Rekayasa Perangkat Lunak, jadi tidak terlalu terkait langsung dengan pekerjaan pengembang perangkat lunak pada umumnya.

Dan inilah sumber utama yang saya gunakan:

  • Ilmu Komputer di Waterloo
  • Rekayasa Perangkat Lunak di Waterloo

Terima kasih telah membaca, dan semoga berhasil memilih universitas dan jurusan Anda! ?