University mengajarkan DOS-style C ++, cara menghadapinya [ditutup]

19

Saya telah pemrograman selama bertahun-tahun tetapi ingin ijazah membuat saya lebih mudah dipekerjakan. Setelah lulus dari universitas, saya tidak memilih jurusan ilmu komputer 5 tahun penuh tetapi program rekayasa perangkat lunak yang lebih pendek dan lebih praktis .

Saya berharap bahwa itu mungkin lebih fokus pada keterampilan konkret daripada pada teori, tetapi masih memiliki gagasan bahwa universitas dan profesor menyukai hal-hal yang benar, formal, akademik. Itu masih sains, kan? Salah - Saya terkejut dengan betapa cerobohnya banyak kursus TI.

Dalam kursus pengantar tentang C ++ kami diuji pada klise seperti "mengapa global buruk" dan "mengapa konstanta baik", setelah hanya menulis 1-2 program. Anekdot acak tanpa konteks yang tepat. Handout berisi system(pause/cls), getchdan header menyukai conio.hdan iodos.h. Salah satu tugasnya adalah mencetak "karakter ASCII" dari 32 hingga 255 , dengan tangkapan layar yang memperlihatkan tabel seperti itu dicetak menggunakan halaman kode Windows-1252, tetapi tanpa menyebutkan penyandian sama sekali.

Pertanyaan : ketika seorang universitas / profesor tampaknya menggunakan alat dan metode yang lebih rendah dan / atau ketinggalan jaman, dan konten yang diajarkan adalah garis batas yang salah, bagaimana Anda menghadapinya secara konstruktif dan penuh hormat, jika sama sekali?

Beberapa jawaban menunjukkan bahwa Anda harus melihat melampaui pemrograman karena itu hanya alat untuk belajar tentang topik-topik seperti struktur data dan algoritma. Saya setuju dengan ide ini, tetapi dalam kasus ini tidak ada rencana seperti itu di balik gaya yang buruk. Sebagian besar kursus hanya akan mengajarkan "alat" lain tanpa banyak teori latar belakang atau "gambaran besar". Seringkali terasa seperti mereka cepat disatukan hanya demi menawarkan kursus seperti itu.


Saya terjebak dengan itu dan akhirnya lulus. Kualitas tetap cukup rendah di seluruh (dengan beberapa pengecualian), dan beberapa siswa lain telah mengeluhkannya. Seperti yang diharapkan, saya telah belajar lebih banyak dari proyek-proyek pribadi dan pekerjaan paruh waktu daripada dari sekolah, namun proses menyelesaikan sekolah dan label "siswa perangkat lunak" tampaknya secara misterius berguna dalam diri mereka sendiri!

Toerndev
sumber
2
Berdasarkan pengalaman saya sendiri, Anda akan belajar pemrograman pemrograman yang lebih baik, lebih cepat dan lebih murah sendiri dan mendapatkan bantuan dari forum. Tidak jarang silabus universitas menjadi usang. Di Rusia, Pascal masih diajarkan di beberapa universitas (meskipun saya suka bahasanya, dan tidak melihat itu sebagai hal yang sepenuhnya buruk).
WKS
@WKS: Saya pikir Pascal adalah bahasa pengajaran yang sangat baik untuk belajar tentang prinsip-prinsip (pemrograman prosedural) yang tidak ketinggalan zaman sama sekali. Kursus-kursus universitas seharusnya tidak membuang waktu untuk mengajar bahasa pemrograman tertentu, tetapi mengajar paradigma (prosedural, berorientasi objek, fungsional, logika, dan sebagainya).
Giorgio
Ya, tentu saja @Giorgio, bahasa pemrograman yang dipilih sebagai alat pengajaran tidak masalah, namun, orang harus berharap bahwa praktik pemrograman yang disajikan baik dan mutakhir.
glampert
Sebagian besar universitas mengajar sarjana dengan tujuan memungkinkan mereka untuk berhasil dalam mendapatkan gelar master. Sebagian besar program magister mengajar siswa magister dengan tujuan memungkinkan mereka untuk berhasil dalam memperoleh gelar PhD. Sebagian besar program PhD bertujuan untuk membantu Anda menjadi peneliti yang sukses.
Rob P.
@ glampert: Pemrograman prosedural tidak berubah setelah Pascal diperkenalkan. Bahkan lebih baik, Pascal dirancang sebagai bahasa pengajaran, sehingga tidak memiliki banyak peretasan yang mungkin berguna dalam praktik tetapi merupakan gangguan besar ketika mempelajari hal-hal baru. Jadi Pascal adalah yang terbaru sejauh mengajar pemrograman imperatif. Tentu saja, seseorang mungkin ingin mengajarkan paradigma lain seperti berorientasi objek, fungsional, logika: maka Anda harus mencari bahasa lain, misalnya Python, Java, Haskell, Skema, Prolog, ...
Giorgio

Jawaban:

34

