thắc mắc Hỡi các Dev fron-end thuần, các bạn có cần kiến thức về C++, OOP và giải thuật trong công việc ko?

Dưa Nail

Member
Nghe trên Quora có 1 Dev 12 năm kinh nghiệm chia sẻ rằng họ chưa bao giờ cần kiến thức về cấu trúc DL & giải thuật ở trường ĐH.
Vậy thì một người bắt đầu từ con số 0 trong ngành muốn theo hướng Front-end, có cần phải học C++, OOP và giải thuật như trên trường ĐH đã dạy ko? Nó có tác dụng nhiều khi làm việc hoặc ít nhất là khi phỏng vấn họ có hỏi ko?
Thanks các bạn
 
Nghe trên Quora có 1 Dev 12 năm kinh nghiệm chia sẻ rằng họ chưa bao giờ cần kiến thức về cấu trúc DL & giải thuật ở trường ĐH.
Vậy thì một người bắt đầu từ con số 0 trong ngành muốn theo hướng Front-end, có cần phải học C++, OOP và giải thuật như trên trường ĐH đã dạy ko? Nó có tác dụng nhiều khi làm việc hoặc ít nhất là khi phỏng vấn họ có hỏi ko?
Thanks các bạn
VvdFMUC.gif
Có, 100% là có. Làm dev mà không biết được OOP hay giải thuật thì ở nhà mà mở hàng Photo rồi gõ word cho nhanh
 
VvdFMUC.gif
Có, 100% là có. Làm dev mà không biết được OOP hay giải thuật thì ở nhà mà mở hàng Photo rồi gõ word cho nhanh
Cơ mà sao có ông kia ko hề học mấy cái đó, bay vào là học html css javascript với framework xong vẫn xin được việc fron-end vậy thím, ổng bảo ko biết tí gì về mấy cái đó luôn, lên trường toàn ngủ:sweat:
Có minh chứng ngay dưới
Mình làm FE 5 năm rồi mà ko biết OOP là gì :oops:
 
Last edited:
Cơ mà sao có ông kia ko hề học mấy cái đó, bay vào là học html css javascript với framework xong vẫn xin được việc fron-end vậy thím, ổng bảo ko biết tí gì về mấy cái đó luôn, lên trường toàn ngủ:sweat:
Có minh chứng ngay dưới
Przb5Yt.gif
Thế thì tôi biết trình thằng đấy nó như thế nào rồi. Dev mà đ biết giải thuật OOP thì chỉ là thằng thợ gõ thôi
ZBtnCkk.png
 
Muốn lên trình thì phải học giải thuật. FE không nhất thiết chỉ có chỉnh css, html viết js cơ bản. Nhiều cái phải dùng thuật toán tốt để tối ưu data để render nhanh

Cơ mà bao nhiêu Dev front end ngoài kia có thể áp dụng được thuật toán vào thực tế vậy thím? Vì nếu là tay ngang muốn chuyển ngành họ cũng đâu có nhiều thời gian học dành cho thuật toán đâu. Để áp dụng thuật toán vào công việc thì ít nhất trình học thuật toán cũng phải từ khá - giỏi rồi. Mà cái này phải rèn vài năm chứ chả chơi
 
Cơ mà bao nhiêu Dev front end ngoài kia có thể áp dụng được thuật toán vào thực tế vậy thím? Vì nếu là tay ngang muốn chuyển ngành họ cũng đâu có nhiều thời gian học dành cho thuật toán đâu. Để áp dụng thuật toán vào công việc thì ít nhất trình học thuật toán cũng phải từ khá - giỏi rồi. Mà cái này phải rèn vài năm chứ chả chơi
Đã gọi là tay ngang thì chỉ đến mức độ nào đó thì cũng chỉ hết cỡ. Giống kiểu đi đá bóng ý, nhiều ông không học bài bản đá tốt, nhưng muốn gọi là đá hay thì vẫn phải học cơ bản thôi

