Apakah terus-menerus mencari contoh kode pertanda pengembang yang buruk? [Tutup]

161

Saya seorang siswa CS dengan beberapa tahun pengalaman dalam C dan C ++, dan selama beberapa tahun terakhir saya telah terus-menerus bekerja dengan Java / Objective C melakukan pengembangan aplikasi dan sekarang saya telah beralih ke pengembangan web dan saya terutama berfokus pada ruby ​​pada rails dan saya menyadari bahwa (seperti halnya pengembangan aplikasi, sungguh) saya terlalu banyak merujuk kode lain. Saya terus-menerus fungsionalitas Google untuk banyak hal yang saya bayangkan seharusnya saya bisa lakukan dari awal dan itu benar-benar sedikit merusak kepercayaan diri saya.

Fundamental dasar bukan masalah, saya benci menggunakan ini sebagai contoh tapi saya bisa menjalankan melalui javabat di kedua java / python di sprint - jelas bukan prestasi dan tapi apa yang saya katakan adalah saya memiliki dasar yang kuat untuk fundamental Kupikir?

Saya tahu apa yang perlu saya gunakan biasanya tetapi referensi sintaksis terus-menerus. Akan sangat senang saran dan masukan tentang ini, karena telah menahan saya cukup solid dalam hal mencari pekerjaan di bidang ini meskipun saya sedang menyelesaikan gelar saya. Alasan utama saya untuk bertanya bukanlah tentang pekerjaan, tetapi lebih dari itu saya tidak ingin menjadi satu-satunya orang di hackathon yang tidak menuntaskan kode tanpa henti dan duduk di sana dengan 20 tab Google / github terbuka, dan saya telah menahan diri untuk tidak menghadiri karena sedikit kurang percaya diri ...

Apakah seseorang pengembang yang buruk dengan terus mencari contoh kode untuk tugas-tugas sedang hingga rumit?

Baru Tidak Aman
sumber
14
Itu tergantung apa yang saya kerjakan, banyak hal yang saya kerjakan hampir tidak ada pencarian yang diperlukan. Sesuatu yang lebih asing, saya mencari contoh setiap saat.
Jaydee
11
Bergantung pada jika Anda benar-benar berkeliling untuk menulis beberapa kode sendiri.
18
Istri saya menonton kompetisi memasak dan kejuaraan cupcake di TV di mana mereka memiliki sedikit waktu untuk memasak makanan lezat dari bahan-bahan acak. Sebagian besar waktu makanan enak atau kurang matang dan tentu saja bukan kualitas terbaik. Mereka bagus untuk pertunjukan tetapi saya lebih suka koki saya mengambil waktu dan melakukannya dengan benar. Hal yang sama bisa dikatakan hackathons. Zuckerberg dan kroninya adalah orang-orang hackathon yang dengan cepat menulis situs web jelek yang harus ditulis ulang begitu mereka mulai mendapatkan lebih dari beberapa pengguna. Kebanyakan orang lebih suka Anda melakukannya dengan benar pertama kali.
maple_shaft
88
Bos saya selalu mengatakan "Ukuran terbaik keterampilan seorang programmer adalah kemampuannya untuk melakukan pencarian google yang baik". Semua programmer yang saya tahu mencari contoh di internet, tetapi hanya yang buruk menempel secara membabi buta. Jika seseorang telah melakukan apa yang ingin Anda lakukan, mengapa menciptakan kembali kemudi?
SSumner
9
Penelitian itu penting. Hanya saja, jangan terlibat dalam apa yang saya sebut BSDD (Blog-Spam Driven Development)
Thomas Dignan

Jawaban:

238

Copy-paste secara membabi buta: buruk.

Cari dokumentasi, baca contoh kode untuk mendapatkan pemahaman yang lebih baik: bagus.

Saya lebih suka bekerja dengan seseorang yang mencari hal-hal sepanjang waktu dan memastikan semuanya berfungsi sebagaimana dimaksud daripada seseorang yang terlalu percaya diri yang berpikir dia tahu semuanya tetapi tidak. Tetapi yang terburuk adalah seseorang yang tidak repot-repot memahami cara kerja, dan hanya menyalin kode secara tidak kritis dari web (dan kemudian ketika laporan bug mulai turun tidak dapat memperbaiki apa pun dengan benar).

tammmer
sumber
21
@NewlyInsecure Thats oke ... beberapa pengembang perangkat lunak seperti saya berpikir bahwa orang yang pergi ke hackathon adalah konyol. Kebanyakan dari mereka adalah pemrogram hebat tetapi pengembang perangkat lunak yang mengerikan yang minum terlalu banyak banteng merah.
maple_shaft
23
Sebuah pengembang memiliki otak untuk mengetahui bahwa seseorang telah melakukan sesuatu sebelum tangan dan untuk mencari contoh dan beradaptasi mereka. Seorang pengembang tidak membuang waktu untuk menghantam tengkorak di dinding.
David
19
@NewlyInsecure Comparison membunuh. Serius, semakin Anda membandingkan diri Anda dengan orang lain, Anda menjadi semakin terdemoralisasi, tidak termotivasi, dan ketakutan. Bentuk keyakinan Anda sendiri berdasarkan kebenaran, bukan apa yang dilakukan orang lain. Jika orang-orang di hackathon dapat mengeluarkan kode lebih cepat, siapa yang peduli? Bahkan jika itu adalah indikator keterampilan, akan selalu ada orang yang lebih pintar di luar sana daripada Anda, tidak peduli seberapa terampil Anda.
Phil
5
Secara pribadi, jika saya menemukan contoh kode yang sudah melakukan kurang lebih apa yang ingin saya lakukan, saya mempelajarinya sehingga saya memahaminya. Jika ini adalah bagian besar dari kode saya akan membuat catatan dan mungkin kemudian pseudocode keluar solusi untuk kasus spesifik saya dan kemudian mencoba menerapkan pseudocode saya dengan kode aktual. Saya pikir kuncinya di sini dan apa yang disebutkan oleh juru kamera dan David adalah bahwa saya tidak menyalin kode secara membabi buta. Saya melihatnya untuk memahami apa yang dilakukannya dan kemudian memasukkan ide-idenya ke dalam solusi spesifik saya.
shufler
3
@NewlyInsecure: Anda juga memiliki dua hal yang bertentangan dengan Anda: Pertama adalah bahwa API telah menjadi jauh lebih besar dan lebih kompleks daripada sebelumnya, yang membuat mereka jauh lebih sulit untuk dihafal. Yang kedua adalah usia, yang tidak Anda miliki sekarang tetapi sebelum Anda menyadarinya. Seiring bertambahnya usia, Anda akan menemukan bahwa Anda tidak dapat mengingat semuanya, dan Anda akan mulai melestarikan sel-sel otak Anda untuk hal-hal yang benar-benar perlu Anda ketahui. Memupuk keterampilan yang diperlukan untuk melakukan penelitian dan menemukan detail yang Anda butuhkan adalah penting.
Blrfl
110

Jika Anda mengkode solusi Anda dengan cara yang dapat dipertahankan dan benar-benar MEMAHAMI apa yang Anda salin / tempel / modifikasi maka tidak ada masalah.

