Mình thì có quan điểm hơi khác.
Với những cái bạn có thì cũng ra gì đấy, html + css là làm được phần design rồi, bạn design 1 trang twitter, facebook, instagram xem. Mấy tính năng như hover vào để hiển thị cảm xúc của facebook này. Hay như zing khi ấn vào play thì cái khung album nó quay, next bài thì nó lại quay lại từ đầu, có cách nào xử lý không?
Khi bạn code đủ nhiều, bạn sẽ thấy file css sẽ dày đặc lên, và nhận ra là đôi lúc đặt tên biến, class, id khó phết (ơ thế ưu tiên đặt id hay class thì hơn nhỉ?) Cũng như việc copy/paste khá thủ công.
Bạn sẽ đặt câu hỏi, làm sao để tổ chức file css tốt hơn, tức là bạn đang tìm kiếm cơ hội nâng cao kỹ năng làm việc, bạn sẽ nhận ra tại sao lại sinh ra mấy thứ như BEM, Sass,…
Nên học không có thừa, chỉ là phải biết cái tool nó sinh ra để làm gì (để mà chọn lấy để học chứ cứ học mãi rồi chả biết nó dùng làm gì, không áp dụng thì cũng quên thôi)
Giống như việc bạn phải copy đâu đó 100 cái div trên html, thì thử xem có cách nào làm nó bớt thủ công hơn không, có thể kể đến ở đây là plugin emmet, hay ngôn ngữ template hỗ trợ như pug
Tại sao mình lại nêu phần này, vì sử dụng tool cũng là một trong những cách để tăng hiệu suất làm việc.
Bạn muốn nâng cao kỹ năng css html (js) thì đi kiếm mấy trang bán theme ấy, chọn lấy cái theme rồi làm 1 cái giao diện giống thế (gọi là clone)
Ok vậy là xong phần giao diện (tạm thế)
Giả sử bạn đang clone 1 trang post của fb, gồm title post, body, phần cảm xúc, và vài comment. Giao diện thì ok, nhưng mấy cái comment đều là fix cứng vào trong html.
Giả sử code nó vầy
A: comment 1,
B: comment 2,
C: comment 3
Bạn cần biến nó thành như này
forEach user and comment -> display the comment
Tức là bạn chỉ việc khai báo user và comment, còn cái template (cái đoạn foreach ấy) nó sẽ xử lý tiếp, sau này khi sửa sẽ không phải mò vào đống html nữa, chỉ sửa ở chỗ khai báo data thôi (cũng như đừng viết css vào trong html, tách ra cho dễ sửa)
Cái trên thì vẫn chưa gọi là dynamic, vì bạn vẫn đang khai báo user, comment 1 cách thủ công.
Giờ muốn dynamic thì bắt đầu tới phần cho phép add comment. Tạm thời cứ cho là chỉ có 1 mình bạn thôi, nhưng bạn cho 1 cái form, để nhập vào user, comment, ấn enter là sẽ add vào trong cái data có sẵn của bạn (3 thằng A, B, C comment 1,2,3 ấy), enter xong nếu thỏa mãn thì phải hiện ngay ở list comment, nếu không phải báo lỗi (lỗi có thể do bạn tự đặt, comment k được chứa từ khóa bậy chẳng hạn)
Phần này vẫn làm tốt = JS thuần nha
Ok tiếp tới là phần nâng cao hơn chút, bạn muốn lưu cái data đấy lại, không muốn mỗi lần f5 trang web nó lại còn mỗi data cũ. Lúc này bạn lưu nó xuống database.
Database nghe cao siêu chứ cứ kiếm cái nào lưu mà nó không mất mỗi lần f5 trang là được, câu trả lời là localstorage.
Đây là ví dụ để bạn hiểu được các phần của 1 trang web liên kết sao, cũng để hình dung bạn cần có những kiến thức gì.
Ở trên nếu làm sâu hơn, bạn cần cho phép user đăng ký (auth), giới hạn user không được comment nếu như bị chặn ở post hoặc chưa đăng ký (làm sao biết được nó đăng ký chưa?).
Thay vì sử dụng database là 1 file json hay localstorage, bạn cần đưa nó lên server, để lúc đem đi phỏng vấn còn có cái chưng cho nhà tuyển dụng xem (deploy - devops - thiết kế database)
Ngoài ra bạn nên follow mấy ông trên youtube ấy, vì nó free á, kiếm mấy video mà người ta ghi using html, js, thì cứ thế xông vào xem thôi, vì đấy là kiến thức bạn đang có mà.
Sau khi cứng cáp js rồi thì bạn chuyển sang react, vue, angular. Để cứng js thì mời bạn đọc You don’t know JS nhé, ờ thì bộ này cũng hơi dài, đọc có thể sẽ chán đấy, nhưng mà đọc từ dưới lên trên thì sẽ giúp bạn có cái nền vững để xử lý bất kỳ framework nào (không chỉ riêng react/vue/angular)
Mà nhỡ có chán quá thì đi học python nhé, python nó tường minh và không ngu ngốc như js nên học cũng dễ hơn.
Mình viết bài này nhằm mục đích cho bạn cách để biết nên chọn gì để học (biết chọn tool để học), nên lấy gì để củng cố kiến thức (đi clone theme với kiến thức hiện có)
Sau này đi viết cv hay đi hỏi ở đâu đó thì nêu ra sản phẩm, là đã clone được như này này, sản phẩm đây này, chứ ghi biết html, css nghe nó chung lắm, người ta loại từ vòng lọc email chứ chưa được gửi xe luôn á.