Matematika dan pemrograman adalah hal yang sangat berbeda. Matematika adalah sains, pemrograman adalah teknik. Di dunia akademis, pemrograman adalah sesuatu yang harus Anda ketahui sehingga Anda dapat menangani hal-hal nyata, sesuatu yang sebenarnya menarik dan penting - algoritma.

Siapa yang peduli jika kompilernya kuno dan Anda menggunakan systempanggilan? Siapa yang peduli jika Anda memiliki Linux dan bukan Windows? Nah, para profesor tidak, itu sudah pasti. Dan mereka seharusnya tidak melakukannya. Jangan berharap menjadi programmer profesional dari program studi di lembaga akademik. Bukan itu tujuan Anda pergi ke sana.

Itu benar bahwa kompiler yang dia harapkan untuk Anda gunakan adalah kuno, dan asumsi tentang OS adalah anakronistik, dan bermasalah. Anda dapat meningkatkannya, dan mungkin itu akan ditangani. Tetapi bukan karena kursus tidak sesuai dengan industri, tetapi lebih karena itu menyebabkan kesulitan langsung kepada siswa. Temukan kompiler lama itu sekarang dan jalankan di MacBook Anda ...

Secara umum, studi akademik tidak boleh sia-sia untuk mempelajari C ++ dan Android, Anda harus mempelajari hal-hal Ilmu Komputer yang sebenarnya di sana. Anda tidak akan mendapatkan kesempatan lain untuk itu. Android? Unduh Eclipse dengan ADT dan mulailah mengerjakannya di rumah, seperti yang saya lakukan. Tidak perlu sekolah untuk itu.

Saya pikir tidak mungkin mengharapkan pengembangan teknik dari universitas. Terutama bukan universitas riset. Anda dapat mengatakan bahwa tempat yang hanya menawarkan bujangan harus lebih bertarget industri, tetapi universitas riset - menginginkan peneliti. Para profesor mencari calon mahasiswa pascasarjana dan kandidat PhD, bukan programmer yang baik. Jadi saya pikir Anda harus mengatur tingkat harapan Anda.

littleadv
sumber
3
Saya punya satu masalah dengan respons Anda: "Secara umum, studi akademis tidak boleh disia-siakan untuk belajar C ++ dan Android, Anda harus belajar hal-hal Ilmu Komputer yang sebenarnya di sana." - Tanpa mengetahui setidaknya dasar-dasar satu bahasa pemrograman, hal-hal CS tidak masuk akal, dan terlalu mudah untuk menerapkan cara yang salah.
Izkata
4
@ Martin dan izkata - pemrograman di bawah DOS dalam C ++ menggunakan kompiler dari abad sebelumnya tidak berarti Anda tidak tahu pemrograman. Ini hanya berarti Anda menggunakan alat yang sudah ketinggalan zaman - tetapi jika Anda perlu menerapkan pohon RB - siapa yang peduli? Sudah ketinggalan zaman untuk industri, tetapi program berjalan dan melakukan apa yang seharusnya mereka lakukan - itu cukup baik.
littleadv
3
@littleadv - OP menulis "yang tampaknya kuno menurut apa yang saya baca." yang menunjukkan kepada saya bahwa dia harus mencari di tempat lain daripada handout yang relevan untuk mengetahui bahwa ini usang dan tidak portabel. Tentu, banyak jika tidak semua kompiler memiliki pustaka non-standar ekstra, tetapi jika Anda diajarkan kepada mereka tanpa diberi tahu itu pustaka non-standar, saya pikir itu buruk - dan itu diperhitungkan untuk hal-hal baru maupun lama, dan bahkan untuk C ++ 11 hal karena untuk saat ini C ++ 03 adalah standar terbaru dan didukung penuh terbaru.
Steve314
3
@littleadv - Yah, mungkin kita harus setuju untuk tidak setuju kalau begitu. Meskipun saya akan berpikir seorang ilmuwan komputer perlu menjadi pedant tentang detail, dan beberapa detik yang diperlukan untuk menunjukkan bahwa ada sesuatu yang non-standar yang konsisten dengan itu dan sama sekali tidak kesulitan besar. Bagaimana perasaan Anda jika seorang profesor CS menggunakan notasi ad-hoc sendiri yang dicampur dengan matematika dan tidak menunjukkannya? Bagaimanapun juga, ini merupakan aspek lain dari masalah yang sama - apakah ilmuwan komputer lain dapat memahami Anda. Kode dibaca oleh orang-orang dan juga oleh kompiler.
Steve314
4
@littleadv - Saya tidak pernah mengklaim OP diberi tahu conio.h adalah standar - saya menyarankan dia mungkin tidak diberi tahu bahwa itu non-standar, dan bahkan kemudian berkata "Jika mereka memperjelas mana yang merupakan trik non-portabel, itu mungkin BAIK.". Cara saya diajarkan bahkan ilmu dasar adalah bahwa Anda menggunakan istilah standar, atau jika Anda harus menggunakan istilah non-standar, Anda mendefinisikan apa artinya. Dalam pelajaran sains sekolah saya, bahkan menggunakan sentimeter adalah melanggar aturan - mereka bukan satuan SI. Bagi saya, menggunakan perpustakaan yang tidak standar tampaknya tidak berbeda. Arti kode dalam ilmu komputer harus jelas.
Steve314
19

