Khi ai đó sẽ được coi là một lập trình viên xấu? [đóng cửa]


57

Làm thế nào bạn sẽ xem xét rằng một lập trình viên là xấu ở những gì anh ấy hoặc cô ấy đang làm?

Nếu có thể ... Anh ấy / cô ấy nên cải thiện như thế nào?


3
Bởi vì người nói không chấp nhận câu trả lời trên một trang web liên quan đến lập trình. Đùa :-)
Daniel

1
@EvanKroske: Không, điều đó không đúng .... Cộng đồng Wiki tồn tại để cho phép cộng tác chỉnh sửa bài đăng. Xem thêm: Meta của chúng tôi - Tag: cộng đồng-wiki
Tamara Wijsman

Trong rất nhiều câu hỏi, không thể chấp nhận một câu trả lời. Xem thêm: Meta của chúng tôi - Tìm kiếm: chấp nhận
Tamara Wijsman

Không phải mọi câu hỏi đều nhận được câu trả lời thực sự giải quyết vấn đề.
Loren Pechtel

Câu trả lời:


134

Khi họ không học hỏi từ những sai lầm của họ và từ đánh giá ngang hàng.

Tất cả chúng ta đều xanh ở một số điểm; tuy nhiên, nếu bạn không khá hơn hoặc đang cố gắng cải thiện thì bạn là một lập trình viên tồi.


4
Đồng ý - bạn phải có một vòng phản hồi, luôn học hỏi từ những sai lầm của mình.
Marcel Lamothe

1
@PSU cũng nói. Cũng giống như bất kỳ nghề thủ công nào, lập trình viên là những người giao dịch và không hoàn hảo, luôn học hỏi nhưng nếu bạn không học hỏi từ những sai lầm thì bạn không cải thiện được nghề của mình.
Chris

2
Đó là một định nghĩa rất rộng; nó không giới hạn cho các lập trình viên. Nó áp dụng cho các nhà khoa học, đầu bếp, thể thao, dịch giả, người gác cổng, nhiếp ảnh gia, và thực sự bất kỳ nghề nghiệp.
RegDwight

13
Mọi người đều là kẻ ngốc ít nhất một lần một tuần.
MIA

@RegDwight: và quan điểm của bạn là ...?
SamB

125

Một lập trình viên không biết những gì anh ta không biết và không quan tâm chút nào để tìm hiểu.


16
Nếu tôi có thể nâng cấp 100x này, tôi sẽ làm thế. Một chút khiêm tốn và khao khát học hỏi sẽ bù đắp rất nhiều trong thời gian dài.
William Pietri

1
+1 cho Ngu và William cũng vậy. Đây là tiêu chí tiêu biểu nhất của một "lập trình viên" tồi.
fabrik

Điều gì xảy ra khi bạn biết rằng bạn không biết RẤT NHIỀU và khó như bạn cố gắng, bạn sẽ không bao giờ biết hầu hết về điều đó?
Steven Evers

@snOrfus, bạn tìm một người cố vấn để dạy bạn ...

75

Một dấu hiệu cảnh báo lớn là nếu họ là một lập trình viên "sùng bái hàng hóa" - nghĩa là họ làm mọi việc nhưng không biết tại sao họ làm những việc đó (đó chỉ là "ma thuật"). Bài viết tuyệt vời của Eric Lippert ở đây .

Từ bài viết:

lập trình viên, những người hiểu những gì mã làm, nhưng không làm thế nào nó làm điều đó.

3
* và đã được mã hóa trong công nghệ đó được một thời gian
Joe Phillips

5
Điều này sẽ áp dụng cho hầu hết tất cả các lập trình viên đã từng thực hiện một số phát triển web với các khung như Java / Spring hoặc Ruby on Rails. Những khung đó chứa đầy ma thuật đen mà các lập trình viên bình thường thường không bận tâm để hiểu.
missingfaktor

