Berapa kerapkah ia lulus dengan ijazah Sains Komputer dan anda tidak tahu bagaimana untuk kod?


Jawapan 1:

Ambil Hot: Sains Komputer mungkin bidang yang dipenuhi dengan ego yang paling rapuh. Bahawa dikatakan, "tidak mengetahui bagaimana untuk kod" biasanya hyperbole yang tidak dapat diterima. Saya fikir * kebanyakan * orang bergurau apabila mereka mengatakan orang baru tidak boleh kod, tetapi ada minoriti kecil yang jatuh di bawah pernyataan ego rapuh yang saya buat.

Pada umumnya, ada cara yang jauh untuk pemaju untuk pergi ke peralihan dari universiti ke tenaga kerja profesional.

  • Kebanyakan universiti memberi tumpuan banyak kepada pengajaran prinsip OOP. Ini biasanya melibatkan fokus pada Java, C #, atau Python.
  • Kebanyakan universiti tertumpu kepada pengajaran asas-asas sistem komputer dan seni bina. Ini hampir secara eksklusif C dan C ++
  • Kebanyakan universiti mempunyai studio pengaturcaraan yang terhad. Kebanyakan tugasan - walaupun tahap siswazah - cenderung bebas, dengan batu permata senior atau satu atau dua kursus pengaturcaraan "kumpulan".

Perincian tersebut dengan butir-butir berikut:

  • Kebanyakan syarikat menggunakan bahasa OOP tunggal untuk Enterprise mereka. Sekiranya pelajar tidak mempunyai cukup pengalaman melaksanakan penyelesaian dengan pelbagai susunan, dan tidak ada intuisi untuk melihat pentingnya abstraksi setiap bahasa berbanding dengan pelaksanaan tertentu, ia dapat membuat pelajar yang paling berpengalaman dan cemerlang kelihatan tidak cekap jika anda mula bercakap mengenai generik dalam bahasa yang mereka tidak tahu.
  • Kebanyakan syarikat secara harfiah tidak peduli dengan pengiraan teori. Dan paling banyak, saya maksudkan sebahagian besar syarikat "tidak berteknologi". Kebanyakan syarikat di mana-mana sektor selain daripada teknologi akan menjadi acuh tak acuh sama ada anda tahu asas-asas pengkomputeran, dan sepenuhnya memberi tumpuan kepada sama ada anda boleh menyelesaikan sesuatu.
  • Di sebuah syarikat, anda akan hampir * eksklusif * bekerja dengan pasukan. Ini bermakna bahawa sebarang alat peringkat pengeluaran untuk penggunaan, analisis, kawalan versi, penyelenggaraan, debugging, pengujian, dan lain-lain pasti akan datang dengannya. Kebanyakan pelajar tidak mempunyai pengalaman dengan domain ini, atau mereka tidak tahu bagaimana mereka mungkin perlu berinteraksi dengan orang dari salah satu pasukan ini. Bagaimana untuk merancang pembangunan mereka dalam skop bagaimana pasukan-pasukan yang beroperasi ini adalah satu-satunya lapisan penyembunyian yang berasingan.

Dengan kata itu, syarikat menjangkakan pekerja baru tidak mengetahui semua perkara ini. Anda dilayan dengan merit yang mereka tahu potensi anda dan apa yang anda mungkin lakukan - tidak semestinya anda boleh melakukan segala-galanya.

Saya perhatikan bahawa objektif universiti adalah untuk memberi anda pemahaman asas yang cukup tentang sains komputer supaya anda dapat * mempelajari * setiap domain, sistem, atau paradigma. Universiti menganjurkan maklumat supaya anda boleh membina pengetahuan anda tanpa mengira domain yang anda masukkan - aplikasi dev, infosec, AI, bioinformatika, dll.

Jangan memandang rendah nilai pendidikan formal.

