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
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? | theNEXTvoz
Dưa Nail
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
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ó, 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ủ
Có minh chứng ngay dưới
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à 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ủ
Có minh chứng ngay dưới
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
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
Đã 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
Ồ 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?
Nguyễn Công Phượng 10
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
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.
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ự
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.
Có vẻ em đã hiểu được ý của thím, mà C++ là công cụ để học giải thuật mà thím. Nên nếu muốn học giải thuật thì phải học C++ chứ.
Nhìn 2 cách của thím thì em thích cách thứ 2 hơn nhưng chả biết bắt đầu từ đâu. Nên hiện tại cứ đi theo cách 1 vậy
Có vẻ em đã hiểu được ý của thím, mà C++ là công cụ để học giải thuật mà thím. Nên nếu muốn học giải thuật thì phải học C++ chứ.
Nhìn 2 cách của thím thì em thích cách thứ 2 hơn nhưng chả biết bắt đầu từ đâu. Nên hiện tại cứ đi theo cách 1 vậy
Giải thuật liên quan gì c++? Ngôn ngữ nào chẳng dc.
Có vẻ em đã hiểu được ý của thím, mà C++ là công cụ để học giải thuật mà thím. Nên nếu muốn học giải thuật thì phải học C++ chứ.
Nhìn 2 cách của thím thì em thích cách thứ 2 hơn nhưng chả biết bắt đầu từ đâu. Nên hiện tại cứ đi theo cách 1 vậy
Thuật toán viết ngôn ngữ gì cũng được. Bạn dùng ngôn ngữ đang học mà giải quyết bài toán.
Giải thuật liên quan gì c++? Ngôn ngữ nào chẳng dc.
Em là tay ngang mà thím, đâu biết ngôn ngữ nào, các khoá học dạy giải thuật thường Demo trên 1 ngôn ngữ nào đó, em có thấy khoá học nào dạy giải thuật dựa trên Javascript đâu.
Thuật toán viết ngôn ngữ gì cũng được. Bạn dùng ngôn ngữ đang học mà giải quyết bài toán.
Ví dụ khoá này nó dạy ghi đằng sau là support by Java Codes. Nếu ko biết syntax của ngôn ngữ đó thì chắc khó hiểu lắm vì môn này nó đã nhức đầu sẵn rồi. Đấy là em đoán thế thôi chứ em chưa học course này
Nguyễn Công Phượng 10
Học giải thuật là học cách giải bài toán, thường thì người ta viết thuật toán theo dạng giả code, nó gần với ngôn ngữ người. Tùy vào từng ngôn ngữ sẽ viết cụ thể ra sao.
C:
procedure bubbleSort(A : list of sortable items)
n := length(A)
repeat
swapped := false
for i := 1 to n-1 inclusive do
/* if this pair is out of order */
if A[i-1] > A[i] then
/* swap them and remember something changed */
swap(A[i-1], A[i])
swapped := true
end if
end for
until not swapped
end procedure
Em là tay ngang mà thím, đâu biết ngôn ngữ nào, các khoá học dạy giải thuật thường Demo trên 1 ngôn ngữ nào đó, em có thấy khoá học nào dạy giải thuật dựa trên Javascript đâu.
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
Ông thầy ở trung tâm em cũng học html rồi css xong làm, giờ lên lead rồi. Đi học ổng bảo k cần toán,cứ dùng hàm có sẵn thôi.
Mà em không nể kiểu đó lắm.
Ông thầy ở trung tâm em cũng học html rồi css xong làm, giờ lên lead rồi. Đi học ổng bảo k cần toán,cứ dùng hàm có sẵn thôi.
Mà em không nể kiểu đó lắm
Toán, giải thuật nó còn là tư duy giải quyết vấn đề nữa, làm dev mà k có cái đấy thì chỉ là thợ code thôi
Xiao_man_tau
Tùy theo "thuật toán" định nghĩa đến mức nào, mấy thứ xử lý chuỗi, mảng, object thường tôi không coi là thuận toán mà là kỹ năng cần có, cứ tuân theo tinh thần pure function, es6 là được.
Lúc đi học bạn ở lớp cứ vòng lặp này mảng kia rồi gọi kiểu "thuât toán của t" nghe phèn vc.
Ông thầy ở trung tâm em cũng học html rồi css xong làm, giờ lên lead rồi. Đi học ổng bảo k cần toán,cứ dùng hàm có sẵn thôi.
Mà em không nể kiểu đó lắm.
biết rằng bánh xe hình tròn và hiểu được tại sao bánh xe hình tròn thuộc về 2 cấp bậc khác nhau.
WoodyTheEvil
E nghĩ là có hoặc không tùy vào bác
Đối với e thì sẽ cần nên hiện tại đang lên codewar làm bài. Thứ nhất để mài dũa, sau đó là phát triển tư duy, cách giải quyết bài toán
Với đi pv senior thì hầu hết đều có vài bài trên leetcode hoặc hackerrank theo kèm
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?
nghe vozer ra đê mà ở. đi làm khác đi học nha.
đi làm k những ng ta yêu cầu đúng mà còn phải phổ biến với cả team. a code hàn lâm thuật toán k bằng ng ta dùng lib ngoài
Bỏ giùm cái tư duy này đi, bạn định giải quyết bất cứ vấn đề gì cũng đi tìm lib à
Nguyễn Công Phượng 10
Nếu bạn hiểu rõ thuật toán thì bạn sẽ tìm đc 1 cái lib phù hợp nhất, chạy nhanh nhất. Không phải lib nào cũng thần thánh. Chúng ta còn phải sửa lib để tối ưu cho từng dự án
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
sếp nói đúng đó. Ghét cái thèn OOP vãi ra. gọi cái lá cây được nguyên mỏ than =]].
Nguyễn Công Phượng 10
When you anticipate a different kind of software evolution:
Object-oriented languages are good when you have a fixed set of operations on things, and as your code evolves, you primarily add new things. This can be accomplished by adding new classes which implement existing methods, and the existing classes are left alone.
Functional languages are good when you have a fixed set of things, and as your code evolves, you primarily add new operations on existing things. This can be accomplished by adding new functions which compute with existing data types, and the existing functions are left alone.
FP cũng không khá hơn OOP đâu. OOP thì giống như cách chúng ta xử lý sự vật hiện tượng ngoài đời thực
Bây giờ ranh giới giữa Backend Developer & Frontend Developer mong manh lắm.
Nếu chỉ biết về HTML, JS, CSS các thứ thì khả năng cao bạn sẽ không tìm được việc.
Tóm lại thì:
OOP: Sure, các framework và library hiện tại dùng OOP rất nhiều, tuy nhiên phải chú ý rằng OOP trong JS có chút khác biệt so với C/C++ hoặc Java
Giải thuật: Nên biết, nó sẽ giúp bạn biết mình cần làm gì và làm như thế nào
Ghét cái thèn OOP vãi ra. gọi cái lá cây được nguyên mỏ than =]].
OOP cơ bản thì đúng là evolution, còn OOP design pattern thì nghe rất hay, rất logic nhưng thực chất là ko khoa học
Tín điều cơ bản nhất trong phát triển phần mềm là phân tích chia nhỏ, xong tiếp tục phân tích chia nhỏ vấn đề ra để giải quyết. Chỉ có vậy thôi mà bọn nghĩ ra cái OOP design pattern cứ cong cong vẹo vẹo để tẩy não các em sinh viên mới học lập trình.
Em là tay ngang mà thím, đâu biết ngôn ngữ nào, các khoá học dạy giải thuật thường Demo trên 1 ngôn ngữ nào đó, em có thấy khoá học nào dạy giải thuật dựa trên Javascript đâu.
Video dạy giải thuật của Free Code Camp toàn trên Javascript nhé
Sap 2021 roi , chang can oop nguoi ta cung code dc ung dung sieu to khong lo , scale vo han
hay là thành đống rác rồi vứt xó? Không phải tự nhiên mà ngta lại đẻ ra các phương pháp lập trình: tuần tự, tuyến tính, cấu trúc, hđt (OOP). Mỗi thằng đều có ưu và nhược riêng, chỉ có đúng nơi đúng chỗ đúng phương pháp, không có thằng nào là the best cả
Last edited:
and 32767 others
Nên thay chữ các dev frontend thành các thợ code, còn câu trả lời là no.
Nên thay chữ các dev frontend thành các thợ code, còn câu trả lời là no.
Học nhiều quá có khi lại thành thợ code mà ko hay đó
Hồi cấp 3 mình chỉ biết C++, chả biết gì về thuật toán mà vẫn viết được mấy cái auto, bots xài 100% thuật toán handmade. Thuật toán handmade mặc dù ứng dụng hạn hẹp hơn thuật toán phổ biến nhưng ưu điểm là đơn giản và phù hợp nhất với hoàn cảnh.
Kể cả sau này mình cũng toàn xài thuật toán handmade, bởi vì đã thành thói quen.
hay là thành đống rác rồi vứt xó? Không phải tự nhiên mà ngta lại đẻ ra các phương pháp lập trình: tuần tự, tuyến tính, cấu trúc, hđt (OOP). Mỗi thằng đều có ưu và nhược riêng, chỉ có đúng nơi đúng chỗ đúng phương pháp, không có thằng nào là the best cả
2021 rồi kiểm soát code không còn lệ thuộc nhiều vào complier với mấy thằng độc quyền cái IDE nữa đâu, thời thế tạo anh hùng thôi
ntxlong
Bạn méo cần biết gì hết nếu như bạn có deliver đến khách hàng giải pháp nhanh nhất có thể giải quyết được vấn đề, mà vấn đề đó sẽ sinh lời cho khách hàng => vỗ tay hoan hô.
Nipin
đầy thằng làm frontend đến vòng for cũng đíu biết, copy thủ công hết cả đoạn dài.
cái này thì hơi quá đáng rồi bạn
, vòng lặp không biết nữa thì sao chơi. Còn ý bạn nói copy 1 đoạn dài là copy HTML?
ejs
nói chung tôi cũng rất bất ngờ. tạo chart bằng 100 cái dom element đã bất ngờ rồi, bất ngờ hơn là copy paste 100 cái elements đó bằng tay, và copy cả cái chart đó nhiều lần
No Hard Feelings
Với tư duy đó nên nhiều ae ở đây khinh fe như chó đó
nói chung tôi cũng rất bất ngờ. tạo chart bằng 100 cái dom element đã bất ngờ rồi, bất ngờ hơn là copy paste 100 cái elements đó bằng tay, và copy cả cái chart đó nhiều lần
Thế đã bằng mấy em sinh viên năm 4 mới ra trường làm SPA nhưng lại không biết tạo component khi cái đó đc dùng nhiều chỗ chưa ?
Tôi dân tay ngang mà còn éo hiểu tại sao nó lại như vậy luôn ? Cũng một cái form input validation đó 4,5 page giống nhau. Và dĩ nhiên là các em lười tới mức chỉ đi copy lại caí đó và paste vô. Xong tới thằng đi sửa lại lội 4,5 cái index.js để sửa.
Còn nhiều cái bullshit lắm như lồng if else như đan rổ, chạy map rồi lại map rồi lại map. Xong hỏi tại sao load lâu vcl.
Ví dụ như giờ tôi làm một chương trình lập trình cho một con robot đưa thư trong một khu phố. Anh thử oop hoá nó xem thử ?
Anh là sếp tôi từ bao h mà anh bắt tôi oop hóa ?
Nếu như anh vẫn muốn làm thì tôi sẵn sàng làm cho anh cả robot đưa thư thật theo cái kiểu hướng đối tượng, khuyến mãi cho anh thêm cái app điều khiển không tính tiền vì anh là vozer. Anh có dám ký hợp đồng với tôi không ?
Anh là sếp tôi từ bao h mà anh bắt tôi oop hóa ?
Nếu như anh vẫn muốn làm thì tôi sẵn sàng làm cho anh cả robot đưa thư thật theo cái kiểu hướng đối tượng, khuyến mãi cho anh thêm cái app điều khiển không tính tiền vì anh là vozer. Anh có dám ký hợp đồng với tôi không ?
10k nhé, xin cái design pattern xem nào.
hinora
lướt hết các page và tôi thấy các anh đi hơi xa. Bản chất học thuật toán ở đây để rèn luyện tư duy giải quyết vấn đề. Khi chúng ta tìm một giải pháp để giải quyết một vấn đề. Thường mấy anh coder sẽ tìm ra được 1 giải pháp và ngay lập tức sử dụng giải pháp đó. Nhưng lại quên tự hỏi rằng liệu có cách nào tốt hơn không.
Đó chính là sự khác biệt nho nhỏ giữa dev và coder
a_anhhungxadieu
mấy bác cho em hỏi giải thuật, thuật toán là mấy cái như Đệ Quy, Link-list, Deep-First Search,.. phải ko ạ?
trước giờ làm việc thì em chỉ biết là chia nhỏ 1 bài toán, giải quyết từng bước theo ngôn ngữ đang code(JS) đến khi xong. chứ còn áp dụng mấy cái thuật toán trên thì chưa?
ah mà lâu lâu có xài Đệ quy thôi ah.
mấy bác cho em hỏi giải thuật, thuật toán là mấy cái như Đệ Quy, Link-list, Deep-First Search,.. phải ko ạ?
trước giờ làm việc thì em chỉ biết là chia nhỏ 1 bài toán, giải quyết từng bước theo ngôn ngữ đang code(JS) đến khi xong. chứ còn áp dụng mấy cái thuật toán trên thì chưa?
ah mà lâu lâu có xài Đệ quy thôi ah.
Học và càng hiểu nhiều dạng thì càng có nhiều cách dể giải quyết các vấn đề sau này
meoudom
FE ko cần thuật toán và cái kết: API thì mất 1s còn rendering time trên FE thì 10s, treo cmn browser vì ngốn 3GB RAM
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
Hoang mang quá
but for wat??? Cũng được gần 2 năm làm react rồi, oop chưa bao giờ đụng? Biết oop để làm gì? Thớt đang hỏi FE thuần nha, em chỉ làm react thì cần chỗ nào chỉ em với, dùng oop để viết custom hook hả?
Hoang mang quá
but for wat??? Cũng được gần 2 năm làm react rồi, oop chưa bao giờ đụng? Biết oop để làm gì? Thớt đang hỏi FE thuần nha, em chỉ làm react thì cần chỗ nào chỉ em với, dùng oop để viết custom hook hả?
thế thím tạo 1 cái component mà k extends từ cái react component hả :-?
Hoang mang quá
but for wat??? Cũng được gần 2 năm làm react rồi, oop chưa bao giờ đụng? Biết oop để làm gì? Thớt đang hỏi FE thuần nha, em chỉ làm react thì cần chỗ nào chỉ em với, dùng oop để viết custom hook hả?
giờ FE làm typescript ko biết cũng phải biết ah thím. em thấy ko cần OOP thì cũng vẫn làm được ngon lành. nhưng cái hiện tại nó đang apply theo hướng đó thì mình cũng nên tìm hiểu thêm
2021 rồi code react ai dùng bộ xương thời đồ đá class nữa bác
cả 1 năm mấy nay em chưa join projects nào còn xài class luôn á. Mới nhảy việc qua fsoft tự thấy nó xài đồ cổ mà projects nào em join cũng k dùng. Giờ team nào còn dùng class thì em xin thua.
giờ FE làm typescript ko biết cũng phải biết ah thím. em thấy ko cần OOP thì cũng vẫn làm được ngon lành. nhưng cái hiện tại nó đang apply theo hướng đó thì mình cũng nên tìm hiểu thêm
Bác bị nhầm giữa ts và oop à?
em là fan cuồng ts nhưng nó không phải oop. Nhiều article bọn tây chém gió vụ này rồi, em nhắc lại cũng không chính xác bằng, bác có thể tìm đọc. Còn oop em học hồi đại học rồi, và em khẳng định em không dùng nó 2 năm nay từ lúc code react.
giờ FE làm typescript ko biết cũng phải biết ah thím. em thấy ko cần OOP thì cũng vẫn làm được ngon lành. nhưng cái hiện tại nó đang apply theo hướng đó thì mình cũng nên tìm hiểu thêm
Bác bị nhầm giữa ts và oop à?
em là fan cuồng ts nhưng nó không phải oop. Nhiều article bọn tây chém gió vụ này rồi, em nhắc lại cũng không chính xác bằng, bác có thể tìm đọc. Còn oop em học hồi đại học rồi, và em khẳng định em không dùng nó 2 năm nay từ lúc code react.
Ah sorry bác. Em có làm thêm C# nữa. Thấy 2 ngôn ngữ này khá giống nhau. Vậy bản chất của ts là như js nhưng có thêm kiểu dữ liệu thôi phải k bác?
Sent from Vsmart Active 3 using vozFApp
lovisong172
code frontend cho react hay vue thì k cần biết OOP. Thậm chí phải cố quên OOP để làm quen với tư duy của functional programming. Giống kiểu phải tự phế võ công để học được môn võ khác ý
Leslie_Dinh
Trước cũng code cái Slack clone bằng React (class component) và thấy học được kha khá thứ: constructor, methods, private/public var, extends, mixins, higher order component,... 1 năm trở lại đây thì dùng hooks nên mấy cái lifecycle cũng tạm bỏ qua, thấy hàm cũng có nhiều cái hay. Chuyện thuật toán thì nghĩ chắc chắn phải biết vì không biết rõ sẽ throw exception sai chỗ, không xác định được data đổ về thằng nào ra trước, thằng nào đến sau, mấy cái liên quan tới xử lý ngày tháng cũng không biết phải là thuật toán không
. Nhưng công nhận là thuật toán cho web ở mũcw vừa phải, không quá cao siêu như bên Competitive, chủ yếu làm việc với mảng (ví dụ như dạo này có dùng thằng DataLoader để batch/catch query xuống database thấy khá hay), object json. Còn thỉnh thoảng mới có task cần đến những cấu trúc dữ liệu cao hơn hoặc cũng nên đọc để trang bị công lực sẵn sàng ví dụ như team Tiki dùng cái Buffer Ring này để scale cho hệ thống:
Còn chuyện ai đó khẳng định làm web không cần học thuật toán cao siêu thì cũng không đúng lắm. Ví dụ như bài blog này của thằng Ben Awad dùng thuật toán tìm "cha chung gần nhất" của đồ thị này:
https://www.benawad.com/scraping-recipe-websites/
Ah sorry bác. Em có làm thêm C# nữa. Thấy 2 ngôn ngữ này khá giống nhau. Vậy bản chất của ts là như js nhưng có thêm kiểu dữ liệu thôi phải k bác?
Sent from Vsmart Active 3 using vozFApp
Ý kiến cá nhân của em thì: ts biến js static hơn, source code dễ đọc và hiểu hơn. Tránh nhiều lỗi typing ngớ ngẩn. Như lời benawad trong 1 video nào đó: " Viết js như chơi game ở mode hard core vậy. Tôi thích chơi game ở mode easy hơn, nên tôi dùng ts "
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
Thợ gõ cũng cần oop nhé anh.
Leslie_Dinh
Không biết mn sao chứ đệ lúc tìm hiểu cái event loop của thằng JS để xử lý bất đồng bộ thì cũng nghe qua stack, queue, heap r mà nhỉ
binhnguyen97
OOP thì có thể không dùng đến nếu như bạn theo hướng Functional programming, còn thuật toán thì làm gì cũng nên biết hết
Leslie_Dinh
Dev front-end nhưng chắc mọi người cũng phải học thêm về Database, backend, viết query SQL các thứ phải không nhỉ? Nếu có thì mình thấy có một số Design Patterns "hay xuất hiện" như Data Loader, Repository, ... nên mình nghĩ đọc qua để biết source code mình đang làm gì, hiểu về hệ thống hơn chứ cũng không bắt buộc front-end dev phải học để code ra mấy thứ đó. Nếu front-end dev nào phải code những thứ đó thì lúc đó không nên đặt câu hỏi này vì bạn đã không còn CHỈ LÀ một front-end dev nữa r
anhkien87nd
Em sinh 96.
Nói thật với các thím là từ 2015 đến giờ em chưa đi thực tập hay đi làm ở đâu bao giờ, nên phần kinh nghiệm trong CV chả biết ghi gì. Một phần do lười đi, một phần do trường cũng ko bắt buộc đi thực tập. Hiện em đang làm việc chân tay và đang tính quay lại IT.
Các thím cho hỏi nếu em chưa đi thực tập ở đâu bao giờ thì có thể tự làm project ở nhà rồi show ra cho họ xem được ko ạ?
Dev front-end nhưng chắc mọi người cũng phải học thêm về Database, backend, viết query SQL các thứ phải không nhỉ? Nếu có thì mình thấy có một số Design Patterns "hay xuất hiện" như Data Loader, Repository, ... nên mình nghĩ đọc qua để biết source code mình đang làm gì, hiểu về hệ thống hơn chứ cũng không bắt buộc front-end dev phải học để code ra mấy thứ đó. Nếu front-end dev nào phải code những thứ đó thì lúc đó không nên đặt câu hỏi này vì bạn đã không còn CHỈ LÀ một front-end dev nữa r
tớ hồi trước làm FE giờ đang la liếm làm thêm phần BE nữa đây. thuật toán,giải thuật thì quan trọng đó nhưng khi deadline rồi thì suy nghĩ là làm cho chạy dc đã.
mà lúc vào làm BE thì cơ bản là hiểu cái luồng dưới BE nó đi ntn rồi start mấy cái API cơ bản.
còn thuật toán thì hầu như ko áp dụng j cả vì data mấy bác BE kia đã cố gắng chia tách và đơn giản nó đi rồi
ủa lạ vậy, tôi xài ts làm bên cocos creator thấy cũng extend này kia, rồi kế thừa, đa hình , đóng gói. mà bảo là k phải oop à
nó là javascript.
typescript chỉ là transpiler hỗ trợ decoration phần type, giúp check type ở compile time (runtime nó không chịu trách nhiệm)
// tôi cũng thấy khá bất ngờ về vụ này, trước nghĩ typescript hàng m$ phải thế nọ thế chai, hoá ra cái compiler cũng vẫn viết bằng ts/js, cho nên nó chậm vkl thằng ry (author của node/deno) đíu chịu nổi đòi viết lại compiler bằng rust kìa =)
// à ngoài type ra thì nó còn có hỗ trợ new syntaxes nữa cơ mà không nhiều, oop thì es6 đã có
typescript chỉ là transpiler hỗ trợ decoration phần type, giúp check type ở compile time (runtime nó không chịu trách nhiệm)
// tôi cũng thấy khá bất ngờ về vụ này, trước nghĩ typescript hàng m$ phải thế nọ thế chai, hoá ra cái compiler cũng vẫn viết bằng ts/js, cho nên nó chậm vkl thằng ry (author của node/deno) đíu chịu nổi đòi viết lại compiler bằng rust kìa =)
// à ngoài type ra thì nó còn có hỗ trợ new syntaxes nữa cơ mà không nhiều, oop thì es6 đã có
thì biết nó là js rồi, nhưng cú pháp viết của nó vẫn hộ trợ oop thì mắc gì bảo nó k phải là oop nhỉ ? hay phải là ngôn ngữ thuần oop kiểu objc hay java hoặc c# mới đc gọi là oop language ? còn với mình ngôn ngữ nào hộ trợ oop thì đều coi nó là oop hết, tương tự c++ có thể viết kiểu oop cũng đc còn k viết kiểu fp cũng đc đấy thôi
thì biết nó là js rồi, nhưng cú pháp viết của nó vẫn hộ trợ oop thì mắc gì bảo nó k phải là oop nhỉ ? hay phải là ngôn ngữ thuần oop kiểu objc hay java hoặc c# mới đc gọi là oop language ? còn với mình ngôn ngữ nào hộ trợ oop thì đều coi nó là oop hết, tương tự c++ có thể viết kiểu oop cũng đc còn k viết kiểu fp cũng đc đấy thôi
tôi nghĩ ý của bạn kia là typescript không phải là người mang OOP cho javascript, js bản thân nó đã có OOP rồi
gaconti14
OOP thì có thể bỏ qua . FE từ đời ES5 đổ về trước làm quái gì có OOP mà đú . Ông nào mà quăng cái typescript ra tôi ném đá vỡ alo à nha . Còn giải thuật ở trường đại học thì mình không biết bạn đang nói đến thuật toán nào vì mình tạt ngang . Còn nếu nói giải thuật chung chung thì dev không biết thì biết cái gì nữa :v
scofield_ub
đếu cần nếu bạn chỉ làm mức chạy được, còn tối ưu chạy mượt thì vẫn nên học
Ý kiến cá nhân của em thì: ts biến js static hơn, source code dễ đọc và hiểu hơn. Tránh nhiều lỗi typing ngớ ngẩn. Như lời benawad trong 1 video nào đó: " Viết js như chơi game ở mode hard core vậy. Tôi thích chơi game ở mode easy hơn, nên tôi dùng ts "
Yep, typescript muôn năm. Lúc trước khi dùng typescript cũng đã phải comment tường tận trên mọi method input và output ra gì, nhưng giờ có typescript đỡ hơn nhiều.
kumokumo
Có thể đôi khi giải thuật nó ko được áp dụng trực tiếp vào những công việc của frontend. Nhưng nó giúp cho dev có tư tưởng coding tốt hơn. Làm ở high level thì rất cần những kiến thức OOP và giải thuật.
Các web front-end dạng fetch data thì thường đơn giản, ko có yêu cầu kỹ thuật j nhiều. Nhưng các bài toán liên quan đến vẽ vời (svg, canvas / chart ...) thì ko những cần thuật toán và OOP cực tốt, mà toán học cũng phải rất tốt.
Nhớ lại hồi xưa mình code 1 module hiển thị chart real-time cho 1 biểu đồ công suất sản xuất điện của 1 nhà máy ở đức, sin cos tính toán tùm lum lên cả, phải lôi sách toán đọc lại từ đầu
anhkien87nd
Em sinh 96.
Nói thật với các thím là từ 2015 đến giờ em chưa đi thực tập hay đi làm ở đâu bao giờ, nên phần kinh nghiệm trong CV chả biết ghi gì. Một phần do lười đi, một phần do trường cũng ko bắt buộc đi thực tập. Hiện em đang làm việc chân tay và đang tính quay lại IT.
Các thím cho hỏi nếu em chưa đi thực tập ở đâu bao giờ thì có thể tự làm project ở nhà rồi show ra cho họ xem được ko ạ? chứ ko thể để phần kinh nghiệm trống trơn được.
Em sinh 96.
Nói thật với các thím là từ 2015 đến giờ em chưa đi thực tập hay đi làm ở đâu bao giờ, nên phần kinh nghiệm trong CV chả biết ghi gì. Một phần do lười đi, một phần do trường cũng ko bắt buộc đi thực tập. Hiện em đang làm việc chân tay và đang tính quay lại IT.
Các thím cho hỏi nếu em chưa đi thực tập ở đâu bao giờ thì có thể tự làm project ở nhà rồi show ra cho họ xem được ko ạ? chứ ko thể để phần kinh nghiệm trống trơn được.
Em sinh 96.
Nói thật với các thím là từ 2015 đến giờ em chưa đi thực tập hay đi làm ở đâu bao giờ, nên phần kinh nghiệm trong CV chả biết ghi gì. Một phần do lười đi, một phần do trường cũng ko bắt buộc đi thực tập. Hiện em đang làm việc chân tay và đang tính quay lại IT.
Các thím cho hỏi nếu em chưa đi thực tập ở đâu bao giờ thì có thể tự làm project ở nhà rồi show ra cho họ xem được ko ạ? chứ ko thể để phần kinh nghiệm trống trơn được.
Bạn nên đi thực tập đi, có kn 1 - 2 project thật rồi đi làm cho dễ