Monday, 11 December 2017
… Belajar
pemrograman (ngoding) itu tidak seperti belajar matematika di jaman SMA, kalau
nilainya kurang bagus bisa ikut BimBel atau Les Privat, latihan ngerjakan
soal-soal yang mirip dengan soal-soal diujian. Karena ngoding itu tentang cara
berfikir dan skillmenyelesaikan permasalahan komputasional – A Random Thought
(Artikel ini saya ambil dari
cakshon.com)
Hari
ini di milis dosen jurusan saya isu itu muncul kembali. Lagi-lagi, para dosen
mengeluhkan semakin banyak mahasiswa yang tidak bisa ngoding di Jurusan yang
meluluskan para Sarjana Komputer itu. Dulu, kurikulumnya yang dituduh jadi
biang kerok karena banyak mata kuliah pemrograman yang tidak dimunculkan tapi
disisipkan di mata kuliah yang lain.
Sekarang
ketika kurikulum sudah diganti dengan yang baru, dimana mata kuliah – mata
kuliah pemrograman itu dimunculkan kembali, nyatanya juga sama saja. Semakin
banyak saja mahasiswa yang masih tidak bisa. Mungkin, tidak lebih dari 20% saja
mahasiswa yang menguasai core skill sarjana komputer ini. Bahkan, bukan rahasia
lagi yang sudah lulus dengan gelar S.Kom dan IPK bagus pun, banyak yang tetep
tidak bisa ngoding properly. Ndak malu apa ya, dengan gelar Sarjana Komputer
nya?
Benar
memang, bahwa pekerjaan untuk lulusan sarjana komputer tidak terbatas pada
ngoding saja. Tetapi, rasanya ada yang salah ketika kurikulumnya didesain untuk
membuat mereka menguasai pemrograman, tetapi luaranya tidak seperti yang
diharapkan. Dan ini menurut saya menjadi semacam alarm menjelang dimulainya
MEA. Jika bigini, bagaimana para sarjana yang diharapkan jadi pemain unggul di
industri kreatif ini mampu bersaing dengan pemain dari negara tetangga,
seperti: Singapura, Thailand, Malaysia? Lalu, siapa yang salah?
Mahasiswanya
pasti menyalahkan dosen nya yang ndak becus ngajar. Sebaliknya, dosen nya
menyalahkan mahasiswanya yang tidak bisa diajar. Siapa yang benar, siapa yang
salah? Baiklah, saya sebagai mantan mahasiswa, pernah jadi dosen, dan sekarang
menjadi mahasiswa lagi, mencoba mengurai
akar permasalahan ini secara lebih fair. Catat ya, ini sekedar opini saya,
benar tidaknya silah direfleksikan kepada sampean sendiri saja.
Mengapa Banyak Mahasiswa Calon Sarjana Komputer banyak yang merasa kesulitan belajar ngoding?
Para
calon sarjana komputer ini bisa mahasiswa Jurusan ilmu komputer, teknik
informatika, sistem informasi, dan jurusan yang serumpun lainya. Menurut saya
penyebabnya adalah:
Pertama,
karena banyak mahasiswa yang gagal ‘move on’ dari cara belajar di bangku
sekolah ke cara belajar bangku kuliah. Dasar mata kuliah pemorgraman biasanya
diberikan di semester 1 dan semester 2. Nah ketika cara belajar yang dipakai
mahasiswa masih cara belajar di SMA disitulah akan menimbulkan masalah. Apa sih
bedanya cara belajar anak sekolahan sama anak kuliahan? Filsosofinya sederhana
sekali, anak sekolahan itu ibarat anak kecil yang belum bisa makan sendiri
sehingga harus disuapi, kalau anak kuliahan sampean itu dianggap sudah besar
(istilah keren nya ‘adult learner‘), sudah bisa makan sendiri. Kalau lapar ya
makan sendiri dan tahu makanan apa yang terbaik untuk kamu. Hampir semua
mahasiswa hanya mengandalkan dan merasa sudah cukup belajar hanya dari
perkuliahan di kelas, padahal kuliah
dikelas itu seharusnya hanyastimulus alias perangsang buat sampean untuk
belajar sendiri lebih lanjut. Analoginya, kuliah di kelas hanya petunjuk
makanan apa yang bagus untuk pertumbuhan sampean. Selanjutnya sampean sendiri
yang harus mencari dan memakan sendiri makanan itu.
Kedua, karena semakin banyak
mahasiswa yang SPOILED alias MANJA alias
Manis Jancuki. Ini berdasarkan observasi
saya membandingkan model mahasiswa jaman sekarang dan mahasiswa jaman saya dulu
(awal 2000 an). Mungkin karena lingkungan jaman anak sekarang yang terlalu
dimanja oleh teknologi dan dibalut budaya konsumerisme yang mengakibat mental
ora wani soro ini. Mahasiswa jaman sekarang ke kampus dandananya modis, wangi.
Ke kampus nyetir mobil. Peganganya berbagai Gadget. Tongkronganya (alasanya
ngerjakan tugas bareng) di mall. Dari keluarga miskin, dapat tunjangan biaya
hidup beasiswa Bidik Misi. Jaman saya kuliah dulu, baju andalanya jaket hima
(dalamnya ndak ganti-ganti, bau pisan), ke kampus kebanyakan jalan kaki atau
ngontel, atau sekeren-kerenya pakek sepeda motor butut. Handphone tuh yang
punya masih beberapa orang dan masih handphone nokia monophonic
yang
bisa buat ngelempar asu. Saya juga tahu dengan mata kepala sendiri, ada
beberapa teman saya yang harus kerja serabutan demi untuk bertahan hidup karena
orang tua tak mampu membiayai. Tetapi kalau bicara daya juang jangan tanya.
Masih ingat jaman kuliah dulu, kalau ngerjakan tugas harus di lab. Hampir tiap
malam bahkan sabtu-minggu ngelembur ngerjakan di Lab. Jangankan laptop, PC saja
masih satu dua orang saja yang punya. Internet juga masih barang mahal, tidak
seperti sekarang yang tersedia WIFI dimana-mana. Sehingga semuanya harus
dikerjakan di Lab. Jamanya dosen saya (tahun 90-an) lebih soro lagi. Tetapi
kemudahan fasilitas yang dimiliki mahasiswa jaman sekarang itu anehnya tidak
membuat mahasiswa semakin pintar. Tapi sebaliknya. Kalau jaman dulu, seorang
mahasiswa bisa menguasai 3-5 bahasa pemrograman itu sudah biasa, anak sekarang
bisa satu bahasa pemrograman saja sudah syukur. Indeed, semangat belajar
mahasiswa jaman dulu jauh lebih tinggi dari mahasiswa jaman sekarang. Benar
filosofi huruf jawa, kalaudipangku mati, artinya kalau seseorang itu terlalu
diberi kemudahan malah kreatifitasnya mati, dan sebaliknya.
Ketiga,
ada gap knowledge yang terlalu lebar antar dosen dan mahasiswanya. Dosen
setidaknya harus berijasah S2, banyak diantarnya yang bergerlar Doktor dan
Professor. Nah, ini sering kali beberapa dosen secara tidak sadar bahwa yang
berada dihadapanya adalah anak-anak yang baru lulus sekolah kemaren sore.
Sering kali dosen ini menggunakan jargon-jargon yang kurang membumi yang sangat
biasa di kepala dosen, tapi masih sangat asing di kepala para mahasiswa.Gap
knowledge inilah yang sering kali membuat mahasiswa gagal paham bahkan malah
bingung. Idealnya, seorang dosen yang hebat adalah yang bisa menjelaskan
konsep-konsep yang rumit menjadi hal-hal sederhana yang mudah dipahami
mahasiswanya, mindset nya ketika mengajar sementara harus dirubah dulu ke
mindset anak-anak yang baru lulus sekolah kemaren sore. Tetapi, indeed
pengalaman saya jadi dosen, ini bukan perkara yang mudah.
Tips Belajar Bahasa Pemrograman
Seperti
saya sebutkan diatas intinya adalah sampean harus bisa belajar sendiri tanpa
menunggu diajari dan tidak manja. Hidup ini akan terasa keras kalau sampean
terlalu lunak terhadap sampean sendiri. Sebaliknya, hidup akan terasa lunak
kalau sampean keras terhadap diri sampean sendiri. Sampean tidak bisa menuntut
dosen seharusnya begini dan begitu, karena sampean sudah dianggap dewasa,
dianggap tahu apa yang harus dilakukan. Kalau sampean merasa tidak tahu ya
tanya langsung sama dosen nya atau sampean bisa tahu sendiri dari tempat yang
lain.
Belajar
di jaman sekarang, apalagi belajar pemrograman dan skill IT lainya itu lo
sebenarnya sangat-sangat mudah. Sampean punya laptop, punya koneksi internet,
dan bisa bahasa Inggris. Sampean bisa belajar apa saja dari internet. Kalau
tidak tahu tempatnya, tinggal tanya sama mbah Google. Lah sampean sih laptop
hanya dipakek untuk facebookan, twitteran, ngepath, dan instragraman saja. Mas,
Mbak mbok ya dipakai untuk belajar.
Belajar
ngoding itu menurut saya ada dua hal yang harus dipahami. Pertama adalah
conceptual skill dan yang kedua adalah technical skill. Untuk kemampuan
konseptual sampean harus paham dasar-dasar algoritma dan struktur data.
Algoritma itu akan membentuk pola pikir sampean bagaimana menyelesaikan
permasalahan komputasi secara logis. Untuk kemampuan technical skill sampean
hanya perlu membiasakan cara mengekpresikan conceptual skill dalam bahasa
pemrograman yang spesifik.
Untuk
pemahaman konsep, sampean bisa ikutan kuliah online gratis di berbagai
MOOC (Massive Open Online Course) dari
berbagai kampus terbaik dunia, seperti:
https://www.coursera.org
https://www.edx.org/
https://www.futurelearn.com
https://www.udemy.com
https://lagunita.stanford.edu
khanacademy.com
ocw.mit.edu
Tinggal ketikan saja kata kuncinya,
algorithm atau programming atau computer science ada ratusan kuliah online
gratis disitu. Layaknya kuliah sungguhan, ada video, materi, exercise, forum
diskusi, quiz, dan ujian disitu. Beberapa mata kuliah yang saya sarankan: Think
Create Code, Algorithm 1 , Introduction to Computer Programming ,
Introduction to Java Programming, Java Tutorial for Complete Beginner ,
Introduction to Programming with Java.
Sedangkan
untuk kemampuan teknis, cara belajar yang terbaik adalah learning by doing
yaitu dengan coba nulis code langsung. Kalau sampean sudah paham konsepnya, dan
familiar dengan salah satu bahasa pemrograman saja. Untuk mencoba bahasa
pemrograman yang lain tidaklah sulit. Ada beberapa online learning by doing
yang bagus, diantaranya adalah:
Codeacademy
w3schools
LearnJavaOnline
Intinya
banyak sekali resource belajar di internet asal sampean mau belajar sendiri.
Tinggal googling saja. Sayangnya, resource belajar yang terbaik semuanya masih
dalam bahasa Inggris. Kalau sampean masih pusing dengan bahasa inggris yah, ya
wassalam. Tapi kan sudah ada google translate to? Dan mau tidak mau menurut
saya sampean harus paksa diri untuk paham itu bahasa Inggris. Terkadang yang
perlu sampean lakukan adalah memaksa sampean sendiri untuk tidak manja dan wani
soro untuk belajar sendiri. Saya ingatkan sekali lagi, Jangan manja! Seiring
berjalanya waktu, resource belajar yang bahasa inggris itu akan menjadi
terbiasa buat sampean. Dan terjemahan google translate itu akan berpindah dan
mengendap di otaksampean. Kalau manja, ndak berani memaksa dan keras pada diri
sendiri, ya selamanya ndak bakalan bisa to? Jika merasa kesulitan, bingung,
gagal paham, itu wajar bero ! namanya belajar sesuatu yang baru. Belajar kadang
terasa menyakitkan, jika begitu berbahagialah, karena itu artinya sampean
benar-benar belajar. Ibarat membuka berlian yang dibungkus ikatan kain yang
berlapis-lapis, dibutuhkan kesabaran, dan daya juang tanpa lelah. Kadang harus
mengulang dan mengulang lagi, mencoba dan mencoba lagi. Hingga akhirnya,
ketemulah berlian itu.
loading...
Pengalaman
saya belajar ngoding , saya merasa skill ngoding saya well-improved ketika saya
belajar sendiri. Dan memang kuliah di kelas itu hanya perangsang untuk belajar
lebih lanjut. Selanjutnya, terserah sampean. Satu lagi tips biar jago coding
adalah by practice. Saya dulu sejak semester 3 hingga lulus kuliah (4 tahun
pas) nyambi kerja part-time di software house milik salah satu alumni.
Disanalah skill pemrograman saya terasah. Indeed, kalau sampean sudah nemu cara
belajar yang tepat buat sampean sendiri, belajar ngoding itu sangat
menyenangkan dan menantang. Sangat merangsang otak untuk mikir secara logis.
Kalaupun
tidak harus kerja part-time, karena mengganngu kuliah sampean. Ada websitu
untuk mengasah problem solving sampean, dari yang level paling ecek-ecek sampai
level dewa. Disini sampean bisa submit code program, dan akan dicompile
diserver. Sampean akan tahu benar tidaknya, dan seberapa cepat dan hemat memori
program sampean. Semakin banyak problem yang bisa diselesaikan, semakin tinggi
skor sampean layaknya sebuah permainan game. Salah satunya adalah: SPOJ
Terakhir,
menurut saya kemampuan ngoding adalah inti dari kuliah di jurusan ilmu komputer
dan jurusan turunanya termasuk sistem informasi. Seperti riset operasi di
jurusan Teknik Industri. Kalau sarjana komputer ndak bisa ngoding itu ibarat
dokter ndak bisa nyuntik. Mengapa? karena tanpa kemampuan ngoding yang proper
sampean tidak akan bisa mengimplementasikan algoritma-algoritma terbaru yang
bisa sampean baca pada paper di jurnal-jurnal ilmiah terbitan terbaru.
Disamping, sampean juga harus paham betul konsep matematika diskrit untuk bisa
membaca paper jurnal tersebut, karena sudah pasti paper jurnal tersebut
dijelaskan dengan simbol-simbol konsep-konsep di matematika diskrit (termasuk
aljabar linier dan matrik). Tahukah sampean dibalik aplikasi-aplikasi cerdas
yang sampean gunakan di smart phone ataupun desktop adalah algoritma-algoritma
yang sophisticated. Pernahkah sampean berfikir apa yang terjadi dibelakang
layar, ketika sampean terkagum-kagum dengan terjemahan google translate lebih
bagus dari bahasa inggris sampean? Atau facebook yang bisa mengenali foto teman
sampean? Tentu di belakangnya adalah algoritma yang shopisticated. Jadi mahasiswa
IT malu dong, jika hanya menjadi pengguna teknologi IT. Saatnya, sampean yang
seharusnya develop aplikasi-aplikasi cerdas tersebut.
Sebagai
tambahan dari komentar di bawah, ada yang bertanya:
Di
perkuliahan, satu hal yang masih menjadi kendala bagi saya yaitu melogikakan
suatu permasalahan kedalam program. Apalagi tentang, mengenai pemahaman
Matematika Diskrit hampir semua soal yang berkaitan dengan logika seperti ini
tak ada satupun yang bisa saya jawab, pak -_-
Mohon
sarannya pak, bagaiman seharusnya saya bisa mengatasi hal seperti ini
Well,
ini pertanyaan menarik sekali menurut saya. Karena permasalahan ini saya yakin
banyak dihadapi oleh kebanyakan mahasiswa. Ada yang missing ketika mata kuliah
Pemrograman diajarkan di semester pertama. Bayangno!, seorang mahasiswa yang
masih kosongan itu ‘dipaksa’ memahami coding oleh seorang dosen yang sudah
berpuluh-puluh tahun bergumul dengan pemrograman, yang tentu saja di kepala
sang dosen sudah embedded algorithmic problem solving skill atau logical
thinking skill. Mungkin inilah, penyebab mata kuliah pemrograman terasa sulit
buat mahasiswa baru, yang pada akhirnya tidak menyukai pemrograman.
Di
kampus saya, di Universitas Nottingham, ternyata sebelum mahasiswa mengambil
mata kuliah Pemrograman, mereka wajib lulus mata kuliah ‘Algorithmic Problem
Solving‘ terlebih dahulu. Saya kebetulan pernah mengikuti mata kuliah ini, atau
menyusup lebih tepatnya (karena saya mahasiswa PhD yang sedang ngepoin sistem
pendidikan S1 ilmu komputer di Universitas Nottingham). Di mata kuliah ini,
mahasiswa sama sekali belum bersentuhan dengan komputer. Belajarnya hanya
menggunakan kertas dan bolpoin. Saat itu, kita dikelas sedang diskusi
memecahkan permasalahan Pak Tani yang
akan menyebrang sungai. Intinya adalah bagaimana mahasiswa diajak memecahkan
permasalahan dengan memformulasikan dan mencari solusi permasalhan tersebut
secara logis, step by step. Kemampuan inilah kemampuan ‘melogikakan suatu
permasalahan kedalam program’ itu.
Profesor
yang ngajar mata kuliah ini, Prof. Roland Backhouse, kebetulan sudah membukukan bahan ajarnya
dalam sebuah buku tipis. Buat sampean yang tertarik dengan mata kuliah ini,
bisa dilihat disini dan disini (sampean bisa download lecture notes,
tugas-tugas, dan tutorial untuk mata kuliah ini). Dan bukunya bisa dibeli
disini, jangan tanyan pdf lo ya! Bondo Rek, Bondo! Untuk improve kemampuan logika sampean juga
bisa melatihnya dengan game-game atau puzzle logika. Search saja di google play
dengan kata kunci : ‘logic’. Barangkali bisa membantu.
Ohya,
mungkin dari teman-teman bagaimana sih cara ngajar mata kuliah algoritma dan
pemrograman di kampus luar negeri? Well, saya mungkin sedikit bisa cerita
pengalaman di kampus saya. Yang jelas sebelum masuk ke mata kuliah programming,
mereka sudah mengambil mata kuliah Algorithmic problem solving terlebih dahulu
seperti cerita saya di atas. Lalu bagiaman kuliah algoritma pemrograman nya?
Kebetulan
setiap semester musim gugur, saya diminta jadi asisten dosen ndoro dosen
pembimbing S3 saya pada mata kuliah Algoritma dan Struktur Data. Lebih tepatnya
dipaksa,lahwong saya ini background nya sistem informasi bukan ilmu komputer,
yang tentu saja ndak sedalam di jurusan ilmu komputer/teknik informatika
belajar algoritmanya. Sehingga, saya sempat menolak tawaran itu. But, the show
must go on.
Untuk
mata kuliah angker ini, ada tiga jenis tatap muka dalam seminggu. Pertama, dua
kali pertemuan kuliah masing-masing 50
menit (di kampus ini hampir semua kuliah maksimal 50 menit, biar mahasiswa nya
ndak teler). Kedua, tutorial selama 50 menit, untuk materi tambahan di kelas.
Ketiga, lab. session, juga selama 50 menit. FYI, ketiga jenis tatap muka ini,
semuanya tidak wajib hadir, karena disini tidak ada yang namanya absensi
kuliah.
Sistem
penilainya, 20% dari coursework dan 80% dari ujian tulis final examination.
Coursework itu semacam tugas gitu kali ya kalau di Indonesia. Ada 3 coursework
untuk mata kuliah ini. Setiap coursework, berisi problem set dan open question
yang harus diselesaikan dengan coding dan dijelaskan dalam sebuah report yang
harus disubmit pada saat deadline bersama dengan code program nya. Nah, pada
waktu lab. session itulah, mahasiswa mengerjakan coursework. Di lab. ndoro
dosen, saya, dan beberapa teman asisten dosen lainya stand by di lab. Kita sama
sekali tidak guide mereka di lab, kita juga sama sekali tidak boleh ngasih clue
dari problem yang harus mereka selesaikan. Mereka benar-benar diumbar begitu
saja, kecuali jika mereka ada hal yang ingin ditanyakan atau didiskusikan,
mereka cukup melambaikan tangan, dan kita para asisten dosen akan datang.
Layaknya, memanggil pelayan di sebuah restoran.
Di
akhir deadline, mereka harus submit report, yang berisi penjelasan solusi dari
problem set, penjelasan dan analisa code program yang sudah mereka buat.
Analisa code ini harus mereka jelaskan secara matematik, maupun secara
experiment. Tugas saya sebagai asisten dosen adalah menilai report tadi, dan
memberi feedback. Nilai dari coursework, 80% dari report, dan 20% dari feedback
session (something like interview).
Saat
menilai report dan memeriksa code inilah, saya benar-benar terkagum. Mahasiswa
disini, benar-benar genuine, ndak ada yang namanya nyontek code orang lain
dengan mengganti nama variabel nya doang. Saya bisa melihat mana yang genuine,
dan mana yang nyontek logika orang lain. Dan saya menemukan disini, 99.9%
genuine. Aplagi, pertanyaanya open. Dimana jawaban yang benar tidak pasti A,
tetapi bisa B, C, D sesuai dengan analisa dan interprestasi mahasiswa.
Sementara, di sesi feedback. Saya menginterview, masing-masing mahasiswa satu
persatu, memastikan mereka paham dengan problem set di coursework, dan
menjelaskan kepada mereka jika mereka kurang paham.
Point
saya adalah saya melihat bahwa mahasiwa disini begitu independent dalam
belajar, serta memiliki kesadaran belajar yang sangat tinggi. Nah, ini yang
kurang dengan kebanyakan mahasiswa-mahasisa di tempat kita. Coba deh, absensi
ditiadakan dan 80% penilainya dari final exam. Mungkin kelas-kelas jadi sepi,
hehehe….. Tapi mungkin saya salah.
Baiklah,
semoga sampean jadi semangat dan tidak manja untuk berani memaksa sampean
sendiri belajar ngoding. Semoga sukses belajarnya ! Dan lulus jadi Sarjana
Komputer yang bisa ngoding. Good Luck!
loading...
Label
Arsip
Total Pengunjung
Mau Berhasil itu tidak INSTAN karena dia butuh Proses ��
— Abdhul (@abdhul_1996) 25 Februari 2018
Copyright ©
Abdhul | Privacy Policy | Contact Us | Sitemap
Design by Flythemes | NewBloggerThemes.com | Blogger
0 komentar:
Post a Comment