Kelemahan dari kata kode


41

Kode kata adalah konsep yang mengusulkan untuk mengasah keterampilan programmer dengan melakukan masalah kecil berkali-kali mencoba untuk memperbaiki kode di setiap iterasi. Nama ini berasal dari analogi kata seni bela diri di mana bentuk (alias kata) adalah praktik yang dilakukan berulang-ulang yang mengarah ke perbaikan.

Dari reaksi yang saya dapatkan pada pertanyaan terakhir saya tentang topik ini, saya ingin tahu apa yang menjadi kelemahan pendekatan ini?


+1 untuk mengimbangi -1 yang tidak produktif yang diterapkan. Tampaknya pertanyaan yang valid, seperti keraguan saya tentang Kode kata, tetapi tidak bisa menunjukkan mengapa.
mattnz

9
sampai hari ini saya tidak tahu apa kata kata ini tentang. Sekarang saya baru saja memeriksanya dan saya pikir itu hanya nama yang bagus untuk sesuatu yang setiap programmer waras lakukan dan pelajari secara otomatis sambil mengembangkan: berlatih. Jadi kekurangannya bagi saya adalah: hanya butuh waktu ekstra yang bisa digunakan sebaliknya.
stijn

11
Hmm ... rupanya, satu kelemahan utama dari kata kode tampaknya adalah bahwa orang-orang mengkritik kata kata tanpa memahami apa kata kata itu :-)
Jörg W Mittag

19
@ JörgWMittag - Itu karena istilah 'kata' adalah analogi yang buruk karena menyiratkan praktik bentuk kaku dengan sedikit arti praktis dalam situasi dunia nyata. Menerapkan kata-kata seni bela diri, seperti "sabuk hitam" atau "kata", untuk pemrograman atau situasi bisnis mengganggu saya.
jfrankcarr

Jawaban:


22

Pada prinsipnya, saya tidak melihat kekurangan dalam kode kata. Anda mencoba menyelesaikan tugas yang sama berkali-kali, dengan pendekatan dan bahasa yang berbeda. Tapi

  1. agak sulit untuk memperkenalkannya di tempat kerja. Anda biasanya diharapkan mahir atau cukup produktif. Saya tidak mengatakan itu tidak akan berguna (lebih baik menghabiskan beberapa waktu untuk meningkatkan keterampilan seorang karyawan baru daripada membayar untuk kode yang tidak begitu baik yang akan ia tulis pada waktu yang akan datang) tetapi agak sulit tidak kurang.
  2. Anda harus actuallu mencoba untuk meningkatkan dalam beberapa hal. Menulis kode yang sama dengan cara yang sama seribu kali tidak akan membuat Anda lebih baik (justru akan membuat Anda bosan). Anda harus memahami kesalahan Anda sebelumnya, apa yang salah atau tidak berjalan seperti yang diharapkan. Ini bagian terpenting. Ini adalah bentuk belajar mandiri, jadi Anda harus belajar.

1
Saya menerima jawaban ini karena menjawab pertanyaan secara langsung (bukan terminologi "kata") dan berfokus pada masalah potensial dari praktik kode kata. Ini bukan untuk mengatakan bahwa jawaban lain bukanlah jawaban yang baik - pada kenyataannya, saya akan dengan senang hati menerima lebih dari satu!
Sardathrion

43

Saya pikir pemrograman kata, seperti kata seni bela diri, terutama tentang bentuk daripada fungsi. Mungkin mengajarkan Anda untuk menulis kode yang elegan, tetapi itu tidak akan mengajarkan Anda untuk memecahkan masalah Anda menulis kode. Saya pikir cara yang lebih baik untuk meningkat sebagai programmer adalah dengan memecahkan teka-teki yang membutuhkan penyelesaian masalah aktual, dan untuk bekerja pada proyek yang lebih besar yang akan mengajarkan Anda nilai kode yang diperhitungkan dengan baik sehingga kode kata tidak akan pernah bisa mengajari Anda.