Edit: Oleh karena ini memiliki jumlah pandangan yang solid, saya akan memperluas sedikit ini - secara umum, saya menganggap pengekodan "baik" melibatkan mematuhi piawaian industri - menjadikan kod anda dapat diperpanjang, generik, dan mudah dibaca. Dengan cara itu, apabila pasukan baru mengambil alih pangkalan kod anda, mereka tidak perlu melakukan refactor selama enam bulan hanya untuk memberikan jumlah nilai minuscule nilai perniagaan. Dari segi itu, saya akan mengatakan bahawa * kebanyakan * graduan adalah sangat ketara. Itulah yang saya maksudkan dengan "ada jalan panjang untuk pergi" dari uni ke dunia korporat. Terdapat sebab untuk ini.

  • Kebanyakan pendidikan anda tidak melibatkan projek kumpulan. Secara peribadi, saya mempunyai satu batu kapur senior dan satu atau dua projek kumpulan kurikulum teras. Ini kebanyakannya kerana universiti ingin memastikan anda boleh menulis kod anda sendiri.
  • Landskap teknikal berubah * secara dramatik * ketika datang ke teknologi web. Kami mempunyai sudut 1, 2, 3, 4, 5, 6, React, ReactJS, Vue, ASP.NET | Kerangka web sumber terbuka untuk .NET, ASP.NET | Kerangka web sumber terbuka untuk .NET Core, Razor, Blazor - perlu saya teruskan? Ini sukar untuk dijaga, dan graduan baru dengan mudah boleh dibebani.
  • Ruang masalah. Kebanyakan syarikat menyelesaikan masalah yang jelas dan jelas. Kebanyakan graduan tidak dapat memahami * mengapa * mereka menyelesaikan masalah yang separuh masa. Ia memerlukan banyak pengalaman menggunakan pengetahuan anda untuk memahami mengapa "pengekodan dengan baik" adalah penting. Kadang-kadang, anda hanya mahu mendapatkan butang sialan untuk berfungsi, dan tidak mengapa.

Dalam apa jua keadaan, apa yang saya benar-benar mendapat kepada orang adalah jika anda mempunyai pilihan untuk pergi ke sekolah untuk CS, anda harus * benar-benar, 100%, tanpa bayangan keraguan * pergi ke sekolah. Bahagian yang sukar mengenai perisian akan pergi ke sekolah. Kebanyakan apa yang anda pelajari dan memohon dalam industri akan menjadi kurang sukar daripada seseorang menamatkan Ph. D.


Jawapan 2:

Lebih biasa daripada yang anda fikirkan.

Sekarang, anda sepatutnya dapat kod program kecil. Jika anda tidak dapat menulis program asas, anda menghadapi masalah. Sekiranya anda tidak menyempurnakan pemikiran kritikal dan menyelesaikan masalah anda, akan ada halangan besar di hadapan. Jika anda masih berjuang dengan konsep, itu boleh menggigit anda. Tidak baik dengan gelung dan fungsi dan OO? Uh oh.

Yang berkata, banyak orang yang berfikir berfikir, "Saya tidak dapat kod." Pada hakikatnya, mereka tidak boleh kod ke titik di mana mereka boleh membuat aplikasi mudah alih, laman web mewah, atau sistem yang lengkap. Itu bukan "Saya tidak boleh kod" dan sebaliknya "Saya tidak tahu apa yang diharapkan dari seorang jurutera perisian baru."

"Saya tidak dapat kod"

Apabila saya hampir tamat pengajian, saya terkejut. Saya telah belajar C, C ++, dan Jawa di sekolah, dan memberi tumpuan kepada barangan CE. Saya mempunyai rancangan untuk melakukan perkara berikut, dan saya tidak melakukan satu sama lain:

  • Tulis aplikasi mudah alih yang berfungsi
  • Tulis laman web yang benar-benar indah
  • Belajar pembelajaran mesin sendiri

Saya fikir jika saya tidak dapat membuat produk siap seperti aplikasi atau laman web, saya tidak cukup baik untuk menjadi jurutera perisian. Jika saya tidak dapat belajar ML di masa lapang saya, adakah saya cukup pandai untuk membuatnya? Saya mempunyai keraguan serius.

Saya berbuat baik pada semua projek saya, tetapi tidak ada yang memerlukan bahagian hadapan atau pangkalan data. Bagaimana saya boleh melakukan sesuatu yang bermakna? Pasti, saya boleh mengambil data dan input dan membuat perkara berfungsi seperti yang saya mahu, dan saya dapat memenuhi keperluan yang diberikan kepada saya, tetapi seolah-olah kerja saya yang terbaik adalah agak remeh berbanding dengan "perisian sebenar." Saya tidak pernah membuat sesuatu "cantik" atau mengagumkan.