Ví dụ FE giờ nó yêu cầu dùng canvas vẽ đồ thị. Data khoảng 1 triệu điểm. Hỏi giờ phải vẽ thế nào cho nhanh, còn phải zoom in, zoom out nhanh mượt ....
 
Cơ mà bao nhiêu Dev front end ngoài kia có thể áp dụng được thuật toán vào thực tế vậy thím? Vì nếu là tay ngang muốn chuyển ngành họ cũng đâu có nhiều thời gian học dành cho thuật toán đâu. Để áp dụng thuật toán vào công việc thì ít nhất trình học thuật toán cũng phải từ khá - giỏi rồi. Mà cái này phải rèn vài năm chứ chả chơi
Làm Front end OOP có thể không cần biết chứ thuật toán quan trọng lắm, thuật toán không có thời gian thì luyện dần dần thôi. Mình tuy không biết OOP nhưng đang viết Functional Programming (FP).
Đang chuẩn bị học Golang để làm Backend ông sếp bảo vất hết mấy cái tư duy về OOP trong đầu đi :oh:

https://thefullsnack.com/posts/frontend-algorithm-001.html
 
Đã gọi là tay ngang thì chỉ đến mức độ nào đó thì cũng chỉ hết cỡ. Giống kiểu đi đá bóng ý, nhiều ông không học bài bản đá tốt, nhưng muốn gọi là đá hay thì vẫn phải học cơ bản thôi

Ví dụ FE giờ nó yêu cầu dùng canvas vẽ đồ thị. Data khoảng 1 triệu điểm. Hỏi giờ phải vẽ thế nào cho nhanh, còn phải zoom in, zoom out nhanh mượt ....

Thế giả sử học xong môn giải thuật như 1 sinh viên cntt bình thường trong trường ĐH thì có thể dễ dàng áp dụng kiến thức đó để vẽ được ko thím? Hay học là 1 chuyện nhưng phải thành thạo và thông minh mới làm được?
 
Làm Front end OOP có thể không cần biết chứ thuật toán quan trọng lắm, thuật toán không có thời gian thì luyện dần dần thôi. Mình tuy không biết OOP nhưng đang viết Functional Programming (FP).
Đang chuẩn bị học Golang để làm Backend ông sếp bảo vất hết mấy cái tư duy về OOP trong đầu đi :oh:

https://thefullsnack.com/posts/frontend-algorithm-001.html

Ồ thanks thím nhé, vậy là thuật toán là phải có đúng ko ạ. Mà em thắc mắc khi phỏng vấn FE họ có hỏi về thuật toán ko?
 
Mà giờ FE hay BE cũng là 1 application rồi, giao tiếp với nhau qua API, mà định nghĩa của 1 application là data structure and algorithm.

Bây giờ data flow chính là đi từ database lên browser. Các task chủ yếu là extract - transform - load data. Giờ sẽ phải chia khối lượng công việc cho backend hoặc frontend để tính toán. Tùy mức độ nặng nhẹ và yêu cầu về thời gian thì sẽ chia cho backend hoặc front end xử lý.

Ngày xưa thì dồn tất về Backend do server khỏe hơn browser rất nhiều, browser chỉ hiện html thôi. Nhưng giờ browser cũng khỏe nên cũng có thể front end cũng sẽ nhận 1 phần việc tính toán. Và lúc đó thì cần giải thuật ở front end
 
Thế giả sử học xong môn giải thuật như 1 sinh viên cntt bình thường trong trường ĐH thì có thể dễ dàng áp dụng kiến thức đó để vẽ được ko thím? Hay học là 1 chuyện nhưng phải thành thạo và thông minh mới làm được?
Trong trường là cái cơ bản, nếu mình hiểu rõ cách sort thế nào cho nhanh, các thuật toán nhanh thì sẽ làm được nhanh thôi. Nói chung là càng biết tốt càng tốt không thừa đâu
 
