Ada banyak jenis programmer yang melakukan pengembangan perangkat lunak. Atau itu pemrograman komputer? Atau apakah itu pengkodean? Ini semua adalah label atau kotak yang kami gunakan untuk mengklasifikasikan orang dan keahlian mereka. Sama seperti kita membedakan antara penguji, pembuat kode, manajer, arsitek, perancang, CLO, dll. Hanya ini yang jauh lebih jelas. Jadi apa sebenarnya yang membuat pembuat kode menjadi pembuat kode atau pemrogram menjadi pemrogram? Kami mungkin secara longgar menggunakannya secara bergantian untuk mengartikan hal yang sama tetapi dari perspektif luar saya suka menganggapnya sebagai lencana atau garis. Sesuatu yang Anda peroleh dengan waktu, kesabaran, kebijaksanaan, dan pengalaman.
Beberapa orang hanya memiliki kualitas tertentu tentang mereka yang membuat mereka baik, buruk, lebih baik atau lebih buruk daripada orang berikutnya. Untuk menentukan apa ini, saya mengusulkan lima kotak atau label.
- Pengguna alat
- Peretas
- Pemrogram
- Pengembang
- Arsitek
Pengguna alat adalah yang paling tidak berpengalaman dari semuanya. Dia memiliki pengetahuan yang cukup untuk melihat-lihat alat seperti Visual Studio 2005 dan menggabungkan GUI hanya dengan menyeret dan melepaskan widget ke formulir. Bagi seseorang yang tidak tahu lebih baik, karena dia menghasilkan hasil yang sering terlihat menarik (disebabkan oleh upaya alat dan bukan perbuatannya sendiri), mereka sangat memikirkan dia dan/atau konstruksinya. Mengapa istilah konstruksi dan bukan produksi atau pengembangan? Yah dia tidak benar-benar mengembangkan apa pun. Dia membangun sesuatu dengan menggunakan alat yang semakin canggih. Manajemen yang baik yang memiliki petunjuk atau paham teknologi akan melewati ini, tetapi sayangnya (atau untungnya bagi programmer yang lebih baik di dunia) dia masih menemukan tempatnya. Ini adalah jenis pengembang perangkat lunak terburuk. Ketika sesuatu di bawah tudung rusak atau dia perlu mengubah perilaku untuk melakukan sesuatu yang substansial, lupakan saja.
Bahasa pilihan: Apakah itu benar-benar penting? Itu semua omong kosong
Perangkat lunak pilihan: Setiap dan semua alat RAD yang menyediakan pengembangan antarmuka clicky yang cepat
Peretas telah melampaui gagasan mengharapkan alat untuk melakukan semua pekerjaan untuknya. Dia memiliki keterampilan pengembangan dasar atau belum sempurna. Tidak ada pengetahuan tentang bahasa yang dikompilasi tetapi memahami bahasa scripting dengan cukup baik untuk menyatukan potongan-potongan. Dia biasanya dapat menyalin dan menempel skrip dan men-tweak variabel dan fungsi. Dia biasanya tidak memahami gambaran besar untuk mengembangkan apa pun, tetapi dia dapat meretas sesuatu yang diberikan kepadanya dengan keberuntungan. Dia menelusuri web dan forum mencari potongan kode untuk melakukan apa yang dia inginkan dan menyatukannya.
Bahasa pilihan: Javascript, html, css, mungkin pemahaman php terbatas
Perangkat lunak pilihan: Editor teks sederhana, mungkin editor teks yang menyediakan penyorotan sintaks
Pemrogram memiliki pemahaman yang baik tentang apa itu kode dan menulis perangkat lunak. Dia tidak terlalu mengandalkan alat seperti pemahamannya sendiri tentang bahasa. Dia tidak begitu bertahap tentang alat yang dia keluarkan karena dia menyadari alat itu tidak akan melakukan pekerjaan untuknya. Namun kekeliruan ini membutakannya dari menyadari manfaat yang dapat mereka berikan kepada programmer yang lebih berpengalaman. Ketidaktahuan dengan alat dan perpustakaan ini; hasil dari paparan dan pengalaman yang terbatas di bidang yang lebih luas, membayanginya dari lingkungan proyek yang lebih besar yang memerlukan kontrol versi, banyak pengembang, dan lingkungan yang lebih besar. Dia hanya tidak terbiasa dengan itu. Demikian pula, sementara seorang programmer yang cakap, dia tidak perlu memikirkan bagaimana orang lain akan menggunakan apa yang dia tulis dan karena itu, tidak benar-benar cocok dengan lingkungan pembangunan tim. Dia adalah ‘programmer tunggal’ yang terampil. Dia mungkin memiliki keterampilan, tetapi tidak ada yang bisa bekerja dengannya karena dia tidak berpikir di atas atau di bawah baris kode yang dia tulis.
Bahasa pilihan: C++, Java, C#, Visual Basic
Pengembang adalah pemrogram berpengalaman yang memahami bahwa mengembangkan perangkat lunak jauh lebih banyak daripada baris-baris kode yang terdiri darinya. Dia memiliki pemahaman yang jauh lebih baik tentang konsep dan prinsip desain perangkat lunak daripada programmer dan memikirkan masalah secara keseluruhan. Sementara dia memiliki pemahaman yang baik tentang masalah ini dan terbuka untuk melihatnya dari banyak sudut, dia tidak perlu memahami seluruh domain yang berlaku. Dengan keterampilan pemrograman yang berpengalaman, dia tidak mengandalkan alat tetapi menggunakannya untuk meningkatkan produktivitas.
Bahasa pilihan: Umumnya lebih memilih kode terkelola daripada kode tidak terkelola karena dia menyadari peningkatan produktivitas yang menyertainya.
Perangkat lunak pilihan: IDE pengembangan besar; apa pun yang menyediakan kecerdasan, penyorotan sintaks, cuplikan kode, templat, pemformatan, dll.
Arsitek adalah crème dari tanaman. Dia adalah pengembang perangkat lunak prima dengan pengalaman sepuluh tahun lebih. Dia melampaui sisi teknis pengembangan perangkat lunak dan memahami desain solusi yang baik. Dia bisa masuk ke domain bisnis dan menghubungkan titik-titik yang tidak bisa dilakukan orang di dalam domain. Bersandar pada pengalaman bertahun-tahun tentang apa yang berhasil dan apa yang tidak, dia sering disewa sebagai konsultan untuk keahliannya yang berharga.
Keahlian yang jauh lebih luas, namun terspesialisasi ini membuatnya sangat diminati. Ketika sebuah perusahaan ingin membawa senjata besar dan memanggil konsultan. Ini orangnya.
Bahasa pilihan: Pemrograman adalah sesuatu yang tersisa untuk masa mudanya, layanan konsultasinya mengharuskan dia untuk menulis sangat sedikit baris kode.
Perangkat lunak pilihan: Alat pemodelan, alat metrik, dan alat untuk tujuan komparatif.
Jenis pemrogram apa yang pernah Anda temui/bekerja bersama dalam perjalanan hidup Anda?