7 điểm bởi GN⁺ 2023-12-21 | 1 bình luận | Chia sẻ qua WhatsApp

Lời khuyên cho lập trình viên phần mềm mới bắt đầu

  • Lý do mọi người lắng nghe tôi không phải vì tôi giỏi lập trình mà vì tôi viết tốt. Lời khuyên của người khác cũng vậy: ta thường nghe họ vì khả năng viết lách của họ.
  • Có rất ít nghiên cứu khoa học về phần mềm, và phần lớn kết luận đều không chắc chắn. Hãy hơi hoài nghi với những tuyên bố về “chân lý khách quan” và suy nghĩ cẩn thận về cách áp dụng chúng vào hoàn cảnh của mình.
  • Đừng quá lo về việc học sai hoặc bị đánh lừa; nếu có ý tưởng nào bạn thích thì cứ thử. Miễn là không gây hại cho đồng nghiệp, cuối cùng mọi chuyện rồi cũng sẽ ổn.

Gỡ lỗi: 9 quy tắc

  • Tôi khuyên bạn nên đọc cuốn Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems. Bạn có thể mượn ở thư viện hoặc đề nghị công ty mua. Cuốn sách này dạy rất dễ hiểu một kỹ năng quan trọng mà hầu như các sách khác dành cho lập trình viên mới đều không đề cập nhiều.

Khám phá ra cách đúng đắn

  • Đến một lúc nào đó, bạn sẽ tin chắc rằng mình đã tìm ra cách đúng đắn để lập trình, và nếu mọi người đều dùng cách đó thì lĩnh vực này sẽ tốt hơn rất nhiều.
  • Tôi không nói bạn phải tránh hoàn toàn việc bị cuốn vào cách đúng đắn đó, nhưng tôi khuyên bạn nên nhận ra rằng mình đang bị cuốn vào nó, và đừng biến bản sắc của mình thành kiểu người thuộc về cách đúng đắn ấy.
  • Rồi bạn sẽ học được rằng lập trình rốt cuộc vẫn là một công việc bực bội và bừa bộn dù dùng cách đúng đắn nào đi nữa, và rằng vẫn có thể tạo ra phần mềm tuyệt vời ngay cả khi không có một cách đúng đắn nào.

Câu chuyện đằng sau best practice

  • Đằng sau mỗi best practice luôn có một câu chuyện kinh dị. Nếu bạn không hiểu một best practice, hãy thử tìm câu chuyện kinh dị đã truyền cảm hứng cho nó; điều đó sẽ giúp ích.
  • Nhiều best practice và quy ước hình thành từ sự pha trộn của các yếu tố lịch sử và văn hóa. Ta thường làm theo những cách mà người hướng dẫn từng dùng để giải quyết các vấn đề nay đã không còn liên quan nữa.

Thử nhiều kiểu lập trình khác nhau

  • Ở giai đoạn đầu sự nghiệp, nếu có thể, tôi khuyên bạn nên thử nhiều loại công việc lập trình khác nhau. Điều này không có nghĩa là phải đổi nghề, và ở hầu hết công ty, người ta vẫn làm nhiều kiểu lập trình cùng lúc.
  • Việc thử nhiều dạng lập trình không chỉ giúp bạn học hỏi mà còn tăng khả năng tìm ra kiểu công việc phần mềm mà bạn thực sự thích.

Sự thay đổi trong ngành phần mềm

  • Ngành phần mềm luôn thay đổi, và tôi khuyên bạn đừng để mình bị cuốn lên “framework treadmill” mà hãy tập trung học những kỹ năng nền tảng.
  • Có những lý do mang tính cấu trúc khiến thông tin lan truyền rất nhanh trong phần mềm. Internet, mã nguồn mở, hội nghị và nhiều yếu tố khác làm giảm rào cản trong việc chia sẻ ý tưởng.
  • Nhiều công nghệ chỉ có số ít người dùng, nhưng cách ta nghe nói về chúng có thể khiến chúng trông như sắp được chấp nhận rộng rãi. Đó là lý do vì sao cách tiếp cận thận trọng có ý nghĩa.

Ý kiến của GN⁺

  • Điều quan trọng nhất trong bài viết này là quá trình học hỏi và trưởng thành thông qua trải nghiệm của chính bạn với tư cách nhà phát triển. Lời khuyên của người khác có thể dùng để tham khảo, nhưng cuối cùng điều quan trọng là áp dụng chúng sao cho phù hợp với hoàn cảnh của mình.
  • Việc tìm kiếm “cách đúng đắn” trong lập trình là một hành trình cá nhân, và thông qua đó bạn có thể phát triển khả năng học hỏi và kết hợp nhiều cách tiếp cận khác nhau.
  • Hiểu được sự thay đổi của công nghệ và có cách tiếp cận hợp lý với các xu hướng mới là điều thiết yếu để xây dựng một sự nghiệp phát triển bền vững.