Sebagai tambahan, saya pikir istilah-istilah seperti 'kode kata' dan 'pengerjaan perangkat lunak' lebih tentang romantisasi profesi kita daripada tentang menggambarkan sesuatu yang novel atau berguna.


4
Buat +2 untuk kalimat itu.
Erik Dietrich

6
Sementara saya setuju bahwa memecahkan masalah adalah cara yang baik untuk meningkatkan sebagai seorang programmer, belajar menulis kode yang elegan juga bisa menjadi pengejaran yang berharga. Saya berharap bahwa beberapa pengembang kode asli yang saat ini saya pertahankan telah meluangkan waktu dan usaha untuk menulis kode yang elegan daripada menyalin dan menempel hanya untuk menyelesaikan pekerjaan.
Mike Partridge

1
+3 untuk komentar Mike. Secara umum, lebih banyak waktu dihabiskan untuk memelihara kode daripada yang dihabiskan pada awalnya menulisnya. Anda mengharapkan pengerjaan diterapkan ketika seseorang membangun rumah Anda, karena Anda akan tinggal di sana untuk waktu yang lama. Hal yang sama harus diterapkan ketika seseorang membuat perangkat lunak - tetapi seringkali tidak.
Kaleb Brasee

@KaptajnKold: Apakah Anda berbicara dari pengalaman Anda? Saya akan senang mendengar beberapa komentar dari seseorang yang benar-benar mencoba untuk meningkatkan keterampilannya melalui CodeKata dan gagal.
dzieciou

2
@dzieciou: Saya memiliki pengalaman dalam seni bela diri kata yang telah berlatih Karate selama beberapa tahun. Dan sementara saya percaya bahwa ada beberapa aspek pertempuran yang berguna yang dapat dipelajari dari kata, saya juga percaya bahwa itu pada akhirnya bukan cara yang sangat efisien untuk melatih. Anda harus berlatih sambil bertarung seperti yang mereka katakan. Itu jika tujuan Anda adalah menjadi pejuang yang lebih baik. Beberapa orang menemukan bahwa mempraktekkan kata menjadi pengejaran yang menyenangkan. Tidak ada yang salah dengan itu. Akhirnya beberapa dari mereka menjadi sangat baik. Di kata
KaptajnKold

20

Kode kata hanya membutuhkan waktu.

Menjadi pengembang dan ayah penuh waktu, saya tidak ingin menjadikan komputasi hobi.

Dan saya tidak membayangkan bos saya akan membayar saya untuk mengembangkan aplikasi yang tidak terkait dengan proyek saya saat ini.


10
Apakah ada pembelajaran yang tidak membutuhkan waktu? Kecuali jika Anda cukup beruntung untuk mengerjakan proyek greenfield setiap saat.
Den

38
Jika Anda tidak menghabiskan setidaknya sedikit waktu luang Anda untuk meningkatkan keterampilan pemrograman Anda secara teratur, karir profesional Anda dalam bahaya besar.
Ladislav Mrnka

7
Beri +1 pada ini. Walaupun saya benar-benar menyukai pemrograman, dan bahwa saya dapat menghasilkan uang untuk sesuatu yang saya sukai, saya tidak melihat gunanya melakukan pemrograman LEBIH BANYAK di luar pekerjaan. Saya memiliki banyak hobi lain (DJ, memproduksi musik, mengangkat beban, menggambar dan menari jalanan misalnya) sehingga saya tidak melihat gunanya menghabiskan lebih banyak waktu untuk sesuatu yang sudah saya lakukan 40 jam / minggu.
Andreas Johansson

7
@mouviciel: Dan itulah masalahnya: bos Anda bersedia membayar untuk pengembangan profesional Anda, jika diperlukan pada proyek tetapi Anda harus bersedia meningkatkan keterampilan Anda yang tidak terkait dengan proyek Anda saat ini - mungkin tidak terkait dengan saat ini Anda platform sama sekali. Itulah yang membangun karir / jaminan sosial Anda.
Ladislav Mrnka

