Làm thế nào để trở thành một lập trình viên nhanh hơn


142

Đánh giá công việc cuối cùng của tôi chỉ bao gồm một điểm yếu: tính kịp thời. Tôi đã nhận thức được một số điều tôi có thể làm để cải thiện điều này nhưng những gì tôi đang tìm kiếm còn nhiều hơn nữa.

Có ai có lời khuyên hoặc lời khuyên về những gì họ làm để tăng tốc độ đầu ra mà không làm giảm chất lượng của nó không?

Làm thế nào để bạn ước tính thời gian và bám sát chúng? Bạn làm gì để hoàn thành công việc nhiều hơn trong khoảng thời gian ngắn hơn?

Bất kỳ thông tin phản hồi được đánh giá rất cao, cảm ơn,


96
Dành ít thời gian hơn cho SO tại nơi làm việc, nếu bạn làm như vậy.
San Jacinto

52
Nếu bạn đang đọc nó, thì đã quá muộn

32
Tôi đọc "Làm thế nào để trở thành một lập trình viên béo hơn". Làm tôi cười
marcgg

13
Tôi sẽ hỏi bạn một câu hỏi tiếp theo. Mong muốn trở thành "lập trình viên nhanh hơn" của bạn có phải là kết quả của hiệu suất kém của bạn (AKA, bạn cần trau dồi kỹ năng của mình, bạn cần tập trung và loại bỏ sự phân tâm (như SO), v.v.) hoặc lập kế hoạch kém từ sự phát triển quan điểm (AKA, bạn đã được cho 1 tuần để làm một việc mà bất kỳ người tỉnh táo nào cũng biết sẽ mất 1 tháng). Mỗi mục có giải pháp rất khác nhau.

3
Không có câu trả lời đúng duy nhất nào có thể, vì vậy hãy đặt nó thành một câu hỏi wiki cộng đồng hoặc đặt câu hỏi cho bạn.
Donal Fellows

Câu trả lời:


190

Tắt máy tính. Lấy một cây bút chì và một số giấy. Phác thảo thiết kế của bạn. Xem lại nó với các đồng nghiệp của bạn. Sau đó viết mã.


9
HOẶC bạn có thể giữ máy tính của mình và mở, ví dụ như MS Visio
sshow

208
Bút chì và giấy hoặc bảng trắng nhanh hơn hầu hết các ứng dụng mà tôi đã sử dụng.
Thomas Owens

24
Làm nó trên giấy tập trung tâm trí.

100
Tại sao tôi không thể bình luận về tầm nhìn? Không sử dụng visio là một cách nhất định để tăng tốc độ phát triển!

52
Ừ .... Visio. Mỗi lần tôi được yêu cầu "sử dụng Visio trong tài liệu thiết kế của bạn", trước tiên tôi sẽ phác thảo nó ra giấy, sau đó dành hai ngày tiếp theo để chiến đấu để có được tất cả các dòng trong Visio chính xác.
Robert Fraser

149

Một vài ý tưởng...

  • Tránh mạ vàng - chỉ làm những gì được yêu cầu của bạn (về yêu cầu)
  • Hiểu các yêu cầu kinh doanh và làm điều đó ngay lần đầu tiên
  • Hiểu thấu đáo môi trường và công cụ của bạn
  • Trở thành một người đánh máy tuyệt vời, sử dụng phím tắt thay vì chuột
  • Thực hiện một cách tiếp cận lặp đi lặp lại và xây dựng trong kiểm tra độ tỉnh táo để đảm bảo bạn đang đi đúng hướng
  • Đừng phát minh lại bánh xe, xem xét sử dụng lại công việc trong quá khứ và công việc của người khác
  • Loại bỏ phiền nhiễu, đừng tiếp tục kiểm tra email, nhìn ra ngoài, nói chuyện với đồng nghiệp, v.v.
  • Đừng làm việc quá sức - nhận ra khi nào bạn cần nghỉ ngơi

7
+1 vì không phát minh lại bánh xe. Tìm hiểu để tạo mã có thể tái sử dụng, có thể được cắm vào mã khác và làm việc với không để viết lại nhỏ. (ví dụ: các chức năng với các tham số, thay vì mã hóa cứng)

34
+1 cho "tránh mạ vàng" - đây là nguyên nhân khiến tôi bỏ lỡ quá nhiều thời hạn vì xu hướng cầu toàn / giữ hậu môn của tôi.
Dinah

7
Đánh máy - điểm quan trọng. Luôn luôn ngạc nhiên về số lượng lập trình viên mà tôi gặp, những người chưa học cách gõ ...
Paddy

2
+1 loại bỏ phiền nhiễu. Theo tôi thấy, họ là những người ăn thời gian chính.

2
+1 cho các mẹo để cải thiện vi mô (thay vì cải tiến vĩ mô về mặt lập kế hoạch dự án).

132

Mong muốn trở thành một lập trình viên "nhanh hơn" của chính bạn là điều đáng khen ngợi. Tuy nhiên, không giao hàng đúng hạn không có nghĩa là bạn chậm, điều đó có nghĩa là dự án được lên kế hoạch kém. Trở thành một lập trình viên "nhanh hơn" sẽ không giúp ích gì; nó chỉ có nghĩa là bạn sẽ vượt quá thời hạn nhanh hơn.

Bạn (và nhóm của bạn) đang mắc một trong những lỗi sau (hoặc tất cả các lỗi đó):

  • đánh giá thấp công việc cần phải làm;
  • thiếu một yêu cầu lớn hoặc phần kiến ​​trúc trong quá trình lập kế hoạch;
  • ước tính công việc khó hiểu với ước tính lịch và không hạch toán cho những thứ như cuộc họp / điện thoại / chi phí khác;

Có nhiều cách bạn có thể giải quyết bất kỳ trong ba cách trên. Nhưng trước khi bạn có thể cải thiện bất kỳ vấn đề nào trong số họ, bạn cần biết lý do tại sao mọi thứ đang diễn ra như vậy. Thực hiện một postmortem trên hai hoặc ba dự án cuối cùng so với thời gian thực tế và tìm ra thời gian thêm đã đi.

Tôi sẽ lặp lại một lần nữa - việc chậm viết mã sẽ không gây ra thời hạn , nếu bạn đã lên kế hoạch đúng để giải thích cho thực tế đó.


47
Một số nhà phát triển thực sự là quá chậm mặc dù. Nó có thể là một vấn đề.

12
Vâng, đây có thể là một vấn đề, nhưng đó là một vấn đề cá nhân. Nó không bao giờ nên trở thành một dự án hoặc một vấn đề nhóm. Nói cách khác, nó có thể ảnh hưởng đến người chăm sóc, nhưng nó sẽ không bao giờ ảnh hưởng đến lịch trình dự án.
Franci Penov

12
'không phân phối đúng hạn không có nghĩa là bạn chậm, điều đó có nghĩa là dự án được lên kế hoạch kém' - đó là mô tả hộp văn bản của một đối số không hợp lệ. có nhiều lý do khác khiến bạn không thể giao hàng đúng hạn, một trong số đó có thể là do bạn chậm.
thịt

15
@ thịt - nếu bạn biết bạn chậm, tại sao bạn không lên kế hoạch cho lịch trình của mình để giải thích cho thực tế đó? Nói cách khác, nếu bạn biết bạn không thể chạy nhanh như Usain Bolt, bạn có định chạy 100m trong 9.7s không?
Franci Penov

5
@Kibbee - trong tình huống này bạn cắt tính năng. bạn không thể hứa sẽ làm một số công việc nhất định trong một thời gian nhất định khi bạn biết nó không thể được thực hiện và hy vọng vào một phép màu.
Franci Penov

89

Thực sự, thực sự học trình soạn thảo của bạn. Nếu bạn sử dụng IDE, hãy đảm bảo bạn đang sử dụng tất cả các tính năng mà nó cung cấp. Nhận một bảng cheat để tìm hiểu các phím tắt cho trình soạn thảo bạn chọn. Nếu bạn đang sử dụng trình bao, hãy thiết lập các phím tắt cho các thư mục thường được sử dụng


3
Điều này thực sự đôi khi có thể tăng năng suất mạnh mẽ
sshow

6
Viết mã thực tế chỉ là một phần công việc của nhà phát triển. Dành thời gian để tìm hiểu IDE để hoàn thiện là một tối ưu hóa điểm; và bạn biết những gì họ nói về tối ưu hóa, phải không? - "Đo lường trước và sau đó tối ưu hóa các nút thắt cổ chai".
Franci Penov

1
Tôi không thấy điều này cả. Nếu tôi giảm 50% thời gian đánh máy, thì tôi sẽ tiết kiệm được bao nhiêu thời gian trong một ngày? Theo kinh nghiệm của tôi, tôi dành phần lớn thời gian để suy nghĩ / kiểm tra / đánh giá / sửa đổi mã / vân vân, so với việc thực sự viết nó, tôi nghĩ rằng điều này cuối cùng sẽ không có nhiều chiến thắng.

4
Nó làm cho việc điều hướng IDE một cái gì đó bạn làm mà không cần suy nghĩ. Bất cứ điều gì đòi hỏi bất kỳ nỗ lực thú vị nào, như di chuyển đến nút màu xám nhỏ được đánh dấu một cái gì đó hoặc khác bên cạnh tất cả các nút màu xám nhỏ khác làm bạn chậm lại bằng cách làm gián đoạn suy nghĩ của bạn. Có ctrl-n dưới đầu ngón tay của tôi mà không có bất kỳ chuyển động nào là một chiến thắng ròng lớn.
Paul McMillan

5
Cùng một dòng: tìm hiểu các phím 'nóng' chung. Ví dụ: trong nhiều chương trình Windows ... Sao chép: Ctrl + c Cắt: Ctrl + x ('x' trông giống như một cặp kéo mở) Dán: Ctrl + v (ngay bên cạnh 'c' và 'x' ở trên) Chuyển đến đầu dòng: Trang chủ Chuyển đến Kết thúc dòng: Kết thúc Di chuyển con trỏ theo từ (không phải ký tự): [Shift] + Ctrl + trái hoặc phải Chuyển đến đầu doc: Ctrl + Home Chuyển đến cuối doc: Ctrl + End v.v.

38

"Có ai có lời khuyên hoặc lời khuyên về những gì họ làm để tăng tốc độ đầu ra mà không làm giảm chất lượng của nó không?"

