JavaRush /Blog Jawa /Random-JV /Ngopi #83. Sifat karakter apa sing mbedakake programer si...

Ngopi #83. Sifat karakter apa sing mbedakake programer sing luar biasa. Pandhuan Pemrograman Sederhana: Fungsi lan Metode

Diterbitake ing grup

Sifat karakter apa sing mbedakake programer sing luar biasa?

Source: Hackernoon Apa sing misahake programer gedhe saka sing apik? Aku nemokake loro sipat karakter sing dituduhake dening programer gedhe: padha konsisten lan terus-terusan. Sipat-sipat kasebut ing awake dhewe dudu tandha-tandha genius, lan yen dikarepake, sapa wae bisa ngembangake sipat kasebut lan banjur ngetrapake ing karyane. Ngopi #83.  Sifat karakter apa sing mbedakake programer sing luar biasa.  Panduan Pemrograman Sederhana: Fungsi lan Metode - 1

1. Konsisten

Programer sing apik ora sok-sok nggawe program. Nanging, dheweke duwe jadwal khusus kanggo nambah kawruh lan katrampilan sajrone wektu luang: sadurunge utawa sawise kerja lan ing akhir minggu. Contone, programer sing aku kenal nggunakake rong jam pisanan ing dinane - nem dina seminggu - kanggo proyek utawa tugas sinau pribadi. Iki ora ateges wong-wong kuwi nulis kode saben jam. Padha, kaya kita kabeh, duwe wektu kanggo urip pribadi, kewajiban lan kapentingan. Nanging padha konsisten: program wis dadi pakulinan. Kepiye carane sampeyan bisa konsisten? Iki sing akeh kita nyoba kanggo entuk. Aku wis nemokake manawa ana sawetara cara kanggo nindakake iki. Pisanan, nemtokake jumlah jam saben minggu sampeyan bisa nglampahi program. Nomer iki minangka "milage program" mingguan sampeyan. Minangka mantan pelari jarak, aku mlayu sawetara mil saben minggu. Iki minangka lari mingguanku. Saiki aku duwe pengalaman pemrograman: iki jumlah jam aku ngentekake program saben minggu. Umume wong nglirwakake tahap iki. Dheweke langsung mlumpat menyang proyek sing arep dirampungake utawa topik sing arep disinaoni, tanpa mikir babagan carane golek wektu kanggo nindakake. Akibaté, padha kerja ing wayah wengi utawa 16 jam dina. Ana masalah karo pendekatan iki: ora sustainable ing jangka panjang. Ngasah katrampilan sampeyan minangka programer dudu perkara sing sampeyan lakoni sajrone seminggu utawa rong minggu sing sibuk. Nanging, sampeyan kudu terus-terusan kerja ing wektu sing suwe. Mulane penting banget kanggo ngenali pengalaman program sampeyan. Kanggo nindakake iki, gunakake log wektu kanggo ndeleng ing ngendi lan kepiye sampeyan nglampahi wektu. Njupuk selembar kertas lan tulisake kabeh sing sampeyan lakoni saben dina lan suwene sampeyan nindakake, kalebu mriksa media sosial utawa email limang menit. Iki bakal nggampangake sampeyan nemokake slot mbukak ing jadwal sampeyan. Sampeyan bisa uga entuk wektu ekstra kanggo nindakake pakaryan omah utawa nonton TV. Sampeyan banjur bisa nggawe rencana latihan pemrograman sing kudu sampeyan tindakake. Rencana latihan minangka salah sawijining cara sing paling efektif kanggo konsisten. Iki ngidini sampeyan nyebarake kabeh rincian sadurunge. Sampeyan mung kudu ngetrapake rencana iki saben dina. Pendhaftaran rencana latihan mlaku mbatesi carane akeh mil aku needed kanggo mbukak saben dina lan carane cepet aku needed kanggo mbukak mau. Saiki aku nggawe rencana latihan pemrograman sing duwe tujuan sing padha: dheweke ngandhani apa sing kudu ditindakake saben dina. Ing pungkasan dina, aku mbukak Evernote ing komputer lan nggawe jadwal kanggo dina sabanjure. Iki contone:
6:30 - 8:30 - Programming
  1. Python Anki flashcard deck review (20 menit).
  2. Ngatasi masalah Word Cloud Data.
Aku ngetutake proses iki sajrone dina kerja: Aku nemtokake jumlah wektu sing bakal ditindakake kanggo tugas lan apa sing arep ditindakake ing wektu kasebut. Aku uga nggawe rencana latihan saben wulan. Ing kono, aku kalebu telung perkara sing pengin dakrampungake, sinau, utawa ngrampungake ing wulan ngarep. Aku biyen nggawe rencana saben wulan. Nanging banjur aku nemokake manawa kakehan bisa diganti sajrone telung wulan. Rencana saben wulan ngidini wektu sing cukup kanggo nggawe langkah penting ing latihan sampeyan.

2. Tekun

Sifat kapindho programer sing apik yaiku ketekunan. Dheweke nggarap kabeh pilihan kanggo ngrampungake masalah lan nemokake jawaban. Iki misale jek dadi rahasia. Programer gedhe sing dakkenal duwe kemampuan luar biasa kanggo ngilangi masalah lan nggawe solusi utawa solusi sing beda kanggo kahanan sing angel. Ing cendhak, padha duwe sistem kanggo ngatasi masalah. Aku tau sistem solusi ing SMA. Saben-saben aku diwenehi masalah ing kelas matematika, aku bakal nyilem kanthi cepet. Banjur aku terus nindakake iki nalika miwiti program. Ora ana rencana. Ora ana sistem. Ora ana wektu kanggo mikir. Ora ana analisis. Ora nggumunake, ing kasus kasebut, aku muter rodaku kanthi ora perlu lan terus-terusan ngalami alangan. Saiki aku duwe sistem pemecahan masalah sing mbantu aku ngilangi masalah kanggo nemokake pilihan sing beda. Contone, langkah pisanan ing proses pemecahan masalahku yaiku nyatakake masalah kasebut. Iki pisanan. Sawise aku ngerti masalah, aku fokus ing saben langkah ing ngisor iki.
  • Analisis data input lan asil samesthine.
  • Nggawe algoritma tumindak.
  • Nulis pseudocode.
  • Ngatasi masalah versi sing disederhanakake.