Bilik yang gelap dan tidak kelihatan

Sekiranya anda tidak melakukan latihan, anda tidak tahu industri apa-apa yang anda fikirkan. Anda menggambarkan jenius rockstar melakukan kerja yang sebenarnya dilakukan oleh beberapa orang. Anda memaparkan produktiviti yang gila, apabila benar menulis aplikasi dan sistem yang baik memerlukan masa, usaha, dan kerja berpasukan.

Ia hanya semulajadi. Anda telah menangani kursus sukar dalam CS, Matematik, dan Sains dan anda merasakan bahawa anda tidak dapat mengelakkan diri daripada beg kertas. Orang dalam industri membuat aplikasi seperti Quora mesti semua lebih bijak dan mampu daripada anda. Anda hanya penipu.

Kebenaran? Kerja kursus yang ditendang anda adalah sukar, dan anda mungkin lebih bijak daripada anda memberi kredit kepada anda.

Rom tidak dibina dalam sehari

Jimat untuk orang yang luar biasa, kebanyakan graduan CS lulus dengan pengetahuan dan kemahiran untuk akhirnya belajar (di tempat kerja) seni kejuruteraan yang benar. Mereka tahu bagaimana kod berfungsi, mereka sungguh mengenal pasti dan memenuhi keperluan, mereka tahu prinsip reka bentuk pepejal, dan mereka boleh membuang gelung dan kondisinya dan mendapatkan hasil yang mereka perlukan. Mereka tidak boleh membuat apl Facebook mereka sendiri atau tapak web atau aplikasi mudah alih yang snazzy, tetapi mereka mempunyai asas untuk sampai ke sana.

Anda sepatutnya bersiap sedia untuk memulakan karir kejuruteraan perisian anda. Anda tidak sepatutnya menamatkan pengajian sebagai jurutera perisian yang sepenuhnya berjaya.

Anda boleh kod

Anda telah memberikan harapan anda yang tidak nyata. Anda berfikir "mampu untuk kod" bermakna dapat menghasilkan produk lengkap.

Anda fikir anda tidak boleh kod, kerana anda mengelirukan pengekodan dengan penyelesaian kejuruteraan dan penyelesaian perisian yang mengagumkan.

Percayalah. Anda boleh kod jauh lebih baik daripada yang anda fikirkan.


Jawapan 3:

Ia mungkin kelihatan tidak dapat dibayangkan kepada banyak orang, tetapi ia cukup biasa di negara asal saya, India. Kecuali satu kajian di universiti terkemuka di India, tidaklah menghairankan jika orang ramai mengikuti kursus sains komputer dengan kemahiran pengekodan yang sangat miskin (atau tidak).

Sistem pendidikan di India, sebahagian besarnya, didasarkan pada pengumuman hujah. Pemeriksa (dengan beberapa pengecualian) mengharapkan jawapan teks sempurna, dan ini juga berlaku untuk soalan pengkodan. Walaupun untuk sesi praktikal, pelajar disediakan dengan 'manual makmal' yang terdiri daripada sekumpulan program biasa. Dalam peperiksaan ini, hanya soalan dari buku panduan ini yang seharusnya ditanya, jadi tidak ada insentif untuk pelajar melakukan apa-apa selain menghafal program-program mengikut baris. Dan mereka yang datang dengan program yang betul-betul menghafal, diberi ganjaran dengan nilai yang sempurna.

Ya, ada beberapa pelajar yang mengambilnya untuk belajar bagaimana untuk kod semasa waktu lapang mereka. Tetapi ramai pelajar, terutama mereka yang mempunyai ingatan yang baik, tidak dapat melihat alasan untuk membuat usaha untuk belajar, apabila mereka dapat memilih cara mudah dengan menghafal. Lebih-lebih lagi, kerana jawapan buku hafalan ini biasanya menjana skor yang lebih baik pula.

Saya berada dalam situasi yang sama selepas saya menamatkan pengajian. Saya tidak boleh kod jauh melebihi program 'Hello World' yang mudah di C. Malah, saya 'takut' kod menulis. Saya mengambilnya sendiri untuk belajar sendiri, dan mendarat dengan kerja pengaturcaraan pertama pertama 6 bulan selepas tamat pengajian. Ijazah sains komputer saya hanyalah sekeping kertas sekarang.

Saya tahu ramai orang yang berada dalam keadaan yang sama selepas menamatkan pengajian (dari universiti saya dan lain-lain). Ada yang belajar untuk kod sendiri, sementara yang lain berpindah ke pengujian perisian dan peranan IT lain yang tidak memerlukan mereka untuk menulis kod.

Saya tidak bercadang untuk menyalahkan semata-mata di universiti India yang lemah, tetapi saya hanya mengatakan bahawa seseorang boleh lulus tanpa belajar kod dari universiti-universiti ini. Ini tidak terpakai kepada universiti-universiti terkemuka di India (di mana saya percaya bahawa kursus-kursus ini lebih berstruktur untuk menggalakkan pembelajaran tentang pemikiran).

Seorang usahawan India yang berjaya (tidak ingat siapa dia) pernah berkata bahawa sekitar 75% siswazah dari universiti India tidak dipekerjakan, dan dia tidak dapat lebih jauh dari kebenaran.


Jawapan 4:

Ini sebenarnya berlaku dengan kerap - terdapat banyak graduan baru dari program sains komputer yang merasakan kemahiran pengekodan mereka lemah (atau tidak wujud). Di sini saya akan meneliti mengapa ini berlaku, kemudian gariskan apa yang boleh anda lakukan mengenainya.

Kebanyakan jabatan sains komputer universiti memenuhi peranan ganda - mereka menyediakan pengaturcara untuk industri dan melatih saintis komputer masa depan. Selalunya kedua-dua peranan ini tidak menentu, mengakibatkan pelajar mengambil kelas teoretis yang tidak dapat dikaitkan dengan kerja harian jurutera perisian. Oleh kerana kelas-kelas teori ini mungkin semakin sibuk dengan kursus pengkodan yang lebih banyak, ramai pelajar CS membuatnya untuk tamat pengajian dan masih merasakan kemahiran pengekodan mereka adalah subpar. Seringkali, graduan CS perlu membina kemahiran tambahan sebelum mereka bersedia untuk memohon pekerjaan.

Jika anda berada dalam kedudukan ini, tugas pertama anda adalah untuk mempertimbangkan matlamat jangka panjang anda. Oleh kerana anda prihatin tentang kekurangan kemahiran pengekodan, saya akan menganggap matlamat anda adalah untuk menjadi seorang pengaturcara. Seterusnya anda akan ingin mengetahui tentang jenis tugas pengaturcaraan yang anda targetkan. Pekerjaan pembangunan perisian dalam pasaran semasa membentuk pengedaran bimodal - terdapat banyak pekerjaan pembangunan berkualiti rendah, tetapi juga banyak peranan kejuruteraan perisian yang bermanfaat dan mencabar. Sebaik sahaja anda mengetahui tahap tugas pengaturcaraan yang anda targetkan, biarlah menentukan jalur pengajian yang anda ambil untuk mengisi jurang antara kemahiran pengkodan anda sekarang dan di mana anda memerlukannya.

Jika anda ingin menyasarkan peranan kejuruteraan perisian yang lebih bermanfaat, maka

Pelancaran Sekolah

, di mana saya seorang pengajar, boleh menjadi pilihan yang baik untuk menutup jurang kemahiran anda. Kami telah mencipta kurikulum kejuruteraan berstruktur perisian yang mengajar asas-asas dari asas. Kami memohon a

pembelajaran berasaskan penguasaan

pendekatan untuk memastikan pelajar kita mempunyai kemahiran praktikal yang diperlukan, mereka perlu bersaing untuk peranan perisian terbaik. Program kami adalah 100% jauh, dan juga diri sendiri. Bahagian terakhir ini penting bagi mereka yang mempunyai latar belakang CS - anda akan dapat meluangkan sedikit masa pada topik yang pernah anda lalui dan memberi tumpuan lebih banyak perhatian untuk membangunkan kemahiran pengekodan yang kuat.

