Lập trình thế nào cho nhanh và ngầu?

Nói chớ bạn có type 1000 words per minute mà có người chỉ cần 3 cái click chuột là done thì lúc đó nên chui xuống lỗ trốn.
Ưu tiên cái gì tiện nhất mà dùng, bây giờ thật sự mình luôn tìm cách làm bằng UI cho nhanh, gõ 10 keys sao nhanh bằng 1 phát click được?

7 Likes

Đồng ý 4 tay chân :crazy_face: :stuck_out_tongue_winking_eye: :crazy_face: :crazy_face: :crazy_face: :crazy_face:

3 Likes

Hmmm có cái gì đen đen tròn tròn ở phía sau là chân hay … ấy nhỉ 🤦

2 Likes

Hi Hoàng :wink:

Tớ có đọc rất nhiều comment trên đây nói về việc cool ngầu trong lập trình. Tớ nghĩ tớ sẽ thảo luận với cậu 1 khía cạnh khác, đó là productivity trong lập trình.
Nó có liên quan tới câu hỏi của cậu, tớ sẽ giải thích ngay đây :smiley:

Thực ra là cậu đoán gần đúng, mấy anh ấy dùng bàn phím, và touchpad :stuck_out_tongue:
Cơ mà lý do cho việc đó là vì productivity, không phải do cool ngầu. Và cũng không phải dùng bàn phím sẽ có productivity cao hơn, mà phải kết hợp nó với 1 số điều nữa.

Productivity (hiệu suất), hiểu nôm na là việc cậu hoàn thành 1 công việc tốn ít công sức trong 1 thời gian hợp lý. Benefit là cậu có nhiều thời gian hơn để làm việc khác, hoặc cậu có thể làm việc năng suất ngang với vài kỹ sư khác.

Đó là lý do, còn làm thế nào để tăng productivity của cậu? Dưới đây là 1 số cách:

  1. Know your tool. Ví dụ: nếu cậu sử dụng IDE/editor nào, cậu nên hiểu nó càng nhiều càng tốt.
    • Làm thế nào để cậu deploy trên local nhanh nhất có thể dùng IDE?
    • Làm thế nào để cậu switch giữa code và Unit test nhanh nhất?
    • Làm thế nào để cậu chạy lại các Unit test vừa bị fail nhanh nhất?
    • Làm thế nào để cậu sort các package trong java nhanh nhất sử dụng editor?
    • Làm thế nào cậu có thể generate các ID từ 1 tới 1000 nhanh nhất dùng editor?
    • Làm thế nào cậu có thể sửa nhiều dòng 1 lúc 1 cách nhanh nhất?
      Cậu sử dụng phím tắt :smiley:
      Cậu càng có nhiều hiểu biết về tool của cậu, cậu càng sử dụng nó 1 cách hiệu quả.
  2. Sử dụng shell. Trong công việc thường ngày, cậu không chỉ có implement code, cậu còn phải điều tra, tổng hợp dữ liệu, phân tích code…
    Có 1 số task cậu có thể sử dụng shell (ví dụ như bash trên linux) để làm 1 cách hiệu quả.
    • Làm thế nào để cậu lấy hết tất cả các REST endpoint trong toàn bộ source code nhanh nhất?
    • Làm thế nào để cậu tìm tất cả các file sử dụng thư viện jackson nhanh nhất?
    • Làm thế nào cậu có thể download 1 file zip và unzip 1 vài file nhanh nhất?
    • Làm thế nào để tự động hoá việc deployment trên local environment?
    • Làm thế nào cậu có thể generate integration test 1 cách tự động?
    • Làm thế nào cậu tự động hoá việc đọc log trên log server, lọc toàn bộ những slow request tới 1 endpoint, và gửi báo cáo hàng ngày lúc 8h sáng?
      Tất cả những điều trên có thể làm được nhờ shell + 1 vài script nho nhỏ viết bằng python hoặc shell script. Và cậu không cần dùng chuột lắm khi dùng tool này :smiley:
  3. Tự động hoá/giảm thiểu số bước operate xuống 1.
    • Nếu cậu có thể tự động gửi email/slack message cảnh báo khi hệ thống của cậu đạt 80% CPU, hay 1 web application sử dụng gần hết connection pool, cậu nên làm.
    • Nếu cậu có thể tự động việc deploy lên trên production bằng 1 nút bấm, cậu nên làm.
    • Nếu cậu có thể viết script monit để restart database instance khi nó bị down, cậu nên làm.
    • Nếu cậu có thể tự động hoá tất cả các unit test/integration test/UA test, cậu nên làm.
      Cậu có thể tiết kiệm được vô số thời gian, cũng như giảm thiểu human error/re-do operation tối đa, bằng cách tự động hoá các công việc của cậu.

