Một lập trình viên có thể tự làm được bao nhiêu? [đóng cửa]


13

Với các sản phẩm phần mềm đưa toàn bộ nhóm người phát triển, một lập trình viên có thể tự mình hoàn thành được bao nhiêu? Nói cách khác, một người có thể viết Photoshop, MS word, v.v ... không? Và nếu họ không thể, phát triển web có phải là một lĩnh vực mà một lập trình viên có thể làm được nhiều không?


2
Tôi không chắc chắn những gì đang được hỏi ở đây. Nếu bạn có mojo để phát triển một phần mềm, bạn chắc chắn có thể tự mình hoàn thành nó - web hoặc không. Có thể mất một thời gian, sau khi tất cả facebook không được MZ phát triển trong một ngày.
CoolBeans

Hãy xem qua blitwise.com cho công việc phát triển đơn.
Michael K

Năng suất mã hóa rất khác nhau. Một số lập trình viên mã 10 lần nhanh hơn những người khác ...
Denis de Bernardy

2
Nếu đó là một tòa nhà devloper duy nhất, photoshop và ms word, chúng sẽ có kích thước khoảng 1/100. Tôi không coi đó là một điều xấu.
JeffO

1
Nó phụ thuộc. :-)
richard

Câu trả lời:


14

Khởi đầu nhỏ

Linux hiện tại lớn hơn nhiều so với các lần lặp đầu tiên của nó, nhưng điều quan trọng là nó đã xuất hiện với đủ thứ trong đó để có được lực kéo.

Chỉ khi giá trị của nó

Tôi có quy tắc cá nhân rằng những thứ lớn chỉ đáng làm nếu nó khác về cơ bản với phần còn lại. Nếu không, bạn đang lặn xuống một đại dương đỏ .

Tốt để bắt đầu, nhưng không phải lúc nào cũng bền vững

Nếu phần mềm của bạn đủ tốt, bạn có thể muốn nghiêm túc với nó. Lấy ví dụ Markus "Notch" Persson, người tạo ra Minecraft. IIRC anh ấy bắt đầu trò chơi một mình, và khi trò chơi đạt được sức hút, anh ấy bắt đầu tìm kiếm cộng tác viên và thậm chí bắt đầu một công ty.

Mặc dù bổ ích để đạt được điều gì đó một mình, các dự án lớn hoàn thành tiềm năng của họ bằng sự hợp tác của nhà phát triển, chứ không phải một thiên tài, đưa tôi đến điểm tiếp theo.

Một câu chuyện thần thoại

Hãy xem Huyền thoại về lập trình viên thiên tài , bài nói chuyện của Ben Collins-Sussman và Brian Fitzpatrick tại Google I / O 2009. Bạn sẽ nhận được tất cả những kỳ vọng sai lầm ở đó. Điểm chính tôi muốn đưa ra ở đây là đôi khi một nhà phát triển duy nhất nhận được tín dụng cho toàn bộ, trong khi có nhiều người đứng sau.

Nó chắc chắn có thể

Một ví dụ khác, ngoài Linus Torvalds, là John Carmack. Ông đã chuyển Wolfenstein chỉ trong bốn ngày khi EA ước tính một đội đầy đủ trong hai tháng.

Nó không phải là hàng loạt mã, kiến ​​thức về kiến ​​trúc và kỹ thuật cho phép bạn đạt được những điều lớn lao với ít mã hơn bạn mong đợi.

Với kỹ năng và kiến ​​thức (vượt mức trung bình), bạn có thể khiến nhiều công việc cảm thấy như ít.


7
+1 IMO, Linus không có chuyện gì với Carmack. Những thứ của anh ấy là những thứ của truyền thuyết.
Steven Evers

1
công cụ của ai là truyền thuyết? Linus hoặc John. không nhận được tiếng lóng của bạn ở đó
Chani

1
@RYUZAKI: Tôi đoán bình luận của @ SnOrfus là toàn bộ câu hỏi cho stackexchange tiếng Anh.
Spoike

1
@RYUZAKI - John có những điều huyền thoại, trong bình luận của SnOrfus.
ocodo

1
Có phải Carmack đã nhận được mức lương đầy đủ của đội trong 2 tháng cho công việc 4 ngày của mình hay chỉ là một cái vỗ nhẹ vào lưng?
vẽ

5

Do tính chất công việc tôi đang làm, tôi đã tự mình phát triển một vài ứng dụng khá lớn. Vì vậy, có, nó có thể làm được. Tôi có thể tiếp tục về vấn đề này trong nhiều giờ nhưng hiện tại vẫn chưa có nhiều thời gian vì vậy đây là một số ưu và nhược điểm từ kinh nghiệm cá nhân.

Ưu điểm:

  • bạn đang ở trong hoàn cảnh và không có đội nào để chiến đấu, vì vậy bạn có thể đi với những gì bạn nghĩ / biết là tốt nhất. Không lãng phí thời gian trong các cuộc thảo luận bất tận về một khía cạnh nhỏ bé trong mã.
  • bạn có toàn bộ kiến ​​trúc trong đầu, biết mọi thứ về nó theo nghĩa đen, hỗ trợ khách hàng rất dễ dàng vì bạn biết tất cả các câu trả lời cho mình
  • bạn học được rất nhiều về tất cả các khía cạnh của lập trình. Giao diện người dùng cấp thấp, cấp trung, cấp cao, ...

Nhược điểm:

  • không có đội nào để chiến đấu, vì vậy đôi khi bạn đưa ra những quyết định tồi tệ mà không ai nói với bạn
  • thật dễ dàng để bị lạc trong đó, không chiếm giữ bức tranh lớn nữa. Và không ai có thể giúp bạn. (ngoại trừ SO / SA và lượt thích:])
  • dành nhiều thời gian cho hỗ trợ khách hàng mà bạn muốn dành cho lập trình