6
@LadislavMrnka - Saya setuju dengan Anda. Namun demikian, Kode kata bukan jawaban untuk masalah itu.
mouviciel

13

Sebagai seorang petinju, saya harus tidak setuju dengan prinsip di balik kata tersebut. Terlalu kaku untuk menjadi berguna. Di atas ring, Anda harus memahami bagaimana menerapkan prinsip-prinsip yang telah Anda pelajari di lingkungan yang mengalir bebas.

Ini bukan untuk mengatakan bahwa pembelajaran dan peningkatan teknik tidak boleh dilakukan. Berlatih pada tas memungkinkan Anda untuk bekerja menggunakan pukulan dan merasakan bagaimana Anda melemparkannya, sama seperti kata. Tapi itu tidak sekaku itu. Anda sedang berlatih banyak hal pada saat yang sama, bergerak di sekitar tas, melempar dari platform yang stabil, membidik, bernapas, daftarnya berlanjut.

Yang paling penting, semuanya dipelajari bersama cara itu akan benar-benar digunakan. Jika Anda dapat menulis yang paling indah untuk loop, tetapi Anda tidak dapat memahami bagaimana cara memasangnya ke dalam sebuah program, lalu apa gunanya itu?

Saya akan mengatakan bahwa hal yang lebih baik untuk dilakukan jika Anda ingin latihan adalah membangun alat sendiri, atau mengerjakan alat yang Anda gunakan. Ini membutuhkan melatih semua keterampilan Anda dan pada akhirnya Anda mungkin memiliki sesuatu yang bermanfaat.


tepat. fwiw, saya juga seorang petinju / programmer :).
Paul Sanwald

1
Kode katas bukan tentang pengulangan yang kaku; mereka lebih banyak tentang bekerja untuk menyelesaikan masalah, kemudian bekerja untuk meningkatkan solusi Anda sampai Anda puas. Dari Kata One: "Tujuan dari kata ini adalah untuk mempraktikkan gaya pemodelan eksperimental yang lebih longgar. Cari sebanyak mungkin cara berbeda dalam menangani masalah. Pertimbangkan berbagai pilihan masing-masing. Teknik apa yang paling baik digunakan untuk menjelajahi model-model ini? Untuk merekamnya? Bagaimana Anda bisa memvalidasi model masuk akal? "
Mike Partridge

4
Saya setuju bahwa istilah 'kata' tidak sempurna, tetapi jangan sampai kehilangan titik mereka karena namanya. Juga, mereka tidak semua masalah kata; dari Kata Two: "Terapkan rutin pencarian biner (menggunakan spesifikasi di bawah) dalam bahasa dan teknik pilihan Anda. Besok, terapkan lagi, menggunakan teknik yang sama sekali berbeda. Lakukan hal yang sama di hari berikutnya, hingga Anda memiliki lima yang benar-benar unik implementasi dari pemotongan biner. (Sebagai contoh, satu solusi mungkin pendekatan iteratif tradisional, satu mungkin rekursif, satu mungkin menggunakan gaya fungsional melewati irisan array sekitar, dan sebagainya). "
Mike Partridge

3
@ MikePridgeridge Itu mencontohkan poin saya. Sebuah kata akan melibatkan satu metode pencarian biner yang setiap hari ditingkatkan, katakanlah dengan lebih sedikit baris, atau lebih sedikit waktu yang dibutuhkan untuk menulisnya dari awal. Bagaimana sebuah konsep dijelaskan adalah penting untuk mendefinisikannya. Dia bisa saja menyebutnya praktik pemrograman, yang merupakan artikel tentang, tanpa membawa bagasi yang salah. Tanggung jawabnya adalah pada penulis untuk memilih kata-kata dan konsep-konsep yang dengan tepat mendefinisikan idenya, tidak mengeluh bahwa audiensnya menarik asosiasi yang salah karena pilihan metaforanya.
Spencer Rathbun

