it-swarm-vi.com

Điều gì phân biệt các lập trình viên đặc biệt từ những người thực sự tốt?

Bạn biết họ là ai. Họ là những ngôi sao nhạc rock của lập trình:

  • Họ mã 10X nhanh hơn.

  • Mã của họ chỉ hoạt động.

  • Họ không chỉ biết ngôn ngữ chính của họ từ trong ra ngoài, mà họ còn biết nó hoạt động như thế nào dưới mui xe.

  • Họ biết câu trả lời cho hầu hết mọi câu hỏi trước khi bạn hỏi nó.

  • Một vài trong số họ đã phát minh ra các nguyên tắc lập trình mà tất cả chúng ta đều sử dụng.

  • Và họ cũng có xu hướng khiêm tốn.

Những gì về những người này? Có điều gì đó về quá trình suy nghĩ của họ về cơ bản khác với lập trình viên trên trung bình? Hay họ chỉ đơn giản là những người rất tài năng làm việc chăm chỉ?

Nói cách khác: Làm thế nào tôi có thể giống họ? Tôi biết những gì tôi nghĩ tôi cần phải học để trở nên tốt như vậy, nhưng có vẻ như tôi sẽ mất mười năm tiếp theo để học nó, và sau đó kiến ​​thức của tôi sẽ bị lỗi thời.

59
Robert Harvey
  • Humble : Một lập trình viên đặc biệt sẽ không bao giờ tuyên bố mã của họ là tốt nhất, thực tế họ sẽ luôn tìm kiếm một cách tốt hơn (Mọi cơ hội họ nhận được.) .

  • Bệnh nhân : Một lập trình viên đặc biệt sẽ có sự kiên nhẫn vô biên (Điều này không có nghĩa là họ sẽ lãng phí nhiều ngày cho một vấn đề. Xem: Trình khắc phục sự cố) .

  • Trình khắc phục sự cố : Một lập trình viên đặc biệt sẽ có thể giải quyết vấn đề trong vài phút có thể mất nhiều ngày cho lập trình viên trung bình của bạn.

  • Tò mò : Một lập trình viên đặc biệt sẽ không thể cưỡng lại việc cố gắng tìm hiểu tại sao điều gì đó xảy ra.

  • Kỹ sư : Một lập trình viên đặc biệt sẽ thiết kế các hệ thống thay vì kết hợp một mớ hỗn độn của các khung (Điều này không có nghĩa là họ sẽ không sử dụng các khung.) .

88
ChaosPandion

Bạn đánh vào nó rất nhiều trong điểm đạn cuối cùng của bạn:

"Và họ cũng có xu hướng khiêm tốn một cách bất thường."

Tôi nghĩ đó là sự kết hợp của sự khiêm tốn - không chỉ bên ngoài mà còn trong tâm trí họ. Họ chấp nhận sai lầm, phạm sai lầm và có một bước ngoặt rất nhanh từ sự thất vọng. Rất nhiều lập trình viên sẽ thử một cái gì đó, thất bại, và sau đó nhận được rất nhiều cảm xúc khá nhanh chóng, một trạng thái vô cảm để viết mã tốt. Bạn phải chấp nhận rằng bạn không hoàn hảo, và bạn sẽ làm hỏng (thường xuyên!), Và điều tốt nhất bạn có thể làm là học cách phục hồi nhanh chóng khi bạn làm hỏng việc. Thật là khiêm tốn tự tin, như "Tôi biết tôi sẽ gây rối, nhưng tôi cũng biết nếu tôi tiếp tục cố gắng, cuối cùng tôi sẽ đến đó."

Có một câu nói trong NLP, "Không có thất bại, chỉ có phản hồi." Để trở thành một lập trình viên ngôi sao nhạc rock, tôi nghĩ bạn phải nắm lấy điều đó. Không có gì bạn không thể mã. Ban đầu bạn có thể chậm chạp, nhưng nếu bạn cứ cố gắng và từ chối dừng lại khi bạn thất bại hoặc làm hỏng điều gì đó, bạn sẽ giao hàng. Và trong quá trình đó, bạn sẽ học được tất cả các thủ thuật tinh thần mà bạn cần để trở thành một trong những người giỏi nhất.

Lời khuyên là, tất nhiên, chỉ tốt như nguồn của nó, vì vậy ... tất cả chỉ là ý kiến ​​của tôi.

28
Pax Noctis

Họ quan tâm sâu sắc về mã của họ.

25
JaredPar

Cá nhân, những lập trình viên giỏi nhất mà tôi biết/biết đều hiểu những điều cơ bản và KHÔNG phải là chuyên gia trong bất kỳ ngôn ngữ nào. Họ chỉ đơn giản là có đủ kinh nghiệm về mọi thứ. Kinh điển "Jack của tất cả các giao dịch."

