JavaRush /Java Blog /Random-ID /Rehat kopi #83. Ciri-ciri karakter apa yang membedakan pr...

Rehat kopi #83. Ciri-ciri karakter apa yang membedakan programmer yang luar biasa. Panduan Pemrograman Sederhana: Fungsi dan Metode

Dipublikasikan di grup Random-ID

Ciri-ciri karakter apa yang membedakan programmer yang luar biasa?

Sumber: Hackernoon Apa yang membedakan programmer hebat dengan programmer bagus? Saya menemukan dua karakter yang dimiliki oleh programmer hebat: konsisten dan gigih. Ciri-ciri ini sendiri bukanlah tanda-tanda kejeniusan, dan jika diinginkan, siapa pun dapat mengembangkan sifat-sifat ini dan kemudian menerapkannya dalam pekerjaan mereka. Rehat kopi #83.  Ciri-ciri karakter apa yang membedakan programmer yang luar biasa.  Panduan Pemrograman Sederhana: Fungsi dan Metode - 1

1. Bersikaplah konsisten

Pemrogram yang baik tidak memprogram sesekali. Sebaliknya, mereka mempunyai jadwal khusus untuk meningkatkan pengetahuan dan keterampilan di waktu senggang: sebelum atau sesudah bekerja dan di akhir pekan. Misalnya, seorang programmer yang saya kenal menghabiskan dua jam pertama dalam harinya—enam hari seminggu—untuk mengerjakan proyek atau tugas belajar pribadi. Ini tidak berarti bahwa orang-orang seperti itu menulis kode sepanjang waktu. Mereka, seperti kita semua, punya waktu untuk kehidupan pribadi, kewajiban, dan kepentingan mereka. Namun mereka konsisten: pemrograman sudah menjadi kebiasaan mereka. Bagaimana Anda bisa menjadi konsisten? Inilah yang ingin dicapai oleh banyak dari kita. Saya telah menemukan bahwa ada beberapa cara untuk melakukan ini. Pertama, tentukan jumlah jam per minggu yang dapat Anda habiskan untuk pemrograman. Angka ini adalah “jarak tempuh program” mingguan Anda. Sebagai mantan pelari jarak jauh, saya berlari sejauh beberapa mil setiap minggunya. Ini adalah lari mingguan saya. Sekarang saya memiliki pengalaman pemrograman: ini adalah jumlah jam yang saya habiskan untuk pemrograman setiap minggunya. Kebanyakan orang mengabaikan tahap ini. Mereka langsung terjun ke proyek yang ingin mereka selesaikan atau topik yang ingin mereka pelajari, tanpa memikirkan bagaimana mereka akan punya waktu untuk mengerjakannya. Alhasil, mereka bekerja pada malam hari atau 16 jam sehari. Ada masalah dengan pendekatan ini: pendekatan ini tidak berkelanjutan dalam jangka panjang. Mengasah keterampilan Anda sebagai seorang programmer bukanlah sesuatu yang Anda lakukan selama satu atau dua minggu yang sibuk. Sebaliknya, Anda harus terus mengerjakannya dalam waktu yang lama. Inilah mengapa sangat penting untuk mengidentifikasi pengalaman pemrograman Anda. Untuk melakukan hal ini, pertimbangkan untuk menggunakan catatan waktu untuk melihat di mana dan bagaimana Anda menghabiskan waktu Anda. Ambil selembar kertas dan tuliskan semua yang Anda lakukan setiap hari dan berapa lama Anda melakukannya, termasuk mengecek media sosial atau email selama lima menit. Ini akan memudahkan Anda menemukan slot terbuka di jadwal Anda. Anda bahkan mungkin bisa mendapatkan sedikit waktu ekstra untuk mengerjakan pekerjaan rumah atau menonton TV. Anda kemudian dapat membuat rencana pelatihan pemrograman yang harus Anda patuhi. Rencana pelatihan adalah salah satu cara paling efektif untuk menjadi konsisten. Ini memungkinkan Anda untuk mendistribusikan semua detail terlebih dahulu. Yang harus Anda lakukan adalah menerapkan rencana ini setiap hari. Rencana latihan lari saya menguraikan berapa mil yang saya perlukan untuk berlari setiap hari dan seberapa cepat saya harus berlari. Sekarang saya membuat rencana latihan pemrograman yang memiliki tujuan yang sama: rencana tersebut memberi tahu saya apa yang harus saya lakukan setiap hari. Di penghujung hari, saya membuka Evernote di komputer saya dan membuat jadwal untuk hari berikutnya. Berikut ini contohnya:
6:30 - 8:30 - Pemrograman
  1. Ulasan dek kartu flash Python Anki (20 menit).
  2. Memecahkan masalah Data Cloud Word.