Nhiều, nhiều người phấn đấu cho chất lượng "tối thượng" với chi phí của một cái gì đó (a) đơn giản, (b) đáng tin cậy và (c) chính xác.

Cách quan trọng nhất để tăng tốc độ phát triển của bạn là đơn giản hóa những gì bạn đang làm để nó hoàn toàn đơn giản nhất có thể.

Hầu hết mọi người có vấn đề với việc giao hàng đúng hạn đều cung cấp cách thức, cách quá nhiều. Và những lý do được đưa ra thường là ngớ ngẩn. Họ thường chỉ nhận thức được yêu cầu, không phải yêu cầu thực tế.

Tôi đã nghe rất nhiều người nói với tôi những gì khách hàng "mong đợi". Đây là một chính sách tồi.

Xây dựng điều đơn giản nhất có thể. Nếu khách hàng yêu cầu nhiều hơn, xây dựng nhiều hơn. Nhưng xây dựng điều đơn giản nhất có thể đầu tiên.


"Nhiều, nhiều người phấn đấu cho chất lượng" tối thượng "với chi phí của một cái gì đó là (a) đơn giản, (b) đáng tin cậy và (c) chính xác." Bạn có thể đã để nó ở đó và tôi đã bỏ phiếu cho nó.
corymathews

"Đơn giản hóa, đơn giản hóa." ~ Henry David Thoreau

2
Yup ... điều này có nghĩa là trừu tượng quá sớm, quá. Nếu một cái gì đó sẽ chỉ có một triển khai, đừng biến nó thành một giao diện.
Robert Fraser

3
Một trong những câu trích dẫn yêu thích của tôi là phù hợp trong tình huống này "làm cho mọi thứ đơn giản nhất có thể, nhưng không đơn giản hơn" ~ paraphotto, Albert Einstein
Nemi

Giữ cho nó đơn giản là điều mà thậm chí nhiều lập trình viên không hiểu đúng: họ dễ dàng rơi vào cái bẫy "tối ưu hóa sớm là gốc rễ của mọi tội lỗi". Thông thường chương trình đơn giản nhất là nhanh nhất hoặc chất lượng cao nhất.

32

Tránh đánh bóng mã của bạn để hoàn thiện, chỉ làm cho nó hoạt động. Đó là những gì doanh nghiệp mong đợi.

Nhưng thông thường, tăng tốc độ ngụ ý hy sinh chất lượng.


10
Tôi sẽ đề nghị "làm cho nó hoạt động" và nếu thời gian cho phép đi xung quanh để hoàn thiện nó!
Preets

28
-1: Không có lý do để hy sinh chất lượng. Bạn luôn có thể hy sinh các tính năng.
S.Lott

6
Tôi đã thấy nó xảy ra nhiều lần. Các nhà phát triển bị treo lên 1% cuối cùng của một tính năng nhất định và sau đó chơi trò đuổi bắt và tụt lại phía sau khi cố gắng hoàn thành các tính năng còn lại. Hoàn thành những gì được mong đợi ở bạn trước, sau đó quay lại và đánh bóng nó.

3
Thông thường, tăng chất lượng ngụ ý tăng tốc độ. Nếu bạn mất một ít thời gian để làm cho đúng ngay từ đầu, bạn có thể tiết kiệm nhiều thời gian hơn trong việc kiểm tra và gỡ lỗi.
David Thornley

2
Nếu bạn bị mắc kẹt ở một tính năng, hãy làm việc với một tính năng khác.

29

Tái sử dụng - Tôi cố gắng tìm ra bất kỳ bit thông minh nào từ các dự án trước đó, vì vậy tôi có thể sử dụng lại chúng trong các dự án trong tương lai. Luôn luôn đáng để tự hỏi "tôi có thể sử dụng nó một lần nữa vào một ngày nào đó không?"


Trạng thái tâm trí hoàn hảo để lập trình nhanh hơn trong thời gian dài, mặc dù lúc đầu, nó có thể mất nhiều thời gian hơn.

8
+1: Hãy coi chừng, tôi đã bắt mình phải khái quát hóa và trừu tượng hóa một cái gì đó để tôi có thể sử dụng nó một lần nữa vào ngày hôm đó ... và bỏ lỡ thời hạn ngày hôm đó hoặc nhân đôi thời gian để sửa lỗi ... để tôi có thể "Có thể" tiết kiệm thời gian sau này.
Steven Evers

2
Có một "túi thủ thuật" là chìa khóa. Nếu điều này đang trở thành một vấn đề công việc đối với bạn, sẽ đáng để dành một chút thời gian của riêng bạn để phát triển các phần có thể tái sử dụng (giả sử tên miền bạn làm việc có thể sử dụng lại mã).

24

Giữ cho nó đơn giản.

Nếu bạn sử dụng TDD, bạn nên theo " đỏ, xanh lục, tái cấu trúc ":

  1. Viết một bài kiểm tra thất bại ( màu đỏ ). (Thường cho chức năng mà mã của bạn chưa có.)
  2. Cam kết tội phạm mã hóa khủng khiếp để vượt qua các bài kiểm tra của bạn ( màu xanh lá cây ). Mã cứng nếu cần thiết.
  3. Refactor , có thể phá vỡ các thử nghiệm trong một thời gian ngắn, nhưng tổng thể cải thiện thiết kế.