Nó là nhiều hơn khoa học nền tảng, có giá trị đáng kể trong kinh nghiệm trong hoạt động thực tế. Các ví dụ, những người hiểu triết lý Unix và do đó có thể giải quyết các vấn đề chưa biết bằng các công cụ khác nhau được đưa ra (IOW họ biết nơi cần tìm) vượt xa giá trị Java chuyên gia mã hóa một giải pháp song song và có luồng.

Các lập trình viên xuất sắc cũng tôn trọng những người đến trước họ. Họ không ghét các mô hình dữ liệu quan hệ hoặc co rúm khi họ thấy SQL là một API chính thức, cũng không chùn bước tại FORTRAN trong toán học. Họ biết rằng OO không phải là cuối cùng, và trên hết hiểu rằng lập trình là một NGHỆ THUẬT, không phải là một khoa học.

15
Jé Queue

Khi tôi mới bắt đầu, tôi đã làm việc với anh chàng này, người mà tôi nghĩ là hoàn toàn xuất sắc trong mọi thứ anh ta làm về mặt lập trình. Anh ta hoàn toàn có thể vẫn còn, nhưng giờ anh ta đã trở thành giám đốc của một công ty ở Đông Nam Á.

Dù sao, anh ấy giữ mọi thứ đơn giản, và những thứ đơn giản hoạt động. Không bao giờ muốn viết nhiều dòng mã hơn mức cần thiết, mọi thứ anh ta vừa làm. Tôi đã chơi đuổi kịp một năm chỉ để đến gần cấp độ của anh ấy. Mặc dù vậy, điều khác là thời gian. Anh ấy đã làm việc lâu hơn nhiều so với tôi lúc đó và anh ấy có cơ hội hỏi đi hỏi lại những câu hỏi chính xác này, cho đến khi anh ấy biết (dường như) tất cả các câu trả lời.

Anh cũng không ngại đặt câu hỏi. Tôi nghĩ đó là điều lớn nhất.

11
user2358

Ma trận năng lực lập trình viên

Nhiều chủ đề để giúp xác định mức độ của bạn về các chủ đề lập trình.

10
Maniero

Tôi đã học được câu trả lời cho câu hỏi này trong một cuốn sách về Texas Hold'em poker, nhưng nó áp dụng cho tất cả các nỗ lực gây nản lòng. Các lập trình viên tốt nhất không bao giờ đi nghiêng. Tiếp tục Nghiêng là thời gian mà một cái gì đó không hoạt động như bạn mong đợi và bạn phản ứng theo cách tạo ra các lỗi theo cấp số nhân trong ứng dụng tổng thể. Trong giải đấu poker, nó khiến bạn đặt cược xấu và bị loại.

Trong lập trình, độ nghiêng khiến bạn phải nhổ tóc và viết các đoạn mã lố bịch chỉ hoạt động trong một số trường hợp nhất định của ứng dụng. Nghiêng khiến các lập trình viên bỏ qua các nhu cầu của toàn bộ dự án, nắm bắt sự hài lòng ngay lập tức để giải quyết vấn đề trước mắt ngay bây giờ. Thường thì vấn đề được giải quyết hôm nay, nhưng ứng dụng phải chịu vào ngày mai.

Các lập trình viên giỏi nhất lấy khái niệm nghiêng và quản lý nó theo cách cho phép họ nhìn nhận vấn đề từ góc nhìn bên ngoài, luôn luôn. Nếu thất bại hãy uống một ít caffeine.

7
JMC

Lập trình viên đặc biệt:

  • Quan tâm đến mã của họ
  • Quan tâm đến người dùng sử dụng mã của họ
  • Quan tâm đến những người sẽ duy trì mã của họ
  • Quan tâm đến năng suất
  • Quan tâm đến quá trình, không chỉ sản phẩm

Hai điều về yếu tố "10 x":

  1. Nó phải được áp dụng từ đầu đến cuối. Không có mã viết tốt nhanh hơn gấp 10 lần nếu phải mất gấp 10 lần để kiểm tra, làm lại và bảo trì.
  2. Tôi tin rằng yếu tố "10 x" là sự phản ánh mức độ nghèo nàn của một số lượng lớn các lập trình viên thay vì làm thế nào một số lượng nhỏ các lập trình viên giỏi.
6
darreljnz

hầu hết trong số chúng có vẻ dè dặt và không có gì đặc biệt .. một số trong số chúng trông cực kỳ thông minh .. chúng thích kiểm tra/gỡ lỗi mọi thứ hai lần từ mọi quan điểm có thể, phần mềm của chúng là không có lỗi trong thế giới: p IMO một số lập trình viên có thể chậm hơn, nhưng chất lượng tốt hơn, ngay cả những người bình thường cũng có thể hiểu phần mềm của họ hoạt động như thế nào!