3
@Missing Faktor - và do đó, sẽ không chính xác khi nói rằng hầu hết các lập trình viên làm điều đó, không phải là lập trình viên tuyệt vời :)
seanmonstar

14
Một lần nữa, thật phi thực tế khi cho rằng các lập trình viên nên hiểu đầy đủ hoạt động bên trong của khung, máy ảo hoặc bất cứ thứ gì họ đang xây dựng mã. (Hoặc, thực sự, chi tiết của tất cả các lớp trừu tượng bên dưới, cho đến khi đạt được kim loại trần.) Bạn có thể là một lập trình viên hoàn toàn tốt, năng suất ngay cả khi bạn chỉ biết những phần có liên quan nhất.
Jonik

4
@Missing Faktor: họ có thể không hiểu nội bộ của các thư viện và khung mà họ sử dụng chính xác, nhưng ít nhất họ nên biết mỗi thứ trong mã của họ là gì: "để đánh cắp frobber", bởi vì tài liệu nói rằng đây là cần thiết để duy trì tính toàn vẹn của tính liên tục trong không gian thời gian ", v.v.
SamB

45

Một lời khuyên lớn cho tôi là khi họ hỏi bạn hoặc các câu hỏi phát triển lập trình viên khác cho thấy rõ ràng họ đã nỗ lực hoàn toàn bằng không để tự mình tìm ra.

Một hệ quả là khi họ hỏi cùng một câu hỏi lập trình nhiều lần cho thấy họ không tiếp thu thông tin.


À vâng, tôi đã làm việc với anh ta. Thì quá khứ, may mắn thay.
Mike Woodhouse

1
Một số thậm chí không thể tạo thành các câu hỏi hay, yêu cầu bạn "chỉ sửa nó"
deltreme

21

Khi họ mất nhiều thời gian để giải quyết vấn đề FizzBuzz.


1
Tôi nghĩ rằng có thể có một số người mới bắt đầu có tiềm năng trở thành lập trình viên giỏi - những người gặp rắc rối với nó.
JD Isaacks

2
Người mới bắt đầu là tốt nếu bạn đang tìm kiếm lập trình viên cơ sở, những người bạn có ý định nhào nặn và định hình thành một người tốt. Nhưng vấn đề đó rất tầm thường, nó không nên lấy bất cứ ai có kinh nghiệm bất cứ lúc nào để viết.
Matt DiTrolio

8
Tôi sẽ lập luận rằng không nên mất nhiều thời gian để giải quyết vấn đề này.
EpsilonVector

4
Nếu người mới bắt đầu không thể giải quyết FizzBuzz, anh / cô ấy không nên nộp đơn xin việc lập trình. Nếu bạn tuyên bố có thể lập trình (ví dụ: bằng cách xin việc lập trình), bạn sẽ có thể giải quyết FizzBuzz.
Chinmay Kanchi

1
Câu hỏi về Stackoverflow trên FizzBuzz rất đáng xem. Kiểm tra giải pháp python không sử dụng phép chia hoặc mô đun. stackoverflow.com/questions/437/ cường
Gordon

21

Các lập trình viên từ chối học các công nghệ / ngôn ngữ mới và khăng khăng bám vào những gì họ đã biết.


Phụ lục: (thêm những gì gạch ngang nói dưới đây trong các bình luận)

Một phần mở rộng của điều này là những người biết một tập hợp con về chức năng của một số công nghệ nhưng không muốn tìm hiểu thêm về nó. Ngôn ngữ lập trình, trình soạn thảo, các công cụ khác ...


6
... Và không có lý do chính đáng, tôi nên thêm vào.
missingfaktor

18

Khi một thành viên trong nhóm là nhà phát triển sản xuất tiêu cực .

|# Lines Written| - |# Lines of bugs introduced| - |# Lines of rework required| < 0

Có nghĩa là phần còn lại trong nhóm của bạn phải làm nhiều việc hơn vì nhà phát triển tồi. NNPP


1
Tôi đồng ý - những người này có thể cực kỳ gây hại cho đội của họ.
Marcel Lamothe