Sekiranya anda ingin merapatkan jurang antara gelar CS dan kerjaya kejuruteraan perisian yang bermanfaat, sila rujuk kepada kami

kursus persediaan percuma

, yang memberi gambaran yang baik terhadap gaya dan struktur program teras kami. Kami mempunyai banyak pelajar dan graduan yang telah mempelajari CS dan mendapati Sekolah Pelancaran menjadi jalan yang efektif untuk membina kemahiran pengekodan yang kuat yang mereka kekurangan sebelum ini.


Jawapan 5:

Untuk pelajar sarjana CS biasa, dia mungkin mempunyai beberapa kelas pengekodan tetapi mereka sama seperti mana-mana kelas lain, anda boleh lulus mereka dengan mengikuti kerja rumah dan bacaan. Ini tidak bermakna mereka akan menjadi coder hebat selepas tamat pengajian. Kelas-kelas lain seperti sistem maklumat, keselamatan siber, pengurusan projek semuanya dianggap sains CS dan tidak seorang pun daripada mereka benar-benar memerlukan anda kod.

Adakah Steve Jobs dan Tim Cook tahu bagaimana untuk kod? Mereka tidak, syarikat-syarikat besar memerlukan orang-orang CS berbakat dengan pemikiran berwawasan tentang teknologi generasi akan datang dan bukannya coders profesional. Tiada siapa yang ingat nama mana-mana coders dari Apple yang mencipta IOS atau Mac OS, yang mereka tahu Tim Cook.

Untuk pengkod, anda hanya boleh memasukkan kod dalam kerja anda dan promosi untuk anda ke tahap C adalah minimum.

Bagi seseorang yang memiliki kemahiran pengkodan yang minimum tetapi lebih praktikal dari universiti elit boleh memimpin syarikat CS dengan inovasi yang mengganggu.

Fikirkan Uber, tidak ada yang baru mengenai Uber. Sistem GPS, Sistem Kad Kredit, peta Google sudah ada di sini selama beberapa dekad. Apa yang diperlukan adalah untuk seorang pemimpin berwawasan untuk menggabungkannya dan mengganggu pasaran.

Dengan cara lain, saya boleh menyewa pereka yang hebat, coder hebat untuk membuat produk / perkhidmatan di bawah visi saya dan memimpin pasukan untuk berjaya. Tetapi ada jurang yang paling lama antara apa yang merupakan coder baik vs apa yang merupakan pemimpin C-level yang baik.


Jawapan 6:

Sekurang-kurangnya di Amerika Syarikat, saya fikir perlu ada perkara seperti Sarjana Muda Sains dan Sarjana Muda Sains dalam Sains Komputer. Ia SANGAT biasa untuk BA dalam Sains Komputer untuk keluar tanpa pengalaman pengekodan. Pada pendapat saya, BA dalam Comp Sci adalah satu lelucon untuk sebab-sebab lebih banyak daripada itu (tetapi itu bukan apa jawapan ini).

Yang mengatakan, ia benar-benar luar biasa untuk BS dalam Sains Komputer untuk tidak mempunyai sekurang-kurangnya menyentuh pengaturcaraan. Bergantung kepada program ini, orang yang bersisik mungkin merasakan kemahiran pengekodan mereka tidak terpakai jika BS mereka tidak memberi tumpuan kepada pengaturcaraan. Kebanyakan orang ramai boleh membaca kod dan mendapatkan idea untuk apa yang sedang berlaku, tetapi mereka juga mungkin tidak mencukupi untuk menulis kerana tahap mereka tidak memberi tumpuan kepada pengaturcaraan. Mereka mungkin lebih tertumpu pada infrastruktur atau elektronik sendiri, dan sebagainya. Sepertinya ini terputus dalam beberapa program sci sci yang melihat "Generalist" Pengaturcaraan dan Sains Komputer sebagai dua kepakaran berasingan. Sebagai contoh, saya telah melihat pengaturcara yang tidak mempunyai pemahaman tentang bagaimana firewall komputer berfungsi atau bagaimana menyelesaikan masalah kod mereka mungkin tersebar melalui rangkaian dan menarik dari pangkalan data disebabkan oleh infrastruktur tetapi mereka boleh kod dengan baik. Saya juga pernah melihat seorang programmer bercakap tentang menggunakan awan untuk menjana sumber fizikal yang mereka perlukan tetapi yang juga dalam nafas yang sama telah mengalihkan penyelenggara infrastruktur dan arkitek, tetapi nampaknya tidak memahami bahawa di suatu tempat, pada suatu ketika, awan menyentuh ke dalam set perkakasan fizikal supaya sumber awan anda boleh didapati.

