Hướng dẫn học lập trình web

Điều đầu tiên, tôi nghĩ cần nói thật với các bạn rằng kinh nghiệm về lập trình web của tôi gần như là con số 0. Thời đại học, học phần Kiến tập là học phần duy nhất mà tôi có thể tiếp cận với lập trình web, nhưng do tôi bận tập trung vào lập trình phần mềm Windows nên tôi giao hẳn cho bạn tôi xử lý đề án của học phần đó. Sau đó, cũng có vài lần tôi xem xét việc học lập trình web, nhưng thật sự thì với công nghệ thời đó (thời kỳ trước web 2.0), lập trình web không hấp dẫn tôi bằng lập trình Windows và các thuật toán. Đến năm 2004, 2005, web 2.0 nở rộ, lập trình AJAX lên hương, web đã có sức mạnh gần ngang bằng với lập trình Windows và nó đã có nhiều điều thú vị để quyến rũ tôi. Tuy nhiên, do công việc quá nhiều, nên tôi một lần nữa chưa học được gì nhiều. Và giờ, tôi lại một lần nữa quay lại với lập trình web. Sau một thời gian không ngắn cũng không quá dài tìm hiểu, tôi đã lựa chọn một con đường để học lập trình web. Và tôi viết bài này là để chia sẻ nó cho các bạn.

Con đường học lập trình web

Hiện nay, để lập trình web bạn có rất nhiều lựa chọn. Bạn có thể dùng Notepad tự gõ từng dòng lệnh HTML, CSS, Javascript để tạo nên các trang web. Bạn có thể dùng các phần mềm hỗ trợ từ A đến Z như Dreamweaver. Bạn có thể dùng ASP.NET hay JSP, Servlet, Zend Framework để tạo ra các ứng dụng web mạnh mẽ. Hay bạn có thể dùng các nên tảng mới và hiệu năng lập trình cao như Rails, Node.js, Dart để tạo ra các ứng dụng web linh hoạt. Cho nên, để lựa chọn lấy một con đường để học lập trình web thật không đơn giản. Con đường mà tôi đã chọn dựa trên hai tiêu chuẩn sau:

  1. Nền tảng lập trình ứng dụng web phải mạnh mẽ, linh hoạt, hỗ trợ các tính năng cao cấp nhất hiện nay và quan trọng nhất là cung cấp một hệ thống hiệu năng cao
  2. Số lượng ngôn ngữ và nền tảng cần học là ít nhất

Do đó, tôi đã chọn học HTML & CSS, Javascript và nền tảng Dart.

Lý do tôi chọn HTML, CSS và Javascript thì khá là đơn giản. Bởi vì đó chính là tất cả những thứ cần thiết để lập trình web phần client-side mà mọi người học lập trình web đều nên học. Các nền tảng lập trình như ASP.NET, JSP, Joomla, Drupal đã hỗ trợ cho bạn khá nhiều, nhưng nếu bạn muốn tuỳ chỉnh từ những template có sẵn thì bạn vẫn cần biết 3 thứ trên.

Còn với Dart, tôi chọn nền tảng này vì nó thoả mãn hai tiêu chuẩn đã nói ở trên. Thứ nhất, nền tảng này mới ra đời gần đây và được hỗ trợ mạnh mẽ bởi Google. Thứ hai, nó chính là ngôn ngữ hỗ trợ tốt nhất cho hệ điều hành Chromium của Google, một nền tảng ứng dụng web khá mạnh hiện nay. Thứ ba, theo các đánh giá về hiệu năng thì Dart này ngang ngửa với thư viện Node.js, một thư viện cho hiệu năng cao nhất hiện nay. Thứ tư, Dart là nền tảng Javascript nên tôi sẽ không cần phải học thêm một ngôn ngữ nào nữa ngoài ba thứ HTML, CSS và Javascript.

Học như thế nào ?

