Apakah boleh jika saya tidak dapat menyelesaikan masalah saat duduk di depan komputer? [Tutup]


12

Saya seorang programmer hobi dan pemula. Sebagian besar waktu, saya tidak bisa menyelesaikan masalah sambil duduk di depan komputer. Sebagai contoh, saya berusaha mencari tahu apakah satu angka adalah kekuatan yang lain. Saya tidak bisa menemukan solusinya sampai saya mengambil pena dan kertas kemudian menganalisis masalahnya. Dalam sekitar 3 menit saya menyelesaikannya dan menulis skrip dengan Python.

Kadang-kadang saya bisa menyelesaikan masalah sambil duduk di depan komputer, tetapi dengan sedikit kesulitan. Apakah itu oke?


6
Bagi saya ini bukan masalah yang terlalu buruk, dan pada kenyataannya banyak orang menatap komputer terlalu banyak, akhirnya tidak menyadari bahwa mereka memiliki masalah ini pada tingkat yang lebih rendah. Banyak pemrograman profesional akan melibatkan perubahan yang sangat hafal alih-alih formula logis rumit yang biasanya diberikan sebagai tugas pekerjaan rumah, dan itu tidak terlalu menjadi masalah jika Anda setidaknya bisa menyelesaikannya.
Katana314

2
Saya pikir Anda mungkin hanya ingin menulis ulang pertanyaan Anda sehingga lebih masuk akal tentang pemrograman.
Mengintai

8
Ini sepenuhnya subjektif. Setiap orang belajar dan bekerja secara berbeda. Lakukan apa yang berhasil untuk Anda.

7
Di depan komputer dapat menjadi tempat terburuk untuk mencoba memecahkan masalah, karena Anda terlalu tergoda untuk mulai mengetik ketika Anda harus berpikir. Seringkali mendapatkan jalan dari mesin lebih baik karena memaksa Anda untuk berpikir untuk tidak bertindak . Sebagian besar masalah saya yang paling sulit diselesaikan dengan berjalan ke kantor di pagi hari.
Gort the Robot

2
Juga ada pertanyaan seberapa sulit masalahnya. Ketika Anda mendapatkan lebih banyak pengalaman, beberapa masalah yang sulit sekarang akan menjadi mudah. Tapi itu hanya berarti bahwa Anda bisa menyelesaikan yang lebih sulit lagi. Bagi saya sendiri, saya memecahkan banyak masalah saya yang sulit saat hiking atau ski lintas negara.
jamesqf

Jawaban:


34

Saya cenderung menyelesaikan masalah saya yang paling sulit:

  • Di depan papan tulis (kadang-kadang bahkan tanpa menggambar apa pun - hanya dengan memikirkan bagaimana memvisualisasikan suatu masalah terkadang dapat menghasilkan solusi)
  • Sambil menjelaskannya kepada kolega
  • Melihat keluar jendela
  • Sambil berjalan-jalan
  • Di bawah pancuran
  • Di toilet

Pergi dari monitor sering kali sangat membantu untuk berkonsentrasi pada masalah itu sendiri dan tidak hanya mengetik implementasi.

Pemecahan masalah terjadi di kepala Anda. Mengetikkan kode program adalah cara Anda menjelaskan solusi Anda ke komputer.


1
Terima kasih! Anda benar, semakin saya jauh dari komputer, semakin saya bisa fokus pada masalah.
Mahmood Muhammad Nageeb

2
Saya ingat pernah membaca buku (tidak ingat yang mana, sayangnya) yang menyarankan untuk menyimpan bebek karet di meja Anda, dan ketika Anda bingung, jelaskan masalahnya dengan keras kepada bebek karet.
Gort the Robot

7
@StevenBurnap Ini disebut debugging bebek karet dan Anda mungkin membacanya di The Pragmatic Programmer oleh Addison Wesley.
Philipp

2
"Mengetikkan kode program adalah cara Anda menjelaskan solusi Anda ke komputer." - Alan Perlis berkata: "Program harus ditulis untuk dibaca oleh manusia dan hanya untuk mesin yang dieksekusi." Saya lebih suka melihat cara ini: mengetikkan kode adalah bagaimana Anda menjelaskan solusi Anda kepada kolega Anda . Fakta bahwa sekali Anda menggambarkan solusi secara tidak ambigu sedemikian rupa sehingga setiap manusia (termasuk Anda sendiri, 6 bulan dari sekarang) dapat memahaminya, itu juga dapat dieksekusi oleh sebuah mesin, hanyalah efek samping dari itu yang dijelaskan secara ketat. cukup bahwa tidak ada ambiguitas. …
Jörg W Mittag

4
Re: karet merunduk. Ada juga kisah serupa dengan boneka beruang teddy. Para tutor di MIT biasa duduk boneka beruang di luar kantor mereka. Anda hanya diperbolehkan mengetuk setelah menjelaskan masalah Anda kepada beruang. Setengah dari siswa tidak pernah mengetuk pintu, setelah memecahkan masalah mereka saat menjelaskannya kepada beruang. Merumuskan pertanyaan yang ditulis dengan baik, diteliti dengan baik, diformat dengan baik, terperinci, berkualitas tinggi di StackExchange dapat memiliki efek yang sama , yaitu (salah satu alasan) mengapa kita begitu anal untuk melakukan hal itu!
Jörg W Mittag

7

Saya pikir ini adalah pertanyaan yang bagus. Dari cara saya menginterpretasikan ini, apa yang saya pikir Anda tanyakan adalah, "Apakah saya boleh secara berkala harus menjauh dari komputer"?

Saya tidak berpikir bahwa ada hari yang berlalu di mana saya tidak harus bangun dan bertanya kepada orang lain apa yang mereka pikirkan, atau mengeluarkan selembar kertas gores dan menuliskan persamaan untuk menyelesaikan masalah. Juga, ketika Anda mendapatkan lebih banyak ke pemrograman, Anda tidak akan mungkin bahkan tidak mulai menulis kode sampai Anda telah membuat diagram / arsitektur sebelumnya.

Saya mengambil kursus struktur data ketika saya masih di perguruan tinggi, dan mengalami kesulitan merancang algoritma penyortiran. Ketika saya meminta bantuan profesor saya, dia tahu bahwa saya belum memikirkan masalah sebelumnya. Hal pertama yang dia katakan kepada saya adalah bahwa saya belum siap untuk mulai menulis kode. Jadi dia mengeluarkan selembar kertas dan menggambar beberapa kotak, dan kemudian dia memasukkan angka-angka dari array. Selanjutnya dia menggambar beberapa gambar lagi di mana dia memindahkan kotak-kotak dan menunjukkan kepada saya secara visual bagaimana algoritma penyortiran akan bekerja.

Beberapa hal yang dapat Anda lakukan untuk menjernihkan pikiran dan menyelesaikan masalah:

  • Istirahat
  • Bicaralah dengan seorang kolega
  • Papan tulis masalah / konsep
  • Tidur diatasnya!

Jangan kaget jika Anda bangun di tengah malam dengan solusinya.


1

Saya pikir itu pasti akan membantu untuk menjadi programmer / pengembang profesional yang efisien jika Anda bisa. Namun, memikirkan masalah saat menerjemahkan solusi ke dalam logika program IMHO perlu pelatihan, jadi saya tidak melihat masalah jika Anda membuat serial tugas-tugas ini - Anda hanya perlu dapat menyelesaikan keduanya dengan sukses. Memikirkan solusi dari awal hingga akhir sebelum mulai kode pasti ada manfaatnya, tetapi Anda harus menjadi karakter yang agak sabar untuk ini.

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.