Ilmu komputer adalah pemrograman apa fisika untuk pertukangan.

Jika Anda ingin menjadi seorang tukang kayu, mempelajari fisika tidak akan mewujudkannya. Ini akan mengajarkan Anda banyak hal menarik, yang mungkin bisa Anda terapkan pada pekerjaan Anda, tetapi itu tidak akan mengajari Anda cara menjadi tukang kayu yang baik. Untuk itu, Anda harus belajar kerajinan pertukangan.

Demikian pula, jika Anda ingin menjadi programmer yang baik, Anda harus mempelajari keahlian pemrograman . Sayangnya, tidak ada lembaga yang mengeluarkan sertifikasi apa pun. Jadi pada dasarnya, ini adalah sesuatu yang harus Anda lakukan sendiri, dengan apa pun yang membantu orang yang mungkin dapat Anda temukan. Bagi Anda ini berarti pengulangan dan refleksi. Tulis banyak kode lalu kembali untuk melihatnya. Juga luangkan waktu untuk membaca kode orang lain. Pertimbangkan untuk berpartisipasi dalam proyek sumber terbuka.

Universitas tidak terlalu peduli untuk pemrograman dan bahkan kurang untuk detail yang akan berubah dalam beberapa tahun ke depan. Apa yang Anda lihat di sekolah Anda adalah bahwa mereka telah memilih beberapa lingkungan pemrograman (yang buruk, tapi itu tidak begitu penting) dan sekarang menunjukkan kepada Anda, sehingga mereka akan memiliki kerangka referensi di mana mereka dapat mengajarkan Anda berbagai teknik pemrograman. Orang bisa berargumen, bahwa kerangka acuannya buruk dan bahasanya pun pilihan itu aneh. Dari perspektif mereka, itu mungkin tidak masalah, karena itu dipilih secara sewenang-wenang.

back2dos
sumber
2
Bagaimana dengan Fisika untuk Teknik? Pemrogram harus memahami prinsip-prinsip CS untuk menerapkannya ketika merancang program yang mereka inginkan seorang insinyur perlu memahami fisika untuk merancang bangunan, pesawat terbang, dan proses kimia.
Jay Elston
3
@JayElston: Fisika adalah teknik, apa itu ilmu komputer adalah rekayasa perangkat lunak, yang terdiri dari analisis, desain, perencanaan, implementasi, QA, dll. Pemrograman itu sendiri sebenarnya lebih merupakan seni mendapatkan bahan untuk melakukan apa yang Anda inginkan, sedangkan teknik mulai mencari tahu apa yang sebenarnya ingin Anda lakukan.
back2dos
Saya masih menyukai salah satu kutipan profesor saya "Rekayasa adalah seni menerapkan sains untuk memecahkan masalah".
Chris O
1
@ Chris: Mungkin, kalau begitu, sains adalah seni menciptakan masalah baru.
JasonTrue
@JasonTrue: Yah, orang bisa berargumen bahwa sains adalah seni menciptakan masalah yang lebih baik ;)
back2dos
9

Tidak ada yang salah dengan mempelajari 'gaya-DOS'. Saya yakin banyak dari orang tua di sini mulai pada DOS, atau bahkan dengan sistem operasi sebelumnya, menulis program berbasis garis, dan telah menyesuaikan dengan baik. Dunia komputasi berubah begitu cepat sehingga saya tidak akan terpaku pada spesifik seperti perpustakaan mana yang digunakan untuk apa.

Sebenarnya, saya menduga alasan kami memiliki dunia yang penuh dengan programmer yang dapat memberi tahu Anda apa itu injeksi ketergantungan , tetapi berjuang untuk menjawab FizzBuzz , adalah karena banyak programmer tidak menghabiskan banyak waktu di level yang sangat dasar itu.

Sepertinya ini adalah pengantar pemrograman, jadi pada dasarnya, jangan khawatir tentang hal itu. Pelajari dasar-dasarnya, dan Anda akan baik-baik saja. Jika Anda tertarik pada platform lain, jelajahi sendiri. Itulah hal hebat tentang pemrograman.

GrandmasterB
sumber
5

Bagaimana Anda bisa menghadapinya? Unduh pemrograman e-book atau streaming video, coba contohnya sendiri. Jangan bergantung pada profesor Anda. Pemrograman sangat dipelajari sendiri.