3
@ MikePartridge Dalam kasus saya, saya percaya semua programmer sedang belajar / meningkatkan, atau seharusnya, sepanjang waktu. Jadi, kata kode adalah teknik untuk membantu mencapai tujuan ini, dan jawaban saya adalah bahwa teknik itu, seperti yang saya lihat, tidak bermanfaat. Saya sepenuhnya setuju dengan tujuannya, tetapi itu bukan pertanyaannya.
Spencer Rathbun

11

Dari sudut pandang saya, kelemahan utama adalah hal itu akan sangat membosankan. Pemrogram juga tampaknya berkembang dalam mengembangkan perangkat lunak yang melakukan sesuatu yang bermanfaat atau keren. Pendekatan kata kode tampaknya akan menjadi kebalikan dari itu.


2
Katas mengajarimu hal-hal baru. Bagaimana itu bisa menjadi kebalikan dari apa yang ingin dilakukan oleh programmer? Itu juga memecahkan teka-teki, bukan sesuatu yang oleh mayoritas programmer dianggap sebagai "membosankan". Faktanya, ini adalah inti dari peretasan.
Konrad Rudolph

4
@KonradRudolph Saya pikir pengulangan adalah jantung dari katas? Jadi Anda akan memecahkan masalah satu kali (mungkin baru dan menarik) tetapi kemudian Anda akan terus memecahkan masalah yang sama berulang kali. Saya jarang melihat Katas sehingga saya bisa salah.
Kevin D

@ Kevin Saya setuju bahwa ini kedengarannya bodoh (kecuali jika Anda secara khusus mencoba menemukan cara berbeda untuk menyelesaikan masalah). Saya tidak pernah melakukan "katas" seperti itu, hanya teka-teki pemrograman generik.
Konrad Rudolph

Bagaimana melakukan hal yang sama berulang-ulang "mengajarimu hal-hal baru"?

Jelas dalam jawaban Anda bahwa Anda tidak membaca tautan yang disediakan dalam pertanyaan.
Mike Partridge

8

Kata berarti kebalikan dari apa yang harus Anda perjuangkan.

latihan yang terdiri dari urutan gerakan spesifik seni bela diri, yang digunakan dalam pelatihan dan dirancang untuk menunjukkan keterampilan dalam teknik

Istilah Kata (Asal: 1950-55; <Jepang: bentuk, pola) seperti yang digunakan dalam seni bela diri, dan pertanyaan Anda adalah tentang menghafal memori otot seperti mengetik sentuhan .

Dalam Karate Kid asli, waxing mobil, pengamplasan lantai, lukisan pagar ini semua Katas yang diajarkan, benar-benar di luar konteks dan dalam hal ini tanpa penjelasan hanya untuk memberikan memori otot. Tidak sampai seorang sensei masuk dan memberikan konteks kegiatan kosong ini yang mereka maksudkan.

Saya pikir hal yang sama berlaku di sini, tanpa mentor untuk menempatkan sesuatu dalam konteks melakukan kembali penyelesaian masalah yang salah dalam berbagai bahasa tidak lebih baik daripada satu pun. Tanpa mentor untuk memberi tahu Anda di mana untuk meningkatkan mereka hanya membuang-buang waktu.

Ini adalah kebalikan dari pemecahan masalah secara kreatif dengan mempelajari variasi idiom dan semantik baru dari suatu bahasa atau platform.

Jika Anda ingin dapat mengetik System.out.println()semudah mungkin, maka berlatihlah itu menjadi Kata.

Jika Anda ingin meningkatkan solusi untuk masalah dalam implementasi yang berbeda , untuk mengurangi waktu dan / atau persyaratan ruang atau menerapkan prinsip-prinsip yang lebih idiomatis, itu bukan sesuatu yang Kata akan membantu Anda.