Muga-muga sampeyan entuk ide. Tahap bisa uga ora gampang, nanging bisa diatur. Kanthi ngrampungake masalah sing angel, kita dadi wong sing luwih apik. Iku uga instills kapercayan. Sawise ngrampungake siji masalah sing angel, kita siyap kanggo sing anyar.

3. Sikap kanggo masalah?

Ing dalan kanggo dadi programer sing luwih apik, ana liyane sing kudu kita pikirake: sikap. Sampeyan kudu duwe pendekatan anyar kanggo masalah lan ambiguitas. Sawijining dina aku takon pangembang senior sawetara pitakonan babagan masalah sing aku macet. Aku bingung lan kuciwa. Ing wiwitan, pangembang uga bingung. Nanging, wangsulane aku kaget. "Wah, masalah sing apik banget," ujare. Kapentingan dheweke kepincut karo rincian sing ditemokake. Iku ora ngomong sing programer gedhe ora njaluk macet ing sawetara masalah, banget. Padha macet. Nanging bedane ana ing sikap. Pawulangan sing daksinaoni dina iku yaiku: programer sing apik ora wedi ngupayakake sing ora dingerteni. Dheweke ngerti manawa dheweke bakal sinau sing anyar kanthi sinau masalah iki. Kita bisa sinau akeh kanthi sinau programer liyane. Nanging pungkasane tanggung jawab ana ing kita: kita kudu kerja saben dina lan tumindak.

Pandhuan Pemrograman Sederhana: Fungsi lan Metode

Sumber: DZone Apa sing nggawe fungsi utawa metode sing apik? Iki mbutuhake kombinasi faktor, sing saben-saben penting. Ayo goleki papat sing paling penting. Ngopi #83.  Sifat karakter apa sing mbedakake programer sing luar biasa.  Panduan Pemrograman Sederhana: Fungsi lan Metode - 2

Jeneng sing teges

Fungsi kudu duwe jeneng sing nggambarake tujuan utawa fungsine. Nalika fungsi duwe jeneng sing migunani, gampang diwaca lan ngerti tujuane. Contone, yen tujuan fungsi kasebut kanggo nemokake pelanggan kanthi ID, jeneng sing apik bisa uga findCustomerById(id: String) . Pilihan liyane bisa dadi findCustomer(id: String) . Ing kene tandha fungsi nuduhake manawa panuku ditemokake kanthi ID. Tembung "golek" uga nuduhake yen sing tuku bisa uga ora ditemokake. Yen jeneng fungsi diganti getCustomer(id: String) banjur maknane diganti amarga saiki ora ana rollback; klien salah siji ketemu utawa fungsi gagal lan bisa mbalang pangecualian. Loro-lorone jeneng minangka jeneng sing bener kanggo fungsi, nanging nduweni makna sing beda-beda, mula implementasine uga kudu beda.

Minangka sawetara paramèter sabisa

Aku seneng ngetutake aturan telu. Iki tegese fungsi kudu duwe telu utawa kurang paramèter. Nalika fungsi mbutuhake luwih saka telung paramèter, kudu ditulis maneh lan paramèter diselehake ing wadhah data, kayata kelas, kelas data, obyek JavaScript, lan sapiturute. Iki minangka cara sing gampang kanggo nyuda jumlah paramèter lan ngatur data ing sawijining aplikasi. Coba umpamane fungsi sing nduweni prilaku sing padha nanging teken beda:
fun addCustomer(
  firstname: String,
  lastname: String,
  streetAddress: String,
  city: String,
  zipCode: String
)
Mangkene pilihan liyane:
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 kasebut nindakake apa sing dikarepake

Fungsi kudu nindakake apa sing dikarepake. Ora luwih, ora kurang. Yen fungsi kasebut dijenengi findAddress(latitude, longitude) banjur kudu nemokake alamat ing koordinat sing diwenehake, utawa, yen alamat ora bisa diowahi dadi koordinat, bali Ora ana , null , Kosong utawa apa wae jinis sing cocog kanggo basa sing diwenehake. Fungsi kasebut ora bisa nindakake apa-apa liyane, kayata goleki alamat sing cedhak utawa nggawe cathetan koordinat. Fungsi bisa uga duwe efek samping kayata logging utawa analytics, nanging iki ora katon ing input lan output.

Fungsi kasebut bisa dites

Fitur kudu dirancang supaya bisa dites. Ing conto kode sadurungé, aku ditetepake fungsi addCustomer , nanging aku ora nemtokake jinis bali, supaya testability bisa dipertanyakan. Mesthi wae bisa dites nggunakake mock utawa spies gumantung saka implementasine internal, iki bisa digayuh kanthi menehi jinis bali:
fun addCustomer(customer: Customer): Customer
Kanthi teken fungsi iki, kita bisa ngasilake entitas klien sing ditambahake menyang komponen sing diarani. Kita uga bisa mriksa yen fungsi nindakake apa sing kudu ditindakake karo obyek klien iki (yaiku, menehi pengenal unik).
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION