Kỹ năng gì là khó nhất trong Front end, và điều gì để phân biệt giữa 1 senior và 1 tech lead về front end
Mình đồng ý với ý kiến của bạn @thangtd90 , mỗi người đều khác biệt nên sẽ tự bản thân sẽ cảm nhận cái khó và dễ khác nhau.
Theo trải nghiệm của mình, một trong những kĩ năng khó của Frontend là khả năng thích ứng và học hỏi công nghệ mới. Thế giới frontend như một bữa tiệc buffet mà bạn vào đó và chọn ăn bất cứ thứ gì (chọn tổ hợp các công cụ, framework...), kết quả cuối cùng vẫn sẽ là no bụng (ra một trang web chạy được), nhưng bạn lại không thể ăn hết cả bàn tiệc mà chỉ chọn những món bạn có thể ăn. Tuy nhiên càng ngày càng có nhiều món ăn mới được phát minh ra, tốt cho sức khỏe hơn, ngon miệng hơn, và những món ăn "ít ngon và dinh dưỡng" hơn sẽ bị đào thải (ví dụ ngày xưa SVN như là một chân lý trong một thời gian dài, nhưng sau đó GIT đã đạp tất cả, nhưng tương lai sẽ có thứ tốt hơn GIT thôi). Bạn sẽ rất dễ bị chới với và lạc lõng nếu không có một nền tảng vững chắc và bị thị trường dẫn dụ. Ví dụ bạn thấy dev react lương rất cao và hot, bạn đâm đầu vào học react một cách máy móc để tìm việc mà bỏ qua các kiến thức nền tảng và cần thiết, và giả sử react đang trên bờ vực bị đào thải vì một công cụ khác mạnh mẽ hơn, bạn ngay lập tức sẽ thấy hoang mang và không biết có nên đi theo cái "công cụ mới nổi" đó không...
Về câu hỏi phân biệt senior và tech lead, câu trả lời chủ quan của mình là:
Senior: khi một developer đã trải nghề đủ lâu, họ đã xác định được con đường mình phải đi, cùng với một nền tảng kiến thức và kinh nghiệm vững chắc, họ sẽ xoáy sâu vào một hướng và master hướng đó. Với họ thì mọi task hàng ngày chỉ là muỗi, hắt xì cái là xong task. Tuy nhiên đời không phải lúc nào cũng màu hồng, vẫn sẽ có những thách thức mới, hoặc kiến thức mới đòi hỏi họ phải tìm hiểu mới có thể hoàn thành task, nhưng điều này không làm khó được họ, và họ chỉ cần dành tí thời gian là có thể nắm đủ vững và hoàn thành task. "Senior" là ám chỉ về trình độ và kinh nghiệm của người lập trình.
Tech lead: theo cảm nhận của mình, vị trí tech lead sẽ bao toàn mọi thứ hơn, gọi là "tech lead về frontend" thì họ vẫn phải hiểu về backend, devops (cơ bản), database, cách mà mọi thứ vận hành và kết nối. Họ phải hiểu cả business của dự án, để đưa ra các quyết định bậc cao về công nghệ, kĩ thuật áp dụng cho dự án để phù hợp nhất, từ đó sẽ chọn được nhân sự phù hợp vào dự án. Thông thường người tech lead sẽ là người xây dựng cái sườn thô của một dự án, và các senior/junior sẽ làm tiếp trên đó. Ngoài ra họ còn phải có kĩ năng leader (kĩ năng mềm) như quản lý task, chia task phù hợp cho team member, biết được điểm mạnh/yếu của member để kích thích họ phát triển, giải quyết mâu thuẫn về kĩ thuật, trả lời câu hỏi của team member... Người làm tech lead sẽ gần với vị trí Software Architect hoặc CTO hơn (cảm nhận cá nhân). "Tech lead" là ám chỉ về vị trí, vai trò và trách nhiệm của người đó trong team, dự án hoặc trong công ty.
Trên đây là kinh nghiệm cá nhân của mình khi làm việc tại một số công ty. Đúng như bạn @thangtd90 có chia sẻ thì mỗi công ty sẽ mỗi khác nhau, bạn cần phải tự trải nghiệm và tự tìm ra câu trả lời cho riêng mình, để sau này nếu có một junior nào đó hỏi bạn câu hỏi tương tự, bạn có thể tự tin chia sẻ và truyền đạt kinh nghiệm cho các thế hệ sau.
Phỏng vấn thuật toán Front-end
Frontend trước giờ mình ít được phỏng vấn thuật toán bằng cách code trực tiếp (chỉ 1 lần duy nhất). Có thể công việc yêu cầu bạn xử lý tầng logic nhiều hơn là web layout, hoặc đơn thuần là do process của công ty nó thế.
Trong một lần phỏng vấn trước đây, mình được đưa 2 bài tập tại trang web https://www.codility.com để test thuật toán:
Bài 1: xuất chuỗi fibonacci bằng javascript.
Bài 2: đề cho một cây HTML DOM đơn giản, viết thuật toán để đếm xem cây DOM ấy "sâu" bao nhiêu tầng.
Các dạng bài như vầy bạn sẽ gặp rất nhiều ở các trang khác như coderbyte.com hay codesignal.com, hoặc ngay Viblo cũng có https://code.viblo.asia, bạn có thể lên làm thử.
P/S: cũng có thể công ty muốn kiểm tra thuật toán bằng cách đưa ra tình huống và trao đổi với ứng viên bằng miệng hoặc viết ra bảng, cái này tùy công ty sẽ có process riêng, hoặc cũng có thể là "sở thích cá nhân" của interviewer nữa.
Dù gì thì cũng chúc bạn phỏng vấn thành công.
câu hỏi phỏng vấn android developer
Một số câu hỏi mình thường gặp khi phỏng vấn về native app:
- Bạn có app nào trên Google Play Store chưa?
- Quy trình/kinh nghiệm để đưa một app lên store cần những gì?
- Vì sao chọn Android thay vì iOS?
- Vì sao chọn Android thay vì cross platform apps (React native, Flutter...)?
- So sánh native apps và cross platform apps? ...
Mình không phải Android app developer nên không rõ kĩ thuật sẽ hỏi thế nào, nhưng nếu phỏng vấn ở mức senior thì thường sẽ xoáy vào architecture, performance, security...
Các kĩ năng
Tổ chức
Chưa có tổ chức nào.