Như vậy, chúng ta đã xác định được những gì cần học. Bây giờ, tôi sẽ trình bày những bước bạn nên đi để học những thứ trên :

  1. Đầu tiên, để học những thứ cơ bản của HTML & CSS, bạn nên tham gia khoá học HTML & CSS của codecademy.
  2. Sau khi xong phần cơ bản đó, bạn nên thực hiện dự án Make a WebsiteAbout you cũng trên codecademy. Các dự án này sẽ giúp bạn định hình các bước để tạo ra một trang web tĩnh.
  3. Cũng tương tự như khi học HTML & CSS, bạn nên tham gia khoá học Javascript của codecademy. Khoá học này sẽ giúp bạn nắm vững những thành phần cơ bản của ngôn ngữ lập trình Web Javascript.
  4. Tiếp đến bạn nên học JQuery. JQuery là bộ thư viện Javascript nhỏ gọn, cung cấp những tính năng mạnh mẽ giúp cho trang web của bạn tương tác với người dùng. Bạn nên tham gia khoá học JQuery của codecademy để học những thứ cơ bản của JQuery.
  5. Sau đó, dự án Make an Interactive Website sẽ giúp bạn kết hợp tất cả những gì đã học để tạo ra một trang web động đặc sắc.
  6. Hai dự án Animate Your NameSun, Earth, and Code cung cấp cơ hội để ôn lại những gì đã học.
  7. Đến đây, bạn đã có thể xây dựng những trang web động đơn giản. Bạn muốn biết nhiều hơn về HTML & CSS và Javascript, cũng như HTML5 và CSS3, bạn nên nghiên cứu các tutorial của w3school, hoặc của guru99.
  8. Đến ngang đây thì sách là thứ sẽ mang lại cho bạn nhiều kiến thức bổ ích. Bạn nên đọc quyển HTML5 for web designers - Jeremy KeithCSS3 for web designers - Dan Cederholm. Dan Cederholm là nhà thiết kế web khá nổi tiếng với hai trang web SimpleBitsDribbble.
  9. Hai quyển sách khác, cũng của Dan Cederholm, đáng để đọc là Web Standard SolutionsBulletproof Web Design. Hai quyển này tập hợp những hướng dẫn cho việc thiết kế các trang web linh động và đúng chuẩn web (web standard).
  10. Các hướng dẫn của thoughbot về HTML & CSS, cũng như Javascript cũng rất hữu ích cho mọi đối tượng.
  11. Tương tự, Webmaker cũng cung cấp nhiều tài nguyên, công cụ, hướng dẫn hữu ích cho người lập trình web.
  12. Nếu bạn quan tâm đến việc thiết kế các trang web vừa chạy tốt với màn hình máy PC, vừa chạy tốt với màn hình nhỏ của mobile, thì bạn nên đọc quyển Responsive Web Design của Ethan Marcotte.
  13. Nếu bạn đã nắm vững CSS và thấy rằng nó quá khó để quản lý các dòng CSS. Bạn muốn một CSS có khả năng sử dụng lại. Một CSS có những khả năng của một ngôn ngữ lập trình. Lúc này, bạn nên học SASS qua cuốn Sass for Web designers của Dan Cederholm hoặc nghiên cứu các tài liệu của thoughtbot. Bạn cũng có thể sử dụng công cụ miễn phí Bourbon để việc lập trình Sass dễ thở hơn.
  14. Tiếp theo, tôi nghĩ bạn nên bắt đầu nghiên cứu nền tảng Dart thông qua các tutorial và tài liệu trên trang chủ của Dart. Hai sách Dart: Up and RunningDart for Hipsters là hai cẩm nang tốt để bạn có thể tra cứu.
  15. Tạp chí A List Apart cung cấp rất nhiều bài viết hay về thiết kế web. Nếu bạn chịu khó đọc tiếng Anh thì bạn sẽ tìm được nhiều bài về web standard bổ ích, cũng như những kinh nghiệm làm web hay.

Các sách được liệt kê ở trên, các bạn có thể lấy ở đây.

Tôi cung cấp tất cả các sách dưới một file nén để tránh bị Google chặn vì bản quyền. Đợt vừa rồi phát hiện một loạt file PDF của các quyển sách bị Google chặn như thế.

Kết

Con đường của tôi đi chỉ mới tới đó. Nếu tôi nghiên cứu thêm được cái gì hữu ích, tôi sẽ chia sẻ với các bạn sau. Chúc các bạn thành công!