Cara Memaksimalkan Pendidikan Ilmu Komputer

Kebanyakan programmer modern menerima pendidikan mereka di universitas. Hal ini akan berubah seiring berjalannya waktu, namun saat ini personel yang baik di perusahaan IT masih berasal dari universitas. Dalam postingan ini, Stanislav Protasov, Direktur Hubungan Universitas Acronis, berbicara tentang visinya tentang fitur pelatihan universitas untuk programmer masa depan. Guru, siswa, dan mereka yang mempekerjakan mereka bahkan mungkin menemukan beberapa tip berguna.

Cara Memaksimalkan Pendidikan Ilmu Komputer

Selama 10 tahun terakhir saya mengajar matematika, algoritma, bahasa pemrograman dan pembelajaran mesin di berbagai universitas. Saat ini, selain posisi saya di Acronis, saya juga menjabat sebagai wakil kepala departemen ilmu komputer teori dan terapan di MIPT. Dari pengalaman saya bekerja di universitas-universitas bagus Rusia (dan tidak hanya), saya membuat beberapa pengamatan tentang persiapan siswa dalam disiplin ilmu komputer.

Aturan 30 detik tidak lagi berlaku

Saya yakin Anda pernah menemukan aturan 30 detik, yang menyatakan bahwa seorang programmer harus memahami tujuan suatu fungsi setelah melihat sekilas kodenya. Ini ditemukan sejak lama, dan sejak itu banyak sistem operasi, bahasa, perangkat keras, dan algoritme bermunculan. Saya telah menulis kode selama 12 tahun, tetapi baru-baru ini saya melihat kode sumber untuk satu produk, yang sekilas tampak seperti mantra ajaib bagi saya. Saat ini, jika Anda tidak tenggelam dalam area subjek, aturan 30 detik akan berhenti berfungsi. Jika tidak, tidak hanya 30, tetapi juga 300 detik tidak akan cukup bagi Anda untuk mengetahui apa itu.

Misalnya, jika Anda ingin menulis driver, Anda perlu mendalami area ini dan membaca ribuan baris kode tertentu. Dengan pendekatan mempelajari suatu subjek seperti ini, seorang spesialis mengembangkan “perasaan mengalir”. Seperti dalam rap, ketika perasaan rima yang bagus dan ritme yang tepat muncul tanpa rasionalisasi khusus. Demikian pula, pemrogram yang terlatih dapat dengan mudah mengenali kode yang tidak efektif atau buruk tanpa mempelajari secara mendetail di mana pelanggaran gaya terjadi atau pendekatan suboptimal digunakan (tetapi perasaan ini bisa sangat sulit untuk dijelaskan).

Spesialisasi dan kompleksitas yang semakin meningkat menyebabkan pendidikan sarjana tidak lagi memberikan kesempatan untuk mempelajari semua bidang secara memadai. Namun justru pada jenjang pendidikan inilah seseorang perlu memperoleh pandangan. Setelah itu, di sekolah pascasarjana atau di tempat kerja, Anda perlu meluangkan waktu untuk membenamkan diri dalam masalah dan kekhususan mata pelajaran, mempelajari bahasa gaul, bahasa pemrograman dan kode rekan kerja, membaca artikel dan buku. Bagi saya, ini adalah satu-satunya cara, dengan bantuan universitas, untuk “meningkatkan standar” untuk masa depan. Spesialis berbentuk T.

Bahasa pemrograman apa yang terbaik untuk diajarkan di universitas?

Cara Memaksimalkan Pendidikan Ilmu Komputer
Saya gembira karena para pengajar di universitas sudah berhenti mencari jawaban yang benar atas pertanyaan: “Bahasa apa yang terbaik untuk program?” Perdebatan tentang mana yang lebih baik - C# atau Java, Delphi atau C++ - hampir hilang. Munculnya banyak bahasa pemrograman baru dan akumulasi pengalaman pedagogis telah menghasilkan pemahaman yang mapan di lingkungan akademis: setiap bahasa memiliki ceruknya sendiri-sendiri.

