Apa yang perlu Anda lakukan untuk berpikir seperti seorang programmer

  1. Mengapa ini penting?
  2. Temukan polanya
  3. 1. Pahami dia
  4. 2. Merencanakan
  5. 3. Memecah masalah menjadi sub-masalah kecil.
  6. 4. Terjebak?
  7. Berlatih
  8. Dinamai 5 bahasa pemrograman paling populer menurut HackerRank
  9. Bagaimana menjadi seorang programmer, jika Anda benar-benar mau, tetapi tidak ada pengalaman

Apa artinya berpikir seperti seorang programmer? Bahkan, semuanya dengan cara yang lebih efisien untuk menyelesaikan masalah. Blogger dan pengembang aplikasi seluler Richard Rees memberikan beberapa tips tentang cara mengembangkan cara berpikir komputasi.

Mengapa ini penting?

Pemecahan masalah adalah metanavyk. Bagaimana cara kita mengatasinya? Cukup acak. Jika Anda tidak memiliki sistem, Anda kemungkinan besar akan "memecahkan" masalah dengan cara ini:

  1. Coba solusinya.

  2. Jika gagal, coba yang lain.

  3. Ulangi langkah kedua hingga beruntung.

Jadi tidak. Ini buang-buang waktu. Anda perlu a) menemukan pola dan b) berlatih.

“Hampir semua pengusaha pertama-tama melihat bagaimana karyawan menyelesaikan masalah. Keterampilan ini lebih penting bagi mereka daripada pengetahuan tentang bahasa pemrograman, debugging dan desain sistem. Pemikiran komputasi dan kemampuan untuk mengatasi masalah besar dan kompleks dinilai dengan cara yang sama dengan keterampilan teknis dasar yang diperlukan untuk bekerja, ”- HackerRank (Laporan Keterampilan Pengembang 2018).

Temukan polanya

“Pemrogram pemula sering fokus pada sintaks, bukan pemecahan masalah. Dan ini adalah kesalahan terbesar. " V. Anton Sproul .

Apa yang harus Anda lakukan ketika menghadapi masalah baru?

1. Pahami dia

Anda perlu tahu apa yang diminta dari Anda. Tugasnya tampak rumit karena Anda tidak memahaminya. Bagaimana Anda tahu jika Anda memahami masalahnya atau tidak? Coba jelaskan dalam bahasa sederhana.

Foto: Tidak dicairkan

Ini cukup sering terjadi: apakah Anda terjebak pada suatu tugas, mulai menjelaskannya, dan tiba-tiba melihat kekurangan logis? Sebagian besar programmer terbiasa dengan perasaan ini. Tuliskan masalah Anda di atas kertas atau beri tahu seseorang tentang itu.

2. Merencanakan

Jangan langsung menyelesaikan masalah tanpa rencana. Tidak ada yang akan membantu Anda jika Anda tidak menuliskan langkah-langkah yang tepat. Berikan waktu pada otak untuk menganalisis masalah dan memproses informasi. Untuk membuat rencana yang baik, jawab pertanyaan ini:

"Misalkan ada X pada input. Langkah apa yang diperlukan untuk mendapatkan Y pada output?"

Programmer memiliki alat yang hebat untuk ini ... Komentar!

3. Memecah masalah menjadi sub-masalah kecil.

Ini adalah langkah terpenting. Jangan langsung mencoba menyelesaikan satu masalah besar. Alih-alih, pecahkan menjadi puzzle kecil dan selesaikan secara bertahap. Mulailah dengan yang paling sederhana - yaitu yang sudah Anda tahu jawabannya. Segera setelah Anda mengatasi semua, hubungkan titik-titik. Jadi Anda bisa menyelesaikan masalah aslinya.

