Có ổn không nếu tôi không thể giải quyết vấn đề khi ngồi trước máy tính? [đóng cửa]


12

Tôi là một lập trình viên sở thích và một người mới bắt đầu. Hầu hết thời gian, tôi không thể giải quyết vấn đề khi ngồi trước máy tính. Ví dụ, tôi đã cố gắng tìm hiểu xem một số có phải là sức mạnh của số khác không. Tôi không thể tìm ra giải pháp cho đến khi tôi lấy một cây bút và một tờ giấy sau đó phân tích vấn đề. Trong khoảng 3 phút tôi đã giải quyết nó và viết kịch bản bằng Python.

Đôi khi tôi có thể giải quyết vấn đề khi ngồi trước máy tính, nhưng với một số khó khăn. Ổn chứ?


6
Đối với tôi điều này không quá tệ đối với một vấn đề và trên thực tế có rất nhiều người nhìn chằm chằm vào máy tính quá nhiều, cuối cùng không nhận ra họ có vấn đề này ở mức độ thấp hơn. Rất nhiều chương trình chuyên nghiệp sẽ liên quan đến những thay đổi rất vẹt thay vì các công thức logic phức tạp thường được đưa ra như bài tập về nhà, và sẽ không có vấn đề gì nếu bạn ít nhất có thể hoàn thành chúng.
Katana314

2
Tôi nghĩ rằng bạn có thể chỉ muốn sắp xếp lại câu hỏi của bạn để nó có ý nghĩa hơn về lập trình.
Snoop

8
Điều này là hoàn toàn chủ quan. Mọi người học và làm việc khác nhau. Hãy làm những gì cho bạn.

7
Trước máy tính có thể là nơi tồi tệ nhất để cố gắng giải quyết vấn đề, bởi vì bạn quá bị cám dỗ để bắt đầu gõ khi bạn nên suy nghĩ. Thường thì cách lấy máy là tốt hơn vì nó buộc bạn phải suy nghĩ không hành động . Hầu hết các vấn đề khó khăn nhất của tôi đã được giải quyết đi bộ đến văn phòng vào buổi sáng.
Gort Robot

2
Ngoài ra còn có câu hỏi về vấn đề khó khăn như thế nào. Khi bạn có thêm kinh nghiệm, một số vấn đề khó khăn bây giờ sẽ trở nên dễ dàng. Nhưng điều đó chỉ có nghĩa là bạn có thể giải quyết những vấn đề khó khăn hơn. Đối với bản thân tôi, tôi giải quyết rất nhiều vấn đề thực sự khó khăn của mình khi đi bộ đường dài hoặc trượt tuyết xuyên quốc gia.
jamesqf

Câu trả lời:


34

Tôi có xu hướng giải quyết những vấn đề khó khăn nhất của mình:

  • Trước một bảng trắng (đôi khi không cần vẽ gì cả - chỉ nghĩ về cách hình dung một vấn đề đôi khi có thể dẫn đến một giải pháp)
  • Trong khi giải thích chúng cho các đồng nghiệp
  • Nhìn ra ngoài cửa sổ
  • Trong khi đi dạo
  • Dưới vòi hoa sen
  • Trên nhà vệ sinh

Đi ra khỏi màn hình thường rất hữu ích cho việc tập trung vào chính vấn đề và không chỉ đơn giản là gõ ra một triển khai.

Việc giải quyết vấn đề xảy ra trong đầu bạn. Nhập mã chương trình chỉ là cách bạn giải thích giải pháp của mình cho máy tính.


1
Cảm ơn bạn! Bạn nói đúng, tôi càng rời xa máy tính, tôi càng có thể tập trung vào vấn đề.
Mahmood Muhammad Nageeb

2
Tôi nhớ đã đọc một cuốn sách (không thể nhớ, trong đó, thật không may) đề nghị giữ một con vịt cao su ở bàn của bạn, và khi bạn bị bối rối, hãy mô tả vấn đề thành tiếng với con vịt cao su.
Gort Robot

7
@StevenBurnap Đây được gọi là gỡ lỗi vịt cao su và bạn có thể đọc về nó trong Lập trình viên thực dụng của Addison Wesley.
Philipp