Dua sen. Comp Sci adalah medan besar-besaran, tetapi sekurang-kurangnya skrip harus dijangkakan dari pengguna peringkat sistem administrator. Mereka mungkin tidak dapat memprogramkan program yang rumit atau mengetahui pelbagai bahasa pada titik topi, tetapi sekurang-kurangnya banyak yang diperlukan.


Jawapan 7:

Saya rasa ia bergantung kepada apa yang anda maksud dengan "tahu cara kod".

Ia satu perkara yang perlu diketahui bagaimana kerja pengkodan. Tulis sedikit program "Hello World", menyusun senarai, membaca fail, kompilasi, debug, dll. Anda tahu, perkara asas.

Mampu menghasilkan tahap Pengeluaran, program fungsional yang sebenarnya melakukan sesuatu yang bermanfaat dan / atau kod pada tahap profesional adalah satu perkara yang sama sekali berbeza.

Adalah pendapat saya (dan empirik) saya bahawa kebanyakan (jika tidak semua) pelajar keluar dari kolej mengetahui bagaimana pengkodan berfungsi tetapi tidak semestinya bersedia untuk kod pada tahap profesional.

Sebabnya mudah. Terdapat lebih baik untuk menulis perisian profesional daripada memenuhi mata. Apa yang anda pelajari di sekolah merupakan landasan yang kukuh, tetapi ia adalah amalan dan bimbingan oleh pemaju [pemimpin / pemimpin] yang berpengalaman yang benar-benar membawa anda ke tahap itu.

Diakui, ini adalah subjek yang mendorong saya kacang. Khususnya apabila saya melihat program "12-bulan-belajar-untuk-kod" ini dan laman web pemula yang dikemukakan "pemaju" sendiri dengan alat CMS ... [mengeluh]

Apa-apa pun, berita baiknya adalah bahawa perniagaan sebenarnya mengharapkan ini. Mereka tahu anda akan keluar dari kolej dan anda tidak tahu bagaimana menggunakan apa yang anda pelajari dalam suasana profesional. Sebenarnya dan ganjil kerana ia mungkin berbunyi, mereka suka ini, kerana mereka boleh "membesarkan kamu" dari awal dan mengubah anda menjadi pemaju [syarikat lelaki yang sempurna]. Sebaliknya, dengan pemaju berpengalaman yang datang dengan ide, metodologi dan set permintaannya sendiri.

Lihat sekarang?

Jadi, adakah perkara biasa bagi graduan di CS untuk tidak tahu bagaimana untuk kod?

Pasti itu ... dan tidak ada yang salah.

Semoga berjaya!


Jawapan 8:

A2A: Ia akan menjadi satu pencapaian yang hebat untuk menamatkan pengajian dengan ijazah CS dan tidak tahu bagaimana untuk kod, sekurang-kurangnya tidak baik. Program sarjana muda biasanya mempunyai dua atau tiga kursus di mana pengkodan, paradigma pengaturcaraan, dan struktur program adalah penekanan. Kelas-kelas lain mempunyai tugas pengekodan yang melaksanakan dan menguatkan konsep yang mereka ajar. Untuk siswazah dan tidak tahu bagaimana kod memerlukan usaha nyata.

Yang berkata, adalah mungkin bagi seseorang untuk mendapatkan ijazah CS dan menjadi buruk pada pengekodan, terutamanya apabila diukur terhadap standard profesional. Ijazah Sarjana Muda hanya menyediakan asas untuk menjadi pengaturcara profesional yang berwibawa. Anda benar-benar belajar bagaimana untuk memprogramkan tahap profesional semasa tahun pertama anda bekerja - dan jujur, jika anda seorang profesional, anda tidak akan berhenti belajar dan bertambah baik.