tôi có một người bạn đã viết chương trình ASM đầu tiên của mình vào năm 10 tuổi, bây giờ anh ấy 24 tuổi, không học xong đại học, nhưng điều đó không ngăn anh ấy tạo ra công ty của riêng mình, kiếm được hàng triệu :) nhưng từ những gì tôi thấy anh ấy khéo léo trong mọi thứ :)

lập trình viên đặc biệt rất có thể sẽ nói mã này có thể được mã hóa theo cách khác tốt hơn thay vì nói nó hoàn toàn sai một danh tiếng lập trình viên khác thấp hơn :)

"Những người này thì sao? Có điều gì về quá trình suy nghĩ của họ khác về cơ bản với lập trình viên trên trung bình không? Hay họ chỉ đơn giản là những người rất tài năng làm việc chăm chỉ?"

tôi nghĩ rằng họ được sinh ra theo cách đó, bên trong DNA của họ: p tôi không biết về quá trình suy nghĩ của họ, nhưng lập trình viên giỏi nhất tôi từng biết bị động kinh

3
shegy

Vài điều khác biệt một đặc biệt với một điển hình.

Ngoại trừ :

  1. Rất đam mê công việc của mình và cố gắng để cung cấp một tác phẩm tổng thể.

  2. Hiệu suất và chất lượng là bức tranh lớn trong tâm trí của họ ngay cả trước khi mã hóa bắt đầu.

  3. Họ nghĩ về sự cải tiến liên tục sau mỗi lần phát hành.

  4. Họ giữ cảnh giác nghiêm ngặt về các lựa chọn thay thế và là những người chấp nhận sớm.

  5. Chủ đề của họ trong cuộc sống chuyên nghiệp là: "Viết ít truyền tải hơn".

  6. Họ cứ nghĩ về quan điểm logic ngay cả khi không viết mã.

Điển hình

  1. Đôi khi hơi đam mê nhưng phấn đấu để cung cấp bởi vì đó là một công việc sau khi tất cả. Nếu nó không phải là một kiệt tác, nó ổn. Ít nhất là giao đúng hẹn.

  2. Sẽ nghĩ về hiệu suất sau này, dù sao thì PC cũng đủ nhanh trong những ngày này.

  3. Chỉ cải thiện khi không còn lựa chọn nào để cứu một công việc.

  4. Không có thời gian để đào sâu vào các công nghệ khác. Bám sát những gì công việc của bạn yêu cầu bây giờ. Sẽ học những thứ khác khi có nhu cầu.

  5. Chủ đề của họ là: "Làm những gì được yêu cầu và về nhà kịp thời".

3
RPK

Các lập trình viên đặc biệt áp dụng Nguyên tắc Spartan .

Hình ảnh thu hút sự chú ý:

enter image description here

Bài viết này: http://willcode4beer.com/design.jsp?set=codeRedraction

Và trích dẫn này:

Bất kỳ kẻ ngốc nào cũng có thể làm cho mọi thứ lớn hơn, phức tạp hơn và bạo lực hơn. Nó cần một chút thiên tài - và rất nhiều can đảm - để đi theo hướng ngược lại. - Albert Einstein

2
Ates Goral

1 - Họ biết những gì bị cắt đứt khi đối mặt với đường chết.

0
Gedean Dias

Tự quảng cáo, và ý tôi là theo cách tốt nhất có thể. Có một công việc như lập trình, đặc biệt là trong một nhóm, có nghĩa là không rõ ràng ngay lập tức nơi đóng góp cá nhân của bạn phù hợp với bức tranh lớn, hoặc ai chịu trách nhiệm cho bit nào. Những người chúng ta nghe và tìm hiểu về "những lập trình viên vĩ đại" là IMO, những người đã thành thạo nghệ thuật làm cho những đóng góp của họ được biết đến mà không có vẻ tự cao tự đại hay tự cho mình là trung tâm. Trong nhiều trường hợp, điều này là bằng cách tạo ra các công cụ, thư viện và phần mềm mà phần còn lại của chúng tôi dựa vào để kiếm bánh mì hàng ngày của chúng tôi.

0
Gaurav

Bài viết liên quan rất tốt: Electron miễn phí (từ randsinrepose.com)

Tôi xin lỗi vì đã không tóm tắt bài báo ở đây, nhưng các điểm không dễ dàng tách khỏi văn xuôi.

0
Nicole

