Kita semua pernah mendengarnya; setiap kali ada diskusi tentang lulusan CS yang memiliki keterampilan pengembangan yang buruk seseorang akhirnya berkata,
Ilmu komputer bukanlah rekayasa perangkat lunak.
Masalah yang saya lihat adalah bahwa pemrograman dan pengembangan perangkat lunak yang diajarkan dalam kursus CS. Mereka hanya diajarkan secara buruk. Jika itu diajarkan, mengapa tidak mengajarkannya dengan benar pertama kali? *
Jadi saya ingin melihat apa pendapat tentang 2 pertanyaan:
Apakah argumen CS! = SE merupakan alasan atau alasan untuk tidak mengajarkan keterampilan pemrograman dengan benar.
Terlepas dari jawaban Anda untuk pertanyaan 1; jika Anda berada dalam posisi yang mahakuasa untuk membuat keputusan seperti itu: apakah Anda akan memaksakan penekanan pada pengajaran pemrograman yang tepat dalam kursus CS?
*. Saya memiliki kecurigaan, berdasarkan bukti anekdotal yang saya peroleh selama pendidikan, bahwa sebagian besar akademisi di lapangan tidak harus menulis kode untuk dipelihara dan tidak memelihara kode, dan sebagai hasilnya tidak memiliki pengetahuan / keterampilan untuk mengajarkannya secara efektif.
sumber
Jawaban:
Saya tidak berpikir itu adalah copout, tetapi lebih merupakan pernyataan bahwa ilmu komputer bukan rekayasa perangkat lunak, itu bukan pemrograman - itu, well, ilmu komputasi formal. Intinya, ini matematika (pada kenyataannya, banyak program CS dimulai sebagai program matematika terapan).
Saya pikir masalahnya lebih pada industri daripada akademisi. Industri melihat gelar CS terdaftar pada resume dan berpikir, "Bagus, orang ini baik dengan komputer," dan mempekerjakannya untuk melakukan apa pun yang terkait dengan komputer: TI, pemrograman, pengembangan perangkat lunak, apa pun. Hal-hal itu tidak selalu terletak pada bidang keahlian lulusan CS. Pada gilirannya, banyak orang yang suka membuat komputer atau bermain videogame memasuki program CS yang berharap melakukan hal-hal semacam itu, dan mendapatkan kejutan kasar; yaitu, banyak siswa yang masuk ke CS tidak benar-benar berada di sana, dan akan lebih baik dalam program gelar yang lebih bertarget.
Kedua, ada waktu yang sangat terbatas untuk mengajar CS - subjek yang sangat luas - dalam kurikulum sarjana yang khas. Kurikulum tingkat sarjana saya memiliki 8 kursus CS (untuk BA) atau 12 kursus CS (untuk gelar BS), ditambah semua kursus matematika yang diperlukan. Itu tidak banyak waktu untuk mengajar CS dan matematika dan pemrograman dan rekayasa perangkat lunak, jadi pada titik tertentu Anda harus memutuskan apa yang penting, dan apa yang dapat diambil sendiri oleh siswa.
Poin terakhir itu penting: Saya pikir seorang siswa yang baik - dalam bidang apa pun - akan mengeksplorasi ide-ide mereka sendiri. Saya memiliki gelar CS, tetapi saya pikir saya keluar dari perguruan tinggi sebagai pengembang yang layak, karena saya belajar dan menulis perangkat lunak sendiri . Perguruan tinggi tidak semua tentang kelas; ini juga tentang memberi siswa waktu untuk mengembangkan keterampilan mereka secara semi-otonom, sambil tetap memberikan bimbingan yang berharga.
Saya berpendapat bahwa teori pengajaran - CS, matematika, dll. - sama pentingnya, jika tidak lebih penting, daripada mengajarkan keterampilan spesifik terkait pekerjaan. Jika Anda mengajar siswa mengapa di balik metode dan teknik, dan bukan hanya apa , Anda akan berakhir dengan seseorang yang jauh lebih mudah beradaptasi ketika menerapkan pengetahuannya. Sebagai contoh, saya pergi ke "sekolah Jawa" yang banyak difitnah dan dengan demikian diajarkan di Jawa, tetapi saya juga memiliki kursus dalam teori bahasa pemrograman, yang menjelaskan mengapa di balik banyak bahasa; sebagai hasilnya, saya telah belajar menulis perangkat lunak yang jauh lebih baik daripada jika saya tidak memiliki latar belakang itu. Tentu, saya tidak menulis perangkat lunak di Haskell dalam pekerjaan saya, tetapi mengetahui banyak teori bahasa pemrograman telah memungkinkan saya untuk mendapatkan wawasan bahwatelah berlaku untuk pekerjaan saya sebagai programmer.
Saya juga berpikir industri mengharapkan terlalu banyak dari mahasiswa. Industri ingin memotong biayanya sendiri, jadi alih-alih melatih rekrutan baru untuk pekerjaan mereka, mereka berharap perguruan tinggi menjadi sekolah perdagangan / teknis; Akibatnya, mereka ingin perguruan tinggi melakukan pelatihan untuk mereka. Lulusan perguruan tinggi tidak dapat diharapkan untuk mengetahui segala sesuatu yang baru keluar dari perguruan tinggi. Menjadi pengembang yang baik adalah tentang pengalaman seperti halnya tentang pengetahuan (terutama dalam bidang yang relatif muda seperti pengembangan perangkat lunak).
sumber
Bagian dari masalah di sini adalah kenyataan bahwa 4 tahun tidak cukup waktu untuk menjadi insinyur perangkat lunak yang dipoles. Mengingat bahwa kami ingin para sarjana memiliki keterpaparan terhadap lebih banyak hal daripada hanya mata pelajaran matematika dan CS dan fakta bahwa ada banyak mekanika murni untuk dipelajari (algoritma, struktur data, sintaksis bahasa), kami tidak dapat mengharapkan mata kuliah CS hijau menjadi seorang insinyur perangkat lunak.
Saya setuju bahwa CS! = SE dan saya tidak yakin Anda bisa pergi ke sekolah dan menjadi SE (bahkan dengan gelar Master)
sumber
CS sebenarnya bukan SE. Dan orang-orang tampaknya mengacaukan keduanya sepanjang waktu, bahkan ketika mengakuinya. Ilmu komputer harus benar-benar dinamai sesuatu seperti Computology, atau ilmu komputasi. Faktanya, ilmu komputer sangat sedikit hubungannya dengan komputer. Itu teori grafik, analisis algoritma, struktur data, dll.
Orang ingin menganggap lulusan CS yang baru sebenarnya adalah lulusan ITT; mereka menginginkan seseorang yang telah terlatih dalam suatu panggilan. Ilmu komputer adalah ilmu, pemrograman adalah seni. Ini tidak sama.
Ini seperti bertanya mengapa lulusan Fisika baru bukanlah insinyur mobil yang baik. Itu konyol.
sumber
sumber
Tidak. CS bukan SE. Itu fakta, bukan alasan.
Tidak. Ini seperti memaksa para astronom untuk mempelajari detail pembuatan teleskop. Atau memaksa programmer untuk mempelajari detail membangun komputer. Hal-hal terkait, tetapi seorang pria tidak perlu tahu segalanya.
sumber
Ya, ini terdengar seperti tantangan bagi saya, dan tanda ketidakdewasaan CS sebagai disiplin akademis.
Program BS terakreditasi American Chemical Society mengharuskan Anda telah lulus kursus khusus untuk menunjukkan keahlian khusus dalam teori (kelas kuliah) dan praktik (kelas lab). Sejauh ini, CS tidak memiliki yang seperti itu sejauh yang saya tahu.
Salah satu profesor lulusan saya adalah ahli teori menara sangat gading yang kantornya tidak pernah dinodai dengan bahan kimia fisik selain akuarium dengan Magic Rocks, tetapi ketika saya menjadi TA untuk mahasiswa baru kimia, dia juga terbukti ahli kimia bangku yang cukup kompeten. .
Ketika saya bekerja sebagai ahli kimia cat industri, mereka akan tertawa terbahak-bahak pada gagasan bahwa saya akan memiliki sarjana dan tidak kompeten di lab. Tentu saja detail dari apa yang saya lakukan di lab berbeda dari apa yang saya miliki di kelas lab di sekolah, tetapi prinsipnya sama - kami hanya menggunakan mixer cat dan kaleng, daripada gelas kimia dan pengaduk magnet .
Jika seseorang menerapkan pendekatan yang sama pada CS, perincian tentang apa yang mungkin diajarkan sebagai keterampilan pengembangan perangkat lunak praktis untuk kurikulum CS / SE mungkin berbeda dari satu sekolah ke sekolah lainnya, dan seiring waktu. Tapi itu kedengarannya gila bagi saya bahwa dapat diterima bahwa seseorang dapat memperoleh gelar di bidangnya dan tidak kompeten dalam menulis, men-debug, dan memelihara beberapa jenis kode. (Tentu saja, itulah yang sebenarnya terjadi dalam banyak program CS, tetapi ini masih gila.)
sumber
Saya setuju bahwa 4 tahun adalah waktu yang cukup untuk memberi mereka fondasi yang baik untuk bertumbuh. Namun, saya pikir satu hal yang sangat membantu adalah ketika orang-orang dari industri terlibat dalam pengembangan kurikulum dan bahkan mengajar di kelas. Tahun lalu saya adalah seorang Rekan Industri di kelas Pengembangan Perangkat Lunak di universitas setempat. Itu adalah pengalaman yang sangat membuka mata bagi saya. Profesor dan saya bekerja bersama pada isi kursus dan kami memberikan lebih banyak informasi tentang proses pengembangan, praktik terbaik industri, dan situasi "dunia nyata" yang telah mereka lakukan sebelumnya. Apa yang kami temukan adalah bahwa, karena sebagian besar instruktur tidak mengembangkan kode yang digunakan dan dipelihara secara luas, membawa seseorang dari industri membantu mengidentifikasi dan mengajarkan keterampilan yang diperlukan untuk melakukan itu.
sumber
Ya itu adalah copout 100%, mereka harus mengajarkan keterampilan jangka panjang yang akan berguna sepanjang karier kita. Apakah niat Anda adalah masuk ke dunia akademis atau industri, Anda harus dapat memprogram dengan cara yang dapat dipertahankan, bahkan jika itu hanya Anda sendiri.
Ya, meskipun itu hanya akan ditekankan dalam kursus yang tepat. Secara pribadi, jika saya harus berbicara dengan Anda untuk lebih memahami bagaimana Anda mencoba menerapkan suatu algoritma saya akan menandai nilai Anda.
Bahkan jika Anda melakukan riset CS murni, Anda mungkin harus membuat kode untuk menunjukkan ide-ide Anda. Keterampilan pemrograman yang tepat akan berguna bagi Anda di beberapa titik jadi mengapa tidak memulai di perguruan tinggi.
sumber
Saya pikir masalah kita adalah kita jauh lebih seperti dokter daripada yang mau kita akui ... Kami memiliki gagasan bahwa gelar empat tahun harus mempersiapkan siswa untuk menulis perangkat lunak. Itu bahkan tidak dekat.
Profesi kami sebagian besar masih dalam masa pertumbuhan dibandingkan dengan disiplin ilmu lain. Mungkin pertanyaannya adalah: bagaimana kita dapat meningkatkan CS sehingga siswa yang lulus dengan gelar itu lebih cocok untuk menjadi anggota yang produktif dari tim pengembangan perangkat lunak dunia nyata dalam rentang waktu yang jauh lebih pendek?
Mungkin kita harus lebih seperti obat. Empat tahun pekerjaan dasar (gelar CS) dan kemudian residensi - praktik kerajinan di bawah pengawasan insinyur perangkat lunak yang lebih berpengalaman. Mungkin itu yang sudah kita miliki, tapi kurang formal ... Maksudku, seperti penduduk, kita belajar keterampilan kita yang paling berharga di tempat kerja dalam pekerjaan pertama kita.
Mungkin sebagai disiplin kita hanya perlu memformalkan ini dengan lebih baik.
sumber
Saya memiliki gelar CS, dan selama setahun penuh program saya tidak ada pemrograman, hanya teori. Kami diberitahu bahwa kami tidak mendapatkan gelar dalam pemrograman tetapi dalam Ilmu Komputer. Jika Anda ingin menjadi programmer, masuklah ke community college.
Kami belajar tentang algoritma, pola desain, dan banyak teori tentang menyelesaikan masalah tanpa bahasa spacific. Bahasa pemrograman datang dan pergi, tetapi teori yang digarisbawahi tetap sama.
Jadi, untuk pertanyaan pertama Anda, tidak, saya tidak merasa CS! = SE adalah solusi. Itu fakta.
Untuk pertanyaan kedua Anda, tidak, saya pikir saya tidak akan melakukannya. Bagaimana Anda bisa mengajar pemrograman? Di luar loop, seandainya, metode, kelas dan OOP, apa yang akan menjadi 'pemrograman yang tepat' dan bagaimana Anda membuatnya relevan dengan bahasa pemrograman di luar sana? Anda perlu kode pengalaman menulis, sesuatu yang gelar 4 tahun tidak dapat mempersiapkan Anda untuk.
Satu hal yang saya akan lakukan adalah menyediakan kelas Pengembangan di Dunia Nyata. Kontrol sumber, pelacakan tiket / bug, pelacakan kode, dan semua jazz itu akan menjadi awal yang baik untuk mempersiapkan semua yang akan segera menjadi lulusan untuk apa yang akan mereka hadapi dalam pekerjaan baru mereka.
Saya pikir itu pada kita ketika kita menyewa lulusan baru untuk memahami bahwa mereka mungkin tidak akan menulis kode pemenang penghargaan. Mereka membutuhkan bimbingan dan arahan.
sumber
Penting bagi universitas untuk mencapai keseimbangan yang baik antara pengetahuan teoretis dan keterampilan praktis. Saat menghadiri berbagai kursus saya belajar keduanya. Selama tahun-tahun pertama ada banyak matematika dan algoritma / struktur data. Yang terjadi selanjutnya adalah pilihan: Anda bisa terus belajar ilmu komputer (semacam jalur artistik, di mana Anda bisa misalnya menghadiri kursus dengan algoritma pencocokan string yang canggih) atau fokus pada rekayasa perangkat lunak. Anda masih harus mendapatkan latar belakang pemrograman yang solid selama ini.
Saya memilih rekayasa perangkat lunak, karena saya tidak pernah tertarik dengan masalah abstrak. Tetapi bahkan mereka yang menyukai ilmu komputer murni harus:
linux
modul kernel dan memodifikasi kernel itu sendiri, menulis game berorientasi objek murniSmallTalk
,Java
dalam tim empat,C
untuk pemrograman paralel (ide-idenya abstrak, tetapi ulasannya cukup keras, seperti kehilangan poin karena tidak memberikan output yang tepat, ketika program gagal, seperti unix yang baikprogram
harus dilakukan),django
, yang membuat saya menyukai kerangka ini),LAMP
(saya masih memiliki mimpi burukphp
, tetapi digunakanpostgresql
sebagai gantinyaMySQL
dan saya sangat senang mengetahui hal iniDBMS
sekarang),python
program desktop 10k menggunakanPyQt
.Mungkin ada proyek lain, tetapi saya hanya melupakannya sekarang.
Maksud saya adalah: itu semua tergantung pada sekolah. Saya sangat tidak menyukai pendekatan rekayasa perangkat lunak murni, di mana
Java
bahasa utamanya. Saya harus membantu seorang teman, yang menghadiri sekolah seperti itu dan harus menulis beberapa program untuk pemrograman paralel. Aku harus menulis untuknya pada dasarnya, karena dia meskipun, bahwasizeof(some_string)
dalamC
memberikan panjang string.Saya akan jujur: Saya benci matematika, saya kesakitan, ketika saya harus mempersiapkan tugas-tugas abstrak, yang akan disajikan pada algoritma / ujian struktur data. Tetapi itu memberi saya kelebihan: saya bisa berpikir dengan cara yang sangat abstrak. Ini seperti ketika Anda belajar seni bela diri dan tidak menjaga pertahanan Anda (setidaknya pada mereka, di mana Anda seharusnya). Pelatih terus saja datang dan memukul kepala Anda, ketika Anda menurunkan tangan, karena Anda lupa atau karena Anda lelah untuk mempertahankannya. Tetapi setelah beberapa waktu, Anda terus melakukannya. Dan menjadi sangat sulit untuk memukul wajah Anda. Sama dengan masalah algoritmik abstrak. Memahami isi Pengantar Algoritma dan sangat sedikit hal yang akan mengejutkan dalam pekerjaan.
sumber
Saya pikir jawabannya adalah ya (dengan cara tertentu).
Masalahnya adalah tidak mungkin untuk mengajar anak-anak dalam waktu singkat pemrograman. Mereka harus berpikir logika programer, bagaimana memecahkan (dalam skala yang lebih kecil) masalah programmer.
Saya yakin program sekolah harus direvisi, saya negara "dunia ketiga" saya yang sangat kecil, untungnya, upaya sedang dilakukan untuk hal ini terjadi. Kami adalah negara pertama yang mengimplementasikan program OLPC; http://laptop.org/en/
sumber
Dari pengalaman saya sendiri (saya seorang siswa saat ini), saya harus mengatakan ya, itu alasan. Semua orang menyebut CS sebagai ilmu yang mengajarkan kita semua dasar-dasar komputer, dan SE sebagai cabang khusus dalam CS yang secara eksplisit mengajarkan pemrograman. Imo, setiap orang yang memiliki BS di CS, harus tahu cara menulis kode yang baik dan optimal (bahkan jika pemrograman bukan bidang spesialisasinya). Jadi ya, jika saya memiliki posisi yang mahakuasa untuk membuat keputusan seperti itu, saya akan memaksa para siswa untuk mendapatkan keterampilan pemrograman yang baik.
sumber
Dengan asumsi tujuannya adalah untuk mendidik insinyur perangkat lunak yang baik (programmer) karena dunia membutuhkan mereka, apakah boleh menjawab dengan mengatakan apa yang menurut saya harus diajarkan?
Pertama, ini penting karena transfer pengetahuan saat ini sangat tidak efisien. Ketika calon programmer berada di kelas, pikiran mereka terbuka dan mereka menyerap apa yang diajarkan. Pada saat yang sama, para profesor (saya dulu) terlalu sering lebih tertarik untuk mengisi jalur pendidikan pascasarjana dengan siswa yang dapat mengerjakan mata pelajaran esoterik. Ketika keberatan diajukan bahwa siswa tidak siap untuk masalah dunia nyata, saya telah melihat profesor mengklaim itu bukan pekerjaan mereka . Itu pekerjaan dunia nyata.
Lalu ketika siswa menjadi programmer di dunia nyata, apakah mereka ingin belajar dari kolega baru mereka? Tidak dalam pengalaman saya. Sebaliknya mereka ingin menyebarkan Injil apa pun yang mereka peroleh di sekolah. Saya ingat sebagai seorang mahasiswa dan praktisi muda yang berpikir betapa sulitnya memupuk ide-ide baru di antara para fudddy-duddies lama di luar sana. Sekarang saya sudah tua-ayah saya melihat betapa sulitnya untuk membuka mata programmer baru untuk perbedaan antara teori dan praktek.
Saya adalah seorang mahasiswa teknik, dalam teknik mesin dan kemudian teknik elektro. Bagian mendasar dari itu adalah a) dasar matematika, dan b) pemecahan masalah praktis. Rekayasa perangkat lunak harus seperti itu, bukan hanya pemrograman.
Saya pikir rekayasa perangkat lunak (pemrograman) harus diajarkan dengan ilmu komputer yang cukup untuk menjadi pengetahuan yang berfungsi - teori automata dasar dan teori informasi. Ini tidak perlu dilakukan secara mendalam. Setelah keterampilan pemrograman dasar diajarkan, harus ada proyek kerja sama dengan ukuran nontrivial. Bagian penting dari ini harus berupa proposal dan pertimbangan solusi alternatif dari masalah spesifik, dengan analisis pro dan kontra, bukan hanya agama terbaru atau "hal besar berikutnya" atau satu ukuran cocok untuk semua. Akhirnya, harus ada kerja sama dan kemitraan antara industri dan akademisi, sehingga gagasan dan perbaikan dapat dikomunikasikan dua arah, sangat meningkatkan kontrol kualitas.
sumber
Mereka yang bisa, lakukan; mereka yang tidak bisa, mengajar.
Di universitas saya, basis pengetahuan para guru sangat kurang. Saya telah melihat para guru berjuang untuk memahami bagaimana merepresentasikan tabel semi-terstruktur dalam XML sambil memegang PHD dalam Desain Basis Data. Saya telah melihat guru Majelis bertanya kepada saya apa yang kode saya lakukan ketika itu potongan kode yang saya salin dan tempel. Saya telah melihat guru perancang perangkat lunak saya memberi tahu kami metode Agile sama dengan metode waterfall, hanya lebih cepat, bahwa model proses pengembangan iteratif telah dan hanya dapat memiliki 3 iterasi karena itulah yang digunakan oleh gambar buku seperti contohnya. Salah satu guru saya bahkan tidak tahu apa pernyataan lain jika itu.
Saya tidak percaya mereka 'mengatasi', atau membuat alasan, saya benar-benar percaya mereka melakukan yang terbaik yang dapat mereka lakukan dengan pengalaman mereka, yang mereka miliki hanya sedikit.
Saya setuju dengan orang lain yang memposting di sini bahwa 4 tahun tidak cukup untuk menjadi programmer berpengalaman, tetapi pengalaman yang dimiliki guru saya tidak cukup untuk membuat mereka berpengalaman juga. Ini sangat mirip dengan Ender's Shadow, di mana Bean memperhatikan metrik yang digunakan oleh para guru di sekolah pertempuran gagal karena perang terakhir yang merupakan aturan panduan, terlalu pendek untuk benar-benar menunjukkan apa yang sebenarnya dibutuhkan. Dengan kata lain, para guru melakukan yang terbaik yang mereka bisa, tetapi gagal memiliki pengalaman untuk mengetahui apa yang benar-benar diperlukan untuk membuat komandan yang baik (atau programmer yang baik dalam kasus ini).
sumber
Those that can, do; those that cannot, teach.
Saya juga tidak setuju dengan ini sama sekali: karir akademik dan industri mengarah ke gaya hidup yang sangat berbeda. Banyak penelitian dunia berasal dari akademisi. Dan saya tidak melihat cara di mana Anda menjawab pertanyaan asli.Ilmuwan Komputer dan Insinyur Perangkat Lunak berbeda. Ilmuwan adalah orang-orang yang melakukan eksperimen gila dan menghasilkan algoritma yang kami tingkatkan sebagai Insinyur Perangkat Lunak untuk menjadi lebih baik.
Pikirkan ahli kimia yang melakukan percobaan untuk perusahaan farmasi. Mereka tidak peduli tentang cara memproduksi bahan kimia secara massal. Mereka juga tidak peduli dengan pemasaran, pengemasan, distribusi atau apa pun yang terjadi pada obat setelah mereka menemukannya. Mereka bahkan tidak peduli dengan proses sertifikasi. Yang mereka pedulikan hanyalah menemukan bahan kimia yang memiliki efek ketika diberikan kepada subjek uji. Perusahaan bertanggung jawab untuk memindahkannya lebih dari itu.
Ilmuwan Komputer seperti ahli kimia itu. Yang mereka lakukan hanyalah menguji teori dengan kode. Mereka tidak peduli tentang bagaimana kode tersebut dapat dipelihara. Mereka membuktikan teori dan beralih ke yang berikutnya. Orang lain mengemas algoritme dan menjadikannya berguna bagi massa dan kami memiliki visi MP3 atau komputer dengan Kinect atau streaming video di iPhone Anda. Jadi CS! = SE adalah argumen yang valid.
WRT bagian kedua dari pertanyaan Anda. Jika saya menawarkan gelar dalam Teori Musik, mungkin ada kursus yang diperlukan dalam penulisan lagu atau sesuatu, tetapi tidak akan mengharuskan siapa pun untuk mempelajari instrumen. Terserah siswa untuk mencari ilmu yang mereka inginkan. Ilmu Komputer bukan Rekayasa Perangkat Lunak ... jika Anda ingin belajar SE, ambil jurusan ganda.
sumber
Edsger Wybe Dijkstra adalah seorang ilmuwan komputer Belanda.
Dia menerima Penghargaan Turing 1972 untuk kontribusi mendasar untuk mengembangkan bahasa pemrograman , pernah berkata:
"ILMU KOMPUTER TIDAK LEBIH BANYAK TENTANG KOMPUTER DARI ASTROMI ADALAH TENTANG TELESCOPES."
CS BENAR-BENAR BERBEDA DARI SE. (CS! = SE).
CS adalah ilmuwan yang telah memperoleh pengetahuan tentang KOMPUTER SCIENCE.
ILMU KOMPUTER atau ilmu komputasi (kadang-kadang disingkat CS) adalah studi tentang dasar-dasar teoritis informasi dan komputasi dan teknik praktis untuk implementasi dan penerapannya dalam sistem komputer. Hal ini sering digambarkan sebagai studi sistematis proses algoritme yang membuat, menggambarkan, dan mengubah informasi.
Ilmu komputer memiliki banyak sub-bidang misalnya:
Banyak dari kita tidak memerlukan keterampilan ini dalam pekerjaan sehari-hari atau setidaknya sedikit.
SOFTWARE ENGINEER (SE) adalah profesi yang didedikasikan untuk merancang, mengimplementasikan, dan memodifikasi perangkat lunak sehingga berkualitas tinggi, lebih terjangkau, dapat dirawat, dan lebih cepat untuk dibangun. Ini adalah "pendekatan sistematis untuk analisis, desain, penilaian, implementasi, pengujian, pemeliharaan dan rekayasa ulang suatu perangkat lunak dengan menerapkan teknik pada perangkat lunak"
Sebagai pengetahuan CS, ia seharusnya memiliki pengetahuan untuk mengelola masalah yang sangat kompleks tanpa mengetahui bahasa pemrograman yang benar-benar bagus. IMHO di sini kita dapat membuka utas lain, di mana GELOMBANG bagi saya HANYA TITIK MULAI dan bukan TUJUAN AKHIR.
Sebagai pengetahuan SE, dia seharusnya memiliki pengetahuan untuk mengelola produksi masalah yang sangat rumit ini dan mengelola pengembangan tim atau proyek tentang bidang ini.
Bersama-sama membuat penelitian dalam sains yang dibuat oleh CS dalam Sains terapan dengan bantuan SE.
Maksudku, CS tidak lebih baik dari SE, maksudku CS! = SE.
Pertanyaan semacam ini adalah pertanyaan yang sama yang orang non komputer tanyakan kepada diri mereka sendiri ketika bertanya kepada Anda mengapa, sebagai programmer, Anda tidak dapat memperbaiki melalui telepon masalah program X, Y, Z pada sistem operasi J, M, N. ;)
Sebenarnya saya benar-benar bosan coding setelah 10 tahun pengembangan sistem unix di bidang keamanan dan setelah membaca pertanyaan ini saya mengerti intinya, saya perlu belajar lebih banyak ilmu komputer dan lebih sedikit bahasa komputer dan sistem komputer atau protokol!
Tidak seorang pun di pekerjaan saya dapat menangani perbedaan tentang SE dan CS! itu benar-benar hal yang buruk.
Jika Anda berpikir bahwa CS dapat menjadi alasan untuk keterampilan pemrograman yang buruk, Anda benar-benar kehilangan titik tentang apa itu CS dan apa itu SE.
Saya kira Anda adalah SE, apakah Anda tahu misalnya bahwa semua bahasa, semua paradigma dan semua hal yang berhubungan dengan bahasa komputer dapat diekspresikan secara matematis dalam seperangkat fungsi rekursif parsial dan apa pun yang Anda pelajari bahasa baru, APA PUN BAHASA BARU, Anda hanya mempelajari abstraksi baru atas fungsi parsial rekursif SAMA?
Selamat bersenang-senang :)
sumber