Sudah ada istilah industri yang diterima untuk menerapkan kembali hal yang sama berulang kali setelah itu bekerja keras untuk peningkatan bertahap kecil dan manfaat kesempurnaan yang dipertanyakan, ini disebut Pelapisan Emas !

Istilah yang seharusnya mereka gunakan adalah Refactoring bila diterapkan pada bahasa / runtime / platform yang sama. Dan Porting saat memindahkan program kerja ke bahasa / runtime / platform yang berbeda. Kata mungkin dipilih secara keliru karena kedengarannya hipster, keren, dan mistis tanpa sepenuhnya memahami semantik.

Memecahkan berbagai masalah sulit dengan sedikit perencanaan, pengalaman, atau panduan adalah apa yang dilakukan sebagian besar pengembang, terutama pengembang junior setiap hari.

Hanya akademisi yang dapat melakukan latihan yang sama berulang-ulang hanya demi mengasah solusi tertentu. Keterampilan dalam memiliki karier yang sukses sebagai pengembang adalah dalam adaptasi , bukan pengulangan.

Siapa bilang tidak ada orang pintar yang tidak perlu belajar setelah bekerja, dan dapat mempelajari semua yang perlu diketahui dan kadang-kadang lebih dari 8 jam di tempat kerja?


Bagaimana jika hal yang Anda praktikkan adalah mendesain ulang dan meningkatkan desain - mengulangi proses desain, tidak dapatkah istilah itu berlaku? Bisakah Anda menghasilkan yang lebih baik?
Bill K

istilah untuk mendesain ulang dan meningkatkan sistem yang ada adalah refactoring (Code refactoring adalah "teknik disiplin untuk merestrukturisasi tubuh kode yang ada, mengubah struktur internalnya tanpa mengubah perilaku eksternalnya"). Mereka memilih Kata karena kedengarannya keren dan mistis, tanpa memahami semantiknya.

Istilah refactoring adalah istilah yang sangat berbeda dari berlatih menjadi ahli dalam hal refacotoring. Siapa pun dapat melakukan refactor kode, yang tidak dengan cara apa pun menyiratkan bahwa mereka melakukannya dengan baik atau dipraktikkan untuk mengenali peluang refactoring yang baik. Meskipun "Berlatih Refactoring" adalah istilah turun untuk itu, itu tidak menyampaikan dedikasi bahwa Kata melakukannya, saya pikir Kata mungkin pilihan yang sedikit lebih baik, meskipun saya terbuka dengan teori bahwa ada frase yang lebih baik di luar sana.
Bill K

1
Sebenarnya Gold Platting mengacu pada "... fitur tambahan atau lebih yang dipoles". Apa yang Anda uraikan tampaknya lebih mirip dengan Pengoptimalan Dini meskipun setelah fakta.
Joshua Drake

5

Saya setuju bahwa metafora "kata" mungkin bukan yang terbaik. Sebuah kata dalam karate dilakukan dengan tujuan untuk mempraktikkan gerakan tertentu, diskrit hingga dapat dilakukan dengan sempurna, cepat, dan otomatis. Ini tidak diterjemahkan dengan baik ke kegiatan di mana pemikiran kritis dan kreativitas diperlukan. (Ini akan menerjemahkan lebih baik untuk, katakanlah, mengetik).

Yang mengatakan, kegagalan nama bukanlah kegagalan dari aktivitas. Kelemahan apa yang mungkin ada untuk mempraktikkan sesuatu di mana seseorang ingin menjadi lebih baik? Saya kira orang dapat mengatakan bahwa waktu yang dihabiskan untuk melakukannya adalah kelemahan, dari perspektif biaya peluang, tetapi sungguh, ini adalah investasi. Jadi, waktu yang dihabiskan untuk mempraktikkan pengembangan perangkat lunak adalah untuk pengembang perangkat lunak karena uang yang dihabiskan untuk ekuitas atau obligasi adalah untuk penabung / investor jangka panjang. Ini bukan 'kelemahan' - ini taruhannya meja.


