Beberapa waktu lalu, saya melihat link di salah satu group programming di facebook. Isinya menuju sebuah artikel yang ditulis oleh Peter Norvig dengan judul "Teach Yourself Programming in Ten Years", yang apabila diterjemahkan berarti "Belajar Programming secara mandiri dalam 10 tahun". Artikel ini sebenarnya sudah cukup lama, dari komentar yang ada tercatat sudah sekitar 3 tahun yang lalu.
Terus terang judul artikel tersebut membuat penasaran, betulkah belajar programming itu butuh 10 tahun? Dan siapakah Peter Norvig ini?
Saya kemudian melakukan riset kecil-kecilan. Ternyata Peter Norvig bukan orang sembarangan. Ia adalah seorang programmer dan ilmuwan senior di bidang komputer. Saat ini bekerja di Google (sebagai director of research), NASA (sebagai kepala intelligent systems division), dan pioneer di bidang penelitian Artificial Intelligence kelas dunia.
Dan ternyata artikel "Teach Yourself Programming in Ten Years" tersebut juga bukan artikel biasa. Isinya sangat dalam mengkritisi buku-buku dan metode belajar programming yang serba instan. Misalnya, mahir dalam 24 jam, jadi ahli dalam 1 minggu, dst.
Artikel itu sangat terkenal dan sudah diterjemahkan ke dalam 20 bahasa. Banyak diskusi yang membahas isinya, salah satunya dari quora.com.
Jika anda biasa membaca artikel bahasa inggris, tidak ada salahnya langsung buka artikel tersebut. Namun saya akan coba terjemahkan ke dalam bahasa Indonesia. Sebagai desclaimer, ini hanya terjemahan bebas. Beberapa istilah saya ganti agar lebih mudah dipahami.
Baik, berikut hasil terjemahan bebas dari artikel dengan judul asli "Teach Yourself Programming in Ten Years" oleh Peter Norvig.
Teach Yourself Programming in Ten Years
oleh Peter Norvig
Mengapa semuanya serba terburu-buru?
Berjalanlah ke toko buku manapun, dan anda bisa menemukan buku yang berjudul "Teach Yourself Java in 24 Hours" ("Belajar Java secara mandiri dalam 24 jam") diantara buku-buku lainnya. Tidak hanya itu, buku tentang bahasa C, SQL, Ruby dan Algoritma juga memiliki judul yang sama, yakni bisa dipelajari dalam hitungan jam atau hari.
Pencarian di situs online Amazon dengan kata kunci yang mengandung "teach", "yourself", dan "hour" menghasilkan 512 buku semacam itu. Di sepuluh besar, sembilan diantaranya adalah buku programming, 1 lagi tentang pembukuan (bookkeeping). Hasil yang sama juga didapat ketika mengganti kata "teach yourself" dengan "learn" atau "hours" dengan "days".
Kesimpulannya, entah setiap orang memang sedang buru-buru, atau programming itu ternyata sangat mudah dipelajari dibandingkan bidang keilmuan lain.
Matthias Felleisen (seorang professor bidang komputer) serta beberapa rekannya sudah memprediksi tren ini dalam buku berjudul "How to Design Programs". Disitu tertulis: "Bad programming is easy. Idiots can learn it in 21 days, even if they are dummies". Jika diterjemahkan menjadi: "Programming yang buruk itu mudah, orang idiot bisa mempelajarinya dalam 21 hari, bahkan jika mereka bodoh". Konsep satir ini disadur menjadi sebuah komik "Abtruse Goose" berikut ini:
Mari kita analisa apa arti sebenarnya dari buku dengan judul "Teach Yourself C++ in 24 Hours (Belajar C++ secara mandiri dalam 24 jam)":
Teach Yourself (Belajar mandiri): Dalam waktu 24 jam, anda tidak akan memiliki cukup waktu untuk membuat program yang layak. Juga tidak akan sempat mengambil pelajaran dari berhasil atau tidaknya program tersebut. Misalnya mengambil kesimpulan dari error yang terjadi.
Anda juga tidak akan memiliki waktu untuk belajar dengan programmer berpengalaman dan memahami seperti apa lingkungan pemrograman C++ yang sebenarnya.
Singkatnya, anda tidak akan bisa belajar banyak. Buku ini hanya akan mengajari kulit luar saja, bukan sebuah pemahaman yang mendalam. Seperti yang dikatakan Alexander Pope: "paham sedikit adalah hal yang berbahaya".
C++: Dalam 24 jam, anda mungkin bisa belajar tata bahasa (syntax) dari bahasa C++, terutama jika sebelumnya sudah mengenal bahasa pemrograman lain. namun Anda tidak dapat banyak belajar tentang bagaimana menggunakan bahasa tersebut.
Singkatnya, jika Anda, katakanlah, seorang programmer bahasa Basic. Anda bisa belajar menulis program dengan gaya bahasa Basic menggunakan sintaks C ++, namun tidak dapat mempelajari di sisi mana keunggulan dan kelemahan dari bahasa C++ ini.
Jadi, apa gunanya? Alan Perlis pernah berkata "A language that doesn't affect the way you think about programming, is not worth knowing", terjemahannya: "Sebuah bahasa yang tidak mengajarkan anda cara berfikir tentang programming, itu tidak layak dipelajari".
Anda mungkin bisa paham sedikit tentang bahasa C++ (atau juga tentang JavaScript), karena anda harus menggunakan aplikasi tersebut untuk mengerjakan sebuah tugas. Tapi disini anda tidak sedang belajar cara membuat kode program, tapi belajar cara mengerjakan tugas tersebut.
in 24 Hours: Sayangnya, ini tidak akan cukup. Sebagaimana yang akan dijelaskan berikutnya.
Teach Yourself Programming in Ten Years
Ahli riset (Bloom (1985), Bryan & Harter (1899), Hayes (1989), Simmon & Chase (1973)) telah memperlihatkan bahwa butuh sekitar sepuluh tahun untuk mengembangkan keahlian di berbagai disiplin ilmu, termasuk permainan catur, menjadi komposer musik, mengoperasikan telegraf, melukis, bermain piano, berenang, bermain tenis, dan riset di bidang neuropsychology and topology.
Kuncinya adalah deliberative practice. Yang artinya tidak mengulang itu itu saja, tapi menantang diri sendiri dengan hal yang di luar kemampuan yang ada saat ini, mencobanya, menganalisa performa sebelum dan sesudahnya, hingga memperbaiki kesalahan yang dilakukan. Lalu ulangi, dan ulangi lagi.
Tidak ada cara pintas, bahkan Mozart yang dikatakan sebagai jenius di bidang musik sejak usia 4 tahun, butuh 13 tahun lagi sebelum dia bisa menghasilkan musik kelas dunia.
Di bidang lain, the Beatles tampaknya langsung menjadi hits nomor 1 dan tampil di Ed Sullivan show pada tahun 1964. Tapi mereka telah bermain di klub-klub kecil di Liverpool dan Hamburg sejak 1957, dan meskipun mereka sudah cukup lama eksis, kesuksesan pertama baru ada di perilisan Sgt. Peppers pada tahun 1967.
Malcolm Gladwell telah mempopulerkan ide yang serupa, meskipun dia berfokus pada 10.000 jam, bukan 10 tahun. Henri Cartier-Bresson (1908-2004) punya analisis lain: "Your first 10,000 photographs are your worst" (10.000 foto pertama anda adalah yang paling buruk). Dia memang tidak mengantisipasi tren kamera digital, karena beberapa orang bisa mencapai angka itu dalam hitungan minggu.
Untuk menjadi pakar yang sebenarnya bisa butuh seumur hidup. Samuel Johnson (1709-1784) berkata: "Excellence in any department can be attained only by the labor of a lifetime; it is not to be purchased at a lesser price." (Menjadi ahli di suatu bidang hanya bisa dicapai dengan kerja seumur hidup, itu bukanlah sesuatu yang bisa dicapai dengan upaya yang lebih mudah).
Chaucer (1340-1400) memprotes bahwa "the lyf so short, the craft so long to lerne." (Keahlian itu lama untuk dipelajari, tapi hidup ini sangat singkat).
Hippocrates (400 SM) terkenal dengan kutipan "ars longa, vita brevis", yang mana diambil dari "Ars longa, vita brevis, occasio praeceps, experimentum periculosum, iudicium difficile", yang diterjemahkan menjadi "Hidup itu singkat, keahlian itu butuh waktu lama, peluang berlalu dengan cepat, eksperimen itu berbahaya, dan pengambilan keputusan itu sulit"
Tentu saja, tidak ada angka pasti. Tidak masuk akal untuk mengasumsikan setiap keahlian (seperti programming, catur, puzzle, dan bermusik) butuh waktu yang sama untuk menjadi ahli. Selain itu tiap orang juga butuh waktu yang berbeda untuk bisa menjadi ahli.
Seperti kata professor K. Anders Ericsson: "Dalam setiap bidang, sangat mencengangkan berapa banyak waktu yang harus dicurahkan oleh seseorang (bahkan yang sudah berbakat sekalipun) untuk mencapai performa terbaiknya. Sepuluh ribu jam memberikan kesan bahwa perlu beberapa tahun dengan 10 sampai 20 jam tiap minggu. Namun masih ada yang berpendapat bahwa seharusnya butuh lebih dari itu itu mencapai yang terbaik."
Jadi, anda ingin menjadi seorang programmer, ini tips dari saya agar anda bisa menjadi programmer yang sukses:
- Buat diri anda tertarik dan senang dengan programming. Pastikan itu adalah hal yang menyenangkan sehingga anda mau mencurahkan 10 tahun waktu anda atau 10.000 jam.
- Buat program tersebut. Cara belajar yang paling efektif adalah dengan melakukannya. Teknisnya, "kemampuan maksimum dari seseorang untuk bidang apa saja tidak didapat hanya dari pengalaman, tapi juga dari kerja keras dan dorongan untuk terus maju. Ini juga berlaku bagi yang paling berpengalaman sekalipun" (p. 366). Serta "Cara belajar yang paling efektif membutuhkan fokus yang jelas dan tingkat kesulitan yang sesuai untuk setiap individu. Masukan yang baik, serta kesempatan untuk mengulang dan memperbaiki kesalahan" (p. 20-21). Buku "Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life" adalah referensi yang pas untuk pendapat ini.
- Bangun komunikasi dengan programmer lain, baca kode program orang lain. Ini lebih penting daripada buku atau kursus.
- Jika anda ingin, kuliah di bidang komputer. Ini memberikan anda kesempatan untuk pekerjaan yang butuh ijazah, dan memberikan pemahaman yang lebih dalam tentang bidang tersebut. Tapi jika anda tidak suka sekolah, anda pun bisa (dengan sedikit dedikasi dan fokus) untuk memiliki pengalaman serupa dan mendapatkan pekerjaan. Dalam kedua kasus ini, buku tidak akan cukup. "Kuliah di bidang komputer tidak akan membuat siapapun menjadi programmer yang ahli, sama halnya mempelajari kuas dan cat warna tidak akan membuat seseorang jadi pelukis yang ahli", ini adalah kata Eric Raymond, penulis dari "The New Hacker's Dictionary". Salah satu programmer terbaik yang pernah saya pekerjakan hanya tamat SMA. Dia menghasilkan banyak software bagus, memiliki forum (news group) sendiri, serta memiliki cukup modal dari saham untuk memiliki sebuah cafe.
- Buat program dengan programmer lain. Jadilah yang terbaik di beberapa bidang dan abaikan bidang lain. Dengan punya skill yang sangat bagus di satu bidang, anda berkesempatan untuk memimpin project dan menginspirasi orang lain. Jika anda jadi anggota tim (untuk bidang lain), pelajari apa yang dilakukan programmer lain, termasuk apa yang mereka tidak suka, karena mereka akan menyuruh anda untuk mengerjakannya.
- Bekerja di project yang sudah dikerjakan programmer lain. Pahami bagaimana cara membaca kode program yang dibuat oleh orang lain. Lihat cara kerjanya dan perbaiki jika ada yang dirasa kurang. Pikirkan bagaimana caranya agar kode program yang anda buat bisa mudah dikelola oleh orang lain.
- Pelajari sekitar setengah lusin bahasa pemrograman. Termasuk diantaranya yang butuh class abstractions (seperti Java atau C++), yang fokus ke functional abstraction (seperti Lisp atau ML atau Haskell), yang fokus ke syntactic abstraction (seperti Lisp), yang fokus ke declarative specifications (seperti Prolog atau C++ templates), dan yang menekankan pada parallelism (seperti Clojure atau Go). Ingat bahwa ada kata "computer" (alat hitung – compute) di dalam "Ilmu Komputer". Pelajari berapa lama komputer anda menjalankan sebuah kode program, termasuk lama waktu untuk mengambil variabel dari memory (tanpa atau dengan "cache miss"), lama pembacaan dari harddisk, serta proses pencarian.
- Ikut dalam proses standarisasi. Seperti ANSI C++ committee, atau memutuskan coding style (gaya penulisan kode program) bagi komunitas anda, seperti 2 atau 4 spasi untuk indenting. Apapun itu, anda bisa mempelajari apa yang disukai seseorang dari sebuah bahasa pemrograman, seberapa dalam pemahamannya, dan mungkin anda bisa mengetahui alasan dibalik itu.
- Pelajari hal-hal baru dari sebuah standar bahasa pemrograman secepat mungkin.
Dengan poin-poin ini, sangat dipertanyakan apa yang akan anda dapat dari sekedar baca buku. Sebelum anak pertama saya lahir, saya telah membaca semua buku "How To" (Buku tentang bagaimana cara membuat ini, bagaimana cara membuat itu, dst) namun masih seperti pemula yang kebingungan.
30 bulan setelah itu, ketika anak kedua saya lahir, apakah saya kembali ke buku tersebut untuk pengingat? Tidak. Saya mengandalkan pengalaman saya sendiri, dan ini jauh lebih baik daripada ribuan halaman yang ditulis oleh para ahli.
Fred Brooks, dalam tulisannya "No Silver Bullet" mengidentifikasi 3 rencana untuk mencari programmer yang bagus:
- Sedapat mungkin identifikasi programmer yang bagus dari awal.
- Berikan mentor atau senior yang bertanggung jawab untuk pengembangan dirinya.
- Berikan kesempatan untuk berinteraksi dengan programmer lain, serta memberi inspirasi satu sama lain.
Semua ini dengan syarat bahwa beberapa orang sudah memiliki kualitas untuk menjadi programmer yang baik. Kerja kita hanya tinggal membentuknya.
Alan Perlis menekankan lebih jauh lagi: "Setiap orang bisa diajari untuk memahat patung. Michelangelo (seorang pemahat patung terkenal di abad pertengahan) mungkin tidak perlu diajari. Begitu pula para programmer hebat". Disini Perlis mengatakan bahwa seorang yang hebat memiliki kualitas yang melampaui cara latihannya.
Tapi dari mana kualitas tersebut berasal? Apakah dari bakat atau di dapat dari latihan dengan penuh ketekunan?
Seperti kata Auguste Gusteau (juru masak di film fiksi Ratatouille): "anyone can cook, but only the fearless can be great." (Setiap orang bisa memasak, tapi hanya yang tidak takut akan menjadi hebat.)
Menurut saya, hal itu (menjadi orang hebat), berasal dari ketekunan dan kemauan untuk mencurahkan waktu latihan. Tapi mungkin tidak takut (fearless) adalah kata untuk menyimpulkannya. Atau seperti kata Anton Ego (kritikus dari masakan Gusteau): "Not everyone can become a great artist, but a great artist can come from anywhere." ("Tidak semua orang bisa menjadi seniman hebat, tapi seorang seniman hebat bisa datang dari mana saja.")
Jadi silahkan lanjut dan beli buku Java/Ruby/Javascript/PHP. Kamu mungkin akan menemukan manfaat dari sana. Tapi itu tidak akan merubah hidupmu, atau keahlianmu sebagai programmer dalam 24 jam atau 21 hari. Tapi bagaimana dengan bekerja keras untuk belajar selama 24 bulan? Nah… disana barulah anda bisa mendapat sesuatu.
Referensi:
- Bloom, Benjamin (ed.) Developing Talent in Young People, Ballantine, 1985.
- Brooks, Fred, No Silver Bullets, IEEE Computer, vol. 20, no. 4, 1987, p. 10-19.
- Bryan, W.L. & Harter, N. "Studies on the telegraphic language: The acquisition of a hierarchy of habits. Psychology Review, 1899, 8, 345-375
- Hayes, John R., Complete Problem Solver Lawrence Erlbaum, 1989.
- Chase, William G. & Simon, Herbert A. "Perception in Chess" Cognitive Psychology, 1973, 4, 55-81.
- Lave, Jean, Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life, Cambridge University Press, 1988.
*** Akhir Artikel Teach Yourself Programming in Ten Years ***
Artikel diatas memang cukup panjang, namun isinya sangat "mencerahkan". Intinya, tidak ada jalan instan menuju sukses, semua butuh kerja keras dan perjuangan.
Saya juga menulis beberapa buku tentang programming namun tetap tidak berani mengklaim bisa mahir dalam sekian hari, sekian bulan, bahkan sekian tahun. Jika ada yang curhat ia mulai dari nol dan bertanya kapan bisa sampai ke tahap ahli, saya selalu jawab bahwa itu butuh waktu tahunan dan harus membaca puluhan buku.
Tidak jarang saya malah mengarahkan tidak belajar programming sama sekali karena memang sedang buru-buru. Misalnya jika anda butuh website kantor yang akan dipakai bulan depan, sebaiknya cari jasa programmer untuk membuatkan. Waktunya tidak akan cukup jika ngebut belajar programming. Jika pun bisa, hasilnya tidak maksimal.
Belajar programming juga ada tingkat-tingkatnya. Untuk sekedar "tahu", dalam beberapa bulan saya rasa sudah bisa dengan membaca beberapa buku. Tapi kalau untuk sampai ke tahap ingin bekerja sebagai programmer professional, itu memang butuh waktu tahunan.
Ibarat bermain sepak bola, dalam beberapa jam saya rasa sudah cukup untuk mengajari seseorang bagaimana aturan dan cara main bola. Tapi jika ingin jadi pesepakbola professional (untuk jadi profesi), jalan yang ditempuh tentu akan lebih panjang.
Artikel ini bukan untuk menakut-nakuti programmer pemula, tapi sekedar membuka mata bahwa tidak mungkin jadi programmer yang ahli dalam waktu singkat. Semua butuh proses, namun jika anda benar-benar suka dengan programming, proses belajar ini akan terasa sangat menyenangkan.
Jika pun anda nanti kesampaian jadi programmer professional, tetap dituntut untuk terus belajar. Misalkan saat ini memutuskan jadi programmer android, siapa yang bisa menjamin 5 tahun lagi android masih ada?
Jadi kita tidak bisa berhenti di sebuah titik. Apabila memutuskan ingin jadi programmer, bulatkan tekad untuk belajar dan terus belajar.
Wah, jadi makin semangat dan jadi terus termotivasi buat belajar programming. Dan pastinya juga setelah baca ini jadi kaya punya pandangan yg lebih luas.
Siip, dinikmati saja prosesnya. Dunia programming ini sangat luas, menawarkan kesempatan bagi yang mau belajar dan bisa beradaptasi dengan perubahan…
Ini yang tidak disadari oleh mahasiswa kebanyakan. Belajar cuma mau ujian doang, ujungnya lulus hanya untuk jadi pengangguran.
Hehe, Ada benarnya juga… Kuliah di jurusan komputer memang cukup unik, yang diajarkan di kampus lebih banyak teori dan cara berfikir programming, tapi prakteknya sangat kurang. Kalau si mahasiswanya tidak berusaha nambah belajar sendiri (dari buku / internet / kursus), bisa2 tidak mampu membuat program sama sekali.
Keren artikelnya bang :D
Bener-bener "mencerahkan", sebelum baca artikel ini gw juga agak bimbang soal masuk juruasan teknik informatika karena disekitar gw banyak yg bilang, "kalo cuma belajar programming mah gampang, mending masuk jurusan lain aja trus baru belajar programming. Paling kursus beberapa bulan juga udah jago"
Makasih ya bang
Siip, belajar programming ini sebenarnya ada tingkat2an juga. Kalau sekedar bisa buat program sederhana, itu dalam 1 minggu sudah bisa. Tapi apakah paham setiap baris yang diketik? belum tentu.
Ibarat belajar melukis, ga perlu sekolah juga bisa. Jadi apa gunanya ada jurusan seni rupa di ITB atau di ISI? Karena ternyata melukis itu ada teori dan teknik2nya.
Bagi yang tidak kuliah di IT, tetap bisa belajar programming dari kursus, buku, maupun tutorial. Tapi ada beberapa hal yang biasanya tidak sempat dipelajari oleh programmer otodidak (umumnya berupa teori), seperti konsep struktur data, cara kerja sistem operasi, teknik kompilasi, dll.
Seharusnya programmer dengan background IT akan lebih jago dibandingkan yang belajar otodidak. Hanya saja banyak yang kuliah malas2an, akibatnya g jarang ada sarjana IT yang tidak bisa programming.
Hahahaha bener sekali bang. Saya kuliah di jurusan IT tapi banyak teman-teman saya yang malas-malasan & belajar sebatas untuk nilai mata kuliah alhasil mereka masih bingung bagaimana cara membuat program.
BTW, terimakasih bang, artikelnya bagus sekali!!!
Yup, bagi mahasiswa IT memang harus belajar tambahan lagi untuk meningkatkan skill programmingnya. Kalau g, cuma akan kuat di teori saja (itupun kalau serius belajar di kampus, hehe…)
Terima kasih telah menyajikan artikel pembelajaran yang bagus dan dengan penulisan yang sangat rapi sehingga dapat mudah dipahami, saya sekarang dalam tahap belajar pemrograman javascript.
Semoga tekad saya menjadi seorang web programming dapat tercapai.
Sekali lagi saya ucapkan Terimakasih.
Aamiin, semoga bisa kesampaian :)
Mantap nih artikel, sangat suka….
kalo ada youtube channel buat pembelajaran lebih mantab bang..hehehe
bakal jadi subscribers nihhhh
Hehe, mudah2an suatu saat bisa kesampaian bikin youtube channel duniailkom…
Mantapp sekali pembahasannya :))
Tiada sukses tanpa kerja keras, dan tiada kerja keras yang menghianati hasil :)
Terimakasih pencerahannya Mas Andre :)
Siip, semoga bisa bermanfaat…
Maaf, saya awam dalam bidang programming. Saat ini propaganda era digital begitu mengebu-ngebu, trending dan viral. Hal itu merangsang lulusan SLA masuk kuliah di bidang IT, tanpa ada pengarahan gambaran dunia programming, dan tanpa mengevaluasi kemampuan dan kecerdasan logika dan matematika sebagai landasan dasarnya. Akibatnya banyak yang babak belur di tengah jalan.
Seandainya tidak cukup memiliki kemampuan, kesabaran, ketekunan dibidang tersebut, silahkan cepat-cepat mengambil pelajaran, mengevaluasi diri, dan beralih dibidang yang menjadi "pasion" agar tidak membuang-buang waktu. Perguruan tinggi hanya dibidang IT hanya mengeruk keuntungan saja. Kesalahan terbesar para peserta masuk perguruan tinggi dibidang IT tidak diseleksi kemampuan Algorithm Problem Solving terlebih dahulu.
Zhafari.
Saya sependapat bahwa jika tidak suka programming, mending g usah kuliah di IT. Tapi kadang calon mahasiswa tidak tau seperti apa programming yang sebenarnya karena di SMA memang tidak diajarkan. Dan sepertinya juga jarang ada tamatan SMA / guru / orang tua siswa yang paham apa itu "Algoritma" (agar bisa mengarahkan).
Kalau untuk matematika, g harus kuat. Yang jadi fokus adalah logika berfikir dan ini bisa diasah dengan banyaknya latihan pemrograman (masih bisa diasah ketika sudah kuliah nanti).
Soal "Perguruan tinggi dibidang IT hanya mengeruk keuntungan saja", saya kurang sependapat. Mungkin memang ada kampus yang seperti itu, tapi biasanya itu kampus swasta kelas "KW" dan reputasi kampusnya pasti g bagus.
Dan benar bahwa banyak lulusan IT yang g bisa programming, tapi juga bukan murni salah perguruan tinggi. Kadang si mahasiswa sendiri yang cuek dan tidak memiliki passion di bidang programming (tugas kuliah biasa nyontek punya teman). Atau jangan-jangan memang salah jurusan / dipaksa orang tua.
Soal salah jurusan, tidak hanya terjadi di bidang IT saja. Banyak mahasiswa jurusan lain yang juga merasa salah tempat. Pembeli eBook programming di Duniailkom banyak yang dari jurusan non-IT. Ada yang masih kuliah di jurusan Fisika, Kimia, Akuntansi, dan mereka semua ingin belajar programming.
Idealnya, di setiap SMA ada guru yang paham setiap jurusan dan bisa mengarahkan siswa untuk kuliah sesuai minat dan bakat. Beberapa artikel di duniailkom ini juga me-review beberapa jurusan kuliah (tidak hanya IT) dan membahas apa saja yang akan dipelajari. Tujuannya agar adik2 SMA "tidak kaget" seperti apa dunia kuliah yang sebenarnya.
Thanks for quick response. Pendapat saya tidak sepenuhnya mutlak. Tetapi untuk yang mampu menguasai bahasa pemrogaman umumnya peserta harus memiliki kecerdasan logika, atau bisa dibilang nilai sekolahnya berada pada "peringkat rata-rata 10 besar" dan menyukai bidang tersebut.
Saran saya di sekolah 10 (kelas 2 SLA) siswa harus diperkenalkan bahasa pemograman dasar, dari sanalah terlihat kemampuan dan minatnya. Kalau tertarik dan mampu bisa lanjut di PT silahkan cari info sebanyak mungkin dan pilih yang bonafide.
Banyak lulusan IT di PT swasta ternama dibidang IT karena beratnya pemahaman bahasa program lebih memilih ke bidang design grafis atau digital marketing sebagai profesi, atau bidang lain sesuai kebutuhan pasar tenaga kerja dan bisnis.
Di Indonesia trending topic atau viral dalam bidang apa pun telah banyak menjerumuskan banyak orang, memakan banyak korban dan membuat banyak orang kecewa, yang berpikiran positif mengambil hikmahnya dan pelajaran dari pengalamannya.
Pernah lulusan MBA digoreng sedemikan rupa, hebat dapat menciptakan inovasi baru dan trobosan dalam bidang bisnis, sekolah MBA bermunculan bagikan jamur. Pasaran batu akik pernah booming sehingga pedagangnya membludak. Politisi kampanye anti korupsi, masyarakat terpedaya, pada pemilihan umum berikutnya mereka langsung jeblok. Waktu telah membuktikan tipu daya itu.
Sekarang era digital lagi booming. Oke lah mereka yang memiliki minat dan mampu silakan berjuang agar generasi muda Indonesia berprestasi, kalian dibutuhkan oleh NKRI dan pasaran kerja di luar negeri dengan gaji besar pun banyak. Tapi yang tidak mampu jangan ikut-ikutan, biaya kuliah mahal, waktu terbuang sia-sia. Era teknologi bergerak cepat seperti kilat, jumlah bahasa program ratusan, yang ada diperbaruai setiap saat, mungkin dalam menghadapi seleksi alam ada yang mati suri atau punah, dan muncul yang baru, karena itu diperlukan kecerdasan, kerja keras dan kecepatan mengadaptasi.
Salam,
Zhafari
jadi programer itu sangat hebat karena harus bisa beradaptasi dengan banyak bahasa pemrograman (pada beberapa kasus apalagi di Indonesia byk programer dengan bahasa pemrograman campuran) tapi apakah mereka jadi ahli di bahasa pemrograman tsb?
saya senang dengan bahasa pemrograman tapi sepertinya jalan saya bukan jadi programmer
Saya cenderung mengibaratkan programmer ini seperti dokter. Dalam studi kedokteran, ada dokter umum dan ada dokter spesialis. Dokter umum ini bisa menangani banyak penyakit (mungkin semua penyakit), tapi hanya untuk tahap pertama saja. Jika sakit berlanjut, maka akan di rujuk ke dokter spesialis yang kemampuannya lebih ahli tapi hanya di satu bidang saja.
Begitu juga di dunia programming. Umumnya yang menguasai banyak bahasa pemrograman hanya paham dasar2nya saja. Kita harus jadi spesialis agar masuk ke tahap "ahli", karena g akan cukup waktu untuk menguasai setiap bidang secara mendalam.
Tapi tantangannya juga sedikit berbeda dengan dokter. Ilmu programming berkembang dengan sangat cepat. Kita harus bisa juga beradaptasi jika keadaan sudah berubah. Sebagai contoh, 5 tahun lalu menjadi programmer Flash masih menjanjikan, tapi sekarang nyaris tidak ada lagi aplikasi yang dibuat menggunakan Adobe Flash.
Yup betul, tidak semua orang cocok kerja sebagai programmer karena tantangannya juga luar biasa. Dan ini juga hal yang biasa dalam kehidupan kita. Saya suka musik, bisa main drum (basic), tapi hanya sekedar hobi. Jika disuruh jadi musisi juga belum tentu betah :D
min ada gak tips belajar programing yang cepet bisa heheheha dan baiknya pakai bahasa pemograman apaya
Apakah saya boleh meminta saran? Jadi saya itu mahasiswa IT yang mirip diceritakan di Komentar – komentar sebelumnya, dimana untuk membuat program sederhana saja masih belum bisa. Kini di masa akhir semester ini saya ingi berusaha dalam waktu 1 Bulan 15 Hari lagi untuk bisa membuat program Sistem Administrasi berbasis web, Apakah kalau dipikir realistis saya dapat melakukan hal tersebut?
Apakah ada solusinya? Saya agak takut kalau misalkan harus lulus lebih lama karena sudah semester 8.
Kalau sekedar pengen "aplikasinya jadi", menurut saya bisa saja. Caranya cari buku yang secara khusus menjelaskan studi kasus membuat Sistem Administrasi dari awal hingga selesai. Meskipun g ngerti, copas saja semua kode yang ada.
Atau (maaf), bisa cari jasa pembuatan tugas skripsi IT, cukup banyak di internet yang menawarkan jasa ini.
Tapi jika maksudnya pengen belajar sendiri dari nol dan paham semua kode yang diketik, 1,5 bulan nyaris mustahil. Untuk belajar dasar web programming saja minimal perlu HTML, CSS, PHP dan MySQL. Itu baru materi dasar, belum masuk ke studi kasus pembuatan web-nya. Belum lagi harus ngetik laporan skripsi dan minta tanda tangan dari dosen pembimbing.
Pengalaman saya rata2 penulisan skripsi itu butuh waktu 6 bulan (1 semester), atau bisa lebih tergantung kompleksitas judul.
Selain itu jika ini skripsi untuk jenjang S1, biasanya tidak cukup hanya sekedar membuat aplikasi, tapi harus ada sebuah algoritma yang dibahas. Misalnya "Sistem Pengambil Keputusan berbasis web dengan algoritma SAW (Simple Additive Weighting)". Kalau hanya membuat aplikasi biasa saja, itu umumnya untuk D3.
Iya pak, Kalau masalah teori mungkin saya sudah paham dengan kondisi belajar teori dari semester 1, sekarang mengambil konsen S1 Rekayasa Perangkat Lunak dimana yang terpenting adalah Dokumentasi, namun kurangnya adalah dari segi implementasi, untuk tahap perancangan dan analisis kebutuhan sesuai kaidah RPL tentu sudah paham.
Saya inginnya memang belajar dari basic, karena menyewa atau tinggal copas saja sama saja akan menjadi boomerang buat saya jika lulus nanti hanya akan menjadi sarjana IT yang tidak kompeten,
Mungkin lebih baik saya berjuang sampai maksimal saja entah nanti hasilnya harus lulus semester 8 keatas, tapi saya yakin saya pasti bisa.
Terima Kasih atas perhatiannya.
Sip, lebih baik telat belajar daripada tidak sama sekali.
Tipsnya bisa belajar dari buku secara otodidak, karena kalau cuma mengandalkan artikel2 di internet, itu biasanya lompat2 dan jarang yang membuat secara terstruktur dari awal. Bisa juga "bimbel" dengan teman sekelas yang cukup mahir di bidang web.
Waw² Artikel ini Bagus sekali sampai² SY Termotivasi Skali Dlm Diri sY Sendiri.SYa jug BerkeinginAn menjadi seorang Ahli pemrograman ,Tapi Ntah Tercapai Atau tidak Aku Tidak Tahu.Tapi,aku Berkeinginan Yg tdkT Dan Keras SekLi Bahw sY ingin menjadi seorang Ahli pemrograman.
umur saya 30 tahun, mungkin sekitar 3 bulan terakhir saya belajar php mysql..itupun sebatas CRUD dan sedikit sentuhan tampilan yg bervariasi hasil copas, edit2 dari program orang lain…lalu saya terapkan di pekerjaan saya sehari2 sebagai eorang IT support, saya sangat tertarik sekali dengan Framework CI dan Laravel…..
pertanyaan saya..apakah untuk saat ini CI / LARAVEL masih bagus untuk di pelajari dan untuk di aplikasikan di dunia bisnis pada saat ini…sedangkan saya baru belajar php native saja masih belumk begitu paham setiap bait syntak yg saya tuliskan..mohon pencerahanya master…!!!sekian terima kasih…sukses selal….
Pekerjaan sebagai web programming professional saat ini (terutama backend), mayoritas mensyaratkan paham sampai ke framework. Dan framework PHP paling populer di Indonesia memang salah satu dari Code Igniter atau Laravel. Menurut saya keduanya masih layak dipelajari, karena industri menuntut paham skill tersebut.
Tapi CI / Laravel memang bukan untuk pemula. Sebelum masuk ke framework, harus punya dasar yang kuat di HTML, CSS, PHP, MySQL dan JavaScript. Khusus untuk PHP juga sebaiknya sampai ke pemrograman object karena di framework semuanya sudah full pemrograman berbasis object.
Jika dasar ini tidak dipelajari secara maksimal, kita akan kesulitan ketika menghadapi masalah baru. Copy paste memang cepat, tapi itu hanya jika kita memiliki masalah yang sama dengan apa yang dijelaskan di buku / tutorial. Programnya jadi tapi tidak paham apa yang ditulis. Ketika masalahnya diubah sedikit saja, sudah bingung gimana cara buatnya (karena hanya mengikuti apa yang ada di buku / tutorial).
Tapi beda halnya jika mas memang tau cara penyelesaiannya dan copy paste untuk mempercepat pembuatan. Ini sangat sering di lakukan oleh programmer professional sekalipun. Daripada membuat semuanya dari nol, lebih baik menggunakan library yang sudah ada. Jadi tidak selamanya copy paste buruk.
Saran dari saya, mungkin mas boleh sambilan belajar PHP native hingga OOP, termasuk materi yang berhubungan seperti CSS, Bootstrap, dan MySQL. Karena saat ini statusnya sudah bekerja, maka tidak terlalu di kejar waktu.
Dan seperti yang ada di artikel ini, belajar programming memang butuh waktu. Jika mulai dari nol, menurut saya 2 tahun waktu yang masuk akal untuk menyiapkan skill agar sesuai dengan tuntutan industri. Dengan catatan sudah punya materi belajar yang pas dan sering2 latihan pembuatan program.
WOW,detail sekali sumber+penjelasannya,Buat saya semangat lagi+terbuka karena diwaktu SMA pernah mempelajarinya dan sangat menyukainya tapi berhenti.karena kalimat2 orang sekitar "nggak ada guna belajar kaya begituan,karena tidak ada kepastian "menurut mereka.karena berhenti ditengah jalan saya jadi nganggur akibat nggak punya keahlian lain selain keahlian di bidang software(program)tapi sekarang saya lanjut lagi program.trimkasih min "ARTIKEL NYA WOW THE BEST"
Sip, semoga makin semangat belajarnya… ilmu programming ini sedikit banyak akan bermanfaat, dan menurut saya malah lebih baik daripada menghabiskan waktu main game. Jika dipelajari secara serius, malah bisa jadi peluang kerja.
Semua hal dalam hidup ini penuh ketidakpastian, kita lah yang harus berjuang untuk menyiapkan diri menghadapi kemungkinan terburuk. Jadi pekerja kantoran juga ada peluang untuk dipecat. Tapi diluar sana banyak programmer freelance (kerja tidak tetap) yang bisa bergaji puluhan juta. Perbedaan kita dengan mereka hanya skill yang lebih mumpuni. Skill ini diperoleh dengan kerja keras dan banyak2 belajar.
Saya setuju ngga bisa singkat, tapi juga mempertanyakan, kalo waktunya segitu panjang apakah masih ada umur utk orang-orang yang akan menginjak kepala 3 bahkan 4 BELAJAR HAL BARU spt programming? Apakah hidup ini akhirnya cuma buat studi, belajar, dan menimba ilmu? Ini perlu dipertimbangkan.
Saya cuma berpikir, kalo kita menyia2kan waktu studi antara umur belasan hingga dua puluhan, waktu itu tidak akan kembali lagi. Sudah terlambat utk belajar hal baru kalo kita blm pakar dlm suatu bidang mendekati kepala 3.
Menurut saya waktu 10 tahun yang dimaksud Peter Norvig dalam artikel tersebut adalah untuk sampai ke "level ahli". Tapi untuk sekedar bisa menulis aplikasi sederhana, tidak akan butuh waktu selama itu.
Seperti bidang ilmu lain, kita bisa bagi menjadi beberapa tahapan: "pemula", "bisa", dan "ahli" (expert).
Jika belajar setiap hari dan punya materi belajar yang pas, dalam 1 – 2 tahun saya rasa sudah cukup untuk sampai ke tahap "bisa", yakni bisa membuat program sederhana atau tingkat menengah.
Hanya saja untuk sampai ke tahap ahli butuh waktu yang lebih lama. Ahli disini misalnya bisa ikut berkontribusi mengembangkan berbagai project open source.
Sebagai contoh, Linux dibuat dari bahasa C dan C++ oleh programmer dari seluruh dunia. Tapi dari puluhan ribu programmer di Indonesia, kayaknya tidak banyak yang paham materi tersebut dan ikut berkontribusi. Padahal bahasa C dan C++ hampir pasti diajarkan di semua kampus2 IT.
Contoh lain, tidak banyak sarjana IT yang baru tamat bisa membuat sebuah aplikasi yang bisa dijual, padahal mereka sudah belajar 4 tahun di kampus. Kebanyakan hanya bisa membuat aplikasi sederhana sekedar memenuhi tugas dosen.
Bidang programming juga sangat unik karena berkembang setiap saat. Mau tidak mau seorang programmer memang dituntut "belajar seumur hidup". Jika tidak, maka akan ketinggalan dengan teknologi baru. Maksudnya tentu tidak terus menerus belajar, tapi bisa luangkan waktu setengah sampai 1 jam setiap hari untuk update skill.
Ini beda dengan bidang ilmu lain seperti hukum, teknisi mobil, akuntansi atau kedokteran yang tidak banyak berubah. Buku akuntansi 5 tahun lalu masih relevan dibaca sekarang, tapi buku komputer 3 tahun lalu mungkin sudah terasa usang.
Jika sudah berumur diatas 30 tahun (termasuk saya sendiri :D), saya tidak sarankan belajar programming dengan tujuan untuk mencari kerja terutama jika mulai dari nol, karena itu tadi, butuh waktu lama untuk proses belajar. Ditambah kita harus bersaing dengan sarjana2 IT yang ilmunya lebih fresh. Kecuali tekad sudah bulat dan memang sangat berminat dengan dunia programming.
Untuk di usia segitu umumnya programming lebih pas sebagai hobi sampingan, misalnya punya toko baju dan ingin membuat website sendiri, atau seorang karyawan keuangan yang ingin membuat aplikasi sederhana sebagai pengganti excel.
Mungkin sama seperti tamatan SMK otomotif berumur 30 tahun tapi ingin jadi ahli akuntansi. Apakah bisa? sangat bisa, tapi tantangannya tentu lebih besar.
bagus banget artikelnya, saya punya pertanyaan untuk admin. saya seorang mahasiswa jurusan Sistem Informasi semester 2, apakah dalam waktu 3 tahun kedepan saya bisa ahli dalam bidang web programming dengan bahasa pemrograman PHP? karena sudah belajar html,css mulai kelas 3 smp dan baru belajar bahasa pemrograman PHP dan SQL 1 tahun belakangaan ini, minta nasehat dan motivasi lebihnya terima kasih. untuk saat ini sih baru belajar PHP OOP
Sangat bisa, karena mahasiswa punya waktu banyak untuk belajar. Selain itu PHP (dan web programming secara umum), juga bisa dipakai untuk membuat skripsi. Jika tujuannya nanti untuk bekerja sebagai programmer professional, skill PHPnya harus sampai ke tahap framework seperti Code Igniter atau Laravel.
mantap bang artikel nya
Pantesan saya ngerasa udah banyak belajar tapi kok blom ada perkembangan, ternyata ini jawabannya.
Terima kasih banyak mas Andre, artikel nya membuka pandangan saya dan sangat memotivasi saya yang hampir putus asa di dunia pemogramman.