44
Hả ... tôi đã xóa 500 dòng mã dự phòng ngày hôm qua và không giới thiệu lỗi. Số liệu LỘC được coi là có hại?
Piskvor

5
Hầu hết các số liệu là khủng khiếp, và số liệu LỘC thường là vô dụng. Vấn đề ở đây là một lập trình viên tồi là người tạo ra nhiều công việc cho nhóm hơn là do anh ấy / cô ấy hoàn thành.
danivovich

5
Số liệu LỘC không vô dụng. Họ là HẠNH PHÚC. Bên cạnh đó, việc đếm LỘC rất khó khăn trong hầu hết các ngôn ngữ hiện đại. Nhưng, số liệu không phải là điểm ở đây. Nó chỉ nói | Làm việc để tạo ra | - | Công việc sai | - | công việc để khắc phục Thời gian thực sự là những gì bạn đang cố gắng để có được dù sao.
MIA

1
Số liệu LỘC là một cách tuyệt vời để đo xem có bao nhiêu lỗi phải ẩn nấp.
SamB


15

Khi họ biết có những cách tốt hơn để làm mọi thứ nhưng vẫn từ chối làm chúng ngay cả khi thời gian cho phép.


Nhưng có thể có những bất đồng của chuyên gia về những gì "tốt hơn".
DarenW

@DarenW - Tôi sẽ không nói ai đó là một lập trình viên tồi bởi vì họ đứng về một chủ đề gây tranh cãi, nhưng khi họ có một sự lựa chọn dứt khoát trong tâm trí của chính họ.
JeffO

15

Cá nhân tôi nghĩ rằng bất kỳ lập trình viên nào có thể nhìn vào mã của riêng họ mà họ đã viết cách đây một thời gian và không tìm thấy điều gì sai với nó không phải là một điều tốt. "Một thời gian" có thể mở rộng theo kinh nghiệm ... Tôi muốn nói trong khoảng vài tuần cho đến một năm hoặc lâu hơn.


5
Điều gì xảy ra nếu họ không thể tìm thấy bất cứ điều gì sai, và điều đó làm họ lo lắng?
SamB

1
Hoặc tệ hơn, họ không thể tìm thấy bất cứ điều gì sai và cố gắng sửa nó.
Toon Krijthe

15

Những người bỏ qua cảnh báo về mã của họ và chỉ quan tâm đến lỗi.


14