2
"Nhập mã chương trình chỉ là cách bạn giải thích giải pháp của mình cho máy tính." - Alan Perlis nói: "Các chương trình nên được viết cho con người đọc và chỉ tình cờ cho máy móc thực thi." Tôi thà nhìn theo cách này: gõ mã chỉ là cách bạn giải thích giải pháp của mình cho đồng nghiệp . Thực tế là một khi bạn mô tả giải pháp một cách mơ hồ theo cách mà bất kỳ con người nào (bao gồm cả chính bạn, 6 tháng kể từ bây giờ) có thể hiểu nó, nó cũng trở thành thực thi bởi một cỗ máy, chỉ là tác dụng phụ của nó được mô tả nghiêm ngặt đủ để không có sự mơ hồ. Tiết
kiệm

4
Re: vịt cao su. Cũng có một câu chuyện tương tự với một con gấu bông. Những người dạy kèm ở MIT thường ngồi gấu bông bên ngoài văn phòng của họ. Bạn chỉ được phép gõ sau khi giải thích vấn đề của bạn với con gấu. Một nửa số sinh viên không bao giờ gõ cửa, đã tìm ra vấn đề của họ trong khi giải thích nó với con gấu. Xây dựng một câu hỏi được viết tốt, được nghiên cứu kỹ lưỡng, được định dạng tốt, chi tiết, chất lượng cao trên StackExchange có thể có tác dụng tương tự , đó là (một trong những lý do) tại sao chúng ta quá lo lắng về việc đó!
Jörg W Mittag

7

Tôi nghĩ rằng đây là một câu hỏi hay. Từ cách tôi diễn giải điều này, điều tôi nghĩ bạn đang hỏi là "Có ổn không khi tôi định kỳ rời khỏi máy tính"?

Tôi không nghĩ rằng có một ngày trôi qua mà tôi không phải thức dậy và hỏi người khác họ nghĩ gì, hoặc rút ra một mảnh giấy nháp và viết nguệch ngoạc xuống một phương trình để giải quyết vấn đề. Ngoài ra, khi bạn tham gia nhiều hơn vào lập trình, bạn thậm chí sẽ không bắt đầu viết mã cho đến khi bạn đã tạo sơ đồ / kiến ​​trúc trước đó.

Tôi đã tham gia một khóa học về cấu trúc dữ liệu khi tôi học đại học và gặp khó khăn khi thiết kế một thuật toán sắp xếp. Khi tôi hỏi giáo sư của mình để được giúp đỡ, anh ấy biết rằng tôi đã không nghĩ về vấn đề này trước đó. Điều đầu tiên anh ấy nói với tôi là tôi chưa sẵn sàng bắt đầu viết mã. Vì vậy, anh ấy rút ra một mảnh giấy và vẽ một vài hình vuông, và sau đó anh ấy đặt các số từ mảng. Tiếp theo, anh ta vẽ thêm một vài bức ảnh trong đó anh ta di chuyển các ô vuông xung quanh và cho tôi thấy trực quan thuật toán sắp xếp sẽ hoạt động như thế nào.

Một số điều bạn có thể làm để giải tỏa tâm trí và giải quyết vấn đề:

  • Nghỉ ngơi một lát
  • Nói chuyện với một đồng nghiệp
  • Bảng trắng vấn đề / khái niệm
  • Ngủ đi!

Đừng ngạc nhiên nếu bạn thức dậy vào giữa đêm với giải pháp.


1

Tôi nghĩ rằng nó chắc chắn sẽ giúp trở thành một lập trình viên / nhà phát triển chuyên nghiệp hiệu quả nếu bạn có thể. Tuy nhiên, suy nghĩ về một vấn đề trong khi dịch giải pháp thành logic chương trình IMHO cần được đào tạo, vì vậy tôi thấy không có vấn đề gì nếu bạn tuần tự hóa các nhiệm vụ này - bạn chỉ cần có thể hoàn thành thành công cả hai. Suy nghĩ về một giải pháp từ đầu đến cuối trước khi bắt đầu viết mã chắc chắn có giá trị của nó, nhưng bạn cần phải là một nhân vật có phần kiên nhẫn cho việc này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.