Saya mati di dalam setiap kali saya mengajukan pertanyaan kepada pengembang senior tentang mengapa dia melakukan apa dan jawabannya adalah "Saya tidak tahu, saya menyalin kode yang disisipkan dan itu bekerja pada waktu yang diberikan".

Dante
sumber
8
Kadang-kadang saya merasa diri saya berpikir saya mungkin tidak sebagus pengembang. Saya kemudian membaca kutipan seperti itu dan merasa jauh lebih baik tentang diri saya.
The Jug
18
@TheJug, ingat, Anda berdua adalah pengembang yang lebih baik dan pengembang yang lebih buruk daripada yang Anda bayangkan.
Joe
71

Sama seperti dengan keterampilan untuk memprogram dengan / keluar dokumentasi API , mencari contoh kode adalah tanda bukan dari programmer yang buruk, tetapi orang yang kurang lancar ...

... Di sini, saya berbicara tentang kelancaran. Tentang menjadi tidak hanya mampu melakukan sesuatu tetapi juga lancar.

Apakah Anda tahu apa artinya fasih? Ini ketika seseorang melihat Anda, seolah-olah Anda menulis kode saat Anda mengetik ...

  • ... Seolah kode yang tepat mengalir dari jari Anda ke layar. Seolah Anda tidak memeriksa API dokumentasi, tutorial, dan manual. Sebenarnya, Anda lakukan memeriksa mereka semua, tapi itu tidak terlihat karena itu semua di kepala Anda. Anda memiliki semua pengetahuan yang Anda butuhkan di otak Anda - diisi, diisi, dan siap digunakan.

... Itu pengetahuan yang fasih. Itu ketika Anda membutuhkan satu menit untuk melakukan apa yang dibutuhkan seorang pemula satu jam. Ini sepadan dengan usaha, sungguh. Baunya seperti kemenangan.

... dan praktiknya bagi saya satu-satunya cara yang dapat diandalkan untuk mendapatkan kefasihan.

agas
sumber
14
Poin yang sangat baik tentang kelancaran. Saya fasih berbahasa COBOL. Saya mengambil istirahat dari IT selama 20 tahun, dan saya kembali belajar Java. Saya secara naluriah tahu bagaimana melakukan sesuatu dalam COBOL ... tetapi bagian dari proses BELAJAR kefasihan Java adalah mencari contoh kode, menganalisis bagaimana mereka bekerja, dan mengadaptasinya untuk kebutuhan khusus saya. Ketika Anda belajar bahasa VERBAL baru, Anda merujuk ke kamus Bahasa Italia-Bahasa Inggris Anda cukup sering pada awalnya, Anda mendapatkan tata bahasa dan tegang yang salah, dan akhirnya, suatu hari, Anda berbicara seperti penduduk asli. Waktu dan latihan adalah kuncinya. Jangan khawatir tentang itu ... :)
dwwilson66
10
@ dwwilson66 Masalahnya adalah bahwa pada tingkat harian saya perlu mengingat empat "bahasa" - bahasa pemrograman sisi server, bahasa skrip sisi klien, sintaks markup sisi klien dan sintaks gaya sisi klien. Saya tidak bisa menyimpan semua itu di kepala saya - ini seperti mencoba mengadakan percakapan dalam bahasa Italia, Cina, Inggris dan Klingon pada saat yang sama.
Tacroy
@Tacroy - PERSIS! Tanpa kelancaran, Anda MEMBUTUHKAN sumber daya untuk membantu. Itu tidak membuat Anda "kurang" menjadi pembicara Klingon jika Anda perlu mencari frasa lengkap alih-alih hanya satu kata sesekali - hanya saja tidak selancar yang lain.
dwwilson66
4
Kalimat terakhir layak disorot, tidak disembunyikan dalam subskrip. Tidak ada cara lain untuk menjadi lancar selain dengan pencelupan.
jmlane
@ dwwilson66 perhatikan bahwa ada hal-hal yang harus dilakukan sangat berbeda di Jawa daripada di COBOL. Objek tidak sama dengan buku copy.
54

Ada teori belajar yang disebut siklus Kolb (setelah orang yang menggambarkannya). Entri dalam siklus ini adalah:

Concrete experience -> Reflective observation
    ^                        |
    |                        v
Active experimentation <- Abstract conceptualisation

Orang yang berbeda suka memulai dari tempat yang berbeda dalam siklus. Jadi sepenuhnya mungkin untuk belajar dengan mencari sampel (fase pengamatan reflektif), kemudian bekerja dari sampel ke gambaran besar melalui abstraksi.

Orang lain akan belajar dengan cara yang berbeda: beberapa orang suka memulai dengan mencoba (yaitu dengan eksperimen) kemudian merefleksikan apa yang benar atau salah. Intinya adalah ini hanya cara yang berbeda untuk menyerang masalah belajar hal-hal: tidak ada yang salah.

pengguna4051
sumber
2
+1 Menarik. Secara intuitif, saya berharap seseorang harus maju setidaknya melalui beberapa tahapan itu untuk belajar, bukan? Artinya, hanya mengamati mungkin tidak cukup untuk pembelajaran nyata terjadi - Anda perlu memikirkan apa yang telah Anda lihat dan mencobanya.
Caleb
Saya sangat menyukai ini. Saya mulai di Reflective Observation dalam sebagian besar bahasa, tetapi di PowerShell saya biasanya mulai di Eksperimen Aktif
Caleb Jares
@caleb benar. Ini adalah siklus di mana Anda bergerak dari tahap ke tahap, dan mungkin tidak sepenuhnya menginternalisasi sesuatu sampai Anda telah melewati keempatnya. Di sinilah Anda memulai yang paling berubah.
39

Pengungkapan penuh - Saya adalah orang tua yang terlatih dalam pra-Internet berbeda yang tersedia di era kerja. Saya telah menyaksikan keterampilan para pengembang muda terus memburuk sebagian besar karena mereka tidak menyimpan informasi atau memahami solusi yang mereka ambil dari Internet. Saya telah mengamati bahwa tingkat kompetensi seseorang setelah 1-2 tahun pengalaman, 20 tahun yang lalu, sekarang tingkat kompetensi seseorang setelah 5-7 tahun pengalaman. (Ya itu adalah pengamatan pribadi tetapi saya sudah melakukan banyak perekrutan, saya tidak punya data statistik tentang masalah ini dan ya, saya kadang-kadang tua dan rewel, ambil pernyataan ini dengan sebutir garam. Dan menjauhlah dari halaman saya. )

Mencari semuanya tidak efisien dalam hal waktu. Ini juga merupakan gejala seseorang yang tidak memiliki banyak pengetahuan. Orang yang memiliki pengetahuan mendalam dapat menulis kode lebih cepat daripada orang yang tidak tahu bagaimana menyelesaikan masalah tanpa melihat ke atas. Jadi layak untuk belajar menangani lebih banyak hal tanpa harus mencari hal-hal secara terus menerus.

Sekarang saya tidak mengatakan Anda seharusnya tidak pernah mencari hal-hal baru, saya mengatakan Anda harus belajar untuk mempertahankan pengetahuan dan hanya perlu mencari hal-hal yang jarang Anda gunakan atau ketika Anda menemukan masalah atau bahasa atau paradigma yang benar-benar baru. Dan saya tidak mengatakan Anda tidak harus membaca untuk mengikuti solusi, alat, dan bahasa baru.

Perhatian saya yang sebenarnya terhadap pengembang yang terlalu sering mencari hal-hal yang terlalu banyak dari mereka (belum tentu Anda) tidak pernah mengembangkan keterampilan analitis untuk memahami masalah yang mereka miliki dan solusi yang dibutuhkan. Baca berapa banyak pertanyaan di mana orang tersebut memasukkan pesan kesalahan yang jelas-jelas tidak dia pahami, tetapi yang seharusnya cukup jelas bagi siapa pun yang beroperasi di tingkat profesional. Atau orang-orang yang mengatakan, "itu tidak berfungsi, mengapa?" tanpa referensi ke pesan kesalahan atau bagaimana itu tidak berfungsi dan kode secara sintaksis benar. Atau orang-orang yang diberi sepotong kode yang harus bekerja,

Jadi jika apa yang Anda cari adalah hal-hal yang merupakan bagian dari fungsionalitas inti bahasa (BTW ini harus mencakup SQL jika Anda mengakses database) yang telah Anda gunakan selama lebih dari enam bulan, saya curiga Anda juga melihat ke atas banyak. Jika apa yang Anda cari adalah fitur-fitur canggih, terutama yang mungkin jarang Anda gunakan, maka Anda baik-baik saja.

Tetapi bagaimana Anda belajar untuk menyimpan lebih banyak informasi? Pertama mengerti mengapa kode rusak. Bahkan jika seseorang memberi Anda solusi yang berfungsi, jika Anda tidak melihat mengapa itu berhasil dan Anda tidak, maka tanyakan. Jika Anda tidak memahami pesan kesalahan itu, tanyakan apa artinya dan kemudian coba selesaikan sendiri.

Dan jangan pernah memotong dan menempelkan solusi yang tidak Anda mengerti. Bahkan, jangan memotong dan menempel sama sekali. Jika Anda ingin menyimpan informasi, Anda perlu mengetiknya. Sebenarnya, menulis kode sendiri secara fisik membantu Anda mempelajarinya. Itu adalah teknik pembelajaran yang terkenal.

Berlatih menggeneralisasi pemahaman Anda tentang kode. Saya telah melihat orang-orang mengajukan pertanyaan serupa berulang kali karena mereka tidak mengerti bahwa solusi yang mereka dapatkan sebulan yang lalu untuk masalah ABC adalah solusi yang sama untuk DEF masalah baru.

Jadi, ketika Anda telah meneliti sesuatu, luangkan waktu untuk memikirkan jenis masalah apa yang akan baik untuk menyelesaikan dan menulis sendiri catatan tentang hal itu. Kemudian ketika Anda memiliki masalah untuk dipecahkan, pertama periksa catatan Anda sendiri untuk melihat Anda telah mencatat teknik yang mungkin. Jika Anda mengevaluasi berbagai cara untuk menyelesaikan masalah, catat jenis masalah, solusi yang mungkin Anda lihat dan pro dan kontra dari masing-masing masalah. Sekali lagi pencatatan membantu memperkuat pengetahuan di otak Anda, Anda sudah memiliki proses berpikir Anda sendiri dalam hal pro dan kontra bekerja dan tidak perlu melakukannya lagi (atau setidaknya tidak dalam kedalaman, Anda dapat masih mencari teknik yang lebih mungkin) untuk masalah serupa berikutnya.

Dan ketika memutuskan apa yang harus dipelajari selanjutnya, cari kedalaman di salah satu teknologi utama Anda sebelum mulai mempelajari teknologi lain selama 30 hari pertama dari teknologi lain (ini mengasumsikan Anda memiliki cukup pengetahuan untuk benar-benar melakukan pekerjaan Anda, jika Anda perlu gunakan 6 teknologi - dapatkan dasar-dasar keenam semuanya terlebih dahulu sebelum melangkah lebih dalam) Kemudian bolak-balik, pelajari hal-hal baru, di tingkat dasar, pelajari sesuatu secara lebih mendalam, lalu pelajari lebih banyak teknologi baru di tingkat dasar. Jika Anda melakukan ini dari waktu ke waktu, Anda akan menemukan bahwa tingkat dasar Anda tentang apa yang Anda inginkan dari teknologi baru jauh lebih dalam karena Anda memahami pertanyaan yang lebih maju untuk ditanyakan tentang hal itu.

Cara lain untuk belajar mempertahankan pengetahuan adalah mengajarkannya kepada orang lain. Jawab pertanyaan di tempat-tempat seperti ini, sampaikan topik pelatihan kepada tim Anda, buat presentasi di grup pengguna lokal Anda, tulis entri blog dan bantu pertahankan wiki informasi di perusahaan Anda untuk membantu pengembang lain.

HLGEM
sumber
11
Ada beberapa poin yang sangat bagus di sini, tapi saya pikir itu menderita karena "masa lalu yang baik." Orang-orang telah mengecam degenerasi generasi muda selama ribuan tahun. Saya belum melihat bukti kuat untuk mendukungnya.
4
+1 @JonofAllTrades ..man, saya berharap saya bisa kembali dua puluh tahun dan menghasilkan satu juta dolar karena saya tahu ..FoxPro. hanya. Tapi tidak, saat ini Anda harus kompeten dalam teknologi galaksi kecil hanya untuk bersaing untuk pekerjaan reguler. Bisakah Anda mengatur dan mengkonfigurasi Apache, IIS, keduanya? Apakah Anda merasa nyaman dengan satu atau dua dialek SQL, mampu menulis SPROC dan setidaknya mengelola cahaya? Apakah Anda kompeten dalam beberapa bahasa sisi server dan setidaknya satu bahasa skrip fungsional untuk manipulasi data? ..dan jika Anda memprogram untuk web, apakah barang Anda akan berfungsi di browser utama, DAN perangkat seluler?
elrobis
Argumen ini hanya masuk akal untuk teknologi yang sudah ada 20 tahun yang lalu. Dan ya, Anda sangat beruntung mendapatkan pekerjaan yang sebagian besar hanya pengetahuan tentang SQL ("halaman" Anda), yang tidak mencukupi oleh standar saat ini.
prusswan
@prusswan, saya seorang spesialis dan ada pekerjaan yang jauh lebih banyak daripada yang bisa mereka isi di arena saya. Tetapi bagaimana itu relevan dengan apa yang saya katakan dalam jawaban itu di luar jangkauan saya. Hal-hal yang saya bicarakan mungkin untuk semua teknologi. Masalahnya adalah orang tidak belajar atau memahami apa yang mereka lakukan karena mereka gagal menyimpan informasi, bukan karena sebagian dari kita menggunakan teknologi yang lebih tua. Mempertahankan pengetahuan untuk teknologi baru sama mudahnya dengan teknologi lama. Dan pengetahuan yang dipertahankan akan membantu Anda mempelajari yang berikutnya dan Anda akan berkembang lebih cepat.
HLGEM
24

Mencari contoh kode bukan pertanda pengembang buruk. Satu jarang membutuhkan begitu sedikit hal untuk mengingat semua antarmuka yang mereka butuhkan secara tepat, jadi wajar untuk mencari hal-hal dan contoh kode biasanya referensi yang paling mudah digunakan.

Apa yang tidak boleh Anda lakukan adalah menyalin & menempelkan contoh karena mereka bekerja di sana, jadi mereka juga harus bekerja di sini, tanpa memahami cara kerjanya. Itu biasanya mengarah ke banyak bit yang tidak berguna yang disalin secara tidak sengaja dengan hasil yang sulit dipertahankan karena jika Anda tidak tahu cara kerjanya ketika Anda menulisnya, Anda tidak akan tahu enam bulan kemudian juga dan tidak akan dapat memperbaikinya.

Tetapi selama Anda memahami kode yang Anda salin dari sebuah contoh, itu adalah cara yang valid untuk menyelesaikan pekerjaan lebih cepat, dan itu biasanya hal yang baik.

Jan Hudec
sumber
2
Saya membahas apa pun yang saya salin dan saya mengerti semua yang saya baca, itu hanya beberapa sintaks dan fungsionalitasnya yang begitu panjang. Saya tidak berpikir saya bisa mengeluarkan semuanya dari awal. Bahkan hal-hal yang seharusnya sederhana dan sifat kedua seperti json atau query database dll (mungkin contoh buruk). Terima kasih atas tanggapan Anda, saya sangat menghargainya.
Baru Tidak Aman
2
Dan Anda juga harus berpikir dua kali sebelum menyalin & menempelkan contoh kode di proyek Anda sendiri. Mungkin lebih masuk akal untuk memisahkan mereka di kelas dan menggunakannya kembali.
stralsi
@ SilviuStraliciuc: Saya pikir ini lebih tentang contoh 1 atau 2-line. Yang tidak masuk akal untuk membungkus fungsi. Tapi saya biasanya mengetik ulang mereka daripada menggunakan ctrl-c + ctrl-v jadi saya menerapkan pemformatan yang benar dan mengganti pengidentifikasi dan sebagainya dengan cepat.
Jan Hudec
1
Kadang-kadang contoh 1 atau 2-line lakukan masuk akal untuk membungkus dalam suatu fungsi, terutama jika ada kesempatan Anda akan berubah pikiran nanti tentang apa yang Anda ingin 1 atau 2 baris untuk melakukan (dan sekarang Anda harus menemukan 200 tempat tersebar di seluruh kode Anda di mana Anda menggunakan pola 1 atau 2 garis itu). Dengan fungsi yang dinamai sesuai, bahkan jika Anda mendapatkan sesuatu yang salah yang masih harus diperbaiki di 200 tempat, setidaknya lebih mudah untuk mengidentifikasi tempat-tempat itu.
David K
14

Jawaban ini cukup bagus. Tetapi Anda menderita masalah yang jauh lebih dalam daripada salin / tempel atau kurangnya "keterampilan."

Perbandingan itu mematikan. Semakin Anda membandingkan diri Anda dengan orang lain dan membiarkan bakat mereka memengaruhi cara Anda memandang diri Anda sendiri, semakin Anda akan mengerut dan mati di dalam. Anda tidak pergi ke hackathon karena takut orang-orang akan melihat betapa Anda tidak berbakat. Dan satu-satunya alasan Anda berpikir Anda tidak berbakat adalah karena Anda membandingkan diri Anda dengan peretas yang bisa mengeluarkan lebih banyak kode dari awal, lebih cepat.

Bahkan jika "Baris Kode per Menit" adalah metrik yang baik untuk mengukur keterampilan, Anda harus menerima kenyataan bahwa akan selalu ada pengembang yang lebih baik di luar sana daripada Anda . Dan tidak apa - apa menunjukkan kepada orang lain bahwa Anda kurang dalam keterampilan.

Anda tidak perlu sebagus, atau lebih baik dari, orang lain. Anda harus puas dengan fakta bahwa Anda akan selalu kekurangan, dan Anda terus belajar. Jika Anda tidak bisa bahagia dengan menjadi pengembang yang lebih rendah, Anda TIDAK akan pernah senang.

Satu hal lagi: ketakutan Anda akan penolakan oleh orang-orang yang Anda pikir "unggul" adalah persis apa yang mencegah Anda menggosok bahu dengan pengembang yang lebih baik dan belajar dari mereka. Jadi rasa takut Anda mencegah Anda tumbuh, yang mempertahankan rasa takut Anda. Yang mencegah Anda tumbuh. Lihat siklusnya? Anda harus memutus siklus di suatu tempat.

Phil
sumber
8
Jawaban yang bagus, tetapi itu tidak boleh dibaca berarti tidak apa-apa untuk menerima biasa-biasa saja. Awasi pekerjaan Anda sendiri dan jangan khawatir orang lain lebih baik dari Anda, tetapi lakukan pekerjaan untuk meningkatkan.
Caleb
12

Saya pikir banyak hal tergantung pada bagaimana pikiran Anda bekerja. Ingatan saya berbau busuk, jadi saya lebih suka mengambil kode yang sedekat mungkin dengan yang saya inginkan dan mengerjakannya kembali sehingga bisa melakukan pekerjaan baru. Ini berfungsi sebagai contoh dan pengingat semua hal yang harus saya lakukan. Sebagai contoh, saya telah menggunakan SQL sederhana selama 20 tahun, tetapi saya tidak pernah dapat mengingat tata letak SELECT, atau pernyataan UPDATE. (Saya pikir salah satu kebutuhan kurung, tapi saya tidak ingat yang.) Di sisi lain, beberapa beberapa hal yang saya ingat; Saya bisa menggabungkan implementasi Java Iterator dengan mata tertutup.

Sebagian besar kode yang saya salin adalah milik saya, tetapi saya pasti menyalin kode yang lain ketika saya mempelajari sesuatu yang baru.

Saya tidak tahu tentang hackathon. Mereka mungkin menggambar pada sekelompok programmer dengan ingatan fotografis. Saya akan mencobanya dan melihat. Jika terlihat seperti orang idiot mengganggu Anda, Anda seharusnya tidak pemrograman.

Saya mendorong Anda untuk memahami, secara menyeluruh, semua kode yang Anda salin dan modifikasi, tetapi, sampai saya membaca beberapa jawaban lain, tidak pernah terpikir oleh saya bahwa seseorang mungkin menyalin tanpa memahami. (Sepertinya saya mempelajari sifat-sifat baru sepanjang waktu di situs ini ...)

RalphChapin
sumber
Psst, tidak ada yang membutuhkan tanda kurung, kecuali jika Anda melakukan subquery dalam SELECT, atau logika boolean kompleks di WHERE. ;)
Izkata
2
@Izkata: Tidak? Biarkan saya melihat beberapa kode lama. Oh, ini pernyataan INSERT yang membutuhkan tanda kurung.
RalphChapin
8

... Saya menyadari bahwa ... saya terlalu banyak referensi kode wayyyy. Saya terus-menerus mencari fungsionalitas Google untuk banyak hal yang saya bayangkan seharusnya saya dapat lakukan dari awal dan itu benar-benar sedikit merusak kepercayaan diri saya.

Kemudian berhenti. Pergilah ke arah lain untuk sementara waktu. Laksanakan semuanya sendiri, bahkan jika Anda tahu Anda dapat menemukan hal yang Anda butuhkan dalam waktu yang jauh lebih singkat.

Apa yang terjadi adalah otot penyelesaian masalah Anda (nama latin gluteus mojo ) telah berhenti berkembang karena tidak digunakan, dan Anda sekarang menghindari menggunakannya karena Anda tahu betapa lemahnya otot itu. Anda harus mulai membangun dan mengencangkan otot itu sama seperti Anda akan melatih otot bisep Anda di gym. Mulailah dengan pengulangan tinggi dan resistansi rendah - banyak masalah mudah. Saat Anda membangun kepercayaan diri, beralihlah ke masalah yang lebih lama dan lebih sulit.

Anda secara bertahap akan merasakan mojo Anda kembali dan kebutuhan Anda untuk mengandalkan Google akan berkurang. Tetap berolahraga otot itu, dan pastikan Anda tidak kembali ke cara lama Anda. Tantang diri Anda untuk memecahkan masalah terlebih dahulu dan baru kemudian mencari solusi lain. Terkadang Anda akan menemukan bahwa orang lain telah menemukan cara yang lebih baik untuk melakukan hal yang sama, di lain waktu Anda akan memutuskan bahwa solusi Anda sendiri lebih baik.

Apakah seseorang pengembang yang buruk dengan terus mencari contoh kode untuk tugas-tugas sedang hingga rumit?

Seseorang yang tidak dapat menyelesaikan apa pun tanpa menemukan contoh adalah pengembang yang buruk. Masalahnya adalah: Anda tidak akan tahu apakah Anda mampu atau tidak sampai Anda mencoba.

Caleb
sumber
7

Anda masih muda, dan Anda telah bekerja dengan banyak bahasa pemrograman. Saya akan menebak bahwa Anda mungkin mempelajari bahasa baru lebih cepat daripada yang lama. Anda masih belum memasukkan cukup waktu ke dalam satu bahasa pada aplikasi yang cukup besar untuk mengembangkan kefasihan.

Apakah Anda mencari solusi yang luas setiap kali seperti: seluruh proses menghubungkan kisi web ke tabel database atau bagian yang lebih kecil seperti memformat string koneksi (saya harus mencarinya setiap kali sejak saya menulis sekitar empat tahun. )?

Anda akan selalu mencari referensi ke sintaks berbagai baris kode atau fungsi. Semakin banyak Anda memprogram, semakin banyak tantangan dan lingkungan serta perubahan bahasa yang Anda hadapi. Jika Anda membutuhkan seluruh tutorial setiap kali Anda melakukan sesuatu, maka Anda memiliki masalah.

JeffO
sumber
Saya setuju - selalu ada hal-hal yang walaupun aktivitas yang cukup umum (membaca dari file, menghubungkan ke DB, membuat permintaan HTTP, dll) sintaks dan pendekatannya sangat berbeda dari bahasa ke bahasa yang biasanya harus saya periksa. Begitulah cara Anda kemudian menyatukan blok bangunan dasar ini untuk menciptakan sesuatu yang baru dan berguna yaitu bagian yang cerdik
Kris C
5

Saya memiliki seorang profesor yang dulu mengatakan dia benci memberikan tes berdasarkan pada mencoba untuk menyimpan banyak informasi yang Anda menjejalkan malam sebelumnya karena Anda lupa banyak sekali setelahnya. Lebih baik untuk mengetahui sumber daya Anda dan Anda dapat menggunakannya dengan benar untuk menemukan informasi yang tidak Anda ketahui. Saya suka menerapkan prinsip serupa untuk semua yang saya lakukan, termasuk bekerja.

Saya pikir alat paling penting yang Anda miliki adalah sumber daya Anda, selama Anda menggunakannya dengan benar. Jadi ketika saya menulis kode, saya mendapatkan sejauh yang saya bisa dengan pengetahuan saya yang ada dan kemudian melakukan penelitian dengan bertanya kepada programmer lain atau mencari di Internet, untuk lebih memahami solusi yang tepat. Pengetahuan akan berkembang seiring waktu dan setelah beberapa saat Anda secara alami akan mengetahui dan memahami keterampilan dengan lebih baik. Saya terus mencari tahu apakah saya benar-benar membutuhkan informasi atau tidak, dan saya bisa jujur ​​mengatakan saya belajar sesuatu yang baru setiap hari.

jb11
sumber
6
"Aku tidak pernah berkomitmen pada ingatan apa pun yang dapat dengan mudah dilihat dalam sebuah buku." - Albert Einstein, 1922.
gbjbaanb
3
@ gbjbaanb Albert Einstein menggunakan kontrol versi pada tahun 1922? Wow, dia benar-benar hebat.
svick
4

Jika Anda memahami masalah yang Anda coba selesaikan, dan memahami bagaimana Anda ingin menyelesaikannya, mencari sintaks yang benar bukanlah masalah besar menurut saya.

Saya lulus sekitar dua tahun yang lalu dan dilemparkan ke serigala ketika saya mendapatkan pekerjaan saya. Saya harus belajar, memelihara, dan meningkatkan aplikasi besar yang ditulis dalam bahasa yang belum pernah saya sentuh sebelumnya. Saya akan mendapatkan laporan bug, membaca kode dan mencari tahu bagaimana saya ingin memperbaikinya, dan kemudian harus google contoh cara melakukan hal-hal yang saya inginkan dalam bahasa itu.

Jika Anda menyelesaikan sesuatu, dan memahaminya cukup untuk tidak menghasilkan churn yang tidak dibutuhkan, maka Anda mungkin baik-baik saja.

Chris
sumber
3

Salinan dan tempel murni yang tidak dikritik sebagaimana dinyatakan berulang kali dalam jawaban ini adalah buruk. Tapi begitu juga menulis semuanya dari awal. Jika itu bukan komponen penting yang merupakan inti dari bisnis Anda, cari perpustakaan atau cuplikan kode untuk melakukannya terlebih dahulu. Pengecualian untuk menemukan cuplikan adalah bahwa masalahnya sangat sederhana, Anda memiliki gambaran yang sangat jelas tentang cara melakukannya dan jika Anda tidak menggunakan perpustakaan: Anda tidak perlu melakukan apa-apa lagi.

Saya tahu secara pribadi jika saya menulis sesuatu yang umum, saya cenderung memiliki beberapa bug yang halus dan mungkin satu atau dua bug yang tidak begitu halus tanpa banyak pengujian. Jadi saya mencari solusi yang serupa, memodifikasi dan mengujinya untuk menghemat waktu pengujian dan pengembangan semua. Karena pada akhirnya saya bertanggung jawab untuk mengirimkan produk yang berfungsi, dapat diperpanjang, sesuai atau di bawah anggaran dan memenuhi tenggat waktu. Menggunakan kembali kode dan perpustakaan adalah langkah yang baik untuk mencapai tujuan itu.

Peter Smith
sumber
3

Saya pikir membaca contoh kode, dan hanya membaca kode sumber dari apa yang dikembangkan orang lain secara umum, adalah cara terbaik untuk meningkatkan keterampilan Anda. Saya benar-benar berpikir itu membuka pintu di otak Anda yang seharusnya tidak dibuka sebaliknya.

Jika Anda memikirkan solusi A, dan orang lain memikirkan solusi B, ketika Anda masing-masing membagikan solusi Anda, Anda dapat menyadari solusi C yang mungkin lebih baik daripada A atau B.

Michael Butler
sumber
2
Sebagai pengembang solo yang dominan, saya tidak memiliki rekan untuk memeriksa kode saya, untuk mengatasi masalah dengan saya, dan untuk menginspirasi saya. Contoh di internet sangat penting bagi saya untuk menyelesaikan masalah tertentu dan mempelajari keterampilan baru / praktik terbaik.
cjmUK
3

Saya pikir ada banyak tingkat kemahiran pengembangan perangkat lunak. Hanya begitu, karena ada juga banyak tingkat kemahiran dokumentasi pengembangan perangkat lunak . Terus terang, akhir-akhir ini, sistem pesanan jauh lebih kompleks daripada ketika saya mulai memprogram komputer pada pertengahan 1980-an.

Kemudian, Anda harus tahu apa yang Anda inginkan dari komputer, dan Anda telah menulis dokumentasi setebal 6 inci yang memberitahu Anda bagaimana komputer melakukan hal-hal yang lebih mendasar. Menempatkan apa yang Anda inginkan ke dalam bentuk yang bisa diambil komputer adalah masalah mengetahui isi indeks buku-buku itu, dan bahasa pemrograman (atau dua. Sungguh, setelah mempelajari empat atau lima bahasa yang lain hanya dialek.)

Saat ini, tugas itu membutuhkan mengetahui bahasa, mengetahui sistem, mengetahui paradigma, model pemrograman, dan setidaknya satu set API, yang semuanya merupakan target yang bergerak.

Jadi, seseorang dengan tingkat pengetahuan dasar tertentu yang bertanya-tanya bukanlah programmer yang baik. Dia adalah terbaik jenis programmer, mengingat lingkungan saat ini dan perusahaan ketidaktertarikan seperti Microsoft telah di benar-benar menerapkan setiap jenis kekakuan dokumentasi fundamental mereka sendiri. Sebagian besar barang-barang mereka adalah bahan referensi referensi diri dan beberapa kode sampel yang sangat buruk . (Dua kasus yang saya temui adalah "Pemasang Windows" dan API untuk membuat file film WMV.)

Karena Microsoft, Google, dan, pada tingkat lebih rendah, Apple, semua bergantung pada "komunitas" untuk menebus kekurangan yang sangat nyata, bertanya-tanya tidak hanya penting, tetapi juga penting. Dan menjadi orang yang dapat ditanyakan dan yang dapat memberikan jawaban dan umpan balik yang solid dalam lingkungan saat ini sama pentingnya. Itu sebabnya situs-situs seperti situs stackexchange.com sangat membantu.

Jadi ajukan pertanyaan, (tanyakan dengan cerdas!) Untuk sampel, dan hormati orang-orang yang menyediakan jawaban, dan melakukannya akan tidak akan dilihat sebagai tanda "pengembang yang buruk".

Dan satu hal lagi: Menyediakan sampel yang buruk benar-benar adalah pertanda pengembang yang buruk. Itu membuat pengembang yang buruk lebih mudah dikenali, tetapi juga mempercepat pencarian Google. Jika Anda kurang percaya diri pada sampel kode yang sederhana, langsung, dan spesifik, jangan beri mereka.

Dan, tolong, jangan mengejek mereka yang bertanya.

Rob Perkins
sumber
3

Bagi saya sepertinya masalah bagi Anda adalah kurang memahami apa yang Anda rujuk, dan lebih banyak dengan masalah fasilitas dan memori. Jika itu melemahkan kepercayaan diri Anda, maka ya itu masalah - tapi itu pasti bisa diatasi!

Bagi saya, tantangan semacam ini muncul dalam banyak aspek kehidupan saya yang berbeda. Sebagai contoh, untuk menjadi piawai memainkan musik, saya perlu mengembangkan kemandirian saya dari lembaran musik yang saya berikan - bagaimana Anda dapat benar-benar merasakan musik itu jika hidung Anda masih terkubur dalam buklet Anda? Kadang-kadang, jika saya punya waktu, saya akan menghafal seluruh bagian musik - bahkan jika itu tidak diperlukan untuk pertunjukan saya. Mengapa? Dengan hilangnya lembaran musik, lebih mudah bagi saya untuk fokus pada aspek yang lebih menantang dan menyeluruh dari musik yang saya butuhkan untuk memperbaiki, dan itu jauh lebih mudah bagi saya untuk masuk ke zona luar biasa dari pembuatan musik murni. Jadi saya merasa sering layak dengan masalah ekstra.

Pengalaman saya dengan pemrograman hampir sama. Saya pikir kuncinya adalah:

  1. praktek bahasa - ketik, jalankan, ucapkan jika itu membantu; lakukan berulang kali.
  2. bangun fasilitas Anda - gunakan fitur atau pola yang sama dalam situasi yang berbeda; menggabungkan fitur; membuat program.
  3. berikan waktu yang cukup di antara pengulangan untuk memastikan bahwa semuanya benar-benar masuk ke dalam memori jangka panjang Anda.

Prinsip-prinsip ini tampaknya berlaku ketika mempelajari bahasa apa pun, sebenarnya! Lihat Cara Mengenang Kata - kata Baru misalnya. The Metode Pimsleur juga bekerja seperti ini.

Saya telah menemukan bahwa hampir semua prinsip, sintaksis, dan perpustakaan umum bahasa dan teknologi yang saya gunakan secara teratur dapat sepenuhnya dihafal, dengan menggunakan kunci-kunci ini. Meski begitu, saya masih terus menjelajahi internet untuk contoh dan kebijaksanaan! Tapi saat itu, saya mencari validasi pada masalah yang saya coba selesaikan, berbagai pendekatan yang telah diambil, alat yang dapat membantu, dan konsultasi untuk perpustakaan yang jarang digunakan. Ini adalah jenis pencarian yang sangat berbeda dari yang saya gunakan ketika saya pertama kali belajar bahasa dan mempelajari tutorial dan manual.

Dari cerita Anda, berikut adalah beberapa batu sandungan khusus yang saya pikir mungkin Anda temui.

  1. Jika Anda berjuang dengan sintaksis, Anda mungkin tidak mendapatkan latihan yang cukup. Ini terutama benar jika Anda menyalin dan menempel langsung ke kode Anda, alih-alih mengembangkan pengulangan dan - boleh saya katakan? - memori otot yang akan membantu Anda menjadi sangat baik. Untuk mengatasinya, cukup kembangkan latihan dan disiplin, dengan fokus pada pengulangan dan waktu, yang akan meningkatkan fasilitas Anda di area yang Anda inginkan. Saran:
    • Tulis program sederhana dalam bahasa yang sama sekali sehari, setiap hari.
    • Ketik contoh alih-alih menyalin dan menempelkannya.
  2. Jika Anda kesulitan membangun solusi untuk masalah berukuran sedang, Anda mungkin tidak cukup berpengalaman dalam membangun. Coba ini:
    • Mulailah proyek berukuran sedang dalam beberapa teknologi atau bahasa yang ingin Anda kuasai. Atau coba tangan Anda di fitur chunkier pada proyek open-source yang Anda minati. Retas sedikit setiap hari. (Ingat, ketika Anda akan mengejar proyek-proyek yang lebih besar ini: lakukan proyek itu dengan bata. Jangan mencoba dan membangun semuanya sekaligus!)
    • Gunakan fitur baru yang sama pada empat hari berturut-turut, dalam empat konteks yang berbeda.
    • Tantang diri Anda untuk membuat kode sesuatu dengan browser web dimatikan!
    • Sebenarnya catat hal-hal yang Anda pelajari. Sintesis apa yang Anda pelajari, dan tulis pengamatan Anda. (Sebenarnya menulis sesuatu, dan memaksakan diri untuk mengekspresikan sesuatu dengan kata-kata saya sendiri, sangat membantu saya.)
    • Tulis jawaban, dan verifikasi, untuk pertanyaan StackOverflow pada teknologi yang Anda serap. (Ini sering memiliki manfaat tambahan untuk memberi Anda sedikit reputasi saat Anda belajar. :-))
  3. Anda mungkin menyebarkan latihan Anda terlalu tipis. Anda tampaknya dapat bekerja dalam berbagai bahasa. Ini memiliki banyak keuntungan, tetapi memiliki kelemahan dalam menipiskan pengalaman Anda. Jika Anda menghabiskan waktu bekerja dalam lima bahasa yang berbeda, Anda akan menghafal kurang dari jika Anda menghabiskan waktu yang sama dalam satu bahasa. Lebih buruk lagi, ada banyak bahasa yang tidak terlalu mirip antara bahasa yang berbeda (apakah itu jika, elsif, atau elif ??) untuk membuat Anda tersandung. Untuk mengatasi ini, pertajam fokus Anda. Pilih satu hal untuk dipelajari dan pelajari dengan dingin. Kemudian pindah ke hal berikutnya.
Owen S.
sumber
3

Saya pikir jika Anda berfokus pada menghasilkan kode moderat sendiri, efisiensi dan produktivitas Anda akan meningkat. Mungkin butuh lebih banyak waktu untuk mencari kode, membaca / memahaminya, menyalinnya sumber Anda, mengubahnya sesuai, dll.

Jika Anda membuat sendiri, kemungkinan besar lebih disesuaikan dengan situasi spesifik Anda, dan setelah beberapa saat solusi ini akan datang lebih cepat kepada Anda daripada mencari mereka.

Cara saya melihatnya, adalah seperti Anda menginginkan pendapat kedua tentang solusi tertentu, jadi Anda mencari tahu bagaimana orang lain (di Internet) melakukannya. Jika Anda mendapati diri Anda terlalu banyak melakukan hal ini, anggap itu sebagai bertanya pada seorang kolega tentang apa yang ia pikirkan sebagai solusi. Jika Anda mengajukan pertanyaan kepada kolega Anda setiap 15 menit, ia mungkin akan kesal. Karena itu, Anda akan mengajukan lebih sedikit pertanyaan dan mencoba membuatnya sendiri.

Visualisasikan ini ketika ingin mencari sesuatu di Internet.

Geerten
sumber
3

Cara terbaik untuk mempelajari apa yang tidak Anda ketahui: google it! Saya merasa Anda benar setara dengan kebanyakan pengembang. Letakkan kompleks inferioritas di ransel Anda dan masuk dengan pikiran terbuka.

Jangan takut untuk bertanya, lakukan riset di Google, coba dan gagal. Itu semua adalah bagian dari itu.

Peter Mortensen
sumber
3

Pengembangan perangkat lunak dalam pengaturan perusahaan membutuhkan penggunaan kembali kode dalam jumlah yang cukup. Mengapa menulis ulang fungsi / metode jika API sudah ada dan digunakan secara luas? Kemungkinan besar akan seefisien apa pun yang Anda tulis dan mengurangi waktu.

Tentu saja, berhasil dalam pengembangan perangkat lunak juga memerlukan istirahat dari papan ketik, sehingga Anda dapat membaca dan memahami apa yang sebenarnya terjadi. Ambil kerangka web apa pun. Anda harus tahu apa yang sedang terjadi di bawahnya sehingga Anda memahami kode yang Anda tulis, tetapi kemungkinan besar Anda tidak akan pernah harus menulis kerangka kerja web dari awal.

Anda hanya perlu menulis kode yang mengambil keuntungan dari jenis kerangka kerja (katakanlah kerangka kerja berbasis komponen memerlukan gaya tertentu) dan ini berasal dari memahami gambar yang lebih besar. Pelajari gambar yang lebih besar dan Anda akan baik-baik saja.

Peter Mortensen
sumber
2

Jelas dari jawaban yang sudah diberikan bahwa tidak ada yang salah dengan meneliti masalah Anda, alih-alih mengkode secara membabi buta. Tetapi pertanyaan yang tidak ditanggapi, karena Anda tidak menanyakannya secara langsung, mengapa Anda merasa sangat tidak aman - dan apa yang dapat Anda lakukan? Lagipula, banyak orang mencari jalan keluar dari masalah mereka dan memiliki kepercayaan diri yang tinggi (bahkan mereka yang seharusnya tidak ...)

Jadi, apa yang harus dilakukan? Mungkin Anda hanya membutuhkan beberapa ratus tepukan di bagian belakang, yang baru saja Anda dapatkan, dan sekarang dapat membuat kode dengan percaya diri. Tetapi jika itu tidak berhasil, saya sarankan Anda memeriksa pengujian otomatis dan Pengembangan Berbasis Tes. Tidak ada yang mengatakan "dilakukan dengan baik" seperti "Semua tes lulus" dari suite pengujian Anda: Ketika Anda sampai di sana, Anda tahu Anda telah melakukannya dengan benar.

Anda juga harus mencoba sedikit menantang diri sendiri: Anda mengatakan bahwa Anda selalu mencari sintaks yang sudah Anda ketahui; jadi paksa diri Anda untuk menulis beberapa kode tanpa melihat sintaks, dan Anda akan (segera, jika tidak segera) mengetahui bahwa Anda baik-baik saja setelah semua.

alexis
sumber
2

Pengembang tidak dilahirkan “hebat,” tetapi kebesaran tidak secara otomatis datang dengan pengalaman. Sebaliknya, kurangnya pengalaman tidak membuat pengembang menjadi "buruk." Perbedaan antara pengembang hebat dan pengembang buruk bukanlah dalam pengetahuan domain mereka, melainkan metodologi mereka. Tanda pembeda dari pengembang yang hebat adalah bahwa ia kode secara sadar. Dengan kata lain, pengembang yang baik selalu tahu mengapa dia melakukan sesuatu. Dari perspektif etika pribadi, ini membutuhkan keberanian dan integritas intelektual.

Sangat penting untuk meluangkan waktu dan memahami dasar-dasarnya, hal-hal yang lebih kompleks cukup banyak dibangun di atas itu. Jika tidak ada dasar dalam memahami bahasa dan apa yang terjadi di balik layar, pengkodean hanya akan meretas ...

Manish Modi
sumber
1

Jadi, membaca buku dengan contoh dan merujuknya adalah pemrograman yang buruk adalah konteks pertanyaan Anda. Melihat beberapa orang saja yang mendokumentasikan API mereka, hanya buku yang tersisa.

Saya tidak tahu alasan Anda mengajukan pertanyaan ini, mungkin Anda bisa menjawabnya sendiri setelah membaca situasi saya karena saya merujuk pada banyak contoh kode.

Saya tidak pernah memiliki kesempatan untuk pergi ke universitas karena saya berada di jalan pada usia 16. Entah bagaimana pada usia 24 saya berada dalam posisi untuk belajar melalui perguruan tinggi korespondensi dan melakukan sertifikasi vendor sebagai SCJP, SCJD, SCBCD dan SCWCD. Saya harus mengakui bahwa kadang-kadang saya berjuang dan harus membuka internet untuk contoh. Meskipun tanpa sadar saat ini saya memiliki tumor otak yang tumbuh di kepala saya (pada 2010 ukurannya sebesar jeruk). Setelah 5 operasi otak saya, 6 minggu menggabungkan kemoterapi / radioterapi dan 10 bulan kemoterapi, saya masih pemrograman dengan situs kode yang ditulis tangan yang dapat dilihat dari profil saya.

Ya saya membutuhkan banyak contoh kode sekarang dengan kerusakan otak, jadi apakah itu membuat saya seorang programmer yang buruk?

theenderart
sumber
Anda punya alasan yang bagus. Tentu saja, orang dapat dengan mudah berdebat (menggunakan cerita Anda sendiri, bahkan!) Bahwa itu hanya programmer yang tidak dapat bertahan tanpa seseorang memberi mereka kode. Pertanyaannya adalah apakah itu penilaian yang adil.
cao
1

Jadi saya melihat Anda menyebutkan bahwa Anda akan pergi ke hackathon. Saya sudah pernah ke beberapa tahun terakhir ini (lebih dari 15) dan memperhatikan bahwa mereka bagus untuk belajar. Dan dengan hebat untuk belajar yang saya maksud belajar bagaimana untuk tidak pernah kode seperti itu lagi Saya kebanyakan mencoba melakukan sesuatu yang baru di setiap hackathon yang saya kunjungi supaya saya bisa belajar hal-hal baru. Karena ada batasan waktu yang sangat besar, Anda hanya mengandalkan menyalin semua kode yang dapat Anda temukan dan ini akan menggigit Anda saat Anda mengujinya.

Namun, hal-hal baik memang keluar darinya, Anda: A) PELAJARI begitu banyak selama pengujian bug (juga sangat menangis) B) Tahu untuk tidak pernah kode seperti itu lagi dan belajar praktik pengkodean yang lebih baik. Juga, di hackathons Anda akan bertemu orang-orang yang dapat mengajarkan Anda begitu banyak hal baru yang tidak pernah Anda ketahui, dan Anda akan melakukan hal-hal yang tidak akan pernah Anda lakukan di sekolah.

Jadi yang saya katakan adalah copy paste itu buruk, dan Anda tidak akan belajar apa-apa, dan waktu Anda menyimpannya dengan copy paste akan menggigit Anda nanti selama pengujian bug dan Anda tidak tahu apa yang Anda tulis, itu jam 8 pagi, dan dipenuhi dengan semua kafein. Tapi, saya pikir selama Anda menguji kode bug Anda, Anda harus mempelajari semua yang Anda salin sebelumnya.

jreptak
sumber
0

Yah, saya tidak menyebut diri saya seorang programmer yang baik. Tapi yang saya lakukan sederhana. Jika saya tidak tahu bagaimana melakukan sesuatu, saya benar-benar melihat beberapa kode / contoh di Internet. Kemudian setelah membacanya, saya mencoba menulis ulang, mengoptimalkannya dan menggunakan hal-hal yang paling sesuai dengan kode yang saya inginkan.

Catatan: Membaca kode dari Internet tidak membuat Anda menjadi pengembang yang buruk. Itu selalu baik untuk melihat bagaimana orang lain melakukannya, dan Anda akan selalu belajar sesuatu. Tapi kemudian, menyalinnya secara membabi buta tidak baik.

Blastcore
sumber
-1

Jika seorang pengembang / siswa berkata .. Wikipedia .. untuk menyalin / menempelkan kode ke dalam proyek mereka, maka cukup mencoba membuatnya "bekerja" maka satu-satunya keterampilan yang dikembangkan orang ini adalah 'Bagaimana cara google'. Mungkin ada beberapa proses osmosis di sana, tetapi tidak banyak. (Anda tidak akan percaya berapa banyak orang melakukan ini di kuliah)

NAMUN, Jika Anda menganalisis kode orang lain dan benar-benar berpikir tentang apa yang terjadi dalam kode itu sendiri, maka itu tidak membuat seseorang menjadi pengembang yang buruk. Itu membuat mereka pengembang yang gigih dan mungkin menunjukkan gaya belajar yang lebih taktil atau visual. Saya belajar dengan contoh dengan sangat baik. Jika seseorang memberitahu saya sesuatu atau mencoba menjelaskannya kepada saya, saya biasanya meminta mereka untuk menunjukkan kepada saya jika mereka membicarakannya.

Mencari, menganalisis, dan belajar dari kode sebenarnya membuat mereka pengembang yang baik dari waktu ke waktu , karena mereka membaca dan belajar dalam bahasa yang mereka gunakan.

Saya sering bercanda bahwa saya tahu seluk beluk bahasa komputer daripada yang saya lakukan dengan bahasa Inggris asli saya. Yang menimbulkan pertanyaan; "Maukah kamu menjelaskan itu kepadaku di Java, tolong?"

Styler
sumber
-1

Saya pikir ini seperti bermain catur. Kita memeriksa potongan-potongan secara individu dan melacak di mana mereka dapat bergerak sesuai dengan aturan, dan kita harus melalui pemeriksaan sadar untuk beberapa waktu sampai alam bawah sadar bergabung, mengungkapkan pola dan urutan yang diilhami.

Dengan pemrograman bisa ada lebih banyak potongan dan aturan, saya sering tersandung dengan sintaks dan terjebak pada bug yang membutuhkan selamanya untuk menemukan dengan pergi melalui 'aturan', tetapi akhirnya alam bawah sadar akan menendang. Ketika itu tetap cukup lama, saya bisa membaca Terkadang kembali dan kagumi apa yang bisa dilakukannya.

saringan
sumber