Sự khác nhau giữa Junior vs Senior ReactJs Developer

Sự khác nhau giữa Junior vs Senior ReactJs Developer

Bạn có muốn biết sự khác nhau giữa 2 level Junior và Senior ReactJs là gì không? Biết sớm sẽ giúp bạn rút ngắn được thời gian phát triển sự nghiệp của bản thân đi rất nhiều.

Bài viết này được viết theo góc nhìn của mình, tất nhiên mọi thứ không gì là tuyệt đối cả. Tiêu chuẩn xét duyệt level ở các cty là khác nhau!

Mình sẽ đánh giá dựa trên những tiêu chí sau

  • Kỹ năng cứng (phân tích, giải quyết vấn đề, coding)

  • Trách nhiệm đối với dự án

  • Chia sẻ & giúp đỡ

  • Kỹ năng mềm khác


🥇 Kỹ năng cứng (phân tích, giải quyết vấn đề, coding)

🥈 Khi bắt đầu nhận task thì

  • Junior: Phân tích độ khó của task, ước lượng thời gian và bắt tay vào làm luôn.

  • Senior: Cũng như Junior nhưng sẽ phân tích chuyên sâu hơn như: Task này sẽ dùng thư viện gì? Có nên dùng thư viện hay tự viết tay? Những section này đã có component nào trong source code hay chưa để ta có thể tái sử dụng mà không cần tạo mới?

🥈 Ước lượng thời gian làm task

  • Junior: Có xu hướng ước lượng rất sát thời gian, ví dụ ước lượng task này làm 16h coding thì Junior sẽ cho là 2 ngày (nhưng đâu dễ gì 1 ngày bạn code đủ 8h, thời gian họp, ăn uống, nói chuyện,... ở đâu 😁)

  • Senior: Ước lượng chính xác hơn, đây là do kinh nghiệm làm lâu năm nên biết được độ phức tạp của task. Khi ước lượng sẽ tính đến thời gian code trong một ngày là bao nhiêu để không bị deadline dí

🥈 Giải quyết khi gặp vấn đề

Ví dụ cái task có thời gian làm là 18h nhưng bạn làm được 10h rồi thì gặp bug khó (dự là không thể tự giải quyết),

  • Junior: Các bạn Junior thường hay có thói quen là "cố đấm ăn xôi". Nghĩ mình sẽ làm được nên cố tiếp tục làm đến 17h. Cuối cùng gần đến deadline thì mới nói ra là em gặp bug, lúc này cũng đã quá muộn rồi, bạn đã bị trễ task 🥲 và không ai giúp bạn được.

  • Senior: Cùng ví dụ trên, các senior trước tiên sẽ search google và các nguồn tài liệu liên quan, nếu đã trôi 1-2 tiếng mà không giải quyết được thì sẽ trao đổi với cả team rằng có ai từng gặp bug này chưa, nếu task này quá khó thì hãy ước lượng lại task và thông báo với khách hàng sớm.

🥈 Kỹ năng code

Không thể chối cãi được đây chính là sự khác biệt lớn nhất giữa Junior và Senior, mình sẽ nêu ra một số kiến thức bắt buộc nếu như bạn muốn trở thành một Senior ReactJs

  • Viết code clean có thể tái sử dụng

  • Viết CSS dễ bảo trì, hạn chế !important, không bị bug override css giữa các component

  • Dùng các thư viện ngoài có kiểm soát (không phải cái gì cũng cài và dùng vào được)

  • Hiểu được độ phức tạp của function, viết code với độ phức tạp thấp

  • Dùng Typescript (không phải bàn rồi!)

  • Testing (Unit testing, e2e testing,...)

  • Custom được các build tool như webpack, vite

  • Biết cách xử lý các tình huống với Git như squash, rebase, cherry pick, resolve conflict

  • Biết cách sử dụng các công cụ devtool như React Dev Tool Component, Lighthouse, Performance, Network, Elements

  • Hiểu biết về SEO: Viết code semantic html, website đầy đủ title, description, Open Graph

  • Hiểu biết về flow hoạt động của ReactJs: render cái nào chạy trước, chạy sau, khi nào dùng useEffect, khi nào dùng useLayoutEffect

  • Hiểu được khi nào nên dùng state, khi nào không cần dùng. Các bạn mới học React rất hay lạm dụng state, ở đâu cũng dùng cả.

  • Hiểu được tham trị tham chiếu!

  • Luôn luôn hủy đăng ký sự kiện & gọi api khi viết code trong useEffect

  • Biết dùng các thư viện quản lý state: Redux, React Query

  • Biết dùng các thư viện style như CSS Modules, Styled Components, Tailwindcss