Khi tôi là trưởng nhóm trong một cửa hàng nhỏ, có một vài người mà tôi phải phân công lại (cả tôi và người giám sát trực tiếp của tôi đều không có khả năng chấm dứt mà không có một tấn Băng đỏ và một đống tài liệu.) Hoặc không được gia hạn hợp đồng. vào cuối của sự tham gia hiện tại. Một số loại được liệt kê cũng làm việc cho các trưởng nhóm khác, và họ cũng có cùng quan điểm. Những điều đưa mọi người vào danh mục "Lập trình viên xấu" trong cuốn sách của tôi:

  1. Không thể kiểm soát hoặc Ossified trong quá khứ
    Khi 'lập trình viên' dường như không thể tiếp thu hệ thống mới, công cụ mới hoặc bất cứ điều gì đang được triển khai, bất kể việc đào tạo / giáo dục được thực hiện như thế nào. Phải lặp lại nói đào tạo một cách thường xuyên.
    Khi 'lập trình viên' chỉ biết mô hình công nghệ hoặc mã hóa mà họ đã sử dụng 10 hoặc 15 năm trước. Thế là đủ tốt rồi, vậy tại sao họ phải thay đổi?
  2. Cowboy coder
    Người mã hóa đầu tiên, không có kế hoạch. 'Lập trình viên', người thực hiện các thay đổi chưa được kiểm tra đối với mã sản xuất và / hoặc dữ liệu "bởi vì chúng tôi phải sửa nó ngay bây giờ" và sau đó rất ngạc nhiên khi "sửa lỗi" không thành công.
    Cowboy cũng chắc chắn không phải là một người chơi theo đội. Không cần không có đội ngũ của stinkin.
  3. Thời tiết-cánh
    này 'lập trình' là say mê với "công nghệ du jour " và nhìn thấy tất cả các khuôn khổ mới, ngôn ngữ, phương pháp hoặc bất cứ điều gì là mới và nóng như
  4. "Bộ não lớn"
    'lập trình viên' này rất chắc chắn về tài năng và khả năng của anh ấy đến nỗi mọi thứ được thực hiện mà không có nhiều ý nghĩa của dự án. ví dụ: Viết lại một thư viện chuẩn "bởi vì nó không hiệu quả đối với hệ thống của chúng tôi" hoặc giới thiệu các công cụ và kỹ thuật không phù hợp với vấn đề hiện tại. ví dụ: Giới thiệu Lisp hoặc Forth trong môi trường máy tính lớn.
  5. LỘC a. Sandbagger
    'lập trình viên' này sử dụng obfuscation và hướng sai để tăng a. LỘC: Dòng mã được trả tiền. Tôi đã thấy mã trong tình huống này là trang sau trang, màn hình sau màn hình của cấu trúc và logic trùng lặp, chỉ với các tên biến đoạn hoặc điều khiển được thay đổi để tăng số lượng dòng.
  6. Chuyên gia không thể thiếu
    'Lập trình viên' có kiến ​​thức về miền để giải quyết các vấn đề trong tay, nhưng vì họ "biết" mọi thứ về nó. Như một vấn đề thực tế, nếu họ bị xe buýt đâm, thì toàn bộ tổ chức sẽ sụp đổ. { Quan sát: Những người nghĩ rằng họ không thể thiếu thường là. (Bất cứ ai cũng có nguồn về câu cách ngôn này?)}
  7. Đầu bếp Pasta
    'lập trình viên' này chuyên về mã spaghetti, được thêm vào các mã định danh quá khó để theo dõi nếu không có IDE được triển khai theo cú pháp. ví dụ: IndexI1O0, Index1I0O, v.v.
  8. Thực tập mùa hè - Cụ thể là tiểu cảnh đi bộ Thảm họa
    Cửa hàng cũ của tôi đã từng thuê một số thực tập sinh cuối cấp trung học hoặc đại học. Một lần, một bộ phận cần một cơ sở dữ liệu nhỏ để theo dõi một số cách sử dụng thiết bị, (bây giờ điều này đã trở lại và nó đang sử dụng dBase III). Anh chàng mã hóa suốt mùa hè, nhưng không được thực hiện khi đại học bắt đầu vào mùa thu. Anh ấy được gia hạn thêm một tuần sau đó đến tuần thứ hai. Vào cuối tuần thứ hai, tôi được cử đi nhận dự án của anh ấy và mang nó trở lại Hệ thống phát triển để hoàn thành. Anh chỉ cho tôi những thứ anh đã làm, rồi phần còn dang dở. Những gì đã làm việc có kẹo mắt đẹp, nhưng ứng dụng chưa hoàn thiện. Khi tôi mở hộp đĩa mềm được định dạng mới để lấy bản sao, anh ta nói, "chỉ một giây thôi, để tôi xóa các tệp kiểm tra của mình ..." và trước khi tôi có thể nói bất cứ điều gì, anh ta đã xóa một loạt các tệp.
    Là loại người đáng ngờ và nhận thấy ứng dụng của anh ta gần như không có gì ngoài mắt khi tôi quay lại cửa hàng của mình, tôi quay lại bộ phận và rút Norton ra và xóa các tập tin anh ta đã xóa, cố gắng tìm thêm logic, ngay cả khi không đầy đủ.
    Tôi thấy, logic không tệ, nhưng hành vi xấu. Máy in được gắn vào PC anh đang sử dụng là máy in bánh xe daisy. Bộ ký tự thường được gắn là một biến thể swiss. Đầu ra của các chương trình đã xóa đưa ra một tên, địa chỉ, DOB, một số mã chữ cái và một số loại số id. Các định dạng và bố trí làm phiền tôi. Tất cả các ngày sinh cho nhiều người hầu như không đủ tuổi uống rượu hợp pháp. Hầu hết các địa chỉ không có ở đó, khi tôi tìm chúng trong thư mục chéo của chúng tôi. Khi tôi đưa bản in cho người giám sát của anh ta, anh ta nhìn tôi và nói "Bằng lái xe, anh không nghĩ sao?" Tôi nói tôi đã làm như vậy. Anh ấy nói rằng đó là lý do tại sao anh ấy tìm thấy tất cả các cổ phiếu trong suốt bị cắt trong thùng rác bên cạnh Xerox. Cậu bé hư của chúng tôi đã thực hiện các lớp phủ để điều chỉnh độ tuổi của mình và bạn bè trên giấy phép lái xe. Chúng tôi đã báo cáo với chính quyền.không được trả tiền cho hai tuần qua của mình.

Đây chỉ là một số nhân vật xấu mà tôi đã phải làm việc với ....

/ s / BezantSoft


RE "Những người nghĩ rằng họ không thể thiếu thường là" loại nhắc nhở tôi về en.wikipedia.org/wiki/Ducky%E2%80%93Kruger_effect
DaveDev

10

Không thể tự thích ứng với các công nghệ sắp tới


10

Ngoài việc thiếu kiến ​​thức / khả năng rõ ràng, một lập trình viên là một người xấu, nếu mã của họ khó đọc và / hoặc duy trì hơn mức cần thiết.


1
Và lập trình viên là một người thực sự tồi tệ khi anh ta không thể đọc được một đoạn mã được viết tốt :-)
Maniero

4
Đây sẽ không phải là gần như tất cả mọi người? Ý tôi là, mã không phải lúc nào cũng khó đọc và / hoặc duy trì hơn mức cần thiết?
SamB

Không. Mã luôn dễ viết hơn đọc. Nhưng tôi đã phải duy trì một số mã được viết rất tốt để giảm nỗi đau này càng nhiều càng tốt.
Chinmay Kanchi

10

Khi không ai khác có thể đọc mã của mình. Không quan trọng bạn sáng đến mức nào; không có lập trình viên là một hòn đảo.


Chà, nếu anh ấy viết ở Unlambda, không ai có thể đọc nó.
SamB

Ngoài ra, khi một lập trình viên mất rất ít thời gian để làm một cái gì đó ban đầu và sau đó rất nhiều thời gian để thực hiện một số tùy chỉnh về điều đó. Tôi thường thấy điều này xảy ra bởi vì lập trình viên chủ yếu sao chép mã pastes (đó là lý do ban đầu rất nhanh), nhưng sau đó mất rất nhiều thời gian vì rất khó (ngay cả đối với các lập trình viên giỏi) để thay đổi nó từ đó vì không có ý định để viết mã tùy chỉnh vào đầu.
Sandeepan Nath

7

Một người không chú ý đến các chi tiết và luôn ở chế độ "nó hoạt động, vì vậy tôi để nó một mình. Tất cả những ngoại lệ trong nhật ký không quan trọng".


7

Có hai loại dành cho lập trình viên cho tôi - solo và team.

Lập trình viên solo tệ là

  • Những người mất quá nhiều thời gian để hoàn thành nhiệm vụ đơn giản.
  • Những người không thể tự nghiên cứu cho những gì họ đang làm.
  • Những người sẽ quên những gì đã được mã hóa ngày hôm nay trong vài ngày và không thể duy trì cơ sở mã của riêng mình rất tốt.
  • Những người không thể thích ứng với những thay đổi yêu cầu.

