Hiện nay, ngành kỹ thuật phần mềm đang được đầu tư và phát triển mạnh mẽ. Có lẽ vì vậy mà nghề software engineer cũng đang thu hút rất nhiều sự chú ý của các bạn trẻ. Dưới đây là những lời khuyên bổ ích của các software engineer “kỳ cựu” gửi cho Junior Software Developer để có thêm kinh nghiệm và vận dụng vào các tình huống cần thiết.
Mục lục
- 1 Tutorial Code không phải là công nghệ hiện đại
- 2 Yêu cầu giúp đỡ khi cần thiết
- 3 Tham gia cộng đồng càng sớm càng tốt
- 4 Sử dụng unit tests
- 5 Chất lượng công việc quan trọng hơn số giờ làm việc
- 6 Kỹ năng mềm rất quan trọng
- 7 Làm việc nhóm khác với làm việc cá nhân
- 8 Cách học tốt nhất là thực hành
- 9 Thể hiện kỹ năng của mình cho mọi người thấy
- 10 Cập nhật bản thân mỗi ngày
Tutorial Code không phải là công nghệ hiện đại
Thông thường, những đoạn tutorial code trên mạng chỉ dùng cho mục đích minh hoạ. Nhưng hầu hết ai cũng mong đợi chúng sẽ có thể được sử dụng trong trường hợp của mình. Tuy nhiên, không phải lúc nào các lập trình viên cũng có thể dùng những đoạn code này vào các dự án của mình bởi chúng thường sẽ bị bỏ qua một số nội dung để trở nên ngắn gọn hơn.
Ví dụ, bạn học một ngôn ngữ lập trình mới và bạn làm theo hướng dẫn, sử dụng HTTP client để gọi API từ app client. Hướng dẫn này cho bạn biết HttpClients phải luôn được xử lý. Sau đó, bạn sẽ đi sâu hơn vào dự án và tạo HTTP client mới trong method hoặc class gọi API và loại bỏ HTTP client sau khi sử dụng. Ban đầu, những việc này có vẻ bình thường nhưng khi đã có kinh nghiệm, bạn sẽ thấy rằng việc đúng đắn nhất nên làm là sử dụng một HTTP client factory hoặc tùy thuộc vào những gì bạn đang build, sử dụng lại cùng một ứng dụng client đó cho thời lượng của ứng dụng.
Để tránh rơi vào “cái bẫy” này, bạn nên xem qua source code ở thực tế, sử dụng chức năng mà bạn muốn triển khai, ngay cả khi bạn đã làm theo hướng dẫn về tính năng đó. Bạn cũng có thể hỏi người đã viết tutorial đó để được hướng dẫn.
Yêu cầu giúp đỡ khi cần thiết
Bạn đã bắt đầu công việc hoặc kỳ thực tập của một kỹ sư phần mềm? Bạn đã dành hàng giờ để thông thạo ngôn ngữ lập trình và framework của mình? Bạn muốn thể hiện giá trị của mình? Nhưng không, vào ngày đầu tiên, bạn được giao một nhiệm vụ khó, không thể hoàn thành hoặc thậm chí không hiểu cách giải quyết nó. Bạn đã dành nhiều thời gian để thử mọi cách nhưng vẫn không thể. Tuy nhiên, bạn lại không muốn nhờ giúp đỡ vì bạn nghĩ rằng bạn nên tự mình làm điều đó hay vì sợ bị đánh giá hoặc coi thường.
Bạn không nên làm như vậy. Hãy nhờ những ai có thể hỗ trợ để giúp bạn giải quyết chúng. Tốt nhất là bạn nên yêu cầu sự trợ giúp ngay nếu thấy rằng mình đang gặp khó khăn hơn là lãng phí thời gian để tự tìm ra giải pháp – thứ mà một senior dev có thể giúp bạn giải quyết chúng.
Thực tế, bạn có thể đặt rất nhiều câu hỏi, chỉ cần đừng bắt đồng nghiệp lặp lại quá thường xuyên các câu trả lời cũ và đủ nhanh nhạy để hiểu chúng. Hãy nhớ rằng phát triển phần mềm là công việc của một nhóm, không phải của riêng bạn. Vì vậy, hãy lên đề nghị sự giúp đỡ nếu bạn thực sự cần.
Tham gia cộng đồng càng sớm càng tốt
Tưởng tượng bạn đang bắt đầu một việc gì đó cần sự kiên trì và chăm chỉ, bạn nên làm điều đó một mình hay làm với những người có chung niềm đam mê ở trong cùng một cộng đồng – nơi bạn có thể giúp đỡ lẫn nhau, chia sẻ mẹo, kiến thức và tìm những cơ hội?
Việc tham gia cộng đồng sẽ là chất xúc tác cho sự phát triển của bạn. Nếu bạn muốn một framework, một ngôn ngữ lập trình mà bạn yêu thích hoặc muốn học thêm kiến thức, bạn có thể tìm cộng đồng này trên Google, Facebook, slack hoặc discord servers. Có thể, bạn sẽ tìm được những người bạn đồng hành tốt tại đây, thậm chí có thể cùng nhau viết code cả đêm.
Sử dụng unit tests
Khi không biết đoạn mã nào thực hiện hành động gì, bạn có thể sử dụng unit tests. Chúng cho bạn thấy chính xác những gì code phải làm và kết quả mong đợi sau khi thực thi code. Bạn có thể thực hiện nó ở bất cứ lúc nào và bắt cứ ở đâu.
Chất lượng công việc quan trọng hơn số giờ làm việc
Tốt hơn hết là bạn nên tạo ra những sản phẩm chất lượng và về sớm ho là ở lại đến cuối cùng nhưng lại có kết quả kém. Việc đi sớm về trễ có thể thể hiện được sự cống hiến của bạn nhưng nó chỉ hiệu quả nếu bạn thực sự đủ nỗ lực trong thời gian bạn làm việc. Vì vậy, bạn nên tập trung vào hiệu suất hơn số giờ làm việc.
Thông thường, những người quản lý sẽ dùng năng suất làm thước đo hiệu suất hơn là thời gian dành cho công việc. Họ sẽ tôn trọng những người làm việc với tốc độ cao và biết khi nào nên sử dụng thêm thời gian để làm việc hiệu quả hơn.
Kỹ năng mềm rất quan trọng
Chỉ tập trung vào kỹ năng cứng sẽ không đi được xa. Khi bắt đầu hành trình trở thành một Software engineering, nếu nghĩ rằng việc mài giũa các kỹ năng kỹ thuật của mình là điều quan trọng nhất thì nghĩa là bạn đang đi sai đường. Đây là một vài kỹ năng mềm bạn cần lưu vào để cải thiện:
- Hiểu yêu cầu là một phần của quá trình triển khai. Bạn nên thực hiện điều đó một cách nghiêm túc. Đừng vội vàng thực hiện chỉ vì nó là phần thú vị nhất. Dành thời gian để ghi lại những gì bạn được yêu cầu làm và đặt câu hỏi cho đến khi bạn chắc chắn rằng mình đã hiểu.
- Sự tự nhận thức là vô giá. Khi bạn nhận thức được giới hạn bản thân, điểm mạnh và điểm yếu của bạn, bạn có thể tìm kiếm được sự hướng dẫn và người cố vấn phù hợp. Không ai biết tất cả, những chuyên gia giỏi nhất là những người tự tin nói rằng: “Tôi có thể làm điều này và tôi không thể làm điều kia”.
- Cố gắng tự học. Bạn sẽ cần phải học liên tục và phải có phương pháp học phù hợp. Rất nhiều lập trình viên tự học, vì vậy đây có thể không phải là vấn đề lớn.
- Trí tuệ cảm xúc là quan trọng vì phát triển phần mềm là một “trò chơi đồng đội”. Một junior dev luôn tỏ thái độ khi bị sửa chữa hoặc được chỉ ra những lỗi để cải thiện hay một senior dev không thừa nhận và sửa chữa sai lầm của mình khi được góp ý bởi một người cấp dưới thì sẽ thật tệ. Vì vậy, bạn nên thông minh về mặt cảm xúc để giao tiếp và hợp tác trở nên dễ dàng.
Làm việc nhóm khác với làm việc cá nhân
Khi làm việc nhóm, bạn nên tuân thủ tuân theo các tiêu chuẩn do nhóm đặt ra. Điều này có thể bao gồm:
- Tôn trọng style code, quy tắc, quy ước đặt tên, v.v.
- Không thể commit bất kỳ tệp nào hoặc để lại console logs hoặc remarks cho chính mình bên trong đoạn code của mình
- Không submit pull requests sẽ phá vỡ build pipelines.
- Giúp đồng nghiệp dễ dàng lấy code của mình khi bạn vắng mặt
- Làm cho quá trình review code dẽ dàng hơn
- Luôn nhớ merge hoặc update code của bạn trước khi tiếp tục quá trình triển khai.
Cách học tốt nhất là thực hành
Bạn muốn học java? Build thứ gì đó với Java. Bạn có muốn học Flutter? Build một ứng dụng với nó. Bạn muốn học Angular, React Vue? Build một ứng dụng web với nó. Bất kể bạn đang build cái gì, hãy cứ thử. Quá trình tự học cách triển khai một function sẽ khiến bạn học hỏi được nhiều điều hơn so với một người chỉ đọc sách lập trình, làm theo những hướng dẫn của các khóa học hay cố gắng nhồi nhét keyword.
>>> Tham khảo khoá học React tại Mellori: Khoá học Reactjs online với các dự án thực hành chất lượng
Thể hiện kỹ năng của mình cho mọi người thấy
Bạn có thể cực kỳ khéo léo và nhưng nó sẽ không có giá trị gì nếu bạn không chúng minh cho mọi người biết? Khi nhận được một công việc, nhà tuyển dụng cần đánh giá kỹ năng của bạn so với các ứng viên khác. Vượt qua các bài kiểm tra của một cuộc phỏng vấn việc làm không đủ để thực hiện điều đó. Cách lý tưởng để chứng minh là:
- Xây dựng phần mềm được mọi người sử dụng.
- Đóng góp code cho GitHub
- Sáng tạo nội dung; Video trên YouTube, viết blog, viết kỹ thuật, v.v.
Cập nhật bản thân mỗi ngày
Đối với lĩnh vực công nghệ, mọi thứ có thể trở nên lạc hậu hoặc lỗi thời trong chớp mắt. Vì vậy, bạn cần phải luôn cập nhật những thứ đang diễn ra. Khi bạn bắt đầu hành trình phát triển phần mềm, bạn phải không ngừng học hỏi. Nếu có một điều không đổi trong cuộc sống của bạn, thì đó phải là học tập. Bạn chỉ cần nghỉ 6 tháng rồi quay lại thì sẽ rất dễ bị lạc hậu vì công nghệ đang có thời kì thay đổi cực kỳ nhanh.
Đây là những cách phổ biến được sử dụng để cập nhật liên tục mọi thứ đang diễn ra.
- Đăng ký nhận thông báo phát hành Github về các framework và thư viện của bạn.
- Theo dõi những người tạo ra những công cụ bạn đang sử dụng để có thể cập nhật những tin tức mới nhất
- Theo dõi các bloggers/YouTubers trong lĩnh vực của bạn (front-end, mobile hoặc back-end)
Cơ hội phát triển dành cho các Junior software developer ngày nay rất rộng. Quan trọng là bạn cần tìm cho mình một mentor tốt để có thể chia sẻ cho bạn những kiến thức bổ ích và cùng bạn vượt qua những vấn đề khó khăn trong công việc. Hy vọng bài viết sẽ giúp bạn tích lũy thêm cho mình nhiều kinh nghiệm quý báu để có thể phát triển trong lĩnh vực software.