3

Với một số cống hiến và kỹ năng, một người duy nhất chắc chắn có thể đạt được rất nhiều. Tuy nhiên, điều đó không dễ, chỉ cần trở thành một lập trình viên giỏi là không đủ. Để một dự án thành công, bạn thường phải suy nghĩ về các trường hợp sử dụng, thiết kế giao diện người dùng, tài liệu, hỗ trợ và nhiều hơn nữa. Một khi mọi thứ bắt đầu và số lượng người dùng tăng lên một cách đơn giản sẽ ngày càng trở nên không thực tế - đó là điểm mà nhiều người hơn tham gia vào dự án (thông qua sự tham gia của cộng đồng, thuê người hoặc bằng cách khác) hoặc dự án chết.


1

Nó phụ thuộc vào phần mềm mà anh ấy / cô ấy đang cố gắng phát triển, hạn chế thời gian và các kỹ năng. Nếu anh ấy / cô ấy đang phát triển một ứng dụng MIS đơn giản thì rất có thể anh ấy có thể làm điều đó trong một thời gian ngắn. Cố gắng phát triển một phần mềm phức tạp như Photoshop, MS Word, Blender, Flash, v.v ... có thể nhưng phải mất nhiều thời gian và nó có chức năng cơ bản nhất và các tính năng rất đơn giản.


1

Tất cả phụ thuộc vào kỹ năng, thời gian và sẵn sàng để làm điều đó. Bạn càng có nhiều kiến ​​thức thì càng mất ít thời gian để hoàn thành một việc gì đó. Bạn sẽ có được một kiến ​​thức cực kỳ mật thiết về codebase với tư cách là nhà phát triển duy nhất cũng có thể tăng tốc quá trình tìm ra / tái cấu trúc / gỡ lỗi.

Cá nhân tôi đã làm việc trên một ứng dụng chuyển từ máy tính để bàn sang máy chủ. Tôi đã mã hóa ứng dụng máy chủ, ứng dụng máy tính để bàn và tự mình kiểm tra tất cả. Tôi đã viết trình cài đặt cho ứng dụng. Tôi đã tìm ra một cách để cho phép kéo và thả vào các biểu tượng khay hệ thống trong Windows và thậm chí cố gắng viết một thư viện Java mới từ đầu. Tôi đã làm điều này trong suốt một năm và nó vẫn đang được phát triển và thử nghiệm.

Toàn bộ dự án này là một thử thách chính. Mỗi ngày sau giờ học tôi đều làm việc trong dự án cũng như cuối tuần. Nó có lớn như MS Word, Photoshop, v.v.? Không. Dự án vẫn còn lớn và không ngừng phát triển và có thể đạt được rất nhiều.


Xem đó là những gì tôi đã tự hỏi ... nó có thể mất nhiều thời gian hơn nhưng vì bạn sẽ biết tất cả các mã làm gì có lẽ sẽ dễ dàng hơn để gỡ lỗi. Và một kinh nghiệm học tập tuyệt vời.
fender1901

@ fender1901 Lập trình tốt phải liên tục là một trải nghiệm học tập, ngày đó không phải là khi bạn biết tất cả hoặc cần tìm một nhiệm vụ khó khăn hơn.

1

Tôi hiện đang làm việc cho một dự án như vậy trong thời gian rảnh (đó là ứng dụng web, không phải ứng dụng trên máy tính để bàn, nhưng các nguyên tắc là như nhau). Đây là những gì tôi đã tìm thấy cho đến nay:

1) Đừng phát minh lại bánh xe . Sử dụng các thư viện / khung hiện có, thay vì làm mọi thứ từ đầu. Một cảnh báo ở đây: đảm bảo bạn chú ý đến giấy phép khi chúng áp dụng cho phân phối / phát hành / mô hình mong muốn của bạn. Một số giấy phép copyleft sẽ yêu cầu bạn nguồn mở "công việc phát sinh" của bạn. Một số giấy phép chỉ cho phép sử dụng phi thương mại. Theo dõi các thư viện / khung bạn sử dụng để bạn có thể cung cấp phân bổ phù hợp trong màn hình / khu vực "Tín dụng" của bạn

2) Làm việc lặp đi lặp lại . Điều này liên quan đến những gì dukeofgaming đã nói với "Bắt đầu nhỏ" . Bạn có nhiều khả năng gắn bó với một dự án nếu bạn có thể thấy kết quả. Cho đến khi bạn có thể thấy một cái gì đó hoạt động, bất kỳ sự phát triển nào bạn làm là tương đương với vẽ trong bóng tối.

3) Đừng ngại yêu cầu phản hồi / trợ giúp sớm . Rất có thể, bạn không giỏi trong mọi thứ. Nếu bạn tuyệt vời ở mức độ mã hóa nitty cấp thấp hơn, có lẽ bạn sẽ sử dụng UI. Converse cũng được áp dụng. Không bao giờ đau lòng để nhận được lời khuyên từ những người tốt hơn bạn trong một lĩnh vực nhất định. Nhiều người sẽ tránh điều này vì họ lo lắng về việc ai đó ăn cắp ý tưởng của họ. Đừng lo lắng về điều này - nếu ai đó cố gắng sao chép bạn, điều đó có nghĩa là bạn đang có thứ gì đó đáng giá. Ý tưởng là giá rẻ, thực hiện là chìa khóa. Apple không phát minh ra máy nghe nhạc MP3, Microsoft không phát minh ra hệ điều hành, Facebook không phát minh ra mạng xã hội và Google không phát minh ra công cụ tìm kiếm. Những gì họ đã làm là làm cho nó hấp dẫn cho người dùng (và không hút).

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.