LEMUEL ADANE
sumber
1
Pemrograman seperti bermain piano. Anda membutuhkan seorang guru untuk mengajari Anda cara melakukan sesuatu, dan banyak latihan untuk melakukannya dengan baik. Saya percaya ada beberapa pianis terkenal dunia yang autodidak.
7
Analogi yang aneh, tentu ada banyak programmer autodidak yang sangat terampil.
ocodo
@ Slomojo Benar, dan saya sudah bertemu beberapa dari mereka. Mereka adalah jenis yang aneh, sangat baik dalam apa yang mereka ketahui. Kesulitan terletak pada luasnya masalah yang mereka hadapi. Kadang-kadang, masalah memiliki jalan yang jauh lebih pendek untuk solusi ketika Anda tahu sudut Ilmu Komputer, namun, orang-orang berbakat cenderung terus memaluinya satu-satunya cara yang mereka tahu, yang akhirnya terlihat seperti kekuatan kasar. Contoh, masalah yang "sulit dipecahkan" menjadi otodidak dipecahkan oleh DFA dalam dua hari, dengan pengujian (dalam TCL / TK untuk boot!). Dua minggu kemudian, mereka masih tidak memahaminya, dengan penjelasan.
Edwin Buck
4

Banyak universitas yang memiliki profesor pemrograman yang jelek. Saya pergi ke salah satu sekolah lulusan terbaik di negara saya dan cukup banyak belajar jongkok dalam pemrograman. Saya kira sebagian besar unis seperti itu yang menyebabkan programmer benar-benar memilih pekerjaan dengan gaji yang lebih baik (bukan mengajar). Anda harus mengambil proyek kecil dan mencoba kode sendiri. Anda bisa mendapatkan tips dari banyak forum seperti ini. Itu mungkin cara yang lebih baik untuk belajar dalam jangka panjang.

Jan S
sumber
Nasihat yang bagus, tentu saja, saya sepenuhnya setuju. Itu hanya ijazah ... :)
Toerndev
@gaidal: Yup! itulah yang saya dapatkan dari sekolah pascasarjana - nama merek: P (meskipun saya berharap lebih banyak ketika saya bergabung)
Jan S
2
Universitas bukan tentang belajar untuk memprogram, tetapi tentang belajar konsep bahasa pemrograman dan, lebih umum, ilmu komputer. Ketika saya harus melakukan proyek saya untuk sistem operasi di universitas, saya diberitahu: itu akan berada di C, buku itu ada di perpustakaan, pergi mengambil buku dan mempelajarinya. Pemrograman adalah tentang praktik dan bukan tugas universitas untuk mengajarkan hal itu kepada Anda.
Giorgio
1
Tentang pekerjaan bergaji lebih baik itu benar. Seorang teman saya yang mengajar di universitas pernah mengeluh: "Kami mengajari mereka cara memprogram dan kemudian mereka mendapat lebih banyak daripada yang kita dapatkan, itu harus sebaliknya!"
Giorgio
3

Saya berpikir bahwa Universitas harus mengajarkan konsep abstrak bahasa pemrograman, algoritma, dll dan tidak boleh menjadi tempat di mana Anda belajar pemrograman: pemrograman adalah kegiatan yang sangat praktis dan Anda hanya dapat mempelajarinya dengan melakukan.

Selama belajar, saya mempelajari dasar-dasar pemrograman dalam Pascal, kemudian saya punya satu proyek di C (kami harus belajar bahasa sendiri) dan kemudian saya memiliki kursus tentang konsep bahasa pemrograman (prosedural, berorientasi objek, fungsional, logika) . Itu adalah cerita rakyat bahwa pada MSDOS Anda memiliki conio.h atau pointer jauh, yang tidak Anda miliki pada sistem UNIX. Ini adalah hal-hal yang akan kami diskusikan oleh para siswa sambil minum bir, itu bukan sesuatu yang Anda diskusikan selama kelas karena itu tidak begitu penting. Pengajaran universitas berfokus pada abstrak, pengetahuan umum dan menghindari masuk ke detail: contoh dan detail disajikan hanya untuk menggambarkan hal-hal umum.

Contoh yang Anda berikan tentang ASCII versus Unicode dan pustaka MSDOS conio.h berarti bahwa setiap lingkungan pemrograman memiliki cara khusus dalam melakukan dan mengatur berbagai hal. Jika Anda memprogram dalam C ++ pada Visual Studio Anda harus menggunakan pustaka lain, beberapa di antaranya tidak ditemukan, misalnya di Linux. Jadi jika kursus ada di Windows 7 / Visual Studio beberapa orang mungkin mengeluh bahwa akan lebih baik melakukannya di Linux / GCC. Tapi, IMO, ini bukan itu intinya.

Jadi, saya pikir Anda harus mencoba untuk tidak terganggu oleh detail dan berkonsentrasi pada konsep umum yang sedang dibahas oleh kursus. Misalnya, bahwa di sebagian besar bahasa pemrograman Anda akan memerlukan beberapa perpustakaan untuk mengimplementasikan konsol I / O dan bahwa, mengingat lingkungan pemrograman, Anda harus menyelesaikan masalah Anda dengan alat yang Anda miliki. Mungkin ini terdengar sangat jelas bagi Anda dan Anda memiliki kesan Anda tidak benar-benar belajar sesuatu karena Anda sudah memiliki pengetahuan sebelumnya (ini bisa terjadi) tetapi saya tidak mendapatkan kesan bahwa Anda mengikuti kursus yang buruk.

