Pemrograman tidak asing bagi saya. Saya pertama kali mulai melakukan markup (HTML, sekarang tolong jangan menertawakan saya) ketika saya berusia 12 dan sedikit BASIC ketika saya berusia 13 (saya tahu banyak tentang Flowchart, Pseudocodes pada titik ini), tetapi kemudian saya dinasihati ke dalam Biologi di sekolah menengah dan karenanya melewatkan pengetahuan pemrograman "nyata" dari bahasa seperti C, Java, dan sebagainya. Saya mengambil CS untuk UG BE saya (mirip dengan BS, tetapi jauh lebih teoretis). Saya belajar C&C ++ (pada tingkat yang lebih rendah) sendiri (prof saya sangat menyakitkan dan kelas dipenuhi dengan kode-atlet (yang sudah mempelajarinya di sekolah, dan karenanya tidak memperhatikan kelas dan tidak biarkan manusia yang lebih rendah seperti saya memperhatikan kelas juga)) dan bisa menyiapkan program penambahan atau perkalian yang mengagumkan (yang sekarang bahkan lebih baik tukang kebun)
Masalah utama saya adalah bahwa saya selalu merasa tidak mampu dan tercekik oleh keterampilan pemrograman saya yang terbatas dan diremehkan oleh para atlet kode (percayalah, saya telah menemukan situs ini berabad-abad yang lalu, tetapi sekarang bisa saja membangun keberanian untuk benar-benar memposting pertanyaan) dan kadang-kadang bahkan tertekan karena ketidakmampuan tersebut. Kebanyakan orang mengatakan bahwa Pemrograman tidak harus tentang bahasa tetapi keadaan pikiran yang dimiliki orang tersebut dan teknik yang mereka gunakan untuk memecahkan masalah / masalah. Saya setuju dengan sentimen seperti itu, tetapi bisakah saya mendapatkan "kondisi pikiran" seperti itu, dan jika demikian, bagaimana saya harus mendekati "Pemrograman / Pengkodean", dan jika ada cara dan langkah yang ditetapkan yang paling sering dilalui seseorang untuk mencapai "Zen dari Coding ". Bagaimana saya melakukannya? Juga, tidak ada salahnya jika beberapa Saint ingin mentor sepotong $ #! ^ Yang tertindas ini.
NB. Saya selamanya akan berterima kasih kepada siapa pun yang menganggap saya sepadan dengan waktu mereka, dan sebagai bonus akan memberi nama bagian pertama Perangkat Lunak saya, saya kirim setelah mereka. (Jika saya bisa mengirimkan satu, yaitu,)
TL; DR: Tidak pernah benar-benar belajar "Pemrograman / Pengkodean", tidak dapat menyelesaikan masalah bahkan jika saya mencoba. Tolong aku!
Jawaban:
Saya berpendapat cara terbaik adalah dengan hanya menghabiskan lebih banyak waktu di atasnya (mencari aturan 10000 jam). Temukan sesuatu yang Anda ingin selesaikan dan bersiaplah untuk menyelesaikannya. Pilih sesuatu yang di luar kemampuan Anda saat ini, tetapi tidak terlalu jauh sehingga Anda tidak akan dapat menyelesaikan dalam jumlah waktu yang wajar. Jika Anda benar-benar menikmatinya, Anda akan menemukan diri Anda mengulanginya sampai Anda benar-benar pandai Jika Anda tidak menikmatinya, maka mungkin itu bukan hal yang tepat untuk Anda. Cobalah untuk menantang diri sendiri, Anda mungkin akan menikmatinya.
sumber
Kirim barang . Itu satu-satunya cara. Selesaikan semuanya. Di tempat kerja, proyek Anda sendiri, proyek sumber terbuka. Mulai pengiriman barang. Mereka bisa berupa hal-hal yang sangat kecil, seperti perbaikan bug atau fitur yang dapat dipasarkan minimum. Mulai saja pengiriman barang . Tidak ada yang lebih memuaskan atau membangun kepercayaan selain kesuksesan.
Sunting: Anda harus membaca Kirim Ini . Itu bagus.
Sunting lagi: Pengalaman melakukan apa pun selain pengiriman hanyalah pengalaman yang gagal. Saya telah melihat banyak pengembang "senior" yang pengalaman utamanya bukan pengiriman barang (dan mencari alasan untuk tidak mengirimkannya). Artis sejati kapal .
sumber
'masalah', 'tidak memadai', 'dicekik', 'keterampilan X terbatas', 'diremehkan', 'tertekan', 'ketidakmampuan' dalam satu kalimat, semua yang ditujukan kepada diri Anda menunjukkan kepada saya beberapa luka tidak sembuh dari masa lalu yang masih sakit. kamu. Jika Anda menemukan cara untuk mengatasinya, pemrograman atau seni / kerajinan semacam itu akan sangat mudah untuk dikuasai. Mungkin membaca tentang ketahanan orang lain akan membantu di sini. Setiap orang mengalami masa-masa menyakitkan dalam hidup mereka. Jika luka / luka itu tidak sembuh, kesuksesan mereka tidak akan datang. Sembuhkan luka Anda terlebih dahulu. Pemrograman bisa menunggu nanti.
Adapun keterampilan pemrograman, bagaimana saya belajar bahasa baru dan mulai berpikir seperti orang lain yang sudah memprogram dalam bahasa itu, pertama, baca semua yang bisa saya taruh di tangan yang terkait dengan bahasa itu. Kemudian, ketika saya sudah cukup membaca, mulailah menulis program kecil.
sumber
Beberapa hal yang perlu Anda lakukan:
Ketekunan: Menjadi programmer yang baik membutuhkan waktu latihan. Anda harus menulis banyak kode buruk sebelum Anda menulis kode bagus - banyak kode buruk. Untungnya, Anda memiliki sumber daya seperti situs ini untuk membantu Anda. Selama Anda tetap berkomitmen untuk belajar memprogram, Anda akan dapat menyusun gim dan utilitas sederhana dalam waktu singkat!
Tujuan: Tetapkan beberapa tujuan untuk diri Anda sendiri. Katakanlah belajar bagaimana menggunakan STL dalam C ++ dalam dua minggu. Lihat seberapa baik Anda melakukannya. Jika Anda membutuhkan waktu lebih lama, perhatikan berapa lama lagi, ini akan membantu Anda melakukan yang lebih baik di masa depan. Saya belajar trik ini dari seorang rekan kerja; dia bisa memperkirakan, sampai hari itu, berapa lama hampir semua tugas akan membawanya. Melakukan ini telah membantu saya mengawasi berapa lama saya habiskan untuk proyek-proyek pribadi, dan membantu saya agar tidak menggelembung di luar kendali (manajemen ruang lingkup mereka menyebutnya).
Keingintahuan: Anda harus tertarik dan terlibat. Jika Anda bukan tipe orang yang tidak mendekati masalah dengan keinginan untuk menemukan solusinya, memulai pemrograman akan sulit pada awalnya, dan debugging bisa menjadi mimpi buruk. Tetapi tidak harus begitu. Jika Anda memiliki masalah, tanyakan di situs-situs seperti ini, google kesalahan Anda. Jika Anda tidak tahu cara mengimplementasikan sesuatu, tanyakan! Selalu ada orang di luar sana yang bersedia membantu!
Keyakinan: Percaya diri pada apa yang ingin Anda lakukan, dan cukup percaya diri untuk mengajukan pertanyaan. Jika seseorang menunjukkan kepada Anda cara lain untuk melakukan sesuatu, jangan bersikap defensif, atau meremehkan diri sendiri dengan berpikir Anda melakukan kesalahan; pikirkan itu ketika Anda diajari pendekatan yang berbeda untuk menyelesaikan masalah Anda!
Di atas segalanya, pertahankan pandangan positif, baca banyak tutorial, dan ajukan banyak pertanyaan, dan Anda akan menjadi programmer yang bahagia! Sedikit nasihat lain yang harus saya berikan adalah memilih bahasa, tetap dengan itu sampai Anda lebih percaya diri. Anda memiliki banyak waktu untuk mempelajari berbagai bahasa, tetapi ketika Anda memulai, hanya bekerja dengan satu bahasa.
Semoga berhasil! Dan ingat, ini seharusnya menyenangkan! = D
sumber
Dalam perkembangannya tampaknya paradoks "semakin Anda tahu, semakin Anda tahu Anda tidak tahu" benar.
Jika Anda adalah orang yang bijaksana dan jujur, Anda harus menerima fakta ini dan belajar menghadapinya.
Keyakinan, dalam arti tersirat oleh pertanyaan, adalah hal yang sangat pribadi yang benar-benar tidak ada hubungannya dengan keahlian atau metodologi tertentu.
Pada nada yang lebih dangkal, sentimen yang dijelaskan dalam http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ (bagian: Anda secara radikal melebih-lebihkan keterampilan rata-rata dari kompetisi karena Kerumunan tempat Anda bergaul) selalu membantu saya.
Saya menyarankan agar Anda belajar untuk lebih percaya diri dalam pekerjaan yang telah Anda lakukan sebagai lawan membangun kepercayaan pada keterampilan Anda secara keseluruhan. Satu-satunya cara terbaik untuk melakukan ini adalah menulis tes berulang untuk semua kode Anda. Ini akan bekerja keajaiban pada jiwa Anda.
sumber
WhiteFang34 sepenuhnya benar. Sebagai seorang ahli biologi sendiri, saya menemukan bahwa satu-satunya cara saya harus belajar pemrograman adalah dengan mulai melakukannya. Baca beberapa buku, miliki google dan SO selalu tersedia, dan "lakukan saja". Program Anda akan sangat dasar, kode buruk dan kereta pada awalnya, dan Anda akan menjadi lebih baik dan lebih baik seiring waktu. Saya tidak punya waktu untuk mengambil kelas pemrograman, tapi saya menghabiskan banyak waktu untuk coding (karena itu menyenangkan untuk melakukannya).
Pilih bahasa yang memungkinkan Anda berpikir lebih banyak tentang apa yang ingin Anda lakukan dan lebih sedikit bagaimana melakukannya. c bukan contoh yang sangat bagus untuk itu. Coba bahasa tingkat yang lebih tinggi seperti java atau c #, karena mereka akan membiarkan Anda melakukan lebih banyak, jadi Anda akan mendapatkan keberanian untuk mencoba lebih banyak dan lebih banyak lagi.
(Yaitu, tentu saja, dengan asumsi bahwa Anda tidak mengejar karir sebagai programmer profesional, dalam hal ini saya hanya akan mengatakan kembali ke sekolah ...)
Semoga berhasil, dan dapatkan coding yang menyenangkan
PS: Oh, dan kamu akan butuh banyak kemalasan, ketidaksabaran, dan keangkuhan
http://c2.com/cgi/wiki?LazinessImpatienceHubris
sumber
Lucunya adalah:
Ini tentang memahami seluk-beluk dunia nyata, interaksi antara berbagai hal. Kemampuan berpikir abstrak . Kemampuan untuk memperhatikan hal - hal dan mengingatnya . Itu pasti mengarah pada pemecahan masalah yang baik.
Implementasi, kode itu sendiri datang hanya setelah itu - setelah Anda berhasil
memecahkan masalah yang ada dalam pikiran Anda.
sumber
Keyakinan bukanlah sesuatu yang harus Anda coba rasakan tentang keterampilan Anda. Keyakinan itu buruk (bahkan mungkin negatif) berkorelasi dengan keterampilan yang sebenarnya. Anda harus bekerja untuk meningkatkan keahlian profesional Anda (atau hobi yang dihargai) yang ditetapkan, apa pun yang Anda rasakan tentang tingkat keahlian Anda saat ini.
Keyakinan adalah sesuatu yang orang lain, mereka yang Anda anggap kompeten, harus merasakan keterampilan Anda setelah bekerja dengan Anda atau melihat pekerjaan Anda.
sumber
Ini sangat sederhana: tertariklah ! Anda tampaknya sudah, jadi temukan sesuatu yang menurut Anda akan keren untuk dilakukan, dan kemudian lakukan, ajukan pertanyaan apa pun yang Anda perlukan di jalan, menggunakan sumber daya apa pun yang Anda bisa, untuk menyusun proyek seperti yang Anda inginkan ingin. Bilas dan ulangi, dan Anda akan menemukan diri Anda menjadi programmer yang hebat tanpa harus berusaha keras, karena itu menarik / menyenangkan di sepanjang jalan.
Juga, temukan keseimbangan yang baik antara mencari tahu hal-hal dan mengajukan banyak pertanyaan. Pada awalnya, terutama, sangat membantu orang lain memberi tahu Anda di mana Anda salah, untuk mendorong Anda pada bagian pertama dari kurva pembelajaran. Dari sana, cobalah mencari tahu sendiri, dan jika Anda buntu setelah beberapa saat kemudian ajukan pertanyaan tentang itu. Yang sering saya lakukan adalah memposting pertanyaan pada SO, dan kemudian mencari jawabannya, memeriksa SO sesekali dalam proses. Terkadang saya menemukan jawabannya terlebih dahulu, kadang-kadang menemukan saya terlebih dahulu.
Jangan terlalu khawatir tentang teknologi yang mana, meskipun mungkin sangat menyenangkan untuk membuat grafik dengan HTML5 + JavaScript + tag kanvas, karena itu cukup mudah untuk diatur, hasilnya langsung, dan Anda dapat membaginya.
sumber
Pendekatan pemrograman dengan sikap peserta didik yang lebih positif. Tidak ada yang tahu segalanya. Kedua, Cari tahu mengapa Anda tertarik pada pemrograman baik yang Anda sukai:
Setelah Anda tahu apa yang Anda sukai dari pemrograman, Anda dapat memfokuskan upaya belajar Anda ke arah itu. Saya seorang pemecah masalah / pemecah masalah. Itu membuat saya sangat pragmatis. Algoritma dan struktur data, teori ilmu komputer pada umumnya membuat saya tertidur.
Latar belakang saya mirip dengan Anda. Mulai membangun komputer pada usia 10 tahun. Melakukan sedikit HTML / C ++ di usia remaja saya ... bosan dengannya ... berhenti selama beberapa tahun. Saya tidak pernah berhenti bermain-main dengan komputer.
Sekarang, saya suka pemrograman. Jadi apa yang berubah? Saya menemukan motivasi saya. Saya mulai bekerja di mana saya diberi banyak masalah untuk diselesaikan. Menemukan solusi cerdas dan sederhana untuk masalah kompleks benar-benar membuat saya terbakar.
Akhirnya, jangan khawatir tentang bagaimana kode orang lain atau apakah itu "benar" atau tidak. Benar jika melakukan apa yang Anda inginkan. Begitu Anda mulai bekerja di tim, standar menjadi penting. Hal ini disebabkan oleh fakta bahwa orang lain harus dapat menginterpretasikan dan memodifikasi karya Anda. Standar desain bukanlah sesuatu yang harus diperhatikan oleh programmer baru.
sumber
Selalu ada kelemahan untuk diatasi ketika mempelajari hal-hal baru. Programmer yang penasaran yang saya kenal berjuang untuk menemukan motivasi untuk terus belajar bahasa dan paradigma baru. Mereka akan berkata, "Saya perlu proyek untuk mencoba X." untuk mempelajari X. Beberapa akan benar-benar menemukan / menciptakan proyek itu.
Maklum bahwa karier dalam pemrograman akan menjadi proses frustrasi seumur hidup, belajar, bereksperimen, dan memiringkan kincir angin. Sampai AI mengambil alih segalanya.
Jika Anda masih melakukan sains nyata, maka Anda harus dapat membayangkan suatu proyek / kebutuhan. Misalnya, menggabungkan data dari berbagai sumber di dalam atau di luar internet. Ini mungkin menginspirasi Anda sedang belajar javascript atau R atau bahkan Excel / VBA. Jika Anda dapat menghubungkan beberapa titik untuk orang lain di bidang Anda, Anda akan dikenali, dan voila, Anda akan menjadi seorang programmer.
Gunakan tapi hati-hati dengan mentor. Otoritas pertanyaan.
Dan omong-omong, "zen coding" adalah sebuah oxymoron.
sumber
Anda tidak akan pernah merasa yakin dengan keterampilan pemrograman Anda.
Cara Anda menggambarkan keterampilan Anda, menunjukkan pola pikir di mana Anda tidak akan pernah puas dengan keterampilan Anda. Anda menguasai C ++? Tunggu, ada Jawa! Anda menguasai Java? Tunggu ada Pemrograman Paralel. Anda menguasai Pemrograman Paralel dalam C ++ dan Java? Tunggu, ada SOA! Ada OOD! Dan MVC! PADAT! Pemrograman Fungsional! Pemrograman Web! Pemrograman Cloud! Pemrograman Seluler!
Intinya adalah jangan merasa tertekan karena hal ini. Anda perlu menekan beberapa tombol di kepala Anda: Keraguan Anda tentang keterampilan Anda adalah bahan bakar murni. Anda mungkin tidak akan pernah mencapai tingkat keterampilan pemrograman yang memuaskan. Selama ini masalahnya, Anda akan bergerak maju. Bagian yang sulit adalah menyadarinya dan melakukan sesuatu terhadapnya, meskipun tidak akan pernah ada tujuan. Semakin lama Anda tahan, semakin tinggi tingkat keahlian Anda.
sumber
Dulu saya merasakan hal yang sama, dan sebenarnya situs Stack Exchange yang membantu memberi saya kepercayaan diri.
Saya mulai menggunakan StackOverflow untuk menemukan jawaban untuk pertanyaan saya, dan suatu hari saya melihat jawaban yang saya tahu jawabannya. Saya memposting jawabannya, mendapat suara terbanyak dan komentar yang mengatakan itu adalah jawaban yang baik, dan itu mendorong saya untuk mencari-cari pertanyaan lain yang bisa saya jawab.
Segera tumbuh menjadi kecanduan bagi saya, menemukan pertanyaan yang tidak bisa dijawab yang bisa saya pecahkan, dan seiring berjalannya waktu saya mulai mendapatkan kepercayaan pada jawaban saya. Saya tidak lagi harus mengatakan "Saya pikir ini karena ...." atau "Ini seharusnya menyebabkan ..." tetapi sebaliknya dapat mengatakan dengan keyakinan bahwa "Ini karena ..." atau "Ini menyebabkan ..."
Saya suka teka-teki, dan bagi saya SO pertanyaan seperti teka-teki pemrograman mini, dengan manfaat tambahan mendapatkan umpan balik positif jika saya mendapatkan jawabannya dengan benar. Jika saya mendapat jawaban yang salah, saya hanya menghapusnya dan belajar dari solusi orang lain untuk masalah yang sama.
Jadi rekomendasi saya adalah menggunakan SO dan menelusuri pertanyaan dengan tag apa pun yang Anda minati, dan mencari beberapa yang menurut Anda dapat menemukan jawabannya. Tidak ada yang seperti orang yang mengatakan kepada Anda jawaban pemrograman Anda sangat membantu / baik untuk memberi Anda kepercayaan pada kemampuan pemrograman Anda :)
sumber
Otak Anda tidak suka bekerja terlalu keras. Diberi pilihan, ia memilih untuk mengambil jalan keluar yang mudah. Inilah sebabnya mengapa mudah untuk menyerah pada hal-hal ketika Anda mencoba untuk mengatasi sesuatu yang terlalu ambisius - terlalu banyak untuk dipelajari, terlalu banyak detail fiddly untuk dikerjakan dengan benar, terlalu banyak bercukur.
Ada beberapa hal yang dapat Anda lakukan untuk mengatasi hal ini. Yang pertama adalah energi. Cobalah untuk berlatih ketika Anda cukup istirahat dan cukup makan, atau otak Anda secara harfiah tidak akan memiliki cukup bahan bakar untuk pemikiran abstrak yang kompleks. Trik kedua adalah minat atau kepentingan. Jika Anda dapat meyakinkan otak Anda bahwa mengetahui pakar sihir penting untuk melarikan diri dari harimau yang mengejar Anda, Anda akan belajar dan mempertahankan lebih daripada ketika otak Anda berpikir bahwa itu adalah tugas sampingan yang tidak berarti dalam perjalanan ke apa yang benar-benar Anda inginkan. Faktor ketiga yang penting adalah peregangan tanpa berlebihan. Beberapa upaya akan memberi Anda semangat dari prestasi, dan akan membantu membentuk jalur mental baru, tanpa menjadi tidak bisa diraih.
Ada juga sesuatu yang bisa dikatakan untuk latihan berulang. Anda ingin cukup variasi untuk menjadi novel, tetapi cukup kesamaan sehingga Anda bisa melakukan tindakan yang sama dan menggunakannya.
Satu hal lagi adalah Anda harus berusaha menyingsingkan lengan baju dan membuat tangan Anda kotor. Sangat mudah untuk menghabiskan banyak waktu memikirkan pendekatan alternatif atau solusi ideal, sejauh Anda tidak pernah memulai. Ini adalah contoh otak Anda yang mencoba mengambil jalan keluar yang lebih mudah. Coba kenali kapan ini terjadi pada Anda dan hindari dengan mencoba memulai. Bahkan tes atau eksperimen itu baik. Ini juga memiliki manfaat tambahan yaitu membuat otak Anda menginginkan penutupan untuk menyelesaikan tugas atau menemukan solusi yang lebih baik.
sumber
Tiga hal yang perlu dipertimbangkan: (Atau tidak, tentu saja.)
sumber
Ada banyak komentar bagus tentang latihan di sini, itu benar-benar membuat perbedaan.
Anda tidak perlu terlalu khawatir tentang "atlet kode" dan menerima saran atau komentar mereka apa adanya. Jika mereka sulit untuk ditangani dalam sebuah utas, mereka mungkin juga sulit untuk ditangani dalam kehidupan nyata; dan sungguh, siapa yang punya waktu untuk mengkhawatirkan ketidakmampuan sosial mereka?
Hasil akhirnya adalah, ada ribuan cara untuk mendekati tugas pemrograman. Banyak hal bermuara pada preferensi pribadi. Saya misalnya, benci membaca kode dengan operator tenary. Yang lain, cintai mereka. Apakah saya pikir mereka benar atau salah? ... sebenarnya, tidak juga. Ini adalah pilihan pribadi meskipun banyak perdebatan sengit akan terjadi pada topik tersebut.
Jika seseorang mencaci-maki kode Anda karena Anda mengambil 25 baris alih-alih 20 saya cenderung mengabaikannya kecuali mereka telah menemukan kesalahan aktual dalam logika. Terkadang di dunia nyata, kita harus menyelesaikan sesuatu (dan siapa yang benar-benar ingin mendengarkan seseorang membusungkan tentang betapa rumitnya ... err, anggun mereka berhasil membuat sepotong kode yang seharusnya selesai dalam 10 menit) . Bisakah Anda belajar sesuatu dari perdebatan filosofis yang tak ada habisnya tentang seberapa jauh hal-hal abstrak? Tentu ... tapi ada pengembalian yang redup karena tersedot ke dalam keanggunan 100% yang konstan. Itu tidak realistis sepanjang waktu seperti yang kita inginkan. Beberapa kode saya yang paling tidak elegan yang akan saya malu untuk dibagikan kepada siapa pun (yang saya tulis di awal karir saya) telah menyelamatkan orang dari minggu ke minggu, senilai waktu,
Ada posting blog yang luar biasa oleh Joel Spolsky yang disebut Duct Tape Programmer. Ini adalah bacaan yang bagus dan IMO menempatkan beberapa ketakutan Anda ke dalam perspektif.
http://www.joelonsoftware.com/items/2009/09/23.html
Saya tidak mengatakan menulis kode omong kosong dan mengabaikan praktik terbaik, tetapi mengambil programmer ranty dengan sebutir garam.
sumber
Tanyakan pada diri sendiri mengapa Anda sebenarnya merasa kurang percaya diri. Saya pikir itu karena Anda peduli dengan apa yang teman-teman Anda pikirkan, dan itu bisa dimengerti. Tetapi untuk menjadi benar-benar zen tentang hal itu, Anda perlu menjernihkan pikiran seperti itu dan hanya membandingkan diri Anda dengan diri sendiri dari waktu ke waktu. Dipandu oleh minat Anda, belajar dan bekerja keras, dan Anda akan menjadi programmer yang baik tanpa semua BS psikologi.
Ini bukan kepercayaan diri yang Anda butuhkan, lebih sedikit kebisingan di jalur kemajuan Anda.
sumber