Như cậu thấy, các cách trên đều ít yêu cầu tới chuột :smiley: Đó có lẽ là lý do cậu thấy nhiều kỹ sư/lập trình viên sử dụng bàn phím nhiều.

Tớ khuyến khích cậu tự rèn luyện để tăng productivity của bản thân.

  • Nếu cậu dùng hệ điều hành nào, cố học cách sử dụng shell của hệ điều hành đó.
  • Nếu cậu sử dụng editor nào, học phím tắt, các chức năng của nó, cách sử dụng nó hiệu quả và cách mở rộng nó. Vi/emacs được dùng nhiều một phần là vì khả năng mở rộng và các feature của nó.
  • Nếu cậu thấy task nào lặp đi lặp lại, thiết kế combo phím tắt để làm việc hiệu quả, hoặc tự động nó.

Nó sẽ có ích cho cậu rất nhiều trong tương lai :smiley:

Hope it helps!

19 Likes

Cám ơn mn rất nhiều ạ. Em ko còn gì để hỏi nữa

3 Likes

Đỉnh vãi, 16 tuổi :open_mouth:

1 Like

Như vầy nè

/**
 * Checks if a boolean value is true.
 * @param value the boolean to check
 * @return <code>true</code> if the input is true
 */
boolean isTrue(boolean value) {
	if (value == true) {
		return true;
	} else {
		return false;
	}
}
5 Likes

nếu để cho nhanh thì có mấy mẹo:

  1. tập gõ 10 ngón
  2. học các phím tắt trên phần mềm mình dùng, có thể search bằng key words Visual Studio keyboard cheat sheet
  3. viết script để tự động hóa các thao tác của mình, lập trình thì có mấy cái thôi, tạo/copy/move file/folder, gõ code, build, run, test, debug
    trong đấy thì có test thường phải thao tác chuột (nếu làm phần front end)
    nếu bạn học được kỹ năng để viết unit test script thì nếu không phải front end hard core thì hầu như không phải dùng tới chuột nữa.
    build & run thì viết script tự động hóa, ví dụ như trong Visual Studio thì Ctrl Shift B là rebuild all, F5 là run.

nếu để cho ngầu thì nên làm việc khác, vì ngoài thời gian gõ code (tỉ lệ ít) phần còn lại là ngồi vắt óc nghĩ cơ, mà ngồi trầm tư thì không ngầu lắm đâu

8 Likes

Rất là chi tiết, giúp mình mở mang rất nhiều điều, cảm ơn bạn rất nhiều

1 Like

Chuẩn phần lớn thời gian là mặt đần thối ra để suy nghĩ giải pháp. Nhìn đôi khi mặt rất là ngu chứ không ngầu tí nào

9 Likes

Discourse này có mỗi tim, không có Haha nhỉ :joy::joy::joy::joy::joy:

1 Like

Trên chỗ công ty mình có ông kia cày đủ thứ trên đời và đặc biệt là thuật toán. Có lần cả nhóm ngồi suy tư thì ổng vào rẹt rẹt 2-3 tiếng là xong, vậy đủ NGẦU chưa :hugs:

8 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?