Giorgio
sumber
Terima kasih, saya akan mengingat bahwa Anda tidak berpikir itu cukup untuk mengatakan itu adalah jalan yang buruk. Sebagai tambahan, saya tidak bermaksud bahwa itu harus di Linux, hanya saja dia bisa berusaha untuk memberi tahu siswa tentang perbedaan dan bahwa ada standar.
Toerndev
Saya setuju dengan Anda bahwa itu adalah ide yang baik untuk menginformasikan tentang sistem lain. Itu juga tergantung pada pengalaman guru: mereka mungkin merasa tidak nyaman berbicara tentang lingkungan yang tidak mereka kenal. Misalnya, saya di rumah dengan Windows dan Linux, tetapi saya akan menghindari MacOS karena, bahkan mungkin OS yang sangat keren, saya belum pernah menggunakannya. Mungkin Anda bisa mencoba dan bertanya apakah mereka dapat memberikan perbandingan singkat antara lingkungan C ++ yang berbeda: hanya beberapa contoh untuk merasakan apa yang bisa berbeda dan apa yang tetap sama. Misalnya Anda bisa bermain dengan sizeof di MSDOS dan Linux.
Giorgio
2

Universitas memberikan fondasi. Setelah kuat, Anda dapat membangun gedung pencakar langit di atasnya. Saya telah belajar BASIC, C dan C ++ selama masa kuliah saya. Kemudian ketika saya memproyeksikan dalam Visual C ++, saya percaya ini adalah dunia yang sama sekali berbeda. Kemudian saya menyadari perbedaan antara Kerangka dan Bahasa.

Pilih universitas yang tepat di mana mereka memberikan pengembangan fokus bidang komputasi yang Anda inginkan. Yang dapat membantu Anda nanti dalam karier Anda.

sarat
sumber
2

Hasil cetakan yang penuh system("");sebenarnya adalah hal yang sangat bagus! Saya terkejut bahwa orang tidak tahu apa-apa tentang fungsi-fungsi ini saat ini.

system("pause"), dan Anda menyingkirkan semua fungsi getcha getX. system("cls"), dan Anda baru saja menyimpan satu halaman kode. system("mkdir foo")dan Anda baru saja menyimpan 2 halaman alokasi buffer, pemisahan jalur, _makepath_ss, 256 batas jalur, ton keluar kesalahan dan sebagainya.

Apalagi kodenya sangat sederhana sehingga monyet akan memahaminya.

 if(!system("mkdir foo"))
     //booo and exit`

Sekolah penyimpangan polimorfik adalah apa yang harus dilarang oleh hukum.

PS: Lagipula, dengan segala hormat, saya mengalami kesulitan menerima bahwa orang diajarkan C ++ dengan pengecualian dan segala sesuatu virtual sebagai HAL YANG BAIK, karena memiliki lebih banyak gotchas dan ranjau darat daripada yang dapat Anda bayangkan, dan bahkan Bjarne Stroustrup menginjili pengecualian sebagai sesuatu yang super mudah dan aman, sementara pada kenyataannya mereka adalah ranjau nuklir.

Lihat analisis tentang Misra-C ++ dan JSF-C ++. Dan http://blogs.msdn.com/b/oldnewthing/archive/2005/01/14/352949.aspx . Saya terlalu malas untuk menemukan semua artikel yang tersisa hari ini.

Dengan semua yang dikatakan, saya c ++ pengembang dan saya menikmati banyak fitur dan bahasa secara keseluruhan.

Coder
sumber
1
Tidak yakin saya akan setuju bahwa secara implisit mendorong pengembang yang tidak berpengalaman untuk melompat langsung ke sistem tanpa gagasan nyata tentang gotcha adalah ide yang baik ...
deworde
@deworde: Ini adalah hal yang sama dengan yang Anda tulis di konsol, saya tidak berpikir Anda dapat membuat hal-hal yang kurang rentan kesalahan dan aman.
Coder
Ya, tetapi ketika Anda menulisnya di konsol, Anda tahu (misalnya) di mana Anda berada, siapa Anda menjalankan, apa jenis mesin yang Anda jalankan dan yang paling penting, MENGAPA ANDA MELAKUKANNYA. Program tidak perlu mengetahui hal-hal ini, dan seseorang yang menjalankan executable tidak akan tahu bahwa mereka harus memeriksanya sebelum menjalankannya.
deworde
@deworde: Tidak juga, perintah EraseFile masih akan mewarisi izin proses, jadi sama mudahnya untuk mengacaukan salah satu perintah.
Coder
1

Saran saya mungkin terdengar di luar sana, tetapi dengarkan saya ... Beralih jurusan.