Lập trình viên nhóm xấu là những người rơi vào nhóm lập trình viên solo tồi, bao gồm

  • Những người không thể phối hợp với các thành viên khác trong nhóm.
  • Những người không hoan nghênh những lời chỉ trích.
  • Những người không biết làm thế nào để hữu ích cho người khác và làm thế nào để hưởng lợi từ các thành viên khác trong nhóm.
  • Những người không thể viết mã có thể đọc được.
  • Những người không bình luận vì mục đích dễ đọc cho người khác.

8
Tôi không nhớ chính xác cách tôi thực hiện những thứ mà tôi đã lập trình tuần trước. Đây có phải là không phổ biến? Tôi có ấn tượng rằng làm việc với trí nhớ con người hữu hạn chỉ là một trong những thách thức của lập trình. Do đó, tầm quan trọng của cấu trúc và mã tài liệu để tôi không cần phải nhớ chi tiết.
James

@James Xin thứ lỗi tiếng Anh của tôi;). Ý tôi là nếu một lập trình viên quay lại để xem mã của anh ta / cô ta vài ngày sau đó và không có manh mối nào, thì đó là một dấu hiệu xấu. Tôi cũng không nhớ chính xác những gì tôi đã làm cách đây vài ngày, nhưng tôi chắc chắn rằng tôi không phải gãi đầu khi nhìn vào mã của chính mình và nói 'tôi đang nghĩ gì?'
tia

@James: Chính xác, anh ta nên ghi lại mã của mình để không quên rằng anh ta đã quên một nửa số đó hoạt động như thế nào
SamB

4

Không sẵn sàng thừa nhận họ không biết câu trả lời và / hoặc không muốn tìm kiếm mọi thứ.

Nếu bạn không biết điều đó, đừng từ bỏ - hãy tìm ra và hoàn thành nó.


4

Một dấu hiệu cảnh báo lớn trong kinh nghiệm của tôi là khi họ không bình luận về hack của họ ....

Bạn biết ý tôi là gì: khi bạn bị buộc phải làm điều gì đó rất hack vì đơn giản là không có cách nào tốt hơn để làm điều đó.

Các lập trình viên giỏi sẽ ghét phải làm điều đó và đưa ra các bình luận nội tuyến nói rằng họ ghét phải đưa loại hack đó đến mức nào, nhưng không có lựa chọn nào khác. Các lập trình viên xấu sẽ chỉ đưa vào hack và không bình luận nó.


3

Im lặng rõ ràng khi một lập trình viên viết RẤT NHIỀU mã. Các hàm rất lớn, có thể sao chép / dán các dòng hoặc khối mã, sử dụng nhiều if nếu cần thiết, v.v. Điều này có thể là do lập trình viên không biết một hàm tiêu chuẩn để làm những gì anh ta muốn nhưng phần lớn thời gian không phải vậy.


3

Được nhắc lại một cách chính xác cách thức đúng đắn để làm điều đó, và lặp đi lặp lại chỉ cần làm điều đó một cách dễ dàng.


3

Tôi đang chuyển câu trả lời của mình đến đây từ một chủ đề trùng lặp khép kín hỏi Bạn có thể nhận ra nếu bạn là một lập trình viên tồi? Các chủ đề khác đã được đóng lại khi tôi đang soạn phản hồi của tôi. Câu trả lời của tôi trực tiếp hơn giải quyết câu hỏi vì nó được đặt ra bởi người hỏi khác và sẽ đọc tốt hơn nếu bạn hiểu điều đó.

Thở dài! Một phần trong tôi không muốn thêm vào chủ đề đã bận rộn này, nhưng phần khác của tôi đã thắng! Tại sao nó lại thắng; Tại sao tôi lại bận tâm thêm nhiều từ hơn cho đa cấp đặc biệt này? Vâng, bởi vì, ở một mức độ nào đó, tôi có thể có một chút khác biệt về điều này so với nhiều nhà bình luận trước đây.

