Hỏi về job reactjs thực tế làm những gì?
Chào các bạn. Như tiêu đề, mình cũng đang học và bị stuck không biết tiếp tục thế nào nên mạn phép hỏi vài câu để được khai sáng hướng đi:
- Trong thực tế thì công việc về reactjs nó như nào ạ, project nó cần những kiến thức gì ạ? Mình đã biết cơ bản như là router, redux (quản lý state, props, dispatch) và đã làm project cơ bản. Như vậy cần học tiếp những gì?
- Đọc bất kỳ tin tuyển dụng nào về react thì họ cũng ghi là phải "strong JS". Mà strong ở mức độ nào ạ? Nghĩa là cái gì về JS cũng phải biết hay là chỉ cần mảng miếng kiến thức nào đó đủ phục vụ cho reactjs thôi là đủ.
Hiện tại, lộ trình học của mình nặng và chuyên về giao diện hơn, ví dụ các kiến thức như: cắt PSD, HTML5, CSS3, JS và Jquery cho animation cái này đi xin có ai nhận ko ạ? Hay phải học và cày thêm react ạ?
Cảm ơn rất nhiều.
5 CÂU TRẢ LỜI
- Reactjs hay các thư viện front như vue, angular thì thường tập trung vào việc xây dựng giao diện, xử lý data từ server. Nếu bạn đã biết cơ bản các khái niệm như router, redux thì mình nghĩ bạn cũng "biết" khá nhiều rồi. Để học tiếp và theo hướng Reactjs thì mình nghĩ bạn cần trải qua các dự án thực tế, những dự án lớn hơn. Thật ra khi làm thực tế, bạn sẽ phát hiện có rất nhiều điều mới mẻ qua các feature, hay maintain và fix bugs.
- strong JS mà bạn nói ở đây, theo mình cũng k hiểu thế nào là strong cả. người ko giỏi về JS cũng sẽ ko nhận mình strong JS, người giỏi cũng không nhận luôn . JS đúng là rất quan trọng và rất cần thiết, nhưng để gọi đến mức độ là strong thì thật khó để giải thích.
Lộ trình hiện tại của bạn mình nghĩ nó không thật sự focus vào vấn đề học Reactjs cho lắm. Nó liên quan đến giao diện nhiều hơn chứ chưa liên quan đến phần xử lý cũng như thao tác với dữ liệu. Bạn nên học thêm về backend như PHP (Laravel), hay Node.js (Express) rồi kết hợp chúng với nhau. có thể làm SPA rồi sau đó hướng lên SSR. Như thế sẽ học được nhiều thứ hơn.
Mình ngại học thêm php wa vì ko rành bên đó nên chắc chọn node.js để học tiếp luôn. Cảm ơn pác nhiều nhé.
- thực tế công việc về reactjs(cũng như các framework js khác như Vue hay Angular) đều cần kiến thức về web nói chung, nắm rõ các khái niệm component, prop, state, life cycle,... và công việc là bạn sẽ có 1 cái API sẵn rồi. giờ để render phía client theo như design thì bạn cần xử lý logic sao cho đúng như đặc tả.
- Cái tin "strong JS" chỉ là đăng cho nó nguy hiểm bề ngoài thôi :v quan trọng là bạn nắm rõ về js(cụ thể hơn thì 1 ví dụ ở freecodecamp.org. giải hết và hiểu hết các bài algorithm ở trên ấy kiếm được chứng chỉ algo là ổn với người mới). và như mình nói các framework js nói chung đều chung 1 khung các khái niệm như trên nên bạn cũng cần hiểu định nghĩa component, prop,.... kia
với kiến thức của bạn kia thì có thể theo design hoặc mark-up dev. tuy nhiên nếu bạn muốn theo dev hoàn toàn thì hãy theo react và cày nó. mốc thành công đầu tiên đặt ra sẽ là đi apply 1 vị trí react và pass
@quocdungabc thêm chia sẻ. thực sự bạn nên nghĩ với thế mạnh kia bạn nên theo design hay cảm thấy mình muốn theo dev? vì mình từng có thời gian làm newbie mark-up dev chỉ chuyên cắt html/css và cảm thấy bị tù túng bởi việc không khó nhưng cảm giác như không phải đúng tay thuận của mình. và có vài lý do nữa nên sau đó mình chuyển sang dự án khác và làm PHP(lúc này làm PHP là làm được rồi, dù không hiểu gì)
- Cảm ơn pác đã mô tả nhé, mình bắt đầu hình dung được rồi.
- Ok pác, chứng chỉ "JavaScript Algorithms" khá hay nhỉ, mình sẽ bắt đầu dành chút time cho nó. Hồi đó pác làm mark-up dev lương đủ sống không? Nghe nói làm react lương sẽ khá khẩm hơn.
Mình thì cảm giác mình thích làm html css bởi vì nó là tay thuận của mình. JS thì nó nặng quá, mình sợ gặp bug siêu to khổng lồ không biết đường sửa thì khổ.
@quocdungabc không bạn ạ. Không lương luôn. Mình làm nhầm chỗ
Theo mình thấy thì bạn đang thiên hướng làm về frontend thì phải. Trong thực tế, một dev frontend ngoài thuần thục sử dụng react thì cũng nên dùng cả vuejs nữa. Tất nhiên, vẫn nên tập trung học một cái là react trước như bạn đang làm là đúng hướng.
-
Tiếp theo, mình nghĩ bạn cũng nên thử dùng thêm các thư viện Frontend của react như ant.design, material design, bootstrap và cả tailwind nữa. Ngoài việc học tiếp về cắt PSD, HTML5/CSS3, nó là cần thiết với Frontend developer thì về JavaScript bạn cũng nên tìm hiểu thêm về syntax ES6, ES7... Như vậy là đã đi làm ổn rồi. Sau này, bạn luyện tập các skill JS + CSS3, mắt thẩm mỹ của bản thân cũng sẽ trau dồi qua từng dự án. Nếu bạn học thêm về typescript nữa thì ngon.
-
Về vấn đề strongJS, mình nghĩ đó là câu từ để HR nhấn mạnh rằng họ quan trọng JS nhiều. Bạn nên ghi là đã có kinh nghiệm làm những cái gì về JS, sản phẩm như nào, ghi link demo vào CV hơn là việc chăm chú vào phân vân ghi strongJS hay level bao nhiêu.
Trên đây là vài ý kiến của mình chia sẻ, chúc bạn thành công!
Hồi mới vào mình định học Vue, mà đọc mấy post thấy react speed faster hơn nên mình quyết định học react. Còn Vue chắc cũng khối công ty xài nhỉ, biết thêm cũng tốt. Thanks pác.
- Bootstrap mình có làm qua cái Alert nên mình hiểu nó như nào rồi. Còn ant.design, material design và cả tailwind thì chưa xài bao giờ. Chắc bọn nó cũng mạnh kinh khủng. Mình sẽ tìm hiểu. Cảm ơn bạn nha.
- Ok pác, sau này có làm gì đó về JS mình sẽ lưu lại, có j còn trém gió khi đi phỏng vấn. Thank you.
@quocdungabc Không có gì Ngoài ra nếu code frontend thì có thể bạn sẽ được giao nhiệm vụ code một trang SPA. Có thể bị request dùng Next.js hoặc dùng Nuxt.js... Bạn cũng nên tìm hiểu thêm nếu có thời gian.
Các vấn đề chính trong 1 dự án react bạn sẽ gặp gồm:
- xử lí các luồng logic async phưc tạp (business của khách càng lằng nhằng thì cái này càng rối và nhu cầu dùng redux-saga càng nhiều)
- tối ưu hiệu năng (tối giản số lượng render, cache hợp lý, các kĩ thuật delay render, code splitting các kiểu)
- nếu bạn trực tiếp quản lý project thì cần biết config cả webpack
- bắt kịp trend (từ version 16.8 trở đi có rất nhiều tính năng mới mà nó ảnh hưởng đến cách code và các best practices, như hook chẳng hạn)
- unit test (cộng đồng testing của react vừa mới qua biến động lớn, chuyển từ enzyme sang @testing-library/react). Code ở client có tần suất thay đổi nhiều hơn code trên server rất nhiều, bạn sẽ phải refactor code thường xuyên nên việc test ko phải là optional nữa :v
Về "strong js", bản chất OOP javascript ko hề giống như những ngôn ngữ khác (nguyên nhân là do cái engine của nó), chi tiết bạn có thể đọc thêm ở series You Don't Know Javascript. Nhưng nhìn chung, để làm các việc cơ bản đc thì bạn chỉ cần có mấy kĩ năng sau là ok:
- biết dùng "this" và xử lí các trường hợp this bị mất binding
- thoải mái với việc sử dụng callback và biết dùng promise
- hiểu cơ chế closure và hoisting
Giờ nếu nói thật ra là các mục bạn liệt kê ra mình... ko bit gì hết - cảm thấy bản thân tủi thân, hic. Để bit mình còn phải học hỏi nhiều. Cảm ơn pác nhé, đã cho mình định hướng các object cần phải nắm.
@quocdungabc xin lỗi đã làm bạn hoảng :v, đấy là kiến thức của 1 dev có kinh nghiệm, bạn sẽ có đc (hoặc không :v) sau khi tham gia dự án thật. Còn nếu bạn muốn hạn chế mục tiêu là để đi xin việc, intern hoặc fresher, thì t hoàn toàn tán thành với ý kiến của bác @vunguyen10111995. React chỉ cần sơ sơ thôi như hiện tại là hoàn toàn OK, còn quan trọng là kiến thức về css, js thuần và cách client tương tác với server. Chúc bạn may mắn!