Dalam pengalaman saya di dunia akademis, jurusan Ilmu Komputer adalah tingkat yang sangat rendah pada apa yang membuat komputer tergerak. Anda mulai dengan primer dasar dalam C ++ untuk memastikan Anda tahu apa program itu, dan dasar-dasar memori dan perhitungan di belakang program, dan kemudian Anda belajar perakitan, konsep OS, teknik elektro, desain digital, dll. Anda mendapatkan gelar ini dan mencari pekerjaan dengan NVidia atau AMD, atau Lockheed; di suatu tempat di mana mereka membuat perangkat keras baru, yang membutuhkan seseorang yang dapat memahami perangkat keras itu pada level yang cukup rendah untuk menulis driver dan mengendalikan perangkat lunak.

Kedengarannya seperti yang Anda inginkan adalah program studi yang, di universitas saya, disebut Manajemen Sistem Informasi. Itulah jalan yang saya ikuti; itu mengajarkan pemrograman di Jawa, VB.NET, C #, dan beberapa PHP dan skrip web lainnya di sepanjang jalan. Ini juga membutuhkan kalkulus (tetapi tidak pada tingkat yang sama dengan CS), akuntansi, keuangan, statistik, komunikasi bisnis, OO A&D, desain database, dan analisis sistem. Saya mendapat BBA daripada BS, dan saya memiliki alat dasar untuk mulai bekerja sebagai pengembang perangkat lunak Windows atau Web.

Apa yang dipersiapkan "Ilmu Komputer" jurusan untuk Anda sangat bergantung pada universitas mana yang menawarkannya. Sepertinya Anda berada di jalur awal untuk mendapatkan tampilan tingkat rendah yang sangat ketinggalan zaman pada komputer yang tidak seperti yang Anda kejar dari pendidikan Anda. Saya mendorong Anda untuk melihat-lihat di universitas dan menemukan program studi yang lebih fokus pada jenis pekerjaan komputer yang ingin Anda masuki setelah sekolah.

Apa pun itu, program studi Anda akan dimulai dengan penulisan program "tingkat konsol" yang sangat dasar. Bahasa tidak masalah; apa yang mereka ajarkan adalah pemrograman prosedural dasar; bagaimana berpikir dalam langkah-langkah yang cukup kecil sehingga komputer dapat mengikuti Anda dari langkah ke langkah (karena komputer tidak menerima apa-apa begitu saja, dan tidak dapat mengikuti sebagian besar lompatan manusia dalam logika). Dari sana, Anda akan maju ke pemrograman berorientasi objek (alih-alih memiliki satu fungsi panjang yang melakukan segalanya, jauh lebih mudah untuk memiliki beberapa kode "objek" yang lebih kecil, yang mewakili keadaan dan logika objek dunia nyata), kemudian ke pemrograman berbasis acara ("Jangan panggil kami, kami akan memanggil Anda"; program Anda pada dasarnya dimulai, memberi tahu OS untuk mengatur UI grafis awal Anda,

KeithS
sumber
Terima kasih, ya saya akan pertimbangkan itu. Jika saya merasa hal itu mengarah ke arah yang salah, saya dapat mengubahnya nanti, kursus dasar harus kompatibel antara semesta.
Toerndev
Hati-hati dengan asumsi itu; Saya mengubah jurusan dari CS ke MIS, dan tidak satu pun matematika yang saya ambil dipindahkan karena sekolah bisnis memiliki jalur matematika yang sepenuhnya terpisah. Bahasa Inggris, sains, humaniora, ya itu dipindahkan.
KeithS
1

Kursus Ilmu Komputer tidak akan mengajarkan Anda pemrograman. Ini berjalan-jalan di taman dibandingkan dengan beberapa pemrograman yang saya lakukan pada kursus CS saya.

Masalah mendasar dengan ini, dalam pengalaman saya, adalah bahwa ada cukup banyak tempat yang akan mengajarkan Anda pemrograman pada tingkat yang setara, sehingga Anda tidak punya pilihan apa pun.

DeadMG
sumber
0

Saya pikir mungkin ada beberapa kebingungan tentang apa dan mengapa Anda belajar.

Tampaknya seolah-olah Anda sedang mempelajari program ilmu komputer pengantar. Ini ditujukan untuk orang-orang dengan pengalaman minimal yang mempelajari dasar-dasar tentang bagaimana komputer bekerja pada level rendah.

Tampaknya Anda adalah seorang programmer semi-serius atau profesional. Anda telah memprogram selama 10 tahun, dan merasa nyaman dalam 3 bahasa. Sepertinya Anda tahu apa yang Anda lakukan setidaknya cukup untuk bekerja sebagai bagian dari tim. Apakah Anda merasa tidak cocok dengan kursus ini? Apakah siswa lain memiliki tingkat pengalaman atau keterampilan yang sama dengan Anda?

Apa yang ingin Anda dapatkan dari kursus ini?

Apakah Anda hanya setelah 'selembar kertas' itu? Jika ini masalahnya maka jangan berhenti berusaha untuk mendapatkan pekerjaan saat Anda belajar. Lamar pekerjaan, beri tahu mereka bahwa Anda adalah programmer yang kompeten dan Anda belajar karena Anda membutuhkan kertas untuk mendapatkan pekerjaan. Jika mereka mempekerjakan Anda, maka pertimbangkan untuk keluar - begitu Anda memiliki pekerjaan profesional, maka Anda benar-benar tidak membutuhkan kertas itu lagi. Terima upah yang lebih rendah dari biasanya, karena lebih baik dibayar untuk belajar (di tempat kerja) daripada membayar untuk belajar di sekolah - dan Anda akan belajar lebih cepat juga. Setelah satu atau dua tahun Anda sebagian besar akan cepat, dan kemudian Anda dapat meminta kenaikan gaji yang layak atau Anda bisa mencari pekerjaan lain karena Anda akan memiliki pengalaman.

Atau Anda mencoba mempelajari sesuatu? Kemudian berhentilah menghakimi profesor Anda. Seperti seorang guru sekolah menengah yang mengesankan yang biasa mengatakan 'duduk, dan tutup mulut.' Hampir dijamin bahwa profesor memiliki pengalaman dan pengetahuan yang jauh lebih banyak daripada yang Anda miliki dan Anda dapat belajar banyak darinya. Jika dia terlalu lambat untuk Anda maka cobalah untuk mendapatkan kredit untuk kursus pengantar ini berdasarkan pembelajaran dan pengalaman Anda sebelumnya.

Tetapi apakah Anda berada di jalur yang benar? Anda juga bisa belajar banyak dari profesor sastra, atau profesor sejarah ... tidak terlalu relevan. Mungkin Anda tidak menginginkan 'ilmu komputer' tetapi lebih menginginkan keterampilan 'dunia nyata' yang lebih praktis. Coba 'rekayasa perangkat lunak'. Lihatlah institusi lain untuk kursus yang lebih fokus.

Sama seperti ketika Anda memulai pekerjaan baru, kelas atau program studi bisa sangat sulit untuk ditinjau dari luar. Anda tampaknya berada dalam suatu kursus yang tidak memberi Anda apa yang Anda harapkan. Pertimbangkan kembali opsi Anda.

Kirk Broadhurst
sumber
Terima kasih, saya telah memikirkan hal ini dan berpikir Anda sangat benar tentang dua opsi ini. Yang pertama lebih benar bagi saya, dan saya akan mencari pekerjaan sambil menunggu untuk melihat apakah kursus menjadi lebih menarik. Ini adalah benar-benar pendidikan rekayasa perangkat lunak, yang saya memilih lebih ilmu komputer karena saya ingin mendapatkan sampai dengan kecepatan cepat dan belajar melalui kerja. Mungkin itu menjelaskan mengapa saya mengharapkan sedikit lebih banyak 'keterampilan dunia nyata'. :)
Toerndev
Hanya beberapa komentar dari masa lalu universitas saya: Saya belajar kursus di mana kami memiliki "pemrograman 101" pada jadwal, bagian itu sangat membosankan bagi saya. Tetapi kursus lain menarik (fisika, mekanika, ...) sehingga bahkan jika kuliah membosankan yang mungkin tidak berlaku untuk seluruh program dan untuk bagian lain mungkin layak melewati rasa sakit. Tapi saya putus sekolah. Sementara itu saya belajar bahwa kadang - kadang kertas itu akan bermanfaat walaupun kertas itu tidak berarti saya akan lebih baik dalam pekerjaan saya (saya memiliki pekerjaan yang bagus, gaji yang baik, ... jadi tidak buruk ;-))
johannes
0