1 bình luận

 
GN⁺ 2023-12-21
Ý kiến trên Hacker News
  • Tóm tắt bình luận thứ nhất:

    • Chia sẻ kinh nghiệm cộng tác với hai lập trình viên trong một dự án sở thích.
    • Bày tỏ sự không hài lòng với các yêu cầu kỹ thuật hóa quá mức dù dự án có quy mô nhỏ.
    • Đưa ra góc nhìn phê phán đối với những lập trình viên chỉ khăng khăng theo đuổi "cách làm đúng".
    • Cho biết bản thân cũng từng có trải nghiệm tương tự trong quá khứ, nhưng rồi nhận ra điều thực sự quan trọng là mã chạy được.
  • Tóm tắt bình luận thứ hai:

    • Một chuyên gia phần mềm có 15 năm kinh nghiệm chia sẻ trải nghiệm của mình.
    • Cảm thấy những bài học học được từ quá trình giáo dục Phật giáo ban đầu cũng hữu ích cho phát triển phần mềm.
    • Giải thích các bài học rút ra từ kinh nghiệm làm lập trình viên, đồng thời nhấn mạnh tầm quan trọng của việc không chỉ ám ảnh với duy nhất một "cách làm đúng".
  • Tóm tắt bình luận thứ ba:

    • Cho rằng việc học các kỹ thuật như TDD (Test-Driven Development) là hữu ích, ngay cả khi không phải lúc nào cũng dùng trực tiếp.
    • Nhấn mạnh rằng học nhiều kỹ thuật và ngôn ngữ khác nhau có thể giúp viết mã tốt hơn.
  • Tóm tắt bình luận thứ tư:

    • Chỉ ra rằng sự ám ảnh với "cách làm đúng" có thể cản trở sự phát triển của lập trình viên.
    • Phỏng đoán rằng nguyên nhân có thể là do thiếu sự chú ý cần thiết để mở rộng kiến thức, hoặc vì quá thoải mái với vị trí hiện tại.
  • Tóm tắt bình luận thứ năm:

    • Khuyên nên giảm thiểu mọi dạng trạng thái (state), như mã, thông tin cần ghi nhớ và chi tiết dự án.
    • Cho rằng việc tối thiểu hóa trạng thái giúp giải quyết vấn đề hiệu quả hơn.
  • Tóm tắt bình luận thứ sáu:

    • Đề cập rằng khả năng viết tốt có thể tạo ảnh hưởng tới độc giả nhiều hơn cả chuyên môn.
    • Khuyên nên thử nhiều loại công việc khác nhau và tìm hiểu về các vai trò khác trong công ty.
  • Tóm tắt bình luận thứ bảy:

    • Nhấn mạnh rằng nên giữ thái độ hoài nghi với những gì học được từ các dịch vụ chia sẻ video như YouTube.
    • Nhắc lại rằng phát triển phần mềm là để giải quyết vấn đề, đồng thời khuyên nên trò chuyện với người khác để hiểu rõ hơn vấn đề mà phần mềm cần giải quyết.
  • Tóm tắt bình luận thứ tám:

    • Giới thiệu một cuốn sách về gỡ lỗi và nói rằng nó giúp xử lý nhiều vấn đề kỹ thuật khác nhau.
    • Đánh giá rằng cuốn sách dễ đọc, thú vị và cung cấp các kỹ thuật hữu ích.
  • Tóm tắt bình luận thứ chín:

    • Nhấn mạnh rằng việc viết mã tự nó không phải là mục tiêu, mà là phương tiện để giải quyết vấn đề.
    • Khuyên nên tập trung vào vấn đề mà mã cần giải quyết; nếu không làm được thì nên dừng viết mã và làm rõ vấn đề trước.
  • Tóm tắt bình luận thứ mười:

    • Đề cập rằng khả năng viết tốt giúp giao tiếp với người khác hiệu quả hơn và rất quan trọng với lập trình viên phần mềm.
    • Khuyên các lập trình viên mới vào nghề hãy viết lại kinh nghiệm và suy nghĩ của mình, vì đó sẽ trở thành một kỹ năng hữu ích về sau.