3
Khi thực hiện TDD, bạn có một người chạy thử tạo báo cáo đỏ / xanh cho mỗi thử nghiệm để cho biết họ có vượt qua hay không.

2
@Konstantin: Viết một số mã bằng TDD có thể mất nhiều thời gian hơn 20%, nhưng nó cũng mang lại mã tốt hơn và về lâu dài, khi hệ thống phát triển, tốc độ thay đổi vẫn giữ nguyên. TDD giúp bạn tránh nợ kỹ thuật khiến bạn chậm lại.

3
Gõ chưa bao giờ là phần chậm của lập trình. Mặc dù bạn cần gõ nhiều hơn với TDD, nhưng điều đó không làm bạn chậm lại. Nó thậm chí có thể tăng tốc cho bạn, bởi vì viết một bài kiểm tra trước tiên giúp bạn tập trung vào những gì cần thiết trước khi nghĩ về cách thực hiện nó.

1
Nếu quản lý không hiểu một số khái niệm chính, bạn nên giải thích cho họ. Ví dụ: martinfowler.com/bliki/TechnicalDebt.html

3
@Konstantin, nếu bạn coi "phát triển" là hành động viết tuyên bố mã, tôi sẽ đồng ý với bạn. Tuy nhiên, nếu bạn xem xét "phát triển" bao gồm đóng gói, chuẩn bị ghi chú xây dựng, triển khai, kiểm tra, tạo báo cáo lỗi, xem xét và ưu tiên các lỗi, phân công nhiệm vụ, điều tra, gỡ lỗi và sửa chữa và bắt đầu lại quá trình - sau 15 phút viết bài kiểm tra đơn vị vượt xa số ngày và mất niềm tin của khách hàng 1000 lần.

22

Tải xuống tất cả tài liệu ngôn ngữ / thư viện của bạn cục bộ về máy tính của bạn, sau đó rút cáp mạng / tắt Wi-Fi .

Không cố tỏ ra buồn cười ở đây. Điều này thực sự giúp tôi!


Tôi cũng làm như vậy.

Tài liệu trực tuyến và tìm kiếm xử lý sự cố được đánh giá quá cao.

Cài đặt tường lửa và định cấu hình nó để chặn gần như tất cả quyền truy cập web (Tôi có ngoại lệ cho một vài tên miền, ví dụ MSDN)
vây

Tôi thực sự đang cân nhắc việc này (thực tế là tôi để lại bằng chứng nhận xét này đủ)
Ikke

Và mất SO? địa ngục không

20

Lưu ý khi bạn đã đọc Stack Overflow quá lâu. Cái cớ "Biên dịch" chỉ hoạt động quá lâu. :)


15
Phụ thuộc vào trình biên dịch của bạn nhanh như thế nào. Vì vậy, có lẽ "giải pháp" là tìm trình biên dịch chậm hơn và chạy nó trên bộ nhớ Pentium 2 w / 128MB? :-)
Franci Penov

@Franci, thậm chí có thể đặt không gian trao đổi trên đĩa mềm. Hoặc hai trong RAID.

20

Tránh chuyển đổi nhiệm vụ quá thường xuyên. Sự mất tập trung và chuyển đổi nhiệm vụ có thể giết chết một ngày, ngay cả khi bạn sử dụng các công cụ như Mylyn để quản lý các nhiệm vụ của mình.

Chỉ ra mức độ chi tiết (ví dụ: 30 phút) và chỉ làm việc trên những thứ liên quan đến nhiệm vụ trong tay. Bất cứ điều gì khác (báo cáo lỗi mới, email về các vấn đề khác, các vấn đề thủ tục không liên quan) đều bị trì hoãn ít nhất cho đến khi "điểm kiểm tra tiếp theo". Đảm bảo tắt thông báo email để bạn không bị hút vào.

Nó đặc biệt hiệu quả nếu bạn có một người bạn trong nhóm của mình, người sẽ cho bạn biết nếu mọi thứ thực sự tan chảy và đòi hỏi sự chú ý của bạn ngay lập tức.


Điều này sẽ không hoạt động nếu bạn có một ông chủ mong đợi phản hồi cho e-mail trong vòng 10 phút.
Finnw

Điều này thực sự rất phù hợp. Trong chừng mực có thể, đừng cho phép bản thân trở thành nạn nhân của những kẻ thu hút sự chú ý ích kỷ và bám sát nhiệm vụ ban đầu của bạn. Nếu bạn cho phép bản thân bị kéo theo những hướng khác nhau, kết quả cuối cùng là bạn không đạt được gì thay vì điều gì đó.
AndyUK

14

Làm đúng, cách tốt nhất, lần đầu tiên. Nếu điều đó có nghĩa là bạn phải dừng lại và suy nghĩ về nó một lúc trước khi bạn bắt đầu, thì hãy làm điều đó. Hoạt động 90% thời gian.


2
+1 Điều này rất đúng. Điều đó không có nghĩa là bạn phải "hoàn hảo"; tất cả chúng ta sẽ phạm sai lầm. Nhưng nếu chúng ta làm mọi thứ theo cách tốt nhất có thể ngay lần đầu tiên, hậu quả của những sai lầm đó sẽ nhỏ hơn nhiều.

+1 - Tôi dường như nhớ lại việc đọc ở đâu đó rằng sự khác biệt giữa lập trình viên giỏi và lập trình viên xấu không phải là về tốc độ. Sự khác biệt là các lập trình viên giỏi sẽ giữ được nhiều mã hơn.
Jason Baker

Đó là phương châm của tôi, làm điều đó đúng cách, lần đầu tiên. Đừng có thói quen phải luôn quay lại và sửa mã của bạn, vì bạn đã không làm đúng theo thông số kỹ thuật.

"Nếu bạn không có thời gian để làm điều đó đúng, làm thế nào bạn sẽ có thời gian để làm điều đó hơn?"
Alex Feinman

Bạn có thể cần kinh nghiệm từ phần mềm thực tế để có thể xác định đâu cách tốt nhất. Trong trường hợp đó, bạn không thể có được nó ngay lần đầu tiên.

14

2
Đây là một phần thưởng tuyệt vời ... nhưng tôi không nghĩ rằng nó sẽ có nhiều tác động tổng thể. Nhập mã có lẽ là phần tốn ít thời gian nhất. (Vâng, tôi đã theo dõi và đọc liên kết. Tôi chỉ không đồng ý với anh ta.)

Nếu yếu tố giới hạn của mã hóa của bạn là tốc độ bạn nhập nội dung, thì có lẽ bạn đang làm việc ở mức độ trừu tượng sai.
Pete Kirkham

+1. Một liên kết tuyệt vời, một bài viết tuyệt vời cho những ai đọc nó đến cùng;) Tôi đã gõ tốt, nhưng nó cảm hứng cho tôi để chuyển sang Programmer Dvorak bố trí bàn phím en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard (nhưng tôi chuyển sang" và -_ phím với Trình tạo bố cục bàn phím của Microsoft) và tôi chắc chắn rằng tôi sẽ sớm gõ nhanh hơn nhiều :) Xem thêm: typematrix.com/dvorak
Roman Boiko


12

Luyện tập và chăm chỉ.

Bạn cần bỏ thời gian và công sức vào. Khi bạn trở nên thoải mái và tự tin hơn với bất kỳ công cụ nào bạn sử dụng, tốc độ và sự sáng tạo nên tuân theo.

Nếu bạn muốn cải thiện bất kỳ kỹ năng cụ thể nào, nó cũng có thể giúp thiết kế các bài tập cho phép bạn làm việc cụ thể về điều đó. Nếu sự chậm chạp của bạn đang trong giai đoạn thiết kế, hãy cố gắng tìm các vấn đề thiết kế để làm việc trực tuyến. Làm lại bài tập tương tự sẽ cho phép bạn hoàn thành nó nhanh hơn và tốc độ luyện tập. Cá nhân tôi thích các bài tập thuật toán của TopCoder để thực hành tốc độ lập trình tuyệt đối. Họ cũng có những thách thức về thiết kế, nhưng tôi chưa thử.


Thực hành thường được đánh giá thấp trong lập trình. Điều này nên là một trong 5 câu trả lời hàng đầu.

Ồ Không chắc tại sao nó cũng không cao hơn. Tôi chưa bao giờ thực sự thử điều này. Tôi sẽ cho nó một viên đạn!
David

11

Tìm hiểu về Khu vực, tìm hiểu cách hòa mình vào đó và tìm hiểu cách nhận biết khi bạn không tham gia.

Khi tôi "ở trong khu vực", tôi cực kỳ năng suất và mã chỉ chảy ra khỏi tôi, thường thì tôi có thể nhận được 2 hoặc 3 ngày mã hóa được thực hiện trong 1 ngày. Nhưng tôi thấy rằng thường rất khó để đến nơi đó, tôi thấy mình chần chừ, bị phân tâm bởi những thứ khác (ví dụ như Stack Overflow).

Trích dẫn từ what-trick-do-you-use-to-get-mình-in-the-area


Và bỏ bữa trưa nếu bạn ở trong khu vực ... hoặc ở lại muộn ... MMMmm Khu vực. nước dãi

10

Biết IDE và khung của bạn tốt. Phải chuyển sang Google cho mọi thứ nhỏ nhặt cần có thời gian.


Nhưng cũng nhận ra khi bạn cần Google và có thể làm điều đó một cách nhanh chóng là điều quan trọng.

9

1
Vui lòng chỉnh sửa nó để tôi có thể nâng cấp nó, nó hiện đang "quá cũ".
kmarsh

1
Phụ thuộc rất nhiều vào những gì bạn cần sử dụng nó mặc dù.

8

Trước khi bạn bắt đầu phát triển:

  • Đăng xuất khỏi hộp thư của bạn
  • Tắt mọi ứng dụng khách IM
  • Lịch sự yêu cầu đồng nghiệp cho bạn thời gian để tập trung
  • Tất nhiên, ngừng lướt Internet

Mỗi khi bạn bị gián đoạn, bạn sẽ chậm lại vì phải mất thời gian để suy nghĩ lại. Tôi đã nghe những con số cho mỗi lần gián đoạn, tâm trí con người phải mất 5-10 phút để thiết lập lại quá trình suy nghĩ trước khi bị gián đoạn. Với nhiều thời gian cho mỗi lần gián đoạn, sẽ không mất nhiều thời gian để lãng phí cả ngày.

Mọi người trong công ty chúng tôi đã thực sự ngăn chặn thời gian trong lịch của họ và sau đó chuyển đến một phòng hội nghị trống trong vài giờ mỗi ngày.


7

Tìm hiểu IDE phát triển của bạn trong và ngoài. Tìm hiểu các phím tắt. Học cách sử dụng chuột ít hơn. Tôi thấy rằng điều này tiết kiệm nhiều thời gian cho tôi.


7

Bạn chậm hơn so với đồng nghiệp của bạn, hay ước tính của bạn quá mức?


7

Để sản xuất phần mềm nhanh hơn, tôi đã tìm thấy điều tốt nhất cần làm là tìm hiểu API thời gian chạy của bạn tốt nhất có thể. Đừng gõ logic danh sách khi tiện ích mở rộng LINQ sẽ làm; đừng xây dựng một nhóm người nghe sự kiện khi ràng buộc sẽ hoạt động, v.v.

Theo như ước tính, điều đó đi kèm với kinh nghiệm. Bạn có thể sử dụng phần mềm dự toán ngoài kia để giúp bạn tìm ra các ước tính tốt hơn.

Cá nhân, tôi đã tìm thấy với các nhà phát triển cấp cơ sở, lấy bất cứ ước tính ban đầu nào của họ và nhân nó lên 2, sau đó nhân đôi nó. Điều này sẽ chiếm tất cả các hoạt động học tập, hội họp, lãng phí thời gian, v.v ... Các nhà phát triển cấp cao hơn có xu hướng làm việc với hệ số 2 so với ước tính của họ.

Thông thường, câu hỏi không phải là nếu ước tính của bạn sai. Đó là tài khoản ước tính của bạn cho tất cả những điều đúng? Bạn đang đưa ra ước tính và thời gian của bạn về nỗ lực mã hóa hoặc về thời gian lịch? Hãy suy nghĩ về tất cả thời gian trong ngày của bạn và bao nhiêu trong số đó là thực tế, mã hóa hiệu quả so với các cuộc họp, học tập, gỡ lỗi, v.v.


3
"... nhân nó với 2, sau đó nhân đôi nó." Vì bạn quan tâm đến việc tiết kiệm thời gian, tôi đã có một mẹo toán học cho bạn rằng bạn có thể có thể sử dụng ...

LOL - Tôi biết bạn đang nói gì. Nhưng bạn sẽ ngạc nhiên khi thường xuyên bị trượt bởi không được chú ý, trái ngược với câu nói "nhân với 4".

7

Hai điều có thể được ngụ ý, nhưng tôi chưa thấy trong số các câu trả lời ở đây giúp tăng năng suất là:

  • Sử dụng một số loại kịch bản xây dựng và triển khai. Biên dịch, triển khai, khởi động lại máy chủ ứng dụng và không cần thời gian hay sự tập trung, đó chỉ là một kiểu bấm chuột.

  • Có một số loại kiểm soát phiên bản. Phải viết mã mà không thể quay lại thay đổi cũng giống như cố gắng đi trên trứng


7

Một vài ý tưởng nảy ra trong đầu:

  1. Lấy ý kiến ​​khác về ước tính của bạn - Có nhà phát triển nào khác mà bạn có thể hỏi điều gì đó như "Này, bạn có nghĩ rằng bạn có thể thực hiện loại tính năng này trong khung thời gian này không?" Ý tưởng là đầu vào của người khác có thể giúp chính xác trong một số trường hợp vì ai đó có thể lưu ý một loạt điều bạn đã bỏ lỡ khi đưa ra ước tính.

  2. Rèn luyện kỹ năng ước tính của bạn - Bắt đầu theo dõi xem bạn đang ước tính như thế nào và tại sao bạn lại nghỉ: Các mục công việc khác gây ra thời hạn không được đáp ứng? Bạn luôn đánh giá thấp sự phức tạp của một cái gì đó? Bạn có đưa ra toàn bộ dòng thời gian khi nó không thực tế, ví dụ những gì được hỏi đủ mơ hồ rằng chỉ cần lấy một nguyên mẫu sẽ mất vài tuần và sau đó cần phải đánh giá lại những gì khác sẽ được thực hiện? Làm điều này có thể giúp ích nhiều nhất trong việc xây dựng kỹ năng đó để nếu bạn nói điều gì đó sẽ mất x giờ, bạn có thể tự tin vào điều đó bởi vì bạn đã làm đi làm lại nhiều lần. Một cách khác để nói điều này chỉ đơn thuần là thực hành, thực hành, thực hành.

Cấp cho bạn có thể đã xem xét những điều này, nhưng tôi chỉ nghĩ rằng nó đáng để nói điều này cho những người khác có thể không xem xét những ý tưởng này.


7
  1. Biết công nghệ từ trong ra ngoài.
  2. Dừng lại! Hãy suy nghĩ! Đi!
  3. Kiến trúc sư cho bất cứ điều gì có thể phát sinh, nhưng chỉ thực hiện những gì thực sự được yêu cầu.
  4. KISS - Giữ cho nó đơn giản ngu ngốc
  5. Nếu nó đang trở nên quá phức tạp, có lẽ, nó không được suy nghĩ tốt. (Quay trở lại 2 và 4)
  6. Đừng mắc kẹt trong 5. Nó thường trả tiền để bắt đầu lại từ đầu (Quay lại 2 và 4)
  7. Quay trở lại 1.

7

Tôi nghĩ từ khóa của họ ở đây là "tính kịp thời". Họ không nói bạn quá chậm, đúng hơn là bạn không kịp.

Trong quản lý dự án, điều quan trọng là người quản lý có thể ước tính khi nào các mục công việc của bạn sẽ được hoàn thành với độ chính xác. Tôi nghi ngờ rằng lý do chính khiến những nỗ lực của bạn không được coi là kịp thời là bạn thường xuyên có những món đồ không được giao đúng tiến độ và được giao muộn hơn nhiều so với lịch trình.

Để cải thiện tính kịp thời của bạn, bạn có thể muốn dành nhiều thời gian hơn để hiểu bạn sẽ mất bao lâu để hoàn thành một mục công việc cụ thể dựa trên kỹ năng, kinh nghiệm và tên miền của bạn. Điều này sẽ cho phép bạn đưa ra ước tính tốt hơn cho người quản lý dự án của bạn. Chìa khóa ở đây là "tốt hơn" ... bạn có thể giao hàng đúng giờ thường xuyên hơn bằng cách đệm mọi thứ với yếu tố mờ nhạt, nhưng điều bạn thực sự muốn phấn đấu là ước tính chính xác hơn.

Tôi sẽ thảo luận điều này với người quản lý của bạn để xem đây có thực sự là vấn đề không. Mặt khác, bạn có thể kết thúc chương trình nhanh gấp đôi, những điều hứa hẹn trong một nửa thời gian bạn đã sử dụng và vẫn bị chỉ trích vì tính kịp thời của bạn vì ước tính của bạn vẫn có cùng hệ số lỗi.


"... Dành nhiều thời gian hơn để hiểu bạn sẽ mất bao lâu để hoàn thành một mục công việc cụ thể dựa trên kỹ năng, kinh nghiệm và tên miền của bạn." -> Đúng, và điều này cũng sẽ giúp bạn cắt giảm phạm vi và tiết kiệm thời gian hơn nữa.
Jim G.

Nó cũng sẽ giúp người quản lý của bạn trông tốt với những người xung quanh - Nó cũng cho phép các tài liệu hỗ trợ như tiếp thị được hoàn thành đồng bộ với dự án của bạn.
Tom leys

7

Nhận ổn định, ổn định.

Xây dựng một cái gì đó thực hiện một chút chức năng và đảm bảo rằng nó hoạt động, từ đầu đến cuối. Sau đó, giữ cho nó hoạt động khi bạn thêm các bit mới của chức năng. Vâng, đây là một phần thực hành TDD, nhưng nó có ý nghĩa ngay cả khi bạn không làm TDD.

Lý do là mỗi lần tôi đã nhìn thấy một người nào đó với 2 tuần mã mà chưa bao giờ ổn định, nó luôn luôn mất thêm khoảng 2 tuần để có được nó ổn định.

Nếu bạn ở lại ổn định, bạn loại bỏ sự không chắc chắn rằng, và cũng có thể cung cấp cho mình một cách để phạm vi xuống gần thời hạn nếu cần thiết.

Đối số rõ ràng là việc làm này sẽ mất nhiều thời gian hơn là chỉ viết một lần, vì bạn sẽ làm thêm việc ổn định mã không phải là cuối cùng. Tôi không mua cái này trong một giây. Khi bạn có mã hoạt động , bạn thay đổi 5 dòng và một cái gì đó bị phá vỡ, bạn biết chính xác nơi nghỉ phải xảy ra.

Nếu bạn có 10.000 dòng mã không bao giờ hoạt động và bạn phải tìm cách ngắt, bạn có rất nhiều mã để tìm kiếm.

Những thay đổi nhỏ, gia tăng trên một hệ thống luôn ổn định FTW. Đi chậm để đi nhanh.


7

Đối với tôi, có được năng suất tốt là có một ý tưởng rõ ràng về những gì bạn đang cố gắng đạt được, và làm thế nào bạn sẽ đạt được điều đó.


1
Chuyến đi xe đạp 30 phút của tôi để làm việc ở vùng nông thôn Na Uy cũng khá tốt trong việc giải tỏa tâm trí và khiến các quá trình sáng tạo diễn ra.

6

Gần như tất cả các câu trả lời đã được nói đến cái chết ở nhiều nơi ở đây và những nơi khác. Hoặc, ít nhất tôi đã nghe thấy nó đến chết. Tìm hiểu IDE của bạn, học cách gõ nhanh hơn, sử dụng các khung công tác, sử dụng tạo mã, v.v., vâng, tất nhiên những điều này sẽ giúp ích và tôi nghi ngờ có rất nhiều lập trình viên là bậc thầy của tất cả. Nhưng là loại lập trình viên hỏi những câu hỏi và trang web thường gặp như Stack Overflow bạn đã biết những điều này rồi . Bạn chỉ muốn ở đây họ lặp đi lặp lại hay bạn chỉ muốn trút giận một chút?

Nhưng nếu chúng ta có thể đến trạng thái đó thì sao? Tôi có nghĩa là chủ tất cả những đề nghị? Điều gì sẽ xảy ra sau đó? Tốt. Tôi đoán rằng dòng thời gian sẽ còn giảm hơn nữa. Và một lần nữa, chúng tôi sẽ trở lại nhận thức về chất lượng. Ý tôi là, nghề của chúng tôi chắc chắn đã tiến bộ và ngày càng có năng suất cao hơn trong nhiều thập kỷ. Nhưng chất lượng đã tăng lên trong thời gian này (trừ những năm đầu tiên của khóa học)?

Câu trả lời của tôi rất đơn giản: phần mềm chất lượng cần có thời gian ! Bạn chỉ có thể đổi cái này lấy cái kia (chất lượng / tốc độ). Nhưng vâng, tất cả chúng ta đều biết rằng tuy nhiên chúng ta không trung thực về mức độ mà sự đánh đổi thường kết thúc ở tốc độ cuối của thang đo. Và chúng tôi thậm chí còn nói dối lớn hơn sớm trong các dự án!

Tôi nói rằng bạn không có lỗi ở đây. Vấn đề là nhận thức của mọi người về việc phần mềm chất lượng phải mất bao lâu. Chúng tôi tự đánh lừa mình khi tin rằng chúng tôi có khả năng tạo ra phần mềm chất lượng với các loại dòng thời gian mà người quản lý của chúng tôi hoặc thậm chí chúng tôi dự đoán. Chúng tôi không tạo ra phần mềm chất lượng . Chúng tôi viết phần mềm hoạt động nhưng đôi khi có chất lượng nhấp nháy ở một số góc nhất định của ứng dụng.

vậy chúng ta có thể làm gì? Chúng tôi không thể thuyết phục các ông chủ của mình rằng chúng tôi cần tăng gấp đôi hoặc gấp ba khoản đầu tư vào mỗi dự án của mình. Tôi nói dẫn bằng ví dụ. Tạo một phần mềm thực sự tuyệt vời như một dự án phụ. Đặt thời gian của riêng bạn vào đó và không thỏa hiệp. Tất cả trong khi chú ý đến cách bạn tiến bộ. Lưu ý về các nhiệm vụ rõ ràng không liên quan mà bạn đã phải đặt một lượng thời gian không mong muốn vào và xem liệu bạn có thể biện minh được không. Tương phản điều này với tất cả các dự án khác mà bạn đã làm việc. Hãy trung thực một cách tàn nhẫnvới bản thân và tất cả các khía cạnh của phân tích này. Những điều bổ sung bạn đã làm với phần mềm chất lượng của bạn có thể bị bỏ qua trong các dự án "thực tế" tại nơi làm việc không? Nhưng có thể nỗ lực của bạn đã thất bại. Nguyên nhân gì vậy? Bạn đã chán và chỉ cần vội vàng để hoàn thành các tính năng cốt lõi? Tôi vẫn chưa làm điều gì đó như thế này, đó là lý do tại sao tôi kết thúc suy nghĩ này với một số nghi ngờ - nhưng tôi dự định sẽ thực hiện nó. Tôi sẽ giữ cho bạn được đăng :).