Masalah pengajaran menggunakan bahasa pemrograman tertentu tidak lagi menjadi prioritas. Tidak masalah bahasa apa yang digunakan dalam kursus tersebut. Hal utama adalah ekspresi bahasa yang memadai. Buku "Seni Pemrograman Multiprosesor” adalah ilustrasi yang bagus tentang pengamatan ini. Dalam edisi klasik ini, semua contoh disajikan dalam Java - bahasa tanpa pointer, tetapi dengan Pengumpul Sampah. Hampir tidak ada orang yang berpendapat bahwa Java bukanlah pilihan optimal untuk menulis kode paralel berkinerja tinggi. Namun bahasanya cocok untuk menjelaskan konsep yang disajikan dalam buku tersebut. Contoh lain - kursus pembelajaran mesin klasik Andrew Nna, mengajar di Matlab di lingkungan Oktaf. Saat ini Anda dapat memilih bahasa pemrograman yang berbeda, tapi apa bedanya jika ide dan pendekatannya penting?

Lebih praktis dan mendekati kenyataan

Pada saat yang sama, dalam beberapa tahun terakhir terdapat lebih banyak praktisi di universitas. Jika sebelumnya program-program universitas di Rusia dikritik karena tidak sesuai dengan kenyataan, kini hal yang sama tidak berlaku untuk pendidikan TI. 10 tahun yang lalu hampir tidak ada guru di universitas yang memiliki pengalaman industri nyata. Saat ini, semakin sering, kelas-kelas di departemen khusus diajarkan bukan oleh guru ilmu komputer penuh waktu, tetapi oleh spesialis TI yang berpraktik yang hanya mengajar 1-2 mata kuliah di waktu luang mereka dari pekerjaan utama mereka. Pendekatan ini dibenarkan dalam hal pelatihan personel berkualitas tinggi, pemutakhiran kursus dan, tentu saja, pencarian karyawan potensial di perusahaan. Saya rasa saya tidak akan membeberkan rahasianya dengan mengatakan bahwa kami mendukung departemen dasar di MIPT dan membangun hubungan dengan universitas lain, termasuk untuk mempersiapkan siswa yang dapat memulai karir mereka di Acronis.

Matematikawan atau programmer?

Cara Memaksimalkan Pendidikan Ilmu Komputer
Perang suci yang sebelumnya berkisar pada bahasa pemrograman kini telah beralih ke arah filosofis. Sekarang yang disebut “programmer” dan “ahli matematika” sedang berdebat satu sama lain. Pada prinsipnya, sekolah-sekolah ini dapat dipisahkan menjadi dua program pendidikan, namun industri masih lemah dalam memisahkan seluk-beluk tersebut, dan dari universitas ke universitas kami memiliki pendidikan serupa dengan fokus yang sedikit berbeda. Artinya, baik pelajar maupun perusahaan tempat dia akan terus bekerja harus melengkapi teka-teki pengetahuan dengan bagian-bagian yang hilang.

Munculnya praktisi di universitas yang menulis kode industri dalam berbagai bahasa memberikan mahasiswa pengembangan keterampilan yang lebih baik. Mengenal dengan baik implementasi perpustakaan standar, kerangka kerja, dan teknik pemrograman, berlatih pemrogram menanamkan keinginan siswa untuk menulis kode yang baik, melakukannya dengan cepat dan efisien.

Namun, keterampilan yang berguna ini terkadang menyebabkan munculnya orang-orang yang suka menemukan kembali roda. Siswa pemrograman berpikir seperti ini: “Haruskah saya menulis 200 baris kode bagus lagi yang akan menyelesaikan masalah secara langsung?”

Guru yang pernah mengenyam pendidikan matematika klasik (misalnya dari Fakultas Matematika atau Matematika Terapan) seringkali bekerja di lingkungan pseudo-ilmiah, atau di bidang pemodelan dan analisis data. “Ahli Matematika” melihat permasalahan di bidang Ilmu Komputer secara berbeda. Mereka terutama beroperasi bukan dengan kode, tetapi dengan algoritma, teorema, dan model formal. Keuntungan penting dari pendekatan matematika adalah pemahaman mendasar yang jelas tentang apa yang bisa dan tidak bisa diselesaikan. Dan bagaimana cara mengatasinya.

Oleh karena itu, guru matematika berbicara tentang pemrograman dengan bias terhadap teori. Siswa yang berasal dari “ahli matematika” sering kali menghasilkan solusi yang dipikirkan dengan matang dan unggul secara teoritis, namun biasanya kurang optimal dari sudut pandang linguistik dan seringkali ditulis dengan sembarangan. Siswa seperti itu percaya bahwa tujuan utamanya adalah untuk menunjukkan kemampuan memecahkan masalah tersebut secara prinsip. Namun implementasinya mungkin timpang.

Anak-anak yang dibesarkan sebagai programmer di sekolah atau di tahun-tahun pertama mereka membawa serta “sepeda yang sangat indah”, yang, bagaimanapun, biasanya tidak bekerja dengan efisien tanpa gejala. Sebaliknya, mereka tidak menetapkan tugas untuk berteori secara mendalam dan beralih ke buku teks untuk mencari solusi optimal, lebih memilih kode yang indah.

Di berbagai universitas, saat wawancara mahasiswa, saya biasanya melihat “sekolah” mana yang mendasari pendidikannya. Dan saya hampir tidak pernah menemukan keseimbangan sempurna dalam pendidikan dasar. Sebagai seorang anak, di kota saya Anda bisa mempersiapkan diri untuk olimpiade matematika, tetapi tidak ada klub pemrograman. Sekarang, di klub, anak-anak belajar memprogram dengan Go dan Python yang “modis”. Oleh karena itu, pada tingkat penerimaan universitas pun terdapat perbedaan pendekatan. Saya percaya bahwa penting untuk mempertahankan kedua keterampilan tersebut di universitas, jika tidak, seorang spesialis dengan landasan teori yang tidak memadai, atau seseorang yang belum belajar dan tidak ingin menulis kode yang baik, akan datang untuk bekerja di perusahaan.

Bagaimana “memompa mistar gawang” untuk masa depan Spesialis berbentuk T?

Cara Memaksimalkan Pendidikan Ilmu Komputer
Jelas bahwa dalam kondisi seperti itu siswa tinggal memilih apa yang paling disukainya. Guru hanya menyampaikan sudut pandang yang lebih dekat dengannya. Namun semua orang akan mendapat manfaat jika kodenya ditulis dengan indah, dan dari sudut pandang algoritme, semuanya jelas, masuk akal, dan efektif.

  • cakrawala TI. Lulusan gelar sarjana di bidang Ilmu Komputer adalah spesialis siap pakai dengan pandangan teknis yang maju, yang mungkin telah memilih profilnya. Tapi di tahun pertama, kita tidak tahu apa yang akan dia lakukan. Dia bisa mendalami sains atau analitik, atau, sebaliknya, dia bisa menulis kode dalam jumlah besar setiap hari. Oleh karena itu, mahasiswa perlu diperlihatkan seluruh aspek pekerjaan di bidang IT dan diperkenalkan dengan semua alatnya. Idealnya, guru dari mata kuliah teori akan menunjukkan hubungan dengan praktik (dan sebaliknya).
  • Titik pertumbuhan. Adalah kepentingan siswa itu sendiri untuk tidak membiarkan dirinya bertindak ekstrem. Memahami apakah Anda seorang “ahli matematika” atau “programmer” tidaklah sulit. Cukup mendengarkan dorongan pertama ketika memecahkan suatu masalah: apa yang ingin Anda lakukan - melihat ke buku teks untuk mencari pendekatan optimal atau menulis beberapa fungsi yang pasti akan berguna nantinya? Berdasarkan hal ini, Anda dapat membangun lintasan pembelajaran Anda yang saling melengkapi.
  • Sumber pengetahuan alternatif. Kebetulan programnya seimbang, tetapi "Pemrograman Sistem" dan "Algoritma" diajarkan oleh orang yang sama sekali berbeda, dan beberapa siswa lebih dekat dengan guru pertama, dan yang lain - dengan guru kedua. Tetapi bahkan jika Anda tidak menyukai profesornya, ini bukan alasan untuk mengabaikan beberapa mata pelajaran demi mata pelajaran lainnya. Para sarjana sendiri tertarik untuk menemukan kemauan untuk bekerja dengan sumber-sumber pengetahuan dan tidak mempercayai pendapat radikal seperti “matematika adalah ratunya ilmu pengetahuan, yang utama adalah mengetahui algoritma” atau “kode yang baik mengimbangi yang lainnya.”

Anda dapat memperdalam pengetahuan Anda secara teori dengan beralih ke literatur khusus dan kursus online. Anda dapat meningkatkan keterampilan Anda dalam bahasa pemrograman di Coursera, Udacity atau Stepik, di mana banyak kursus berbeda disajikan. Selain itu, siswa sering kali mulai menonton kursus bahasa tingkat lanjut jika mereka merasa bahwa guru algoritme mengetahui matematika dengan baik, tetapi tidak dapat menjawab pertanyaan implementasi yang rumit. Tidak semua orang akan setuju dengan saya, tetapi dalam praktik saya hal ini telah terbukti dengan baik spesialisasi dalam C++ dari Yandex, di mana fitur-fitur bahasa yang semakin kompleks dianalisis secara berurutan. Secara umum, pilihlah program studi dengan rating tinggi dari perusahaan atau universitas terkemuka.

soft skill

Cara Memaksimalkan Pendidikan Ilmu Komputer
Datang dari universitas untuk bekerja di perusahaan mana pun, dari perusahaan rintisan hingga perusahaan besar, mahasiswa bahkan dari universitas ternama pun mendapati diri mereka kurang beradaptasi dengan lingkungan kerja nyata. Faktanya, saat ini universitas banyak “mengasuh” mahasiswanya. Bahkan setelah banyak bolos kelas, tidak mempersiapkan ujian dan ulangan tepat waktu, ketiduran, atau terlambat ujian, semua orang bisa lulus dan mengulang lagi - dan pada akhirnya tetap mendapat ijazah.

Namun, saat ini terdapat semua kondisi bagi siswa untuk dipersiapkan menghadapi kehidupan dewasa dan aktivitas profesional mandiri. Mereka tidak hanya harus memprogram, tetapi juga berkomunikasi. Dan ini juga perlu diajarkan. Universitas mempunyai format yang berbeda-beda untuk mengembangkan keterampilan ini, namun sayangnya sering kali kurang mendapat perhatian. Namun, kita memiliki banyak peluang untuk memperoleh keterampilan kerja tim yang efektif.

  • Komunikasi bisnis tertulis. Sayangnya, sebagian besar lulusan yang meninggalkan universitas tidak mengetahui etika korespondensi. Kekhasan komunikasi dalam instant messenger adalah pada pertukaran pesan siang dan malam serta penggunaan gaya percakapan dan kosa kata informal. Namun, dimungkinkan untuk melatih pidato tertulis ketika siswa berkomunikasi dengan departemen dan universitas.

    Dalam praktiknya, manajer sering dihadapkan pada kebutuhan untuk menguraikan proyek besar menjadi tugas-tugas kecil. Untuk melakukan ini, Anda perlu menjelaskan dengan jelas setiap tugas dan komponennya sehingga pengembang junior memahami apa yang diminta dari mereka. Tugas yang tidak didefinisikan dengan baik sering kali mengarah pada kebutuhan untuk mengulang sesuatu, itulah sebabnya pengalaman dalam komunikasi tertulis membantu lulusan bekerja dalam tim yang terdistribusi.

  • Presentasi tertulis tentang hasil pekerjaan Anda. Untuk mempresentasikan proyek pendidikannya, siswa senior dapat menulis postingan di Habr, artikel ilmiah, dan juga sekedar laporan. Ada banyak peluang untuk ini - kursus dimulai pada tahun kedua di beberapa universitas. Anda juga dapat menggunakan esai sebagai bentuk kontrol - biasanya bentuknya mirip dengan artikel jurnalistik. Pendekatan ini telah diterapkan di Sekolah Tinggi Ekonomi Universitas Riset Nasional.

    Jika suatu perusahaan menerapkan pendekatan pembangunan yang fleksibel, maka perusahaan tersebut harus menyajikan hasil pekerjaannya dalam porsi yang lebih kecil, namun lebih sering. Untuk melakukan hal ini, penting untuk dapat menyampaikan secara singkat hasil pekerjaan seorang spesialis atau seluruh tim. Selain itu, banyak perusahaan saat ini melakukan “review” - tahunan atau setengah tahunan. Karyawan mendiskusikan hasil dan prospek kerja. Tinjauan yang berhasil adalah alasan utama pertumbuhan karier, bonus, misalnya, di Microsoft, Acronis atau Yandex. Ya, Anda dapat memprogram dengan baik, tetapi “duduk di pojok” bahkan seorang spesialis yang keren pun akan selalu kalah dari seseorang yang tahu bagaimana menyajikan kesuksesannya dengan baik.

  • Penulisan Akademik. Tulisan akademis patut mendapat perhatian khusus. Bermanfaat bagi siswa untuk mengenal kaidah penulisan teks ilmiah, penggunaan argumentasi, pencarian informasi di berbagai sumber, dan format referensi sumber tersebut. Sebaiknya dilakukan dalam bahasa Inggris, karena masih banyak lagi teks bagus di komunitas akademik internasional, dan untuk berbagai disiplin ilmu sudah ada template yang ditetapkan untuk menyajikan hasil ilmiah. Tentu saja, keterampilan menulis akademis juga diperlukan ketika mempersiapkan publikasi berbahasa Rusia, tetapi contoh artikel modern yang bagus dalam bahasa Inggris jauh lebih sedikit. Keterampilan ini dapat diperoleh melalui kursus yang sesuai, yang kini disertakan dalam banyak program pendidikan.
  • Memimpin pertemuan. Kebanyakan siswa tidak tahu bagaimana mempersiapkan rapat, membuat notulensi, dan mengolah data. Namun jika kita mengembangkan keterampilan ini di perguruan tinggi, misalnya dengan berpartisipasi dalam proyek tim, kita dapat menghindari pemborosan waktu di tempat kerja. Hal ini memerlukan pengawasan terhadap pekerjaan proyek siswa untuk mengajari mereka cara melakukan pertemuan secara efektif. Dalam praktiknya, hal ini menghabiskan banyak uang bagi setiap perusahaan - lagipula, jika beberapa orang yang menerima gaji besar menghabiskan satu jam waktu kerja di rapat umum, Anda ingin mendapatkan keuntungan yang sesuai.
  • Berbicara di depan umum. Banyak mahasiswa dihadapkan pada kebutuhan untuk berbicara di depan umum hanya saat mempertahankan tesisnya. Dan tidak semua orang siap untuk ini. Saya telah melihat banyak siswa yang:
    • berdiri membelakangi penonton,
    • bergoyang, mencoba membuat komisi kesurupan,
    • mematahkan pulpen, pensil dan pointer,
    • berjalan berputar-putar
    • lihat ke lantai.

    Hal ini normal ketika seseorang tampil untuk pertama kalinya. Tetapi Anda harus mulai mengatasi stres ini lebih awal - dengan mempertahankan tugas kuliah Anda dalam suasana yang bersahabat, di antara teman sekelas Anda.

    Selain itu, praktik standar di perusahaan adalah memberikan kesempatan kepada karyawan untuk mengajukan ide dan menerima dana, posisi, atau proyek khusus untuk ide tersebut. Tapi, kalau dipikir-pikir, ini sama saja dengan perlindungan tugas kuliah, hanya saja pada level yang lebih tinggi. Mengapa tidak mempraktikkan keterampilan karier yang berguna tersebut sambil belajar?

Apa yang saya lewatkan?

Salah satu alasan untuk menulis posting ini adalah artikel, dipublikasikan di situs web Universitas Negeri Tyumen. Penulis artikel hanya berfokus pada kekurangan siswa Rusia yang diperhatikan oleh guru asing. Praktik mengajar saya di berbagai universitas menunjukkan bahwa sekolah dan pendidikan tinggi di Rusia memberikan dasar yang baik. Pelajar Rusia paham matematika dan algoritma, dan lebih mudah membangun komunikasi profesional dengan mereka.

Sebaliknya, dalam kasus siswa asing, ekspektasi terhadap guru bahasa Rusia terkadang terlalu tinggi. Misalnya, pada tingkat pelatihan dasar matematika, siswa India yang saya temui mirip dengan siswa Rusia. Namun, mereka terkadang kekurangan pengetahuan khusus ketika lulus dari studi sarjana. Siswa Eropa yang baik cenderung mempunyai latar belakang matematika yang kurang kuat di tingkat sekolah.

Dan jika Anda belajar atau bekerja di universitas, kini Anda dapat melatih keterampilan komunikasi (milik Anda sendiri atau siswa Anda), memperluas dasar fundamental Anda, dan mempraktikkan pemrograman. Untuk tujuan ini, sistem pendidikan Rusia menyediakan semua peluang - Anda hanya perlu menggunakannya dengan benar.

Saya akan senang jika di komentar postingan Anda membagikan tautan Anda ke kursus dan metode yang membantu menyamakan keseimbangan dalam pendidikan, serta cara lain untuk meningkatkan soft skill saat belajar di universitas.

Sumber: www.habr.com

Tambah komentar