3

Anda menjadi lebih baik dengan mencoba hal-hal yang sulit dan hanya di luar jangkauan kemampuan Anda; menantang dirimu sendiri. Melakukan "kode kata" yang sama berulang kali, seperti bentuk seni bela diri, tidak melakukan itu. Saya pikir itu menghambat kemampuan Anda alih-alih membantu mendorong keterampilan Anda ke depan.

Ini digunakan sebagai metode latihan pertama kali, tetapi terbatas. Saya memberitahu orang untuk menggunakan proyek Euler sebagai gantinya. Lebih banyak masalah dan lebih menantang.


Menulis program yang sama berulang kali dapat bermanfaat dan menarik, misalnya jika Anda melakukannya dengan menggunakan algoritma yang berbeda dan / atau dalam bahasa yang berbeda setiap waktu. Tapi mungkin itu bukan kata.
9000

2
Baca tautan yang disediakan dalam pertanyaan; idenya bukanlah pengulangan tanpa alasan seperti yang tampaknya Anda asumsikan dari namanya.
Mike Partridge

@ 9000 Sebenarnya itulah cara saya memahami Code Katas. Sering digunakan ketika mempelajari bahasa baru, atau mencoba pendekatan baru untuk masalah yang sudah terpecahkan.
Joshua Drake

3

Bagi saya, kelemahan utama dari teknik ini seperti yang saya lihat adalah penggunaan waktu Anda yang tidak optimal.

Nilai pembelajaran dari latihan ini juga dipertanyakan: ketika Anda melakukan sesuatu secara berlebihan untuk menjadi lebih baik, umpan balik ahli sangat penting. Tanpa umpan balik berkualitas tinggi Anda akan belajar sesuatu juga, tetapi ada peluang untuk mempelajari hal yang salah dengan sangat baik.

Jangan salah paham, berlatih tetap merupakan satu-satunya cara untuk menjadi baik dalam pemrograman, dan kata jelas merupakan bentuk latihan. Tetapi begitu juga memecahkan masalah pengkodean kompetisi, menulis "proyek menyenangkan" Anda sendiri, mempelajari bahasa pemrograman baru, dan sebagainya. Pada akhirnya, Anda perlu memilih teknik yang paling nyaman bagi Anda, dan pastikan bahwa Anda memiliki panduan yang jelas di sepanjang jalan.


Bagaimana Anda menemukan panduannya? Saya berjuang dengan masalah yang sama.
CodeYogi

1

Saya percaya tanpa beberapa bentuk Kata Anda tidak akan pernah menjadi pembuat kode yang hebat. Kata adalah latihan, itulah arti sebenarnya. Ambil ini sebagai contoh: Seorang atlet mengatakan "Saya hanya akan muncul dan menjalankan lari 100 meter, latihan sekrup". Apakah itu terdengar seperti strategi kemenangan? Apakah pernah dilakukan dengan cara ini?

Saya menyarankan orang untuk membaca " The Clean Coder " dari Paman Bob , ia membahas secara mendalam tentang topik profesionalisme di bidang pemrograman ini.

Oh dan argumen yang diajukan bahwa Anda tidak dapat melakukan Kata dan membesarkan keluarga hanyalah alasan. Berbicara dari pengalaman: anak-anak tidur di beberapa titik ...


3
coding! = berlari 100 meter dasbor, kecuali kalau 100 meter itu melalui ladang rimbun berhutan satu hari dan ranjau padi diisi padi pada hari berikutnya dan rawa penuh ular berbisa beracun keesokan harinya saat berada di bawah tembakan penembak jitu, lihat polanya ... Kata adalah istilah yang salah secara semantik .

2
-1 Pelatihan dapat terjadi pada pekerjaan, bahkan pada waktu yang dibayar (tidak yakin mengapa orang tampaknya melupakan ini). Tidak semuanya adalah pekerjaan murni atau pembelajaran murni.
joshin4colours