Saya mengikuti proses ini sepanjang hari kerja saya: Saya menentukan jumlah waktu yang akan saya habiskan untuk suatu tugas dan apa yang ingin saya capai dalam waktu itu. Saya juga membuat rencana pelatihan bulanan. Di dalamnya, saya mencantumkan tiga hal yang ingin saya capai, pelajari, atau selesaikan di bulan mendatang. Saya biasa membuat rencana triwulanan. Namun kemudian saya menyadari bahwa banyak hal bisa berubah dalam tiga bulan. Paket bulanan memberikan cukup waktu untuk membuat langkah signifikan dalam pelatihan Anda.

2. Bersikaplah gigih

Ciri kedua dari programmer yang baik adalah ketekunan. Mereka memikirkan semua pilihan untuk memecahkan masalah dan menemukan jawabannya. Tampaknya inilah rahasianya. Pemrogram hebat yang saya temui memiliki kemampuan luar biasa untuk memecahkan masalah dan menghasilkan solusi atau solusi berbeda untuk situasi sulit. Singkatnya, mereka mempunyai sistem untuk memecahkan masalah. Saya tidak pernah memiliki sistem solusi di sekolah menengah. Setiap kali saya diberi soal di kelas matematika, saya akan langsung mengerjakannya dengan kecepatan penuh. Kemudian saya terus melakukan ini ketika saya memulai pemrograman. Tidak ada rencana. Tidak ada sistem. Tidak ada waktu untuk berpikir. Tidak ada analisis. Tidak mengherankan, dalam kedua kasus tersebut saya memutar roda secara tidak perlu dan terus-menerus menemui rintangan. Saya sekarang memiliki sistem pemecahan masalah yang membantu saya memecahkan masalah untuk menemukan pilihan berbeda. Misalnya, langkah pertama dalam proses pemecahan masalah saya adalah menyatakan masalahnya. Ini yang pertama. Setelah saya memahami masalahnya, saya fokus pada setiap langkah berikut.
  • Analisis data masukan dan hasil yang diharapkan.
  • Pembuatan algoritma tindakan.
  • Menulis kodesemu.
  • Memecahkan masalah dengan versi yang disederhanakan.
Semoga Anda mendapatkan idenya. Tahapannya mungkin tidak mudah, namun dapat dikelola. Dengan memecahkan masalah yang sulit, kita menjadi orang yang lebih baik. Itu juga menanamkan kepercayaan diri. Begitu kita menyelesaikan satu masalah sulit, kita siap menghadapi masalah baru.

3. Sikap terhadap masalah?

Dalam perjalanan menjadi programmer yang lebih baik, ada hal lain yang perlu kita pertimbangkan: sikap. Anda harus memiliki pendekatan baru terhadap masalah dan ambiguitas. Suatu hari saya mengajukan beberapa pertanyaan kepada pengembang senior tentang masalah yang saya alami. Saya bingung dan kecewa. Awalnya pihak pengembang juga bingung. Namun, jawabannya mengejutkanku. “Wow, itu masalah yang keren,” katanya. Ketertarikannya terguncang oleh detail yang dia temukan. Itu tidak berarti bahwa pemrogram hebat juga tidak terjebak dalam suatu masalah. Mereka terjebak. Namun perbedaannya terletak pada sikap. Pelajaran yang saya peroleh hari itu adalah: programmer yang baik tidak takut untuk menjelajah ke hal yang tidak diketahui. Mereka memahami bahwa mereka pasti akan mempelajari sesuatu yang baru dengan mempelajari masalah ini. Kita bisa belajar banyak dengan mempelajari programmer lain. Namun pada akhirnya, tanggung jawab ada di tangan kita: kita harus mulai bekerja setiap hari dan mengambil tindakan.

Panduan Pemrograman Sederhana: Fungsi dan Metode

Sumber: DZone Apa yang membuat fungsi atau metode bagus? Hal ini memerlukan kombinasi beberapa faktor, yang masing-masing faktor penting. Mari kita lihat empat hal yang paling penting. Rehat kopi #83.  Ciri-ciri karakter apa yang membedakan programmer yang luar biasa.  Panduan Pemrograman Sederhana: Fungsi dan Metode - 2

Nama yang bermakna

Fungsi harus memiliki nama yang menjelaskan tujuan atau fungsinya. Ketika suatu fungsi memiliki nama yang bermakna, maka mudah untuk membaca dan memahami tujuannya. Misalnya, jika tujuan fungsi ini adalah untuk menemukan pelanggan berdasarkan ID, nama yang bagus mungkin adalah findCustomerById(id: String) . Pilihan lainnya adalah findCustomer(id: String) . Di sini fungsi tanda tangan menyiratkan bahwa pembeli ditemukan dengan ID-nya. Kata “menemukan” juga menyiratkan bahwa pembeli mungkin ditemukan atau tidak. Jika nama fungsi diubah menjadi getCustomer(id: String) maka maknanya berubah karena sekarang berarti tidak ada rollback; klien ditemukan atau fungsinya gagal dan mungkin memunculkan pengecualian. Kedua nama tersebut merupakan nama valid untuk suatu fungsi, namun mempunyai arti yang berbeda, sehingga implementasinya juga harus berbeda.

Parameter sesedikit mungkin

Saya suka mengikuti aturan tiga. Artinya fungsi tersebut harus memiliki tiga parameter atau kurang. Jika suatu fungsi memerlukan lebih dari tiga parameter, maka fungsi tersebut harus ditulis ulang dan parameter ditempatkan pada pemegang data, seperti kelasnya, kelas data, objek JavaScript, dan seterusnya. Ini adalah cara mudah untuk mengurangi jumlah parameter dan mengatur data dalam suatu aplikasi. Mari kita ambil contoh sebuah fungsi yang memiliki perilaku identik tetapi tanda tangannya berbeda:
fun addCustomer(
  firstname: String,
  lastname: String,
  streetAddress: String,
  city: String,
  zipCode: String
)
Inilah pilihan lainnya:
data class Address(
  val street: String,
  val city: String,
  val zipCode: String,
  val streetNumber: String
)

data class Customer(
  val firstname: String,
  val lastname: String,
  val address: Address
)

fun addCustomer(customer: Customer)

Fungsi tersebut melakukan apa yang diharapkan

Suatu fungsi harus melakukan apa yang diharapkan darinya. Tidak lebih, tidak kurang. Jika fungsinya bernama findAddress(latitude, longitude) maka ia harus menemukan alamat pada koordinat yang diberikan, atau, jika alamat tidak dapat dikonversi ke koordinat, kembalikan None , null , Blank atau apa pun jenis yang sesuai untuk bahasa yang diberikan. Fungsi tersebut tidak boleh melakukan hal lain, seperti mencari alamat terdekat atau membuat catatan koordinat. Suatu fungsi mungkin memiliki efek samping seperti logging atau analitik, namun hal ini tidak terlihat pada input dan output.

Fungsinya bisa diuji

Fitur harus dirancang agar dapat diuji. Dalam contoh kode sebelumnya, saya mendefinisikan fungsi addCustomer , tetapi saya tidak mendefinisikan tipe pengembalian apa pun, sehingga kemampuan pengujiannya dipertanyakan. Tentu saja dapat diuji menggunakan tiruan atau mata-mata tergantung pada implementasi internalnya seperti apa, hal ini dapat dicapai hanya dengan menyediakan tipe kembalian:
fun addCustomer(customer: Customer): Customer
Dengan tanda tangan fungsi ini, kita dapat mengembalikan entitas klien yang ditambahkan ke komponen yang dipanggil. Kita juga dapat memeriksa apakah fungsi tersebut melakukan apa yang seharusnya dilakukan dengan objek klien ini (yaitu, memberinya pengenal unik).
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION