NỘI DUNG BÀI VIẾT
HTML, CSS và JavaScript là bộ ba kiến thức nền tảng mà bạn bắt buộc phải có được trên con đường trở thành một Front-end Developer. Thế nhưng, nhiêu đó thôi vẫn là chưa đủ, nếu bạn muốn lên những vị trí cao hơn như Senior, Software Architecture… thì cũng cần phải học thêm những kiến thức nâng cao khác.
Dưới đây là là danh sách giúp bạn trả lời cho câu hỏi “Học gì sau khi học xong HTML, CSS và JavaScript căn bản?”. Cùng xem đó là gì nhé!
1. jQuery
Là một thư viện của Javascript, jQuery là một tập hợp các plugin và extension được dùng để giúp lập trình viên có thể làm việc với Javascript một cách nhanh – gọn – lẹ và tiện hơn. Có những thứ nếu bạn code chay với JS sẽ rất mất thời gian, nhưng với jQuery, đôi khi mọi thứ sẽ trở nên đơn giản hơn rất nhiều.
Nếu bạn đã có kiến thức nền tảng về JS, chuyển sang jQuery sẽ dễ như trở bàn tay. jQuery cũng giúp cho lập trình viên frontend có thể thêm vào những elements có sẵn vào trong project và customize lại khi cần thiết.
Bên cạnh đó, chúng ta cũng có thể sử dụng jQuery cho những thứ như countdown timers
, search form autocomplete
hay thậm chí là các grid layout
được tự động rearranging và resizing.
Nhiều bạn cho rằng không nên học jQuery vì một vài lý do, nhưng với mình thì nếu biết thêm kiến thức về thư viện này của JS chắc chắn sẽ giúp ích rất nhiều, chí ít là trong quá trình xin việc, biết thêm về kiến thức jQuery sẽ giúp bạn có thêm điểm cộng trong CV của mình.
2. Hệ thống quản lý Git và Version
Hệ thống quản lý Git và Version thực chất là những kiến thức mà bạn nên nắm rõ cho dù bạn có trở thành một lập trình viên Front-end hay không. Bởi vì các hệ thống quản lý version này sẽ giúp bạn dễ theo dõi các thay đổi đã được tạo ra trong code theo thời gian, cũng như quay trở lại phiên bản trước mà đỡ tốn công sức hơn.
Ví dụ khi bạn thêm một plugin jQuery tùy biến và đột nhiên một nửa các code bị lỗi, thay vì phải undo và sửa chữa tất cả các lỗi đó, bạn chỉ cần trở lại phiên bản trước đó rồi thử lại với một giải pháp khác. Thế là xong!
Những dịch vụ repo hosting mình thấy khá nổi tiếng hiện nay và cũng được nhiều người sử dụng gồm có: Github, Gitlab, Bitbucket hay Codebase, v.v… Ngoài ra, bạn cũng có thể xem thêm bảng so sánh giữa chúng tại đây để biết được cái nào phù hợp với mình nhé!
3. JavaScript nâng cao
JavaScript là một hệ sinh thái siêu to khổng lồ mà chưa chắc cả đời này một lập trình viên có thể nắm bắt hết được, kể cả một senior, đã vậy nó còn hay thay đổi theo từng ấy năm nhất định nữa. Chính vì vậy để không bị lạc trôi giữa biển hồ JS rộng lớn, sau đây là một số thứ mà bạn cần phải học nếu muốn biết thêm rõ hơn về Javascript sau khi đã học xong những kiến thức nền tảng:
- ES6 (hiện tại thì JS đã ra mắt tới phiên bản ES11, nhưng nếu bạn học tới phiên bản này cũng OK lắm rồi, theo mình thấy thì các browser ngày nay chưa hỗ trợ được hết các tính năng của ES11 đâu) và Design Pattern (một giải pháp tổng thể cho các vấn đề chung trong thiết kế phần mềm)
- Mô hình MVC và MVVM
- Một số framework của JS: Có rất nhiều framework khác nhau phù hợp với từng yêu cầu khác nhau, chúng không chỉ giúp tăng tốc độ lập trình, mà còn có thể sử dụng các thư viện của JS như jQuery để giảm thiểu việc code lại từ đầu, hay nói cách khác là tái sử dụng lại những cái có sẵn thay vì phải cày lưng code đi code lại. VueJS, ReactJS và AngularJS là những framework nổi tiếng mà bạn có thể khám phá thử sau khi đã nắm vững kiến thức JS nền tảng.
- Code Performance: Tối ưu web performance là một vấn đề mà bạn nên quan tâm khi trở thành một lập trình viên web. Đây là một chủ đề quan trọng vì nó ảnh hưởng rất nhiều tới việc người dùng sử dụng trang web của mình như thế nào. Thật không gì khó chịu hơn khi bạn phải ngồi chờ một trang web mà mất cả mấy phút để load. Code Performance ở đây có thể là Lazy Loading, bỏ bớt các HTTP requests, CDN hay tối ưu hình ảnh.v.v…
- Asynchronous Code (những thứ này rất quan trọng với JS) như: callback, promise, async/wait. Sử dụng asynchronous Javascript sẽ giúp bạn có thể thực hiện các request network dài mà không chặn luồng chính
- Kinh nghiệm làm việc với RESTful Services và APIs
4. Chuyên sâu về CSS
Để làm việc nhanh hơn với CSS, bạn cũng có thể học thêm một số kiến thức chuyên sâu sau:
- Tổ chức với OOCSS, SMACSS và BEM: Nếu biết cách kết hợp 3 phương pháp này sẽ giúp code bạn trông dễ nhìn hơn, đặc biệt là khi bạn dùng chúng với SASS
- CSS Preprocessor như SASS, SCSS, Styllus LESS: giúp bạn viết CSS nhanh hơn, tiết kiệm được thời gian hơn và có cấu trúc rõ ràng, dễ kiểm soát.
- Một số framework CSS như Foundation, Bootstrap, Materialize, SemanticUI: Vì CSS thường bắt đầu với các elements giống nhau từ dự án này đến dự án khác, nên chúng ta cần 1 framework để defines trước những elements này. Hầu hết các công việc hiện này cho front-end dev đều cần bạn am hiểu và vận dụng tốt các frameworks này.
5. Thiết kế Responsive
Khái niệm responsive
ra đời kể từ khi ngày càng có nhiều người truy cập vào Internet hơn thông qua các thiết bị điện tử như tablet hay smartphone v.v… thay vì chỉ có mỗi PC. Chính vì vậy mà không gì phải ngạc nhiên khi bạn lại cần phải nắm bắt về vấn đề thiết kế responsive và mobile sau khi đã học xong HTML, CSS và JavaScript căn bản, bởi vì chúng rất quan trọng với bất kỳ ai muốn trở thành một lập trình viên Front-end.
Thuật ngữ “Reponsive Design” ám chỉ cách thiết kế trang web hiển thị tương thích với mọi kích thước thiết bị, tức là bố cục trang web sẽ tự đáp ứng theo hành vi người dùng và môi trường hiển thị. Môi trường này chính là kích thước của trình duyệt, kích thước hoặc hướng xoay thiết bị.
Hãy thử tượng tưởng lúc bạn đang đọc bài viết này trên trang web hocjavascript.net trên laptop thì giao diện nó sẽ khác như thế nào so với lúc bạn đang đọc ở trên điện thoại cảm ứng của mình: về cách bố trí các elements và cách hiển thị trang web ra sao? Học thêm về thiết kế Responsive không chỉ giúp cho người dùng có được trải nghiệm thú vị hơn khi truy cập website của bạn, mà nó còn giúp chủ sở hữu dễ dàng quản lý các trang web của mình hơn.
Thiết kế mobile cũng bao gồm cả thiết kế responsive, đôi khi trải nghiệm của user mà bạn muốn khi họ vào trang web trên desktop sẽ hoàn toàn khác với những trải nghiệm xảy ra trên mobile
6. Một chút kiến thức về Nodejs
Mặc dù nodejs được dùng để viết code ở phía bên backend, song những công cụ hiện tại đều sử dụng nodejs và npm để build, minify hay bundle. Bên cạnh đó, ghi vào CV ngoài việc nắm vững các kiến thức về HTML, CSS, JavaScript căn bản là một chút am hiểu về nodejs cũng có ích không kém cho bạn mà đúng không nào.
7. Testing và Debugging
Đã dấn thân vào con đường IT, có một thứ (ác mộng) bạn không thể tránh khỏi đó chính là bug. Chính vì vậy, bạn cần phải làm quen với quy trình testing và debugging. Chẳng hạn ta có unit testing (một quá trình thử nghiệm individual blocks của source code), unit testing các frameworks sẽ đem đến một method và structure riêng để thực hiện điều đó, nói về vấn đề này thì khá nhiều nên mình sẽ đề cập nó ở bài viết sau nếu có thời gian.
Hay với testing UI (còn gọi là acceptance testing/functional testing), bạn có thể write tests để nó tìm kiếm những thứ như HTML trên một trang web (giống như nếu một người dùng quên điền form thì những cảnh báo sẽ pop up lên).
Về vấn đề debug thì tùy vào từng công ty khác nhau sẽ sử dụng các quy trình debug khác nhau.
8. Khai thác Chrome Developer tools
Có thể nói trình duyệt web là thứ một lập trình viên web tiếp xúc nhiều nhất chỉ sau IDE. Chrome là một trình duyệt được giới developer ưa chuộng nhất vì sự nhanh nhẹn, tiện lợi và có bộ developer tools vô cùng mạnh mẽ của mình. Biết cách sử dụng chúng sẽ giúp ích rất nhiều cho bạn, trong số đó là những thứ hay ho với tab console nhờ khả năng chạy trực tiếp trên JS của Chrome, từng tab của chrome như networks, sources, elements, v.v… đều có những điểm thú vị khác nhau.
9. Command Line
Theo một cách nào đó thì GUI trong máy tính là một trong những thứ tuyệt vời nhất mà bạn có thể nghĩ đến khi lập trình. Nếu bạn dành thời gian cho command line, hẳn sẽ thấy ngạc nhiên nhiều về sức mạnh từ cái hình chữ nhật màu đen với con trỏ màu trắng đang nhấp nháy. Không nói đâu xa, dùng command line có thể giúp bạn có nhiều quyền kiểm soát hơn về chức năng của hệ thống, sử dụng các bộ tiền xử lý như SASS/LESS cho CSS hay Haml/Jade cho HTML, các task runner như Gulp và Grunt cho việc tự động hóa nhiệm vụ qua JS,v.v…
Bên cạnh đó, bạn cũng có thể dùng nó cho việc npm cài đặt các package cần thiết, một vài câu lệnh có sẵn của command line cũng giúp ta tiết kiệm kha khá thời gian khi chỉ cần gõ 1 2 dòng lệnh là đã có thể tạo folder làm việc mới và vào Visual Code với lệnh “code .”
10. Content Management và E-commerce Platforms
Hầu hết các trang web được xây dựng trên hệ thống quản lý nội dung (CMS). CMS thường sẽ được phân thành 3 loại khác nhau: CMS open source, CMS tự code và CMS bị tính phí. Nền tảng thương mại điện tử là một loại hình cụ thể của CMS. CMS phổ biến nhất trên toàn thế giới là WordPress, gần như 60% các trang web có sử dụng một CMS là sẽ dùng WordPress.
Ngoài CMS WordPress ra thì CMS Joomla, CMS Drupal hay CMS Magento cũng khá nổi tiếng và thông dụng.
Học gì sau khi học xong HTML, CSS và JavaScript căn bản?
Tạm kết
Nãy giờ những thứ mình liệt kê chỉ toàn là kiến thức cao siêu các kiểu không thôi nhỉ. Thật tế thì ngoài việc học thêm những kiến thức kể trên thì sau khi học xong HTML, CSS và JavaScript căn bản bản, bạn cũng có thể nghĩ đến việc biết thêm các tool liên quan như làm thế nào để code clean, chia cấu trúc project và chia code thành module như thế nào cho phù hợp. Và đặc biệt nhất, là nâng cao trình độ ngoại ngữ cũng như các kỹ năng mềm khác của mình….
Nếu bạn chỉ chăm chăm đến những kỹ năng kỹ thuật mà thiếu đi kỹ năng mềm thì cũng chẳng thành công hay phát triển được. Học tập là một vấn đề lâu dài, cái bạn cần là thời gian và sự bền bỉ, chỉ cần có cố gắng thì chắc chắn sẽ “ắt làm nên mà thôi”.
Mình hy vọng qua bài viết này, bạn có thể tìm thấy được những kiến thức cần phải học tiếp theo sau khi đã học HTML, CSS và JavaScript căn bản nhé.
Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.
Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.