Cuối cùng, tôi nghĩ rằng hầu hết (nếu không phải tất cả) các đánh giá hiệu suất đều bị xoắn và thao túng lạ thường. Bạn không thể điều tiết chất lượng và tốc độ ở mức 100%. Sếp của bạn nên chấm điểm bạn theo một tiêu chuẩn do tổ chức đặt ra. Tiêu chuẩn của tổ chức về sự đánh đổi giữa chất lượng và tốc độ. Hãy tưởng tượng rằng OrangeSoft Inc. mong đợi chất lượng 33% và tốc độ 66%. Vì vậy, nếu bạn đang viết mã có thể có một phần ba đơn vị kiểm tra thì nên thực hiện với tốc độ và giảm thời gian giao hàng, bạn nên đạt điểm gần 100% trong bài đánh giá của mình! (Đây là những tương tự khá thô nhưng bạn có được điểm). Nhưng thay vào đó, những gì xảy ra là Bob viết mã cực kỳ nhanh nhưng lại nổi tiếng là lỗi. Vì vậy, trong bài đánh giá hiệu suất của mình, anh ấy sẽ đạt điểm 3/5 cho chất lượng và 5/5 cho tốc độ. Mặt khác, Carol viết mã chậm hơn nhiều nhưng tạo ra ít lỗi hơn đáng kể. Cô đạt điểm 5/5 cho chất lượng nhưng 3/5 cho tốc độ. Dù bằng cách nào thì Bob và Carol cũng được thả neo. Có thể cho bất kỳ nhân viên để có được một số điểm hoàn hảo? Điều này có công bằng không?


5

Kỹ thuật mà tôi sử dụng là tạo mẫu tiến hóa

Bạn có thể google để biết thêm thông tin - nhưng nếu nhu cầu là sản xuất một cái gì đó nhanh chóng, đó là cách duy nhất để đi. Thêm vào đó, nó có lợi ích là khi người dùng nói rằng anh ta thích nó, bạn đã hoàn thành (... và có thể bắt đầu làm tài liệu).

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.