Bài viết được dịch từ đây.
Tôi đã phát triển phần mềm hơn 21 năm nay, tức là gần 1/3 cuộc đời.
Dưới đây là một số bài học quý giá nhất mà tôi học được trong suốt chặng đường ấy.
1. Bạn sẽ không bao giờ biết hết tất cả mọi thứ
Đặc biệt là khi mới bắt đầu, tôi nghĩ rằng mình có thể học mọi thứ và tôi nghĩ điều này sẽ giúp ích cho sự nghiệp lập trình của mình. Nhưng mỗi khi tôi học được điều gì đó mới mẻ, một thế giới mới với các khái niệm và kỹ thuật lại mở ra.
Thử và học tất cả mọi thứ có vẻ là điều hấp dẫn. Tuy nhiên đó là một nỗ lực không ngừng nghỉ. Sẽ luôn xuất hiện một thư viện, framework hay một điều gì khác mà bạn có thể học.
Điều duy nhất xảy ra là bạn từ từ bắt đầu kiệt sức vì không thể với tới mục tiêu của mình. Tốt hơn nên cố gắng giải quyết những gì bạn biết rõ và chỉ học những thứ mới mẻ khi bạn thực sự cần nó. Điều này giúp bạn tỉnh táo và tăng động lực cho bản thân.
2. Một team tốt không chỉ mở rộng khả năng của bạn theo một đường thẳng đi lên mà còn theo cấp số nhân
Làm việc một mình là tốt, nhưng nó cũng khiến bạn đánh mất khả năng của mình.
Một nhóm mà bạn luôn có thể trò chuyện và thảo luận, có thể thúc đẩy quá trình suy nghĩ của bạn rất nhiều. Các vấn đề trở nên dễ giải quyết hơn và được giải quyết tốt hơn. Theo kinh nghiệm của tôi, hiệu quả thường theo cấp số nhân chứ không phải theo một đường thẳng lên.
Tuy nhiên, có một ngưỡng khi mà nhóm của bạn trở nên quá lớn. Theo kinh nghiệm của tôi, ngưỡng này phụ thuộc vào những người liên quan.
Cố gắng làm việc với những người tuyệt vời mà bạn có thể hòa hợp. Bạn sẽ thấy rằng bạn có thể hoàn thành công việc nhanh hơn trước đây và thậm chí sẽ thấy thích thú hơn.
3. Code phải được viết cho con người có thể đọc hiểu
Có lúc tôi cảm thấy thật thông minh khi viết ra code tối ưu hóa cao chạy nhanh nhất có thể. Khi tôi xem lại code này sau một thời gian dài, tôi không biết mình đã làm gì lúc đó nữa. Tôi luôn mất một khoảng thời gian để xem lại code trước khi làm công việc mình được giao. Vì thế những tối ưu hóa đó là không cần thiết.
Điều đầu tiên và quan trọng nhất khi lập trình là viết code để người khác có thể đọc và hiểu được. Nếu bạn phát hiện ra ứng dụng bạn viết đang có vấn đề về hiệu năng thì mới hãy kiểm tra và fix nó chứ đừng tối ưu ngay từ đầu. Ngược lại, sau khi bạn fix được những vấn đề về hiệu năng, nhớ comment để giải thích lý do tại sao code đó có thể tối ưu hoá được hiệu năng và fix được vấn đề trên.
Bạn sẽ thường xuyên nhận được lời nhận xét từ những người nói rằng bạn không nên nêu rõ code "làm gì". Đây là ý kiến của tôi: Nếu bạn không thể làm cho nó dễ hiểu hơn và biết rằng các lập trình viên khác sẽ cần trợ giúp mới hiểu được, hãy thêm các nhận xét (comment code). Bạn có thể thấy những người chống lại phương pháp này sẽ phải dành nhiều thời gian và tiền bạc hơn cho các vấn đề trong tương lai.
4. Kiên nhẫn là "người bạn" tốt nhất của bạn
Đã có lúc tôi không kiên nhẫn, và thỉnh thoảng tôi vẫn bị như vậy. Tôi thường xuyên mất thời gian để giải quyết một lỗi hoặc hoàn thành một tính năng. Và thông thường, học một cái gì đó mới mất nhiều thời gian hơn dự kiến. Nếu bạn cảm thấy cần phải vội vàng, bạn nên tự hỏi lý do của cảm giác này là gì.
Có phải do chính bạn không? Làm ơn. Hãy dừng lại đi. Bạn vẫn có thể hoàn thành vào ngày mai hoặc ngày kia. Sau này khi gặp phải vấn đề tương tự, bạn sẽ giải quyết nhanh hơn.
Rất nhiều nhà quản lý nghĩ rằng phần mềm được "phân phối" (hoàn thành) nhanh hơn thì tốt hơn. Họ đặt ra những thời hạn không thực tế và mong đợi quá nhiều từ các lập trình viên của mình. Những người quản lý đó không hiểu gì về cách thức hoạt động của việc phát triển phần mềm.
Đôi khi bạn phải đương đầu với một cái gì đó hoàn toàn mới. Cần có thời gian để lên ý tưởng. Bạn càng có nhiều kinh nghiệm, bạn càng trở nên giỏi hơn khi đối mặt với những tình huống tương tự như vậy.
Hãy cố gắng giữ sự kiên nhẫn và đừng tạo áp lực cho bản thân. Bạn làm việc tốt hơn khi bạn có thể giữ bình tĩnh và sắp xếp các suy nghĩ của mình để phát triển ý tưởng. Và nó chắc chắn sẽ có lợi cho sức khỏe & tinh thần của bạn.
Không tạo áp lực cho bản thân có thể là điều khó khăn nhất trên đời, và không phải lúc nào bạn cũng làm được điều đó. Không sao đâu. Tuy nhiên, bạn vẫn nên cố gắng tránh tạo áp lực quá mức cho bản thân. Nó có thể gây hại cho bạn trong thời gian dài.
5. Nhất quán là chìa khóa
Làm điều gì đó lặp đi lặp lại một cách nhất quán, giúp bạn trở nên thành thạo việc đó. Bạn không cần phải thực hiện trong 20 giờ liền. Mà bạn chỉ cần bỏ ra khoảng 15 phút hoặc một giờ mỗi ngày.
Việc lặp đi lặp lại nhiều lần khiến bạn làm việc gì đó giỏi hơn. Đầu tiên, bạn thường xuyên tra cứu mọi thứ, và từ từ nhưng đều đặn, bạn tra cứu ngày càng ít hơn. Bộ não của bạn sẽ từ từ học các pattern và lưu chúng.
6. Luôn có người giỏi hơn để bạn học hỏi
Công nghệ là một lĩnh vực rộng lớn đến nỗi bạn sẽ không bao giờ học được hết mọi thứ.
Đồng nghiệp của bạn có thể giỏi về backend, CSS hoặc những thứ cấp thấp hơn bạn trong khi bạn cũng có thế mạnh của riêng mình. Bạn có thể học hỏi từ họ, và họ cũng có thể học hỏi từ bạn.
Đây không phải là điều mà bạn nên cảm thấy ghen tị hoặc lấy lòng họ. Thực sự tuyệt vời nếu bạn có thể kết nối với những người có thể làm giàu thêm kiến thức của mình. Bạn có nhiều năm kinh nghiệm để tự nâng cao kiến thức của mình. Và bạn cũng nhận được nhiều năm thất bại để rút kinh nghiệm để không mắc phải những sai lầm tương tự.
7. Tạo dựng mối quan hệ là điều quan trọng
Ra ngoài, kết nối với mọi người, tạo dựng mối quan hệ mới là điều rất quan trọng trong xã hội ngày nay. Tôi từng nghĩ rằng có một CV tuyệt vời sẽ mở ra tất cả các cánh cửa cho tôi, nhưng bạn ơi, tôi đã lầm to.
Nếu mọi người không biết gì về bạn, họ sẽ đánh giá bạn dựa trên một tờ giấy. Nhưng nếu mọi người biết bạn, họ có thể biết điểm mạnh và điểm yếu của bạn là gì. Điều này giúp bạn có được công việc hoặc hợp đồng tiếp theo dễ dàng hơn rất nhiều. Và nó luôn mở ra cơ hội học tập, làm việc và giao lưu.
8. Nghỉ giải lao (thư giãn) thường xuyên giúp bạn làm việc hiệu quả hơn
Miễn là bạn không rơi vào trạng thái "the tunnel"- trạng thái mà bạn có thể tiếp tục viết code hoặc làm việc mà không thấy thời gian trôi qua, não của bạn sẽ cần nghỉ ngơi thường xuyên.
Thời gian nghỉ ngơi giúp bộ não của bạn nạp lại năng lượng và xử lý thông tin mà nó đã tiêu thụ. Vì thế bạn nên làm điều gì khác ngoài việc viết code. Đi lại, uống cà phê, đi dạo một chút và ít nhất hãy rời khỏi bàn làm việc của mình.
Có thể bạn sẽ nhận thấy hiệu năng của mình giảm sút trước khi nghỉ ngơi. Khi bạn trở lại sau kỳ nghỉ của mình, bạn sẽ nhận thấy rằng bạn đã trở lại với công việc. Bạn có thể thực hiện lại cho đến lần nghỉ tiếp theo.
Có những lúc tôi không quan tâm đến thời gian nghỉ giải lao vì tôi muốn hoàn thành công việc của mình. Nhưng hóa ra là tôi có thể hoàn thành nhanh hơn nếu để bộ não của mình nghỉ ngơi một chút.
Một nguyên tắc chung là nghỉ ít nhất 5 phút mỗi giờ và nghỉ ngơi lâu hơn lên đến 30 phút sau 4 giờ. Tốt hơn nữa là: Hãy lắng nghe cơ thể và điều chỉnh thời gian nghỉ ngơi cho phù hợp.
Nếu bạn bắt đầu cảm thấy mệt mỏi, hiệu suất giảm dần hoặc khó tập trung thì hãy nghỉ ngơi.
9. Nếu bạn muốn thăng tiến xa hơn trong sự nghiệp, bạn cần là một người hướng ngoại với kỹ năng giao tiếp tốt
Khi bắt đầu sự nghiệp của mình, tôi tin rằng tôi sẽ được nhận thưởng xứng đáng nếu nỗ lực hết mình. Tuy nhiên không ai đề nghị thăng chức hoặc trả nhiều tiền hơn cho tôi. Và tôi cảm thấy mình không được chú ý.
Thời điểm tôi lên tiếng về công việc của mình và bắt đầu tương tác nhiều hơn với các đồng nghiệp và người quản lý của mình, sự nghiệp của tôi đã phất lên. Nếu có vấn đề nào phù hợp với tôi, tôi chắc chắn sẽ đảm nhận nhiệm vụ đó. Tôi được mọi người biết đến và thường xuyên yêu cầu hỗ trợ. Cuối cùng, tôi đã được thăng chức. Tôi không cần lập một danh sách dài những thành tích mà mình đã đạt được. Vì người quản lý của tôi đã nắm rõ mọi thứ.
Tại sao ư? Bởi vì tôi thường xuyên nói chuyện về công việc với đồng nghiệp và quản lý của mình. Tôi không bao giờ khoe khoang. Tôi đã công khai giúp đỡ các đồng nghiệp của mình. Và tôi cũng đã nói chuyện riêng tư với nhiều người. Chúng tôi đã hiểu nhau hơn và hình thành một liên kết bền vững.
Đối với tôi, điều đó đã diễn ra một cách hoàn hảo. Trải nghiệm của bạn có thể khác của tôi vì còn phụ thuộc khá nhiều vào công ty và văn hóa. Nhưng đó là trải nghiệm đáng để thử đấy.
10. Hầu hết các công ty không như bạn mong đợi
Khi tôi bắt đầu làm việc, tôi đã kỳ vọng rất cao về công việc trong tương lai. Tôi đã nghĩ mình sẽ được làm việc với các kỹ sư, công nghệ hàng đầu và giải quyết các vấn đề một cách tuyệt vời. Hóa ra, tôi đã nhầm.
Đừng hiểu sai ý tôi, các kỹ sư vẫn tuyệt vời. Còn những công nghệ chúng tôi làm việc cùng thì dường như rất nhàm chán. Các vấn đề cũng không quá tuyệt vời.
Tôi học được rằng tất cả các kỹ sư đều mắc sai lầm và không biết tất cả mọi thứ. Vì dù gì thì họ cũng là con người. Và các công nghệ chính xác là những công nghệ phù hợp để giải quyết các vấn đề mà chúng tôi đã nghiên cứu.
Công nghệ càng nhàm chán càng giải quyết một số vấn đề tốt hơn. Phần mềm được tạo ra để giải quyết mọi vấn đề. Một số trong đó là nhàm chán hơn những thứ khác. Không phải mọi lập trình viên đều có thể liên tục làm việc trên phần mềm sẽ thay đổi thế giới. Thông thường, một giao diện đơn giản giúp cuộc sống của ai đó dễ dàng hơn một chút hoặc API di chuyển tệp từ A sang B là những thứ giúp sếp của bạn kiếm tiền.
Điều quan trọng là không phải tất cả các công ty đều có thể hoạt động ở quy mô lớn như các công ty FAANG. Và thậm chí những vấn đề được giải quyết đôi khi nhàm chán.
Một bài học quan trọng khác: Có rất nhiều lập trình viên giống như bạn ở ngoài kia. Bạn có thể tạo ra tác động, và không phải tất cả đồng nghiệp của bạn sẽ là cấp cao nhất như bạn tưởng tượng. Họ là những lập trình viên bình thường làm một công việc cực kỳ tốt và biết nhiều như bạn.
Kieu Hoa
Khi mình yêu cuộc đời, cuộc đời cũng sẽ yêu mình đắm say
Bài viết liên quan
Whisper AI là gì? Công cụ chuyển giọng nói thành văn bản của Open AI
Oct 17, 2024 • 8 min read
Cursor AI là gì? Hướng dẫn Sử dụng Cursor AI cơ bản
Sep 16, 2024 • 13 min read
IDE là gì? Những công cụ IDE phổ biến nhất hiện nay
Aug 22, 2024 • 10 min read
Cookies là gì? Cookies được sử dụng như thế nào?
Aug 12, 2024 • 9 min read
SDLC là gì? Các mô hình Software Development Life Cycle phổ biến
Jul 13, 2024 • 27 min read
System Design là gì? Tại sao Thiết kế hệ thống lại quan trọng với Developer?
Jun 17, 2024 • 10 min read