Saya pikir banyak jawaban untuk pertanyaan ini mengecewakan. Mereka kembali ke argumen lama yang lelah tentang CS vs Pemrograman dll. Mungkin begitu, tapi bagi saya sepertinya kursus OP sedang tidak mengajar juga.

Saya berada dalam situasi sudah bekerja sebagai programmer, dan belajar sedikit sendiri, sebelum belajar CS paruh waktu di perguruan tinggi. Saya berkeliling dengan hati-hati, tetapi umumnya menganggap kurikulum hanya membuang-buang waktu. Juga mereka tidak akan membiarkan saya melewati kursus meskipun sudah memiliki pengalaman profesional di daerah tersebut.

Dalam pengalaman saya, sebagian besar profesor cukup malas dan menggunakan kurikulum yang ketinggalan zaman. Jujur kedengarannya seperti Anda membuang-buang waktu. Saya mempertanyakan bahkan apakah menyelesaikan diploma akan membantu Anda menemukan pekerjaan.

Saya ragu Anda dapat melakukan banyak hal untuk mengubah haluan Anda. Anda bisa menambahnya dengan belajar sendiri. Atau lupakan saja semuanya, dan pelajari CS secara mandiri, dan lakukan sertifikasi industri juga.

Saya harus menambahkan bahwa saya tidak tahu tentang nilai ijazah di pasar kerja negara Anda. Jika ijazah itu sendiri berharga terlepas dari isinya, maka Anda mungkin hanya perlu memasang kurikulum yang agak kurang.

