Bạn đang tìm kiếm thời gian để trở thành một lập trình viên tốt hơn?
[Bài viết của tác giả Trần Trung Hiếu] 1. Bạn không cần học mọi thứ mới theo một thứ tự nhất định. Không có thắc mắc gì khi một lập trình viên giỏi luôn phải học, nhưng tập trung vào học cái gì lại có thể tạo ra một sự khác biệt lớn với lượng thời gian mà bạn bỏ ra. Đầu ...
[Bài viết của tác giả Trần Trung Hiếu]
1. Bạn không cần học mọi thứ mới theo một thứ tự nhất định.
Không có thắc mắc gì khi một lập trình viên giỏi luôn phải học, nhưng tập trung vào học cái gì lại có thể tạo ra một sự khác biệt lớn với lượng thời gian mà bạn bỏ ra.
Đầu tiên, đừng bị mắc lừa bởi các tiêu đề trên các blog công nghệ rằng cứ 37 giây trôi qua lại có một chuẩn mới được công bố. Hầu hết các công nghệ, framework, tính năng mới sẽ không bao giờ được sử dụng và bạn sẽ không bao giờ biết đến chúng. Vì rằng sẽ mất rất nhiều thời gian để chúng được sử dụng trong thực tế hơn là trong thế giới blog. Các công ty lớn đã đầu tư vào stack công nghệ của họ nhiều hơn so với các startup công nghệ nhỏ bé, họ không mạo hiểm kiểu tung đồng xu. Vì thế, hãy thư giãn, sự nghiệp của bạn vẫn an toàn.
Hãy tập trung học trong 3 khu vực dưới đây, theo thứ tự đã được liệt kê:
1.1 Những kiến thức cơ bản – Sẽ dễ dàng hơn nhiều để học một kỹ năng mới khi bạn thực sự làm chủ được những kiến thức cơ bản. Ví dụ, nếu bạn hiểu sâu JavaScript, bạn có thể làm chủ mọi framework JavaScript mới một cách nhanh chóng. Nếu hiểu sâu lập trình hướng đối tượng, bạn cũng có thể làm chủ một ngôn ngữ hướng đối tượng mới nhanh chóng. Học sâu những kiến thức cơ bản sẽ tăng 10 lần hiệu quả học tập. Luôn tập trung để cải thiện kiến thức cơ bản đầu tiên.
1.2. Học tính năng/phiên bản mới nhất trong stack công nghệ bạn thường xuyên sử dụng – Những công cụ này sẽ đặt thức ăn lên bàn cho bạn và gia đình của mình. Khi các phiên bản mới của các công cụ này được phát hành, việc đầu tư thời gian để học chúng là rất có giá trị.
1. 3. Học các công nghệ được hỗ trợ bởi những người dẫn đầu thị trường – Nếu những công ty lớn như Google, Facebook, hoặc Microsoft đưa ra một thứ gì đó mới và bắt đầu nhận được sự quan tâm, nó đáng để xem xét. Có hàng trăm framework JavaScript cạnh tranh với nhau để được chú ý, sau đó Angular và React xuất hiện đã đá bay chúng ra khỏi bản đồ. Tôi không nói rằng chúng sẽ không gây đảo lộn và trở thành điều lớn tiếp theo nhưng thường xuyên hơn, những công nghệ không có tên tuổi thường biến mất nhanh chóng.
Thời gian học lên là một phần trong lịch làm việc của bạn. Thiết lập một lượng thời gian để học hàng ngày. Nó không cần quá nhiều, thậm chí chỉ 25 phút để đọc và thử nghiệm hàng ngày là đủ.
2. Viết code tốt cần ít thời gian hơn code tồi, nhưng nó không cảm nhận theo cách này.
Bạn thường cảm nhận thời gian bạn dành cho một tính năng mới là khi code của bạn chạy được. Nhưng đó mới chỉ là bắt đầu. Thời gian dành cho một tính năng bao gồm thời gian để sửa lỗi sau này, thời gian để refactor và làm việc với những đoạn code liên quan khác xung quanh thiết kế mà bạn tạo ra khi triển khai tính năng đó. Khi bạn bắt đầu hiểu thời gian bạn đã đầu tư theo cách này, nó trở nên rõ ràng rằng, về lâu dài, ít lỗi và thiết kế tốt hơn là một sự đầu tư đáng giá.
Có 2 thứ bạn có thể làm, sẽ giảm thiểu các lỗi và giúp cho thiết kế tốt hơn.
2.1. Sử dụng test-driven development. Viết test đầu tiên, sau đó viết code theo test. Điều này không chỉ giúp cho ít lỗi hơn mà còn làm cho thiết kế tốt hơn, bởi vì khi bạn có một cấu trúc tốt theo cách có thể kiểm thử được, bạn sẽ tạo ra các hàm nhỏ hơn, đơn giản hơn có ít dependencies.
2.2. Sử dụng một phương pháp thiết kế lặp đi lặp lại. Đừng dành thời gian để làm cho code hoàn hảo trước khi bạn dành thời gian cố gắng để làm cho code chạy được. Bạn sẽ không bao giờ, làm đúng hoàn toàn ngay trong lần đầu tiên. Bạn cần gõ các ngón tay trên bàn phím và tạo ra code, cái chạy được và làm những thứ bạn mong muốn. Vấn đề là các lập trình viên thường có xu hướng mắc phải 2 lỗi phổ biến: hoặc là họ dành quá nhiều thời gian để suy nghĩ và không đủ thời gian để làm được một điều gì đó thực sự, hoặc họ không dành đủ thời gian để cải thiện giải pháp đầu tiên của họ. Sau đây là câu thần chú được phát biểu lần đầu bởi Kent Beck: “làm cho nó chạy, làm cho nó đúng, làm cho nó nhanh”.
3. Làm việc 24/7 không giúp bạn trở thành một anh hùng. Hãy quản lý những kỳ vọng.
Đây là một trong những thứ gần như đã giết tôi. Tôi đã từng đồng ý và chấp nhận mọi mốc thời gian điên rồ mà sếp hoặc khách hàng đưa ra. Tôi sợ phải nói “không”. Tôi sợ để cho bất cứ ai phải thất vọng. Tôi sẽ làm bất kỳ điều gì được giao. Tôi ngủ ngay dưới bàn của mình, uống nhiều cà phê để có thể làm việc liên tục 40 giờ.
Lần đầu tiên tôi thấy mình như một ngôi sao. Tôi đã làm được một điều to lớn và cảm thấy mình giống như một anh hùng. Nhưng tôi đã thiết lập một kỳ vọng bất khả thi. Làm việc như vậy là không bền vững. Sau cùng, tôi bắt đầu kiệt sức, ốm, và chậm deadline. Tôi bắt đầu có uy tín như là một người không đáng tin cậy và không thống nhất. Đó là một tin buồn.
Cuối cùng tôi cũng đã hiểu ra, và đó cũng là cái bạn nên chấp nhận để học. Một anh hùng thật sự là người nhất quán và đáng tin cậy. Họ nói cái họ sẽ làm và làm cái họ nói. Cách duy nhất để trở thành một anh hùng là quản lý kỳ vọng.
Bạn cần quản lý các mốc thời gian để luôn cung cấp các sản phẩm có chất lượng cao với thời gian chính xác. Điều này vô cùng khó khăn lúc đầu. Nó có nghĩa là bạn phải nói “không”.
Khi bắt đầu, ông chủ và khách hàng của bạn sẽ không hài lòng, nhưng khi bạn cho thấy rằng bạn hoàn toàn đáng tin cậy, mọi thứ sẽ bắt đầu thay đổi.
Theo thời gian, các lập trình viên khác sẽ chậm deadline, hoàn thành công việc một cách cẩu thả và trở lên không đáng tin cậy. Sau đó bạn sẽ trở thành một anh hùng trong nhóm của mình. Trong thực tế, học được điều này giúp tôi trở thành một trong những nhà tư vấn hàng đầu trong thị trường của mình. Tôi đã xây dựng một danh tiếng về chất lượng và đúng thời hạn, bởi vì tôi đã mạnh mẽ trong việc quản lý kỳ vọng.
4. Không phải tất cả thời gian dành để “cải thiện” code đều có cùng một ROI
Thời gian là một khoản đầu tư. Giống như tất cả các khoản đầu tư khác, bạn mong chờ một mức lợi nhuận thu về so với chi phí đầu tư . Bạn nên nhận lại ít nhất là bằng với số đầu tư và hy vọng nhận được nhiều hơn giá trị mà bạn đã bỏ ra.
Chúng ta đã nói “làm cho nó chạy, làm cho nó đúng, làm cho nó nhanh”. Nó là một câu thần chú hay nhưng cũng là một cái bẫy: “đúng’ không có nghĩa là hoàn hảo, và “nhanh” không có nghĩa là nhanh nhất có thể.
“Đúng” có nghĩa là code làm việc nhất quán và dễ dàng refactor. “Nhanh” có nghĩa là tốc độ thực thi nhanh không ảnh hưởng xấu tới trải nghiệm nguời dùng. Điều quan trọng nhất là ứng dụng của bạn làm cho người sử dụng cảm thấy nhanh.
Vì thế, đừng lãng phí bằng cách cố gắng tiết kiệm thời gian cho một hàm ít sử dụng, hoặc cố gắng giảm một vài mini giây trên một vài thứ đã chạy nhanh hơn tốc độ chớp mắt của con người (~300ms). Đừng lãng phí thời gian để cố gắng refactor code đang chạy, có cấu trúc tốt chỉ bởi vì bạn đã học được một vài kỹ thuật hoặc phương pháp mới cái bạn tự thuyết phục bản thân bỗng dưng quay lại và áp dụng vào những thứ bạn đã hoàn thành.
5. Lên lịch nghỉ ngơi giúp bạn làm việc hiệu quả hơn
Đây là điều rất khó đối với tôi khi phải chấp nhận và học. Làm thế nào bạn có thể trở lên hiệu quả hơn khi bạn không dành tất cả thời gian để làm việc? Vâng, nó là sự thật.
Theo như Allison Gabriel, một phó giáo sư về quản trị tại đại học Virginia Commonwealth người nghiên cứu nhu cầu việc làm và động lực của người làm thuê, “Nhiều nghiên cứu nói rằng chúng ta có những nguồn lực giới hạn. Khi bạn sử dụng những nguồn lực trong một thời gian dài, bạn trở lên không hiệu quả như vốn có. Nếu bạn cạn kiệt, hiệu năng sẽ giảm. Bạn có khả năng tập trung ít hơn và gặp khó khăn trong việc giải quyết các nhiệm vụ”.
Luôn làm việc trong tình trạng căng thẳng, chẳng hạn như stress, mệt mỏi, và tâm trạng tiêu cực. Sẽ làm giảm sự tập trung, các nguồn lực vật chất và tinh thần của bạn.
Bộ não có khả năng tự điều chỉnh để tuân theo kỉ luật, nhưng nó sẽ suy yếu với mỗi bài tập tự kiểm soát trong ngày. Đó là sự mất mát và cần bổ sung. Nếu không được bổ sung, nó sẽ trở nên kém hiệu quả khi xử lý các nhiệm vụ, sự tập trung và giải quyết các vấn đề.
Bộ não và cơ thể bạn cần nghỉ ngơi, cho dù bạn có muốn hay không. Vì thế, hãy lên lịch cho việc nghỉ ngơi. Lập kế hoạch thực sự và đặt vào lịch trình của bạn thời gian nghỉ. Điều này cho phép bạn nghỉ ngơi mà không cảm thấy áy náy về nó. Bạn sẽ dễ dàng chấp nhận nó hơn bởi vì bạn biết rằng bạn đã lên kế hoạch cho việc nghỉ ngơi.
Techtalk Via hoidapit