Nhị phân hoạt động tốt trong máy tính: đó là '1' hoặc '0', "bật" hoặc "tắt". Chúng ta có thể trừu tượng hóa và mã hóa rất nhiều thông tin bằng cách sử dụng hai trạng thái nổi tiếng đó. Nhưng, nó không có xu hướng hoạt động tốt cho các vấn đề của con người: "tốt" hay "xấu", "lành mạnh" hay "điên rồ", "tốt" hay "xấu xa", "thông minh" hay "ngu ngốc" hoặc "mỏng", "còn sống" hay "chết?" Những kiểu đánh giá phân cực này luôn khiến con người chu đáo trở thành một phần của tôi không được thỏa mãn một cách khủng khiếp. Bằng bất cứ phương án đo lường nào tôi chọn để áp dụng, tôi thường thấy rằng các câu trả lời cho sự tương phản rõ rệt như vậy thực sự nằm ở đâu đó dọc theo sự liên tục giữa cực này và cực kia, không phải ở hai đầu.

Bây giờ tôi đã chiến đấu với xu hướng phân cực này khá lâu và giải pháp cá nhân của tôi là tôi thấy hữu ích hơn nhiều khi áp dụng ba từ cho bất kỳ đánh giá nào như vậy: " ở mức độ nào!"

Vì vậy, câu trả lời của tôi cho câu hỏi của bạn là đề nghị bạn viết lại nó và tự hỏi mình điều này: "Tôi là một lập trình viên tồi đến mức độ nào?" Hoặc, thậm chí tốt hơn, để hỏi nó theo hướng khác: "Tôi là một lập trình viên giỏi đến mức độ nào?" Nếu bạn theo đuổi sự thật, có lẽ bạn sẽ tìm thấy chính mình ở đâu đó dọc theo sự liên tục giữa việc trở thành một lập trình viên "xấu" và một người "tốt". Sau đó, khi bạn xoay sở để xác định vị trí của mình dọc theo con đường này, bạn có thể xác định được một điểm gần với điểm cuối "tốt", một điểm mà bạn muốn tìm thấy chính mình trong tương lai gần.

Nếu bạn không đặt điểm đó quá xa, có lẽ bạn có thể đặt chân sau của mình vào bánh răng và bắt đầu di chuyển nó theo hướng đó. Nếu bạn quản lý để lặp lại thuật toán heuristic khá đơn giản này nhiều lần, bạn có thể sớm thấy mình quá bận rộn để lập trình để hỏi lại câu hỏi này! Ồ, và có lẽ bạn sẽ tiến bộ nhanh hơn nếu bạn bắt đầu đập mã trên bàn phím nhanh và thường xuyên nhất có thể; và, nếu bạn nghỉ ngơi một chút và sau đó, hãy đọc một số mã chất lượng cao được viết bởi các đồng nghiệp của bạn! Trong những ngày phát triển Nguồn mở năng động này, bạn không thiếu mã miễn phí và tinh tế để học hỏi!

Vì vậy, tôi thực sự khuyên bạn nên thử ba từ nhỏ của tôi, "ở mức độ nào" và xem họ có thể đưa bạn đi bao xa theo hướng tốt!


2

Một người nói "Không thể làm được".

Theo tôi đó là tất cả về giải quyết vấn đề, công cụ nên ít liên quan hơn nhiều so với thực sự hoàn thành công việc. Nếu tôi phải giải quyết nó bằng MS-Access hoặc ngôn ngữ lắp ráp, đó là vấn đề thời gian và tiền bạc, không phải là vấn đề "Không thể thực hiện được"

Một dấu hiệu cảnh báo là quá tập trung vào cách làm việc học tập và "đúng đắn", và không đủ tập trung vào việc hoàn thành công việc.


2
Và khi anh ấy nói tại sao nó có thể được thực hiện?
Maniero

1
Vì vậy, làm thế nào về việc giải quyết một vấn đề tạm dừng? Nó có thể được thực hiện?
P Shved

2
Thật tệ khi loại bỏ một cái gì đó là không thể nếu nó không ngược lại.
Randall Schulz

