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?

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 :D . 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/
 
Last edited:
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 "
 
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
Thợ gõ cũng cần oop nhé anh.
 
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ỉ ;)
 
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
 
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 :LOL:
 
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 :LOL:
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 à :ops:
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ó :confused:
 
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ó :confused:
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 :confused:
 
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
 
Ý 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.
 
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:)
 
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.:(
project là best rồi
 
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ễ
 
Back
Top