NỘI DUNG BÀI VIẾT
Hôm nay, mình muốn chia sẻ một số suy nghĩ về “Cách trở thành lập trình viên tốt hơn” với tư cách là một lập trình viên phát triển phần mềm, mong muốn cải thiện kỹ năng chuyên môn và trở nên tốt hơn trong công việc. Các chủ đề được nêu ra ở đây là tổng quát và không cụ thể cho bất kỳ tech stack nào.
Hầu hết chúng thậm chí không dành riêng cho CNTT. Đây là những lời khuyên chung về cách phát triển các kỹ năng cá nhân, cải thiện khả năng hợp tác với đồng nghiệp và khách hàng cũng như thăng tiến sự nghiệp của bạn với tư cách là một lập trình viên phát triển phần mềm.
Một số điều trong bài viết này là chủ quan và phản ánh kinh nghiệm cá nhân của mình và một số là của những người khác đã áp dụng và thành công.
Cách trở thành lập trình viên tốt hơn
1. Hiểu quy trình “End to End”
Rất nhiều lập trình viên nghĩ rằng phát triển phần mềm là tất cả về code, và mọi thứ khác chỉ là mọi người cố gắng gây phiền nhiễu và lãng phí thời gian quý báu của họ. Trước khi bạn viết mã một phần mềm, nó phải trải qua một quá trình chuyển đổi từ một ý tưởng mơ hồ thành một giải pháp được thiết kế cẩn thận và sẵn sàng triển khai.
Và sau khi bạn đưa những thay đổi mới nhất của mình vào Git, phần mềm sẽ được kiểm thử, triển khai, giám sát, phân tích và cải tiến. Code chỉ là một trong nhiều bước của quy trình này mà thôi.
Thông thường, đặc biệt là khi làm việc trong các tổ chức lớn, các giai đoạn khác nhau của dự án được xử lý bởi các nhóm khác nhau hoặc thậm chí các bộ phận khác nhau. Tất cả bắt đầu từ thu thập và phân tích yêu cầu. Các yêu cầu sau đó được giao cho các nhà thiết kế tạo ra các mô hình cho các lập trình viên. Các lập trình viên viết mã và cung cấp kết quả cho các kiểm thử viên.
Nếu mọi thứ đều ổn, các sản phẩm sẽ được các nhóm vận hành cung cấp cho người dùng cuối. Quá trình này được coi như một tập hợp các bước rời rạc nhưng lại có mối liên hệ chặt chẽ. Tuy nhiên, nếu thiếu thông tin giữa các bộ phận, thường dẫn đến hiểu lầm và thậm chí là xung đột về yêu cầu, chức năng, giao tiếp,…
Vì vậy, nếu một lập trình viên có thể hiểu và làm được đầy đủ các giai đoạn trong quy trình phát triển phần mềm thì thật tuyệt vời. Rất nhiều công ty khi tuyển dụng đều yêu cầu thêm các kỹ năng khác ngoài việc viết code. Vì vậy, nếu bạn có kỹ năng tốt thì mức lương của bạn sẽ cao hơn rất nhiều so với những người được gọi là “thợ code”.
2. Hiểu về khách hàng
Có một điều quan trọng mà bạn cần hiểu về khách hàng của mình: họ không hiểu hầu hết những gì bạn đang làm. Nếu khách hàng là những lập trình viên lâu lăm chuyển sang hướng Product Owner thì không sao. Nhưng những người bình thường thì họ không biết gì về công nghệ cả.
Họ chỉ biết “Tôi muốn như thế này, bạn làm cho tôi y hệt được không?” Có thể họ không biết rằng làm được chức năng đó khó và mất nhiều thời gian, hoặc làm chức năng đó không cần thiết. Nếu làm không vừa ý của họ, chắc chắn bạn sẽ không thể nhận được mức thù lao mong muốn như đã đặt ra từ đầu.
Vì vậy, hãy cố gắng hiểu về khách hàng, họ có tính cách như thế nào, hiểu về cách suy nghĩ cũng như bạn phải diễn giải cho họ hiểu về các chức năng và cách làm nó. Từ đó, đưa ra và đề xuất với họ các lựa chọn tối ưu để phù hợp với công sức, tiền bạc, tránh gây hiểu lầm.
3. Chọn công cụ phù hợp cho công việc
“Nếu tất cả những gì bạn có là một cái búa, thì mọi thứ sẽ giống như một cái đinh.”
Thông thường các lập trình viên chỉ học một công nghệ duy nhất và áp dụng nó cho mọi vấn đề họ gặp phải. Không có gì ngạc nhiên khi kiểu tiếp cận này dẫn đến kết quả dưới mức tối ưu. Thay vào đó, khi giải quyết một vấn đề mới, hãy tạm dừng và suy nghĩ xem liệu các công cụ theo ý bạn có thực sự phù hợp với loại công việc này hay không.
Nếu bạn còn nghi ngờ, hãy điều tra một chút và đưa ra danh sách các lựa chọn thay thế có khả năng cao hơn. Để làm cho nó dễ dàng hơn, hãy soạn một danh sách các câu hỏi và đánh giá từng tùy chọn khác nhau. Các câu hỏi có thể khác nhau đối với mỗi đánh giá, nhưng nó có thể đi theo cách:
- Nó hỗ trợ những nền tảng hoặc thiết bị nào?
- Các yêu cầu phi chức năng, chẳng hạn như hiệu suất hoặc sử dụng bộ nhớ?
- Dùng công cụ trả phí, miễn phí hoặc mã nguồn mở?
- Giải pháp có cung cấp mọi thứ bạn cần hay bạn sẽ cần tự viết một cái gì đó?
- Bạn có bất kỳ hạn chế nào khác, chẳng hạn như chính sách công ty, vấn đề pháp lý hoặc thiếu chuyên gia trong nhóm của bạn không?
Xét cho cùng, việc này mục đích cũng chỉ giảm rủi ro khi thực hiện công việc cho bạn thôi. Mọi quyết định đều phải trả giá. Tuy nhiên, nếu có làm sai hay thất bại thì cũng đừng buồn nhé, bạn cứ cố gắng và tiếp tục, rồi có ngày quả ngọt sẽ rơi vào đầu bạn bất cứ lúc nào.
4. Làm việc theo cách bạn làm việc
Quy trình tốt cũng ảnh hưởng rất nhiều đến chất lượng công việc. Thiết lập một quy trình làm việc hiệu quả không phải là một nhiệm vụ dễ dàng. Tuy nhiên vẫn có rất nhiều sách và tài liệu về chủ đề này. Nhưng để bắt đầu, hãy xem xét các điều sau cần cải thiện:
- Phương pháp quản lý nhóm và dự án
- Quy trình cá nhân
- Thực hành kỹ thuật
- Xóa bỏ vật cản
Bản thân những thứ này không có gì là khó, nhưng chúng có xu hướng chồng chất và gây ra những hậu quả nghiêm trọng. Và điều khó chịu là bạn thường không nhận ra chúng cho đến khi quá muộn. Bạn không biết cách để thực hiện và thực hiện như thế nào tốt.
Nếu bạn cảm thấy mình đang yếu điều gì đó, thì đừng vội học nó, hãy từ từ và học dần dần để hiểu bản chất vấn đề. Vì đó là những rào cản khiến bạn sợ hãi và không muốn làm nó.
5. Tập trung vào các nguyên tắc cơ bản
CNTT là một ngành có tốc độ phát triển cực kỳ nhanh. Hàng tuần các công cụ mới được tung ra thị trường. Rất nhiều lập trình viên bị căng thẳng và cảm thấy buộc phải lựa chọn tech stack về JavaScript mỗi khi có dự án mới và điều đó khiến họ phát điên. Lúc thì React, lúc thì Next.js, lúc thì Nest.js,…
Việc phụ thuộc và Framework JavaScript quá nhiều khiến bạn quên dần đi những thứ cơ bản đã tạo nên nó. Hãy dành thời gian để đọc, có thể là các bài blog hoặc sách về phân tích, thiết kế,..
Những cuốn sách cổ điển về các chủ đề của Design Pattern phổ biến trong phát triển phần mềm, chẳng hạn như “Enterprise Integration Patterns” của Gregor Hohpe và Bobby Woolf, cuốn sách nổi tiếng “Design Patterns: Elements of Reusable Object-Oriented Software” của Gang of Four. Mặc dù một số điều được mô tả trong sách có thể đã lỗi thời, nhưng bạn có thể sử dụng chúng để tìm hiểu cách các Design Pattern phát triển cho đến ngày nay.
Bonus Tips
Chia sẻ kiến thức
Mình luôn ủng hộ các bạn có suy nghĩ mong muốn chia sẻ những kiến thức mình đã học được cho những người khác. Bạn thử nghĩ xem khi bạn gặp khó khăn mà có ai đó đã từng gặp vấn đề tương tự chia sẻ cho bạn giải pháp thì tuyệt vời biết mấy.
Đừng đổ lỗi cho bản thân hoặc người khác
Cho dù bạn có giỏi đến đâu, đôi khi mọi thứ sẽ trở nên sai trái và trong những thời điểm như vậy, điều quan trọng là bạn phải giữ được bình tĩnh và xử lý tình huống một cách đàng hoàng và tôn trọng lẫn nhau. Sau khi ngọn lửa được dập tắt, đừng tập trung vào việc tìm vật tế thần.
Điều này sẽ không giúp bạn tránh được những sai lầm trong tương lai, nhưng sẽ tạo ra nỗi sợ hãi và nghi ngờ trong toàn công ty. Thay vào đó, hãy đến cùng với các bên bị ảnh hưởng và “khám nghiệm tử thi chung”. Tập trung vào những điều dẫn đến vấn đề, tìm ra lý do tại sao nó lại xảy ra và suy nghĩ về những gì bạn có thể cải thiện hệ thống hoặc quy trình làm việc của mình để tránh vấn đề này trong tương lai.
Đừng là một thằng khốn nạn
Cộng đồng lập trình viên là một điều thú vị. Ở một khía cạnh nào đó, rất nhiều người có tư tưởng cởi mở đóng góp cho cộng đồng bằng cách làm việc trong các dự án nguồn mở, phát biểu tại các hội nghị hoặc viết bài blog. Ở khía cạnh khác, chúng ta gặp phải những người troll những ý tưởng mới, không tôn trọng những người mới đến và thể hiện hành vi thô lỗ với mọi người xung quanh.
Đừng là một trong những người đó. Hãy tử tế và lan tỏa tình yêu thương.
Kết luận
Điều tốt nhất về công việc của chúng ta là nó không có giới hạn. Luôn luôn có những con đường mới để đi và những con rồng để giết. Cho dù bạn mới bắt đầu sự nghiệp lập trình hay một chuyên gia có kinh nghiệm, hãy ghi nhớ những điều này. Nó sẽ giúp bạn tìm ra con đường của mình và trở thành một lập trình viên tốt hơn với từng bước được thực hiện.
Bạn có lời khuyên khác về “Cách trở thành lập trình viên tốt hơn” muốn chia sẻ với những người khác? Hãy để bình luận phía dưới để mọi người cùng biết nha!
Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.
Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.
TỔNG HỢP TÀI LIỆU HỌC LẬP TRÌNH CƠ BẢN CHO NGƯỜI MỚI BẮT ĐẦU
KHOÁ HỌC BOOTCAMP JAVA/PHP/.NET TRỞ THÀNH LẬP TRÌNH VIÊN TRONG 5-6 THÁNG