Nắm vững một ngôn ngữ lập trình bằng cách không lập trình?


9

Nhà khoa học máy tính Peter Norvig đã lập luận trong bài tiểu luận Dạy bản thân trong chương trình trong 10 năm rằng bạn cần khoảng 10.000 giờ thực hành.

Nhưng Jeff Atwood đã lập luận trong bài viết Làm thế nào để trở thành một lập trình viên tốt hơn bằng cách không lập trình rằng ông tin rằng cách duy nhất để trở thành một lập trình viên tốt hơn là không lập trình.

Những bài viết này là đối lập. Có bằng chứng khoa học nào chứng minh phương pháp của Jeff Atwood không?


12
Tôi không thấy họ trái ngược nhau như thế nào, khi nhìn qua các tiêu đề. Cả hai đều quan trọng, nhưng thực sự lập trình và cũng làm việc trên các kỹ năng phi lập trình được sử dụng trong công việc. Không phải là bạn không nên làm khác. Mỗi người đều nói rằng một điều quan trọng ngoài những điều khác.
Phục vụ

2
Vui lòng chuyển các bình luận meta sang meta, làm ơn. meta.programmers.stackexchange.com/q/6137/53019

Câu trả lời:


28

Bạn đang thiếu điểm.

Jeff Atwood đang nói rằng để trở thành một lập trình viên xuất sắc đòi hỏi nhiều hơn là kỹ năng mã hóa. Nó cũng đòi hỏi phải là một nhà thiết kế giỏi, làm việc tốt với những người khác và nói chung trở thành một người suy nghĩ và giải quyết vấn đề tốt hơn.

Kỹ năng còn thiếu lớn nhất là một người vừa hiểu kỹ về kỹ thuật vừa có mối quan hệ tốt với các kỹ sư cốt lõi và là cầu nối để làm việc với khách hàng.

- Bill Gates

Quan điểm của Peter Norvig là bạn không thể lấy một bản sao "Trở thành lập trình viên chính trong 24 giờ" và mong đợi nó hoạt động. Nhưng đó chính xác là có bao nhiêu người đặt câu hỏi tại Stack Overflow dường như tiếp cận lập trình. Họ nghĩ rằng họ có thể tải lên Eclipse, tìm hiểu một vài từ khóa và viết Angry Birds tiếp theo. Phải mất nhiều hơn một chút.


5
Không, những con chim giận dữ có lẽ giống như 2 hoặc 3 từ khóa lặp đi lặp lại quảng cáo với những bức ảnh hài hước về những con chim. Vâng. Đó là một cơ sở dữ liệu cho các nhà nghiên cứu chim ưng phải không?
Jimmy Hoffa

Chà, nhưng theo một cách nào đó, quan điểm của Peter Norving đề cập đến thực tế "làm chủ" không biết một cách hời hợt (đó là điểm trung tâm của bài viết của ông) ngôn ngữ lập trình. Trên thực tế, Peter và Jeff Atwood được coi là một "bậc thầy". Giống như cách bạn mô tả tư thế Jeff Atwood, tôi mô tả rằng Peter Norving đang nói rằng để trở thành một lập trình viên xuất sắc đòi hỏi rất nhiều mã hóa (với các chủ đề học tập ngầm) và thực hành.
Chương trình PlainOldPro

2
@Wronski: Ah, bạn đã trở lại, tôi hiểu rồi! Rất vui được gặp lại bạn Trong khi bạn đi vắng, chúng tôi đã thảo luận về câu hỏi của bạn, đóng lại và mở lại. Dù sao, vậy bạn đang nói gì, chính xác? Quan điểm của Peter Norving là bạn không thể làm chủ trong 24 giờ hoặc thậm chí 21 ngày. Quan điểm của Jeff Atwood là bạn không thể là một bậc thầy chỉ bằng cách viết mã. Họ đều đúng.
Robert Harvey

@RobertHarvey Tại sao phải đóng và mở lại?. Tôi có nên phiên dịch bài báo Peter Norving một cái gì đó để trở thành một "mã hóa" tốt, và bài viết của Jeff Atwood một cái gì đó để trở thành một "kỹ sư" giỏi? Tôi có chút bối rối.
Chương trình PlainOldPro

1
@Wronski: Thạc sĩ vừa là lập trình viên giỏi vừa là kỹ sư giỏi.
Robert Harvey

10

Phần "Không lập trình" sẽ xuất hiện sau khi thực hành lập trình tốt.

the only way to become a better programmer is by not programming

Bạn phải là một lập trình viên trước khi bạn có thể trở thành một người giỏi hơn. Rào cản học ngôn ngữ lập trình đầu tiên sẽ chiếm rất nhiều nỗ lực một mình và phần giải quyết vấn đề sẽ không đáng kể so với các vấn đề bạn sẽ phải đối mặt sau này.

CẬP NHẬT:

Như đã đề xuất trong các nhận xét, bạn vẫn có thể hưởng lợi từ "không lập trình aka: (suy nghĩ)" khi lần đầu tiên bắt đầu làm lập trình viên nhưng tôi sẽ không rời khỏi bàn phím chỉ vì ai đó nói rằng tôi nên làm điều đó để tốt hơn, thay vào đó bạn nên làm điều đó bởi vì bạn biết bạn cần phải suy nghĩ về nó nhiều hơn.


2
Có lẽ. Nhưng kỹ năng thiết kế không còn xa nữa, ngay cả khi mới bắt đầu; và kỹ năng con người là có giá trị, bất kể khả năng mã hóa của bạn.
Robert Harvey

@RobertHarvey Có, nhưng bài viết của Jeff Atwood dường như đề cập nhiều hơn đến việc giải quyết vấn đề và bước ra khỏi máy tính để suy nghĩ về những gì bạn đang lập trình.
Korey Hinton

2
@KoreyHinton Đó là điều mà nó sẽ hoàn toàn phù hợp với ai đó để làm khi giải quyết vấn đề lập trình đầu tiên của họ. Bạn có thể và nên làm điều đó từ ngày đầu tiên, không phải một khi bạn đã thành thạo, đó là những gì Robert nói.
Phục vụ

1
@KoreyHinton Đó là lý do tại sao không ai (không phải bài viết, cũng không phải bất kỳ ai trong số những người trả lời ở đây) đang nói rằng bạn nên làm chỉ một hoặc khác. Họ nói rằng điều quan trọng là phải làm rất nhiều cả hai, bởi vì các kỹ năng bổ sung cho nhau.
Phục vụ

1
@Wronski Tôi nghĩ rằng Robert đang tranh luận điểm ngược lại rằng các kỹ năng phi lập trình có thể được học trong khi học lập trình lần đầu tiên. Tôi cũng đồng ý với điều này, nhưng tôi mừng vì cá nhân tôi đã không làm phức tạp quá trình học tập ngay từ đầu. Trọng tâm của tôi giống như bạn đề cập ưu tiên với kỹ năng lập trình trước, kỹ năng tư duy thứ hai và bây giờ tôi không ngừng nỗ lực để cải thiện cả hai.
Korey Hinton
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.