Antonio2011a
sumber
Tidak melihat ini sebelumnya. Saya senang melihat seseorang mengatakan apa yang saya rasakan tentang beberapa jawaban (paragraf pertama Anda)! Ya pengajarannya agak tidak berguna, saya tidak menghadiri kelas lagi tetapi hanya menyerahkan program yang perlu saya tulis. Saya melakukannya dengan cara saya sendiri (yang biasanya sangat buruk, datang dari CL ke C ++), menemukan banyak hal yang tidak ada dalam kurikulum, dan meminta saran teman-teman programmer daripada profesor untuk meminta nasihat. Dengan cara ini sebenarnya menyenangkan. Tetap berharap saya dapat menemukan pekerjaan sebelum lulus sekalipun.
Toerndev
0

Mereka harus melayani para siswa. Sebagian besar siswa tidak dapat memprogram. Jadi mereka tidak didorong untuk pergi ke sana secara teknis.

Mereka juga memiliki bidang penelitian khusus, tetapi mereka tidak mengajarkannya. Dan bagaimanapun banyak peneliti bukanlah guru yang baik, sehingga Anda dapat menganggap diri Anda beruntung jika mereka mengajar hal-hal yang sudah Anda ketahui!

Bagaimanapun, Anda sepertinya tidak tahu apa itu ilmu komputer. Ini bukan tentang apa yang praktis untuk industri.

barlop
sumber
-6

Saya akan meminta (dan kemudian bersikeras) untuk mengembalikan tugas Anda dalam standar c ++. Ini sepenuhnya masuk akal karena Anda tidak dapat menyelesaikan tugas sebaliknya.

Adapun gaya buruk; pasti akan ada beberapa di antaranya untuk memulai. Belajar menggunakan pustaka io standar dengan benar membutuhkan beberapa fitur c ++ canggih, khususnya templat dan iterator. Saya bisa melihat mengapa seorang dosen akan membuat Anda menggunakan fungsi io yang sangat sederhana untuk memulai. Saya tidak akan takut untuk bertanya tentang ini, itu menunjukkan antusiasme dan sedikit cahaya di mata Anda. Dosen Anda harus dapat menjalin pertanyaan Anda menjadi kuliah di masa depan di mana Anda (semoga) meluruskan latihan awal Anda.

Saya akan membiarkannya di situ saja. Meskipun c ++ dapat menjadi bahasa yang bebas platform, namun seringkali tidak. Mempelajari beberapa fungsi sistem Windows bukanlah hal yang buruk, terutama jika Anda kemudian melatih diri untuk melakukannya sesuai standar. Anda akan menemukan suatu titik conio.hketika melihat kode orang lain - dan ada baiknya mengetahui apa yang dilakukannya.

Tom
sumber
10
tidak, Anda diberikan alat untuk melakukan pekerjaan itu, dan tugas Anda untuk menggunakan alat itu. Jika Anda memiliki pekerjaan di mana semua yang Anda miliki adalah XT berusia 15 tahun yang menjalankan CP / M, menuntut mereka menerima kode Windows 7 64 bit Anda tidak akan berfungsi, lebih baik biasakan itu sedini mungkin.
jwenting
2
@Ramhound Sebuah universitas harus memungkinkan untuk menyelesaikan kursus tanpa harus membeli peralatan yang mahal (seperti sistem Operasi Windows). Ini merugikan.
Tom
3
@ Tom, Jika saya mengajar Photoshop, saya berharap Anda membeli Photoshop (yang sangat mahal) dan saya berharap Anda membeli buku teks yang mahal, saya tidak melihat di mana ini berbeda. Dan saya berani bertaruh ada banyak komputer di kampus yang bisa dia gunakan untuk tugas itu tanpa membeli Windows (yang terus terang siapa pun yang mempelajari CS mungkin harus memiliki keduanya, Anda tidak pernah tahu di mana Anda akan berakhir, orang-orang yang memprogram dalam tumpukan Microsoft produk tidak cenderung menggunakan Linux.)
HLGEM
3
@Ramhound Bahkan jika profesor tidak secara eksplisit mengatakan mengapa dia menggunakan rutin IO berbasis dos yang disederhanakan, kita mungkin dapat membuat tebakan yang benar. Seperti yang disebutkan Tom, rutinitas C ++ relatif kompleks sehingga menyembunyikan detail tidak masuk akal dalam kursus tingkat intro. Keputusan untuk menggunakan pustaka spesifik platform berbasis windows alih-alih berbasis * nix hampir dipastikan berasal dari asumsi bahwa sebagian besar siswa menggunakan windows bukan * nix, dan bahwa lebih banyak pengguna windows akan kesulitan memulai dengan * nix daripada sebaliknya.
Dan Neely
5
@gaidal - aturan ada karena suatu alasan. Jika Anda mulai bekerja di suatu tempat dan memutuskan bahwa alih-alih perpustakaan eksklusif Anda akan menggunakan standar karena "standar ada karena suatu alasan" - Anda akan mendapati diri Anda menganggur dengan sangat cepat. Ikuti kursus ini sebagai latihan kepatuhan standar pengkodean. Anda tidak akan selalu menyukai itu.
littleadv