Có chất lượng của động lực và quyết tâm của bản thân cũng như có sẵn sàng đi vào vực thẳm của những điều chưa biết và thoải mái với việc hoàn toàn bối rối vì một phần của quá trình là rất lớn. Nó không quá nhiều về thông minh ban đầu như bạn nghĩ bởi vì bộ não trở nên tốt hơn nhiều ở những điều nó luôn làm và suy nghĩ. Tôi đến từ không có gì ở trường đại học và sau đó trở nên rất tốt chỉ bằng sự kiên trì, không bao giờ bỏ cuộc, là anh chàng luôn gặp rắc rối khi tất cả những người khác cảm thấy mệt mỏi khi cố gắng tìm ra nó. Sau kiểu kiên trì đó, các vấn đề trở nên ngày càng dễ dàng hơn và xuất phát từ việc trở thành người không tốt trong trường đại học đến việc khiến hầu hết trong số họ phải xấu hổ vào thời điểm này. Tài năng tuyệt vời là không đủ và đôi khi có thể dẫn đến việc nghỉ ngơi trên vòng nguyệt quế của bạn.

Ngoài ra, với Robert Harvey, bạn tiếp tục đọc các bài đăng của tôi khi tôi đề cập bất cứ điều gì liên quan đến CMS của tôi mà tôi đã viết từ đầu. Bạn thấy một số liên kết khác liệt kê các liên kết mà họ có thể hoặc không thể viết. Bạn đang đẩy mọi người xuống mà tự thúc đẩy mình, điều đó thật mỉa mai khi bạn đăng bài này. Bạn là "người đàn ông" trong vũ trụ nhỏ bé này và không đọc những điều về công trạng của họ, thay vào đó chỉ là nháy mắt và xóa đi ý thích của bạn. Bạn cũng yêu thích Star Wars quá nhiều và có thể vẫy tay với cánh cửa tự động mở tại cửa hàng tạp hóa loại tin rằng bạn có lực lượng.

0
Joonha

Họ lập trình hoàn toàn dựa vào trực giác. Không cần nghĩ nó chỉ chảy.

0
John Shaft

nhưng có vẻ như tôi sẽ mất mười năm tiếp theo để học nó, và sau đó kiến ​​thức của tôi sẽ bị lỗi thời.

Nó sẽ. Bạn đã xác nhận rằng những người này nhanh hơn gấp 10 lần, đó là lý do tại sao họ học nó sau 1 năm và bạn phải mất 10. Đối với phần nghiêm trọng của câu trả lời tôi nghĩ rằng họ đã rất thông minh (có thể rất thành công bất cứ điều gì), họ yêu thích mã hóa, và vì một số lý do, họ có (hoặc tìm thấy) rất nhiều thời gian rảnh để thực hành mã hóa hoặc làm việc trên các dự án cá nhân.

Nếu bạn đang hỏi câu hỏi này ở đây thì có lẽ bạn không có gì cả (đừng lo lắng tôi đang trả lời ở đây nên có lẽ tôi cũng không biết). Đừng băn khoăn mặc dù bạn vẫn có thể trở nên điên rồ tốt nếu bạn yêu thích tiền mã hóa.

0
Kevin

Có rất nhiều bài viết có chủ ý tốt ở đây về Khiêm tốn, Kỹ thuật, Đam mê, Bệnh nhân, Khắc phục sự cố. IMO đây là tất cả các yêu cầu. Tuy nhiên, họ mô tả 30% lập trình viên hàng đầu.

Tôi nghĩ rằng bạn đang hỏi về các lập trình viên thực sự đặc biệt, 1% hàng đầu.

Một trong những điều mà tôi ghen tị về tài năng rất hiếm khi tôi làm việc là khả năng giữ một rất lớn số tiền chi tiết về một hệ thống phức tạp trong đầu của họ cùng một lúc, và để có thể nhớ lại nó một cách nhanh chóng. Tôi nghĩ rằng tôi có thể làm điều này vào dịp nào đó, có thể mỗi tháng một lần, khi tôi thực sự ở trong khu vực. Cảm giác này thật tuyệt vời. Nhà phát triển mà tôi nghĩ dường như có thể ở trong khu vực đó hầu hết thời gian .

Chính đặc điểm này, IMO, ngoài khả năng Khiêm tốn, Tò mò, Kỹ thuật, Đam mê, Kiên nhẫn và Khắc phục sự cố khiến chúng thực sự đặc biệt.

0
Kyle Hodgson

Các lập trình viên đặc biệt có ảnh hưởng đến một dự án vượt ra ngoài phạm vi mã riêng của họ và phát hiện ra các vấn đề trước khi chúng xảy ra do kinh nghiệm của họ. Họ làm cho tất cả mọi người trong nhóm tốt hơn và cứu các dự án của họ khỏi thiết kế và quản lý tồi.

Họ thực sự đã tạo ra một cái gì đó đặc biệt.

0
JeffO