2
@Randall Schulz: Theo như tôi có thể nói từ craigslist, một lập trình viên ngôi sao nhạc rock là người xử lý tất cả các cấp độ phát triển (cơ sở dữ liệu, trải nghiệm người dùng, triển khai, sysadmin và hỗ trợ người dùng) tại một công ty quảng cáo với mức lương thấp hơn đáng kể so với mức lương bình thường cho một trong những điều đó Họ gọi chúng là những ngôi sao nhạc rock vì sau 60 giờ một tuần, chế độ ăn uống của chúng tương tự như một người đi tour trong một chiếc xe tải econoline và phải cầm đồ guitar để lấy thức ăn.
Dan Monego

1
Vâng, tôi đã thực hiện một khái quát sâu rộng :), nhưng .. đó là để làm cho một điểm. "Ý kiến ​​chuyên môn của tôi là không nên làm" là tốt hơn. Thậm chí tốt hơn "Điều gì về việc giải quyết cùng một vấn đề theo một cách khác". Quan điểm của tôi là một lập trình viên tốt nên được tập trung giải pháp. "Không thể thực hiện được", mà không cung cấp tùy chọn thì rất khó chịu cho khách hàng.
Dan Williams

2

Nếu anh ta chỉ biết cú pháp của một ngôn ngữ nhưng không biết các khái niệm cơ bản của thuật toán.


2

Khi họ làm rất nhiều việc nhưng sản xuất rất ít.



2

Những người không biết các nguyên tắc như RẮN, KHÔ, OOP, v.v. Điều quan trọng là phải hiểu rõ về các nguyên tắc và nền tảng lập trình thay vì biết các công nghệ cụ thể. Những người có nền tảng vững chắc sẽ có thể học các chủ đề mới một cách dễ dàng và sẽ tạo ra mã tốt hơn.


2

Một lập trình viên nhúng không hiểu ngắt rất tốt hoặc đa nhiệm. Ngoài ra, các lập trình viên cần làm việc với các trường bit nhưng không nắm bắt được các thao tác logic trên chúng và dịch chuyển.


2

Một tín hiệu nhận biết ngay lập tức là ai đó nói: "Tôi không hiểu tại sao nó không hoạt động. Tôi đã làm mọi thứ đúng."


Theo sát bởi "Tôi không hiểu tại sao nó hoạt động, nó không đúng."
Randall Schulz

Vâng, đó là máy tính thật ngu ngốc :)
Dan Williams

2

Một điều khác biệt giữa một lập trình viên tồi với các lập trình viên mới là sự khăng khăng kiên định trong việc thực hiện hệ thống yêu thích của họ bằng bất kỳ ngôn ngữ và API nào họ đang làm việc.

Tôi đã từng thừa hưởng một hệ thống mà nhà phát triển trước đó đã triển khai lại (bằng Java) một bộ lớn api Ashton Tate DBase III + nằm trên thư viện truy cập dbf tùy chỉnh. Không có khung công tác bộ sưu tập Java nào được sử dụng.

Điều này là để anh ta có thể viết một ứng dụng Java / swing trông và hoạt động giống như một ứng dụng DBase III + (hoặc có thể là clipper).

Ứng dụng anh viết trong hệ thống này có các menu thanh lite và sẽ mở một dạng cửa sổ đầy đủ với một hàng nút ở phía dưới khi bạn điều hướng thanh lite đến tùy chọn. Nó giống như một cỗ máy thời gian nhỏ bé trở lại những năm 1980.

Người đàn ông rõ ràng là một nhà phát triển lành nghề. Anh ta biết đủ rằng anh ta có thể tự viết toàn bộ hệ thống đó trong khung thời gian của dự án đó. Ông cũng có thể sử dụng lại nó trên một vài hệ thống nội bộ khác.

Nhưng anh ta là một lập trình viên tồi tệ ở chỗ mã của anh ta đã sử dụng sai các tính năng của các hệ thống mà anh ta làm việc. Anh ta sẵn sàng dành 3 tháng cho một lib tùy chỉnh về lợi ích đáng ngờ hơn là học Java / Swing / SQL.

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.