Viết js mà ko biết giải thuật căn bản thì ko làm được. Trừ những trang web xử lý hết ở backend. Lúc đó front end chỉ làm design thôi.
 
Nghe trên Quora có 1 Dev 12 năm kinh nghiệm chia sẻ rằng họ chưa bao giờ cần kiến thức về cấu trúc DL & giải thuật ở trường ĐH.
Vậy thì một người bắt đầu từ con số 0 trong ngành muốn theo hướng Front-end, có cần phải học C++, OOP và giải thuật như trên trường ĐH đã dạy ko? Nó có tác dụng nhiều khi làm việc hoặc ít nhất là khi phỏng vấn họ có hỏi ko?
Thanks các bạn
Trong công việc thì phần lớn là không cần, nhưng nó là vé để bạn vào được công ty (phỏng vấn).
Trong ngành SE thì hơn thua nhau chủ yếu ở khả năng tự học và quyết tâm tự học.

Tại sao các công ty phỏng vấn hay hỏi cái này thì đơn giản là vì nó dễ: CTDL & giải thuật nó giống như toán phổ thông ấy, bạn đọc kiến thức căn bản, bạn làm bài tập cho hiểu kiến thức, bạn làm càng nhiều bài tập thì bạn càng thuần thục, nhận ra dạng bài nhanh, biết áp đúng công thức để giải. Bạn bỏ càng nhiều thời gian vào luyện đề thì bạn càng giỏi, đề đã có sẵn, cách giải cũng có trên mạng, cứ thế mà theo.

Đấy là đường dễ, nếu bạn không thích thì có thể theo đường khó, tự nghĩ ra project rồi làm, làm thật nhiều, học hỏi tìm tòi về các framework, các pattern trong khi làm project, phân tích hay dở của nhiều cách khác nhau, tới khi đủ trình độ đọc hiểu opensource thì contribute, xây dựng cho bản thân 1 cái CV/portfolio đẹp => việc sẽ tìm đến bạn. Cách này thì những thứ bạn học sẽ cực kì liên quan mật thiết tới công việc hàng ngày nhưng nó khó hoặc rất khó vì cách này không có ai vẽ bản đồ cho bạn đi cả, bạn phải dồn thời gian vào mò mẫm cho tới khi bạn ra được khỏi rừng hoặc chán nản chết trong đó (i.e bỏ cuộc).

Btw, cả 2 cách thì không cách nào cần phải học C++ đâu.
 
Trong Voz với Reddit trả lời ngược nhau quá nhỉ, hay do tính chất quốc gia khác nhau thì yêu cầu công việc khác nhau :sweat:

Bài này 5 năm trước rồi. Từ ngày Angularjs ra đời thì các công việc được làm phía back-end bây giờ đang chuyển dần sang cho Front-end làm. Nên làm FE bây giờ biết thuật toán là điều cần thiết.

Nếu không cần biết về thuật toán thì bạn có thể làm FE theo hướng Markup Developer thiên về UI/UX. Hiện tại mình biết có vài cty có job này là Sun*, Got It AI, Omedia, ...

Sử dụng thành thạo HTML5, CSS & JavaScript
Có kinh nghiệm thiết kế tùy biến, bao gồm Bootstrap 3, 4 và hand-coded breakpoints
Hiểu về các nguyên tắc thiết kế, kiểu chữ, giao diện người dùng, tiêu chuẩn và khả năng sử dụng Web
Có kinh nghiệm test và debug trên nhiều trình duyệt và kích thước màn hình
Kiến thức về phân tích web, ứng dụng và test tag
Hiểu biết về thiết kế tương tác cùng phương pháp và nguyên tắc kiến trúc thông tin
Hiểu biết sâu về on-page SEO
Kinh nghiệm tạo đồ họa từ scratch bằng Photoshop/Illustrator hoặc phần mềm tương tự
 
Back
Top