Thực sự còn vài cái nữa nhưng như trên là cũng tương đối đủ rồi đó.


🥇 Kỹ năng mềm

Một khi đã lên được level này rồi thì ngoài kĩ năng cứng ở trên ra, anh em cũng cần những kỹ năng dưới đây

🥈 Kỹ năng quản lý, phân chia task cho các thành viên

Lên level cao hơn thì trách nhiệm cũng cao theo. Anh em phải biết quản lý công việc sao cho mang lại hiệu quả tối ưu nhất.

Đôi lúc anh em phải chia task cho các bạn Junior, vì thế cần phải biết "break down" task ra, phân chia sao cho phù hợp với điểm mạnh điểm yếu mỗi bạn

Chia task thôi vẫn chưa xong, khi đến mỗi giai đoạn của task thì cũng nên hỏi han các thành viên để xem thử có ai gặp vấn đề gì không để mình còn support kịp.

🥈 Kỹ năng review code

Mỗi lần các bạn làm xong thì chúng ta phải có nhiệm vụ review code xem thử có chuẩn chưa, có clean, có tối ưu gì chưa. Và review dưới góc nhìn của một Senior chứ đừng review dưới góc nhìn của một Junior 😉.

Ý mình là bạn nên khó tính một xíu thì dự án mới chất lượng được 😁

🥈 Kỹ năng giao tiếp khách hàng

Em ơi, cái này như thế này vẫn chưa được, chị muốn nó phải như thế này cơ!

Ủa em? Tính năng này không làm được hả?

Hoặc những tình huống trớ treo như website bị sập, trễ deadline thì cũng biết cách ăn nói sao cho khéo 🥲

🥈 Kỹ năng trình bày vấn đề

Ui trời, mang tiếng senior mà nói cái vấn đề ra ở trong team không một ai hiểu thì có 2 khả năng

  • Vấn đề quá khó, trong team không ai đủ trình để hiều

  • Bạn trình bày quá tệ (thường rơi vào cái này 🤣)

Nên là ae nào code nhiều, ít nói thì nên "nói nhiều" một chút để cho khẩu hình miệng linh hoạt tí.

Mình biết nhiều ae hiểu cái vấn đề ae định nói nhưng mà khổ nổi không trình bày được 🥲.

Luyện đi nhá.

🥈 Kỹ năng tổ chức họp, meeting

Có thể ae thấy cái này hơi thừa, vì người tổ chức họp hành trong team thường là Leader, Manager nhưng dù sao thì chúng ta cũng là Senior rồi, cũng nên học hỏi cách tổ chức cuộc họp của những anh chị đi trước, biết đâu năm sau cty cho anh em lên Leader thì sao 🤣

🥈 Chia sẻ kiến thức

Chia sẻ kiến thức, học hỏi lẫn nhau là thứ không thể thiếu ở các cty hiện nay nếu muốn phát triển nhanh và bền. Cty nào mà không có văn hóa này thì anh em nên xem lại nhé 😁

Mình đã làm 3 cty từ nhỏ đến lớn đều có các buổi seminar cả, và mình cũng hay đăng ký làm host lắm 😁

Anh em có thể bắt tay vào viết những bài blog đầu tiên, tin mình đi, viết blog giúp anh em học được rất nhiều thứ từ việc trình bày vấn đề, ghi nhớ lâu hơn, lâu lâu còn nhận lại được những lời cảm ơn từ các bạn dev khác. Nghe ấm lòng thực sự.


🥇 Túm cái váy lại

Các bạn thấy không, để trở thành một senior dev nói chung hay Senior React nói riêng không dễ chút nào, nhưng không phải là không đạt được.

Nếu chúng ta biết được cần những kiến thức nào để trở thành một Senior thì chúng ta sẽ đi rất nhanh.

Chúc anh em sớm chinh phục được cột mốc này nhé 💓

Nguồn bài viết: https://duthanhduoc.com

Phạm Hồng Đức
Phạm Hồng Đức
Một developer thích nghiên cứu và chia sẻ kiến thức lập trình, phần mềm mã nguồn mở (open-source), và cuộc sống.