@JarrodRoberson, skenario yang baru saja Anda gambarkan adalah apa yang dilakukan seorang prajurit setiap hari. Jadi Anda memilih analogi yang agak buruk. Terus terang, saya harus bahagia untuk orang-orang yang melakukan pekerjaan 9-5 kemudian pulang dan berhenti belajar karena memberi saya keunggulan kompetitif.
ThaDon

3
Martin Fowler pernah ditanya tentang membelanjakan uang untuk melatih karyawan Anda, "Tidakkah Anda takut jika Anda melatih mereka, mereka akan berhenti?" , dan jawabannya adalah "Tidak, saya takut jika saya tidak melatih mereka, mereka akan tetap tinggal!" . Tidak setiap majikan melihat pelatihan sebagai biaya, yang baik melihatnya sebagai investasi!

Memecahkan berbagai masalah sulit dengan sedikit perencanaan, pengalaman, atau panduan adalah apa yang dilakukan sebagian besar pengembang, terutama pengembang junior setiap hari. Saya pikir ini analogi yang agak akurat. Hanya akademisi yang dapat melakukan latihan yang sama berulang-ulang hanya demi mengasah solusi tertentu. Keterampilan dalam memiliki karier yang sukses sebagai pengembang adalah dalam adaptasi , bukan pengulangan. Siapa bilang tidak ada orang pintar yang tidak perlu belajar setelah bekerja, dan bisa mempelajari semua yang dibutuhkan dan lebih banyak lagi dalam 8 jam mereka.

1

Hanya melakukan katas, dalam konteks seni bela diri, tidak ada gunanya. Seperti yang dikatakan sebelumnya, katas adalah choregraphy dari gerakan yang mengajarkan Anda bentuk. Anda tahu gerakannya tetapi Anda tidak tahu cara menerapkannya. Anda tidak tahu dalam situasi apa mereka berguna. Jika Anda benar-benar ingin melakukan sesuatu yang berguna dengan mereka, Anda memerlukan aplikasi, yaitu Bunkai .

Dalam konteks perangkat lunak, kata kata akan berupa algoritma, alat, pola desain, atau teknologi lainnya. Mengetahui itu baik, tetapi Anda perlu menerapkannya untuk memahaminya. Anda perlu menggunakannya dalam konteks yang berbeda untuk benar-benar menguasainya. Bunkai akan menjadi situasi konkret di mana kata atau bagian dari kata itu berguna.

Saya tidak melihat ada yang salah dengan metodologi itu, beginilah cara menguasai sesuatu: pelajari sesuatu, latihlah, tambahkan detail, latih, tambahkan detail lain, latih, dll.


-1

Pemrograman adalah seni lukis atau musik. Ketika seseorang menjadi musisi atau artis untuk mendapatkan uang yang bisa Anda beri tahu, tidak ada inspirasi, pertunjukan tidak benar-benar sepadan dengan waktu Anda. Jika Anda tertarik pada seni, tidak ada yang bisa menghentikan Anda dari berlatih dan terus-menerus memperbaikinya - setiap hari menyempurnakan teknik tunggal, memperhatikan nuansa yang kebanyakan orang tidak akan pernah melihat.

Selalu ada ruang bagi orang-orang yang senang menjadi musisi bar dan pelukis rumah, tetapi mereka adalah kelas bakat yang sangat berbeda. Saya kira sebagian besar pelukis rumah akan menertawakan gagasan berlatih, tetapi saya bertaruh seorang pelukis yang melakukan penelitian dan mempraktikkan teknik - pada dasarnya mengakui pekerjaan mereka sebagai seni akan melakukan pekerjaan yang jauh lebih baik, bahkan pada sesuatu yang biasa seperti mengecat rumah Anda. .

Beberapa orang akan mengenali nilai praktik yang tidak biasa. Itu saja harus bernilai jika Anda berada dalam posisi untuk mengevaluasi dan Anda mencari orang yang dapat membuat seni (lean, sederhana, kode dimengerti) dan bukan hanya solusi.

ps. Saya tidak menyebut diri saya artistik yang luar biasa atau apa pun - saya tidak melakukan Kata pada masalah abstrak tetapi saya mengenali nilai dan saya mencoba untuk sedikit refactor kode produksi saya.


Musisi yang terlalu terlatih khususnya dapat secara negatif diduduki oleh kesempurnaan teoretis, ini sangat berbahaya bagi karier dalam pengembangan perangkat lunak. Musik memiliki elemen ekspresi , perangkat lunak pemrograman tidak memilikinya. Anda dapat berargumen bahwa produk Apple memiliki ekspresi ini, tetapi itu adalah ekspresi desain , kode tidak pernah dilihat atau dirasakan secara langsung. Musik dan Seni adalah analogi buruk untuk pengembangan perangkat lunak. Dan Anda menunjukkan prasangka nyata terhadap pekerja kerah biru karena Anda menganggap mereka tidak bangga dengan pekerjaan mereka atau melihat nilai dalam kualitas.

Jangan gabungkan pelatihan dengan latihan. Terlalu terlatih sangat berbeda dari terlalu dipraktekkan, dan jika Anda tidak berpikir tingkat ekspresi dalam kode Anda terlihat pada waktu pengiriman dan stabilitas kode, saya tidak benar-benar tahu apakah kita memiliki dasar umum untuk diskusi.
Bill K

Tidak masalah apa yang saya pikirkan, saya tahu bahwa sebagian besar pelanggan tidak akan mengenali dan peduli tentang kode yang dibuat dengan hati-hati dan betapa anggunnya kode itu dibuat selama jenis aplikasi itu berfungsi sebagian besar waktu. Dengan cara yang sama bahwa sebagian besar penduduk tidak pernah peduli dengan kualitas suara dan video VHS dan video internet atau kaset kaset yang sangat terkompresi dan sekarang MP3 yang sangat terkompresi yang menghapus semua nuansa itu, tanpa keluhan. Terlalu terlatih lebih buruk daripada terlalu dipraktekkan, terlalu terlatih membuat orang mengabaikan "cukup baik" dan sengsara dalam industri perangkat lunak.

Pemrograman adalah kerajinan, bukan seni. Ada tingkat pengerjaan dan estetika untuk keduanya, tetapi seni tidak kejuruan dalam pengembangan perangkat lunak alam adalah kejuruan. Lebih banyak orang menghasilkan lebih banyak uang dengan menulis perangkat lunak daripada hanya sedikit dari artis. Perangkat lunak tidak subyektif, dan tidak ada semata-mata demi keberadaannya sendiri, lukisan dan musik ada untuk menyenangkan pencipta lebih sering daripada tidak sebagaimana definisi penjualan Anda di atas menyiratkan sebagai diferensiasi. Sebagai seseorang yang pergi ke universitas seni, saya dapat memberitahu Anda, pemrograman adalah keahlian kejuruan dan tidak ada hubungannya dengan menciptakan karya seni.

Jika Anda tidak berpikir perangkat lunak yang dibuat dengan baik dikirimkan lebih cepat, lebih murah dan lebih baik daripada perangkat lunak yang dibuat oleh pengrajin, Anda belum melihatnya melakukannya dengan benar. Sangat tidak mungkin, berapa banyak orang yang menonton seorang artis master, musisi atau bermain dengan / melawan pemain olahraga pro - mereka memang tidak begitu umum, dan dalam industri kami JAUH lebih sulit untuk dikenali, tetapi perbedaan dalam bakat adalah sama seperti hasilnya. Seorang seniman dapat mengungguli 5 pengrajin dalam kecepatan dan kualitas, tetapi hanya sedikit yang cukup beruntung untuk melihat itu sehingga mereka tidak percaya itu ada.
Bill K
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.