“Saya selalu menyarankan programmer pemula untuk menyederhanakan masalah. Mari kita bayangkan bahwa Anda perlu menulis sebuah program yang membaca sepuluh angka dan menentukan mana yang akan menjadi yang terbesar ketiga. Untuk pemula, tugas ini mungkin tampak sangat sulit, terlepas dari kenyataan bahwa solusinya memerlukan pengetahuan tentang sintaksis dasar. Jika Anda buntu, cobalah untuk menyederhanakan masalah. Alih-alih angka terbesar ketiga, cobalah mencari yang terbesar dari semuanya. Masih susah? Temukan jumlah terbesar dari tiga yang diberikan. Atau dua. Sederhanakan masalahnya sampai Anda mengerti bagaimana menyelesaikannya. Kemudian secara bertahap menyulitkan tugas dan menulis ulang solusinya ”, - V. Anton Sprol.

4. Terjebak?

Sekarang Anda mungkin berpikir: "Ya, ini tentu saja bagus, tapi bagaimana jika saya mandek dan tidak bisa menyelesaikan masalah kecil sekalipun?"

Foto: Tidak dicairkan

Jangan khawatir. Itu terjadi pada semua orang. Perbedaannya adalah programmer tidak marah ketika dihadapkan dengan hal ini. Sebaliknya, mereka tertarik untuk mencari solusi. Berikut adalah tiga cara untuk melakukan ini:

  • Nilai lagi . Lihatlah masalahnya dari sisi lain. Adakah sesuatu yang bisa disajikan dengan cara yang lebih sederhana?

“Kadang-kadang kita tersesat dalam detail dan kehilangan prinsip-prinsip umum yang akan membantu menyelesaikan masalah lebih cepat. Contoh klasik adalah jumlah angka berurutan - 1 + 2 + 3 + ... + n. Karl Friedrich Gauss mempresentasikan ini dalam bentuk ekspresi n (n +1) / 2, dan dia tidak harus melakukan perhitungan yang tidak perlu. ”

Ada opsi lain - untuk sepenuhnya menulis ulang kode. Hapus semuanya dan mulai lagi dari awal.

  • Jelajahi . Apa pun masalah yang Anda coba selesaikan sekarang. Seseorang sudah melakukannya sebelum Anda. Anda hanya perlu mencari. Lakukan ini bahkan jika Anda telah memecahkan masalah.

Berlatih

Jangan berpikir bahwa dalam seminggu Anda akan menjadi master di bidang ini. Jika Anda ingin menyelesaikan masalah dengan baik, lakukanlah secara teratur. Berlatih. Catur, masalah matematika, sudoku, go, monopoli, video game, cryptocotics - semua ini akan membantu Anda untuk menyempurnakan keterampilan pemecahan masalah Anda. Orang terkenal juga melakukannya. Misalnya, Peter Thiel bermain catur, dan Ilon Musk - dalam video game .

"Ilon Musk, Reed Hoffman, Mark Zuckerberg dan yang lainnya berpendapat bahwa permainan meletakkan dasar bagi kesuksesan mereka" - Mary Meeker .

Apakah itu berarti Anda hanya harus bermain video game? Tidak juga. Tentu saja, Anda masih perlu belajar. Temukan sesuatu di mana Anda dapat melatih keterampilan Anda.

Materi tentang topik:

Dinamai 5 bahasa pemrograman paling populer menurut HackerRank

12 tanda programmer buruk - kami mengidentifikasi orang awam

Bagaimana menjadi seorang programmer, jika Anda benar-benar mau, tetapi tidak ada pengalaman

Bagaimana saya berhenti dari pekerjaan saya sebagai desainer grafis dan menjadi pengembang frontend dalam lima bulan

Menemukan kesalahan ketik? Sorot teks dan tekan Ctrl + Enter

Mengapa ini penting?
4. Terjebak?
Mengapa ini penting?
Bagaimana cara kita mengatasinya?
Apa yang harus Anda lakukan ketika menghadapi masalah baru?
Bagaimana Anda tahu jika Anda memahami masalahnya atau tidak?
Langkah apa yang diperlukan untuk mendapatkan Y pada output?
Masih susah?
4. Terjebak?
Sekarang Anda mungkin berpikir: "Ya, ini tentu saja bagus, tapi bagaimana jika saya mandek dan tidak bisa menyelesaikan masalah kecil sekalipun?