Biểu tượng website Khó ăn cát bê tông

Tháng: Tháng Sáu 2022

Học lập trình Front-end là học những gì?

Ngày xưa (từ năm 1994 đến chừng 2003) thế giới web khá đơn giản, lúc đó không có khái niệm front-end, back-end gì hết, chỉ có web tĩnh và web động. Hoặc nói thiên hướng kỹ thuật một chút, liên quan đến lập trình thì có client side script và server side script.

Ngày nay, phát triển web là một lĩnh vực trăm hoa đua nở, trở thành một nhánh phát triển phần mềm khá ồn ào, đông đảo người tham gia, lấn át cả nhánh viết phần mềm cho desktop. Một thực tế vui vẻ đến buồn cười đó là dân ngoại đạo cũng nhảy vào.

Vì vậy, bạn cũng cần biết chút ít về cách làm một trang web dù bạn chẳng phải dân CNTT.

Dễ thôi, nếu bạn siêng vào đây đọc bài, ngày nào đó bạn làm trang web ngon lành, chơi cũng được, dùng kiếm cơm cũng ổn.

Lộ trình phát triển web theo hướng frontend.

Nghe cứ rối beng cho người bắt đầu, nhất là những người muốn tự học. KACBT giải thích mấy cái này mệt xỉu mà cũng không biết viết ra như thế nào để tường bận vấn đề.

Viết dài thành một cuốn sách không ai đọc, viết ngắn người đọc không nắm được. Làm video clip thì nói thật là người ta xem giải trí thôi, không có tác dụng mấy về mảng học hành.

Thử tìm trên YouTube chúng tôi thấy rất nhiều movie clip hướng dẫn làm web đủ thể loại. Chất lượng giảng dạy đủ hạng mức, cấp độ, số lượt view cũng cao.

Quái lạ, vẫn rất nhiều người ngỏ ý KACBT mở khóa học để giúp họ làm web.

Website này như một thử nghiệm hỗ trợ những ai mong muốn làm một website tự tay. KACBT cứ thử cái đã, việc gì tiếp theo tính sau.

Bên trái là “đồ nghề” dành cho người làm frontend. Bên phải là dành cho người làm backend.

Vắn tắt, bạn cần nắm HTML, CSS, JavaScript nếu muốn làm trang web thiên về giao diện, hình ảnh, những cái người duyệt web nhìn thấy, giao tiếp, tương tác khi truy cập.

Có người đọc quá nhiều bài viết linh tinh, nội dung rác, khi đọc được bài xịn lại không chịu bắt tay vào thực hành, dẫn đến họ nói về front-end nghe rất khủng khiếp, cứ như một chuyên gia thực thụ.

Trong thực tế, vài năm trôi qua, họ vẫn chưa có, chưa làm được một trang web nào. Họ cũng không thuê ai khác làm web giúp, họ vẫn tiếp tục đám luận, mô tả về web cứ như một chuyên gia. Thật khôi hài!

KACBT theo kiểu cứ mỗi ngày làm chút một, như một trò chơi, sở thích lúc rảnh. Trang web được tạo ra có ra hình hài ổn hay không tính sau, được vọc là vui rồi, cứ lên đường, đến đích hoặc quay về cũng đều là một trải nghiệm đẹp.

Ghi nhớ Học lập trình front-end là học viết mã HTML, CSS, JavaScript.

Hé lộ một chút chi tiết về kỹ thuật nếu bạn tò mò

Việc đầu tiên để có thể làm web cho người khác sử dụng, bạn phải là người sử dụng web trước đó, ít nhất không cần mức vô địch thiên hạ nhưng phải ở mức am hiểu hơn người bình thường. Những kiến thức sau đây phải biết: Internet hoạt động như thế nào? World Wide Web là gì? và nó có bà con gì với Internet.

Một trang web, website cụ thể gồm có những gì. Làm sao để tạo ra được trang web? Website? Tốn kém mức tiền tối thiểu bao nhiêu để tự tay làm nên một trang web.

Thiết kế đồ hoạ cho giao diện trang web

Nếu theo đúng quy trình thiết kế web bài bản, chuyên nghiệp bên đặt thiết kế web (chủ đầu tư) gặp gỡ với cá nhân hoặc đơn vị thiết kế web (nhà cung cấp/ nhà thầu) để bàn bạc qua về ý tưởng cho một trang web.

Sau khi đã bàn bạc xong, nhà thiết kế web sẽ lên một giao diện thô sơ có thể là vẽ tay hoặc thực hiện trên máy tính chỉ có các khối chữ nhận đại diện cho các vùng trên web.

Trang web được ghép lại từ các khối

Khi chủ đầu tư đồng ý với ý tưởng của nhà cung cấp mới bắt đầu thực hiện bằng phần mềm đồ hoạ như Photoshop để tạo ra giao diện web, sử dụng ảnh của mình để minh hoạ có sẵn trong kho ảnh của người thiết kế cho những vùng trên trang web.

Mỗi trang cơ bản trên trên website sẽ là một file ảnh. Ví dụ: trang Giới thiệu, trang Liên hệ, trang Dành cho cổ đông, trang Trưng bày sản phẩm, trang Các thành tự,…

Nhà đầu tư xem qua, hai bên thảo luận để chỉnh sửa cho phù hợp hơn. Khi có sự đồng thuận, người thiết kế file đồ hoạ sẽ chuyển qua cho một người khác thực hiện chuyển nó thành HTML.

Cắt giao diện web (còn gọi là cắt CSS) hoặc chuyển PSD thành HTML

Có thể nói, trước năm 2004 thì việc cắt file hình ảnh thành HTML là công việc chính của làm web. Thuở ấy, khái niệm lập trình web được hiểu là lập trình back-end. Lúc ấy JavaScript chủ yếu làm các nút bấm, bung cửa sổ quảng cáo, tuyết rơi hoặc những cái linh tinh mà nếu thuở đó bạn thường ra tiệm NET ngồi sẽ chứng kiến.

Vì thế, có thể nói, lập tình front-end lúc đó gần như chưa có, nếu có cũng ở một vài công ty lớn trên thế giới thuở đó mới có chuyên trách.

Hơn nữa, ngày ấy trình duyệt web Internet Explorer chiếm thế áp đảo, mà nó lại hay có những lỗi không khắc phục nên chỉ riêng việc loay hoay với HTML, CSS không thôi đã nhức đầu lắm rồi.

Ta tạm hiểu cắt CSS (cũng gọi là cắt HTML, cắt giao diện web, chuyển PSD sang HTML) là công việc của một người biết chút ít về phần mềm đồ hoạ, cụ thể là Photoshop, dùng chức năng cắt ảnh tốt. Khi nhận file ảnh từ người thiết kế giao diện web thì người này cắt nó ra từng mảnh chữ nhật và sau đó viết mã HTML rồi ráp nó lại. Người này quyết định chỗ nào là hình, chỗ nào là chữ.

Giao diện như này sẽ được cắt ra thành file HTML

Bắt tay vào viết những dòng HTML đầu tiên với trình soạn văn bản thô có sẵn trên máy như Notepad, TextMate, gEdit với những người cắt CSS thiên về viết code hoặc những người thiên về sử dụng đồ hoạ, công cụ thì có phần mềm như DreamWeaver rất nổi tiếng của hãng Adobe hỗ trợ.

Người mới tự học cắt CSS trước khi chuyển qua lập trình front-end thường kiếm một trình soạn thảo văn bản thô có chức năng đổi màu mã (code) để dễ quan sát, tìm lỗi hơn. Trình soạn thảo dành cho dân viết code tốt sẽ có chức năng nhắc bài (gợi ý) để tiết kiệm công sức đánh máy.

Tuy nhiên, lúc ban đầu đừng lạm dụng những chức năng gợi ý mà nên gõ thủ công để kịp quen với cú pháp, nhớ được một số thẻ thông dụng. Khi ngồi gõ lóc cóc những dòng mã HTML cũng giúp cho bạn suy nghĩ về việc làm thế nào để sáng tạo hơn trong cách học.

Một tài liệu HTML (gồm một file HTML và các file nhúng vào đi kèm nó) thực sự được trình bày trên màn hình máy tính, điện thoại như những khối chữ nhật đủ kích cỡ, màu sắc lắp ghép với nhau.

Mỗi khối chữ nhật được tạo ra bởi một thẻ HTML tùy nó định chứa gì bên trong mà chọn thẻ cho thích hợp. Các hình khối trông như không phải chữ nhật khi hiển thị trên màn hình, bản chất chúng cũng được chứa trong ít nhất một khối chữ nhật, nhưng có sự sắp đặt khéo léo, chỉnh thuộc tính, dùng ảnh có nền trong suốt, hiệu ứng…. để tạo ra các hình dáng khác.

Nếu chỉ có HTML không thôi, một trang web sẽ dài từ trên xuống dưới toàn chữ hoặc hình nối tiếp nhau dài thật dài và trông thô sơ như căn nhà xây thô. Vì thế, người ta áp dụng định kiểu dáng phân tầng, gọi là CSS để trang trí, làm giao diện cho phong phú, thẩm mỹ.

Mẫu mock up của trang web
Giao diện web khi có CSS thêm vào

Kết quả của quá trình cắt giao diện là được một thư mục chứa các file HTML, mỗi file tương đương với một trang chính, cơ bản của website và có các thư mục images chứa hình ảnh, css chứa file CSS.

Viết mã JavaScript để thực hiện những thứ HTML, CSS chưa làm được

Trang web được gọi là tài liệu siêu văn bản như tên của nó HTML (HyperText Markup Language) chính bởi vì tính chất động của nó, mà sau này JavaScript là một phần mạnh mẽ của cái “siêu” ấy.

Vì sao cần đến JavaScript? Vì có những thứ HTML, CSS chưa thể làm. Để dễ hình dung, ta thấy HTML, CSS có thể diễn tả một cái bếp gas, với các nút bật, mặt bếp, khung đặt nồi, họng phân phối gas, thậm chí diễn tả bếp gas cháy với lửa đỏ. Nhưng việc bật / tắt/ vặn nút gas diễn ra thế nào thì lúc này cần viện đến vai trò của JavaScript.

Nói cách khác, công năng (đôi lúc như là động cơ) của trang web được JavaScript đảm nhiệm. Vài ví dụ bạn thường thấy trên một trang web cần đến JavaScript như: hiển thị lời chào căn cứ vào thời điểm trong ngày (chào buổi sáng/ trưa/ chiều) hoặc trong năm, mùa đông có trang trí tuyết rơi, hiển thị tờ lịch của tuần/ tháng,… đó là với những trang web đơn giản.

Ngày nay, có những trang web thực sự là trò chơi điện tử (bạn từng chơi Nông trại vui vẻ?) đương nhiên phải có sự góp mặt của JavaScript.

Có thể nói, lập trình JavaScript đồng nghĩa với ‘Lập trình front-end”

Đến đây bạn đã làm được bất cứ trang web nào để người dùng xem, còn việc nhập thông tin vào xử lý là việc của back-end, hậu trường ở phía server.

Tuy nhiên, về lý thuyết là như vậy, trong thực tế phải mất nhiều năm người ta mới ở mức thạo nghề và làm được những thứ thông dụng, hơi khó một chút. Còn có những trang web khá đặc biệt, có thể cả đời bạn cũng khó có thể đạt mức đó bởi người làm ra nó thuộc loại quái kiệt. Lĩnh vực thiết kế web cũng không khác gì các ngành công nghiệp khác, đều có các cấp độ khác nhau.

Sự rối rắm, phức tạp của CSS, JavaScript ngày nay

Trước khi iPhone ra đời năm 2007, người ta duyệt web chủ yếu trên máy tính nên dù lúc đó trình duyệt IE lỗi đủ kiểu, người làm web cũng chưa phải đương đầu với sự phức tạp như 2023 này.

Khi điện thoại di động smartphone ra đời, máy tính bảng tiếp nối, người thiết kế web phải tạo ra 3 giao diện khác nhau để hỗ trợ người truy cập trên 3 loại thiết bị này. Trang web nào không đám ứng điều đó sẽ bị người truy cập ngó lơ.

Vậy là bắt đầu nảy sinh ra những bộ thư viện, framework khủng cho cả CSS lẫn JavaScript. Sự ra đời của những công cụ này giúp cho những người làm web thực hiện những trang web phức tạp được nhanh hơn, mang tính chuyên nghiệp, tiếp cận tiêu chuẩn công nghiệp tốt hơn. Nói đúng hơn, giống như ngày nay bạn đi mua đồ nội thất, mang về ráp chứ hiếm khi đặt người ta đóng.

Những CSS framework thông dụng hiện nay

Các CSS framework bạn có thể từng nghe qua: Bootstrap, Bulma, Tailwind CSS, Foundation, PureCSS.

Các JavaScript library hoặc framework như: Angular, ReactJS, VueJs, EmberJS. Một cái rất nổi tiếng là jQuery, không được xem là framework mà chỉ là library nhưng sống lâu, được dùng rất nhiều trong số 1 triệu website lớn nhất thế giới.

Lúc nào thì library? Lúc nào thì framework? Tui đọc thấy người ta giải thích rất nhiều nhưng vẫn không thông nổi, và có nhiều tranh cãi.

JavaScript framework và hệ sinh thái của nó

Theo sự tổng hợp của tui thì thư viện là một cái gì đó nó tập hợp các đoạn code được viết sẵn để lấy ra dùng theo quy tắc tham khảo để bằng từ khoá, tên gọi, thay vì copy & paste trực tiếp trộn vào mã do bạn viết. Library hơi thoáng hơn framework, tự do sử dụng tuỳ ý, có thể dễ học, sớm rút tỉa được vài thứ lấy ra dùng được ngay vào trang web của bạn.

Trong khi đó, framework có sự phức tạp cao hơn, mất nhiều thời gian để học hơn và nó thường dùng để áp dụng vào làm những trang web dạng một phần mềm ứng dụng chạy trên nền web khá khủng, phức tạp.

Ngoài ra, để hỗ trợ cho CSS framework, JavaScript framework còn có những công cụ đi kèm theo hỗ trợ, sản phẩm được tạo ra từ những framework , library này, từ nguồn mở miễn phí đến phải bỏ tiền ra mua cũng có… tạo nên cả rừng thứ khiến cho ngay cả dân trong nghề cũng có lúc cảm thấy như bị lạc vào showbiz.

Mở cánh cửa bước vào thế giới front-end development

Khi làm những website lớn, phức tạp, thuở ban đầu những nhóm làm việc chưa có framework nên họ phải tự tạo. Các framework nổi tiếng, thông dụng ngày nay đều bắt nguồn như vậy.

Là một lập trình viên web front-end bình thường, tui không cần phải “phát minh lại bánh xe”, mà chỉ cần tận dụng những framework có sẵn là đủ mệt rồi. Việc “đứng trên vai người khổng lồ” tiết kiệm được khá nhiều thời gian, công sức khi bước vào công việc nhưng luôn tốn một thời gian ban đầu phải tìm hiểu, học về framework. Vì vậy, thường chọn framework có đông đảo người dùng, tài liệu phong phú và được đánh giá cao như ReactJS, VueJS. Nếu tui đủ giỏi và học nhanh, tui có thể chọn cái khác, còn bình thường, tui cũng chọn giống số đông.

Các thuật ngữ nghe loảng xoảng khi tui bập vào front-end

Vì các framework khá phúc tạp, mất vài tuần đến vài tháng để làm quen với một người đã khá thành thạo JavaScript nên để có thể làm việc được người ta sẽ phải biết đến các công cụ quản lý phiên bản mã nguồn dự án gọi là Version Control System.

Hiện nay, công cụ để quản lý phiên bản được ưa chuộng là Git, và có một cộng đồng người dùng Git rất nổi tiếng tên là Github.

Ngôn ngữ tiền xử lý (pre-processing) CSS

Các thư viện, framework đôi khi vẫn chưa đủ chức năng, nên cần thêm các gói phụ thêm để gắn vào, các gói này cũng phải được tổ chức, quản lý bài bản, vậy là đẻ ra công cụ quản lý gói Package Manager. Với JavaScript thì npm là công cụ nổi tiếng, nó được đi kèm với môi trường để phát triển dự án JavaScript cũng rất nổi tiếng (gần như phải dùng đến mà không có lựa chọn nào tốt hơn) tên là NodeJS.

Công cụ làm vieecj với JavaScript

Rồi đụng đến CSS thì không phải cứ viết CSS như bình thường mà tui còn phải tìm hiểu LESS, SASS . Trong khi đó, bên phía JavaScript còn có TypeScript, một ngôn ngữ dùng để viết JavaScript tốt hơn cho những người từng học bài bản về các ngôn ngữ có định kiểu mạnh như C/C++, Java.

Đó là chưa kể còn những thứ đi kèm theo trong quá trình làm dự án sẽ nảy nòi ra, cần đến.

Dông dài đến tận chân trời góc bể

Một khi website có dính nhiều đến việc lập trình, nó đích thị là một phần mềm hoặc bộ phần mềm, thậm chí được gọi như là bộ giải pháp. Lúc này, việc tiềm ẩn những lỗi lập trình nguy hiểm gây thiệt hại về tài chính, danh tiếng, để lại hậu quả nghiêm trọng là chắc chắn xảy ra.

Để phòng ngừa, hạn chế những rủi ro đó người ta sẽ phải theo một quy trình phát triển bài bản, chặt chẽ. Lúc này một dự án web có thể kéo dài nhiều năm (như Facebook, YouTube) sẽ chia ra nhiều team để phụ trách từng mảng, các team này phải phối hợp với nhau.

Trong bài này, chúng ta chỉ bàn đến team lo về front-end mà thôi. Họ sẽ có người thiết kế giao diện người dùng (UI), thiết kế trải nghiệm người dùng (UX), và có cả copywiter, UX writer,.. Có thể những người này không có gì gọi là “lập trình” nhưng đều nằm trong chuỗi phát triển một website nên sẽ phải từ lên ý tưởng, đánh giá, thiết kế mẫu, lập trình, kiểm thử, phát hành, bảo mật.

Vì JavaScript có thể chạy cả phía server trên môi trường NodeJS nên có những lập trình viên JavaScript sau một thời gian viết mã bên đội front-end đã chuyển luôn qua gia nhập đội back-end khi công ty dùng JavaScript bên phía back-end.

Những người làm được cả 2 món này, tức là: front-end + back-end = fullstack.

Tóm lại những điều cần nhớ

Lập trình front-end đòi hỏi một lập trình viên ban đầu phái biết cắt CSS, viết mã HTML, CSS, JavaScript.

Khi chuyên sâu hơn, một lập trình viên front-end phải biết sử dụng các CSS framework, JavaScript framework và các thư viện, hệ sinh thái đi kèm.

Một lập trình viên front-end có thể chuyến sang làm back-end và ngược lại hoặc có thể làm cả back-end lẫn front-end được gọi là fullstack developer.

Người không chuyên CNTT nên học thế nào?

Học với tinh thần thoải mái, vui vẻ

Học cách của trẻ em chơi với đồ chơi

Đọc các bài viết sẽ có những hướng dẫn chi tiết, mô tả, giải thích từng dòng code có tác dụng gì, ra làm sao. Bạn cần ngồi gõ lại giống như vậy để được… thất bại. Thất bại lúc này là điều tốt chứ không phải điều tệ hại.

KACBT cố tình không cung cấp những đoạn code có thể copy & paste được. Chúng tôi dùng hình ảnh để hiển thị mã (code), đôi lúc rất khó đọc, đó là dụng ý chứ không phải công nghệ kém cỏi hoặc cách hướng dẫn lỗi thời, cũ kỹ.

Mẫu web HTML5
Hình 1. Một trang web khởi đầu, đơn giản nhất

Cách của trẻ em đó là sau khi làm theo, tạo ra được một trang web như trên, bọn nhóc sẽ thử thay đổi, chỉnh sửa cái gì đó trong những dòng 1 đến 29 liệt kê trên hình để quan sát xem có chuyện gì xảy ra khi sửa này nọ. Bạn cũng nên làm như vậy dù bạn là người lớn.

Khi quậy tưng lên, hoay hoay với các đoạn mã làm nên trang web bạn sẽ hiểu vấn đề hơn. Bạn không khác gì một cậu nhóc phá banh chiếc xe nhựa, một bé gái kéo tóc, lột váy búp bê Barbie.

Mở thiết bị đồ chơi
Hình 2. Trẻ em thích tìm tòi, tháo tung đồ chơi, bạn cũng từng như vậy.

Một khi bạn phải tự tay làm, mệt nhọc với các đoạn HTML, não của bạn mới có cơ hội được rèn luyện, các nơ-ron được cố kết với nhau. Từ đó, một thời gian sau đó sẽ giúp cho bạn sáng ý ra, làm được những thứ mà những học sinh từng quanh năm tới lớp học thêm của thầy cô giáo không làm được bởi vì họ đã mất đi khả năng tự học, tự đánh vật với bài tập.

Sự trăn trở của người trưởng thành

Trẻ em tư duy mang tính trực quan, cần đến hình ảnh nhiều hơn so với người lớn. Do vậy, việc nhìn, xem, thấy rồi bắt chước làm theo là một cách học hiệu quả.

Hình 3. Trẻ em sẽ chơi với trang web như này rồi mới viết mã

Trong khi đó, là người lớn, bạn cần phải sử dụng đến khả năng trừu tượng hóa tích lũy được qua bao nhiêu năm đi học. Bạn phải tập đọc hiểu các bài viết toàn chữ, hiểu được nó, thực hành rồi mở rộng vấn đề, nâng cấp lên, gọi là học một biết hai, ba,… hoặc mười.

Hình 4. Với người lớn, bạn cần phải hiểu được hình trên

Nếu bạn làm web mà chỉ như hình bên trái thì còn ở mức rất nghiệp dư. Đến lúc nào đó bạn sẽ phải chuyển sang mức ở hình bên phải.

Tuy học trên trang web KACBT này để làm web chơi là chính, học như một nghề tính sau, bạn vẫn nên đạt mức “tiêu chuẩn công nghiệp“.

CNTT, làm web là lĩnh vực trí tuệ hơn cơ bắp

Bạn từng nghe câu “một trí tuệ minh mẫn trong một cơ thể cường tráng“, và cũng nghe câu “đầu óc ngu si, tứ chi phát triển“. Hai câu trên bạn tin tưởng câu nào có lý hơn?

KACBT không phải là những nhà khoa học để khẳng định câu nào có lý hơn, chỉ thử có một tấm hình sau, bạn xem và cảm nhận:

Hình 5. Hãy xem não cũng là một dạng cơ bắp, vẫn có thể “tập gym” cho não

Điều chúng tôi nhắn nhủ: bạn nên rèn luyện việc làm web mỗi ngày để trở nên thành thạo hơn, tạo ra những trang web đẹp hơn, ấn tượng hơn chứ không phải bàn chuyện cơ bắp hay trí não gì ở đây.

Giao lưu, cọ xát để có cách làm hay hơn, tốt hơn

Trong lĩnh vực thể thao, đi thi đấu giao hữu, cọ xát rất quan trọng để một đội trở nên giỏi hơn. Trong việc học cũng vậy, bạn cũng nên giao lưu với những người đang làm web, người đang học làm web khác.

Hình 6. Cùng ngồi làm chung vài buổi mỗi tháng sẽ tiến bộ đáng kinh ngạc

Một số bạn từng phàn nàn với chúng tôi rằng không tìm ra chỗ để giao lưu vì là ở tỉnh thành nhỏ, ít người biết web là gì.

KACBT cho rằng chỉ là do bạn không thử đứng ra tạo sân chơi, rủ người khác cùng chơi nếu rơi vào trường hợp bạn không tìm thấy sân chơi. Ngày nay, bạn dễ dàng đăng lên group Facebook của địa phương bạn, ít ra cũng sớm lập được nhóm 5-6 người. Đừng có ngại vì bạn mới học không biết gì mà bày đặt. Chẳng ai chê cười người ham học đâu, chỉ có mấy thằng ngu mới tỏ thái độ thôi, bạn mà sợ mấy thằng ngu để rồi chùn bước học tập thì KACBT cũng không biết nói sao.

Học lập trình web với ngôn ngữ PHP từng bước một, vững vàng

Nhiều bạn thích học lập trình web nhưng loay hoay mãi như gà mắc tóc. Chúng tôi hay nói vui là “không đến được bãi đỗ xe”.

Tình trạng này, anh em KACBT chúng tôi ở đây đều từng vướng phải, loay hoay mất nhiều năm mới thoát khỏi, có thể học được chút ít đạt mức đi làm kiếm cơm.

Do đó, KACBT cho rằng không có đúng sai/ phải trái, cứ kể như kể chuyện, liệt kê những gì biết để cho người đọc tự biết nên làm gì sau khi ngấm các bài đọc.

Lập trình chính là giải bài toán/ làm nên sản phẩm

Để tránh khó hiểu, chúng tôi so sánh một người viết code với một người thợ mộc.

Thợ mộc có các mức: học việc, thợ, thợ chính, nghệ nhân.

Tương ứng, lập trình viên có các mức: fresher, junior, senior, expert, guru.

Các mức chia trên là tương đối để chỉ từ thấp đến cao chứ không phải quy chuẩn nhất định. Một người vào nghề không phải ai cũng đạt mức cao nhất của nghề, nhưng phải đạt ở mức trung bình – khá, hoặc khá mới có thể sống được với nghề. Mức giỏi, xuất sắc dành cho số ít người, họ là những người có tiếng tăm, tiếng nói trong ngành nghề, lĩnh vực đó.

Lộ trình học PHP chôm từ trang dev.to

Điều kiện tiên quyết để theo nghề lập trình đó là tiếng Anh phải ở mức đọc hiểu được sách lập trình. Có thể ban đầu bạn chưa chuẩn bị được nhưng phải cố gắng học tiếng Anh trong quá trình lập trình.

Chúng tôi thường nhận thấy những bạn học tiếng Anh thất bại, khả năng học lập trình thất bại cũng cao. Tương tự, nếu bạn học tiếng Anh tốt, bạn cũng có tiềm năng để học lập trình dễ dàng.

Một sản phẩm phần mềm viết bằng PHP bởi 1 người từng tay chơi nhạc rock

Một số bạn có sự ảo tưởng rằng tiếng Anh không cần đọc hiểu được các bài viết, tài liệu về lập trình mà chỉ cần dùng Google dịch hoặc đọc được đoạn ngôn ngữ mà thôi. Theo chúng tôi, đây chẳng qua là sự chống chế cho việc lười hoặc không có khả năng học tiếng Anh. Chúng tôi thường nói vui, tiếng Anh đối với lập trình máy tính cũng giống như Bảng Cửu chương với Toán. Bạn giải Toán kiểu gì khi không thuộc Bảng Cửu chương, vậy thì, bạn cũng lập trình thế nào khi tiếng Anh dở ẹc.

Cách tiếp cận vấn đề theo hai hướng chính

Qua thực tế làm việc, KACBT nhìn xung quanh mình, những người đồng nghiệp cùng công ty và khác công ty thì thấy rằng phần lớn những lập trình viên web nói chung, lập trình viên ngôn ngữ PHP nói riêng đều đến từ một trong hai hướng sau:

Hướng 1: tìm hiểu kỹ lúc còn trẻ, vào nghề qua con đường cao đẳng, đại học

Ở nước ngoài, nếu bạn có ý định làm việc trong ngành công nghệ thông tin theo hướng trở thành người viết mã, lập trình viên, bạn cần ghi danh vào một trường đại học và học ngành Computer Science (viết tắt CS).

Tương tự, ở Việt Nam thì tên gọi khác nhau, nhưng nhìn chung, trước khi đăng ký bạn sẽ thấy trường đó có khoa công nghệ thông tin hoặc có chữ gì đó liên quan đến máy tính, phần mềm.

Ví dụ, ở website Trường Đại học Công nghệ Thông tin chúng tôi nhìn thấy hàng tá ngành học như sau:

  • Công nghệ thông tin
  • Hệ thống thông tin
  • Khoa học máy tính
  • Kỹ thuật phần mềm
  • Kỹ thuật máy tính
  • Mạng máy tính và truyền thông dữ liệu
  • An toàn thông tin
  • Thương mại điện tử
  • Khoa học dữ liệu
  • Trí tuệ nhân tạo

Bạn có thể tìm hiểu cụ thể từng ngành trước khi nộp đơn để định hướng cho đúng. Việc này nên làm sớm, trước khi bước vào lớp 12 để còn có thời gian điều chỉnh khi cần. Tránh để đến năm học cuối cấp thì loay hoay rồi chọn vội vàng, gây hậu quả tai hại vì hoá ra khi vào học không có gì giống tưởng tượng (vì có tìm hiểu kỹ lưỡng đâu mà biết nó thế nào).

Sau khi tìm được ngành học rồi, xem thử khi tốt nghiệp ra người ta sẽ làm những gì? Ở đâu tuyển.

Một vài nhầm lẫn rằng chơi game giỏi là có thể học lập trình tốt. Điều này không có căn cứ. Học giỏi Toán cũng chưa chắc trở thành lập trình viên xịn mà chỉ ở dạng tiềm năng, có sự hứa hẹn tương lai.

Một số khác cũng cần phải làm rõ đó là những người giỏi khoa học xã hội thì không thể theo ngành lập trình. Có thể những năm học phổ thông, ít học các môn tự nhiên nên ghi danh vào học ngành công nghệ thông tin kém lợi thế, nhưng vẫn có những người đủ điểm xét tuyển hoặc họ chọn khối D nên vẫn đủ điểm. Cũng có người hông theo con đường đại học chính quy cần phải xét tuyển theo khối A. Và như vậy, lập trình thực ra không quá khó đến mức phải giỏi Toán mới học được.

Cần biết rằng học lập trình, làm nghề lập trình chính là làm việc trong ngành kỹ thuật giống như những kỹ sư khác. Do đó, người học cần có tư duy về độ chính xác, giao tiếp với máy móc, có những cái làm không đúng máy không chạy, khác với những ngành mang tính xã hội, tương tác con người với nhau.

Vì thế, nếu bạn ghét phải ngồi nhiều giờ trước màn hình máy tính để xử lý những đoạn mã, bạn cần cân nhắc trước khi dấn thân vào nghề viết mã.

Túm lại, đó là cách tiếp cận bạn không có sự yêu thích, định hướng đặc biệt rõ ràng mà chỉ cảm thấy mình muốn học và làm ngành nghề nọ kia có liên quan đến máy tính. Trong thực tế, việc học một đàng, làm một nẻo ở Việt Nam rất nhiều. Nhưng để trụ được với nghề, không nên chọn nghề chỉ vì nghe người ta nói nghề đó ra dễ kiếm việc và/ hoặc lương cao, đây là sự lựa chọn tệ hại nhất vì một sự nghiệp mấy chục năm mà làm cái thứ mình luôn mơ hồ về nó, e rằng kinh khủng còn hơn bị cầm tù.

Hướng này nếu học hành không nợ môn, đều đều thẳng tiến 3-5 năm tuỳ theo học cao đẳng, đại học hoặc một khoá chứng chỉ quốc tế đào tạo dài hạn, người học sẽ được trang bị kiến thức nền tảng. Người tốt nghiệp có thể làm việc với nhiều ngôn ngữ lập trình khác nhau, thậm chí là cũng có thể làm về mạng máy tính, hoặc biết đủ để tham gia vào những dự án về công nghệ thông tin lớn phức tạp.

Hướng 2: nghề lập trình chọn lấy người lập trình

Phần lớn những người đi theo hướng này đều là người trưởng thành. Một số người đã đi làm một số năm ở lĩnh vực khác lân cận với công nghệ thông tin.

Cũng có một số người một ngày kia tình cờ thấy mình có thể làm việc được với máy tính, muốn “nhảy việc” sang làm chính thức trong ngành công nghệ thông tin, cụ thể là trở thành người viết mã, kỹ sư phân mềm.

Lập trình là nghề nặng nhọc

Hướng đi này thường 10 người có ý định, rơi rụng hết 7-8 người, chỉ còn số ít có thể học hành và nhảy việc thành công. Nếu chịu quan sát kỹ hơn, chúng ta dễ dàng nhận thấy những người nhảy việc thành công thường có thành tích tốt về học tập, làm việc.

Những người nghe người ta bàn với nhau, đọc báo, xem mạng xã hội,… rằng làm lập trình nhiều tiền rồi đâm đầu vào là hoàn toàn rủi ro hoặc thiếu sự đầu tư nghiêm túc. Với tâm thế như vậy, chúng tôi cho rằng số lượng có thể trở thành người víết mã, nhận lương tháng ở các công ty phần mềm là hiếm hoi.

Những người làm về kinh tế, marketing, kỹ sư, kiến trúc sư, bác sĩ, luật sư,… những nghề mà đã có chút gì đó gọi là phải nỗ lực nhiều, học hành chăm chỉ, bài bản thì chuyển sang học và làm việc như một lập trình viên không phải là việc gì đó mơ mộng, hoàn toàn hiện thực.

Do vậy, nếu đang muốn trở thành một lập trình viên lập trình web, và chọn một ngôn ngữ “xấu xí nhưng thông dụng, được việc”, bạn có thể bắt tay học với vài cuốn sách.

Thị trường việc làm cho lập trình viên PHP ở Việt Nam khá dễ tiếp cận. Chỉ có điều bạn sẽ phải vượt trên nhiều lập trình viên khác nhau bởi vì mức độ rât khó đoán bởi PHP dường như thuộc loại tự học. Hầu như không có trường đại học, cao đẳng nào ở Việt Nam dạy PHP chín khoá bởi nó được xem là ngôn ngữ được thiết kế xấu.

Cách học cho người chỉ muốn làm nghiệp dư chơi cho vui

Điều khôi hài đó là nhóm người “lập trình viên PHP” ở Việt Nam rất đông ở dạng này. Họ đến với PHP không thông qua một bài bản nào hết mà ban đầu có thể học làm một trang web nào đó cho cá nhân. Chúng tôi còn biết rằng 10 người trong số đó có 7-8 người biết đến PHP thông qua mà nguồn WordPress, NukeViet hoặc một mã nguồn làm forum thảo luận như vBulletin, XenForo.

Cách này xem ra rất thú vị bởi vì người học thoải mái tinh thần, theo kiểu “tình yêu đến em không mong đợi gì, tình yêu đi em không hề hối tiếc”. Cô nàng học lập trình cứ giống như đi dạo, hát hoa bắt bướm trên đường, đi được tới đâu không phải là vấn đề cô ấy lăn tăn.

PHP là ngôn ngữ bị ghét nhất

Ngay cả người viết bài này cũng tiếp cận theo hướng như này. Nhưng dù sao trước đó cũng đã trải qua một số nguôn ngữ lập trình khác, cũng tự học không qua trường lớp bài bản, có theo giáo trình của những người bạn thuê trọ cùng nhà.

Đọc nãy giờ chán rồi, tui muốn lên đường cùng PHP, làm sao đây?

Bạn đã xác định tư tưởng rồi? Vậy thì bắt đầu thôi. Ở đây, chúng tối sẽ đi theo hướng bắt đầu từ lập trình web với PHP. Còn cái đoạn học lập trình và học về web làm việc như thế nào bạn phải tự trang bị lấy kiến thức.

Thực sự, bất cứ chọn ngôn ngữ lập trình nào bạn cũng phải học và thực hành rất nhiều, làm từ những cái đơn giản nhất, thường được gọi là Hello World rồi qua mỗi ngày, mỗi tuần, mỗi tháng nhiều thêm lên.

Để có thể gọi là tạm sử dụng được một ngôn ngữ tự nhiên nói chung, ngôn ngũ lập trình nói riêng (dù ngôn ngữ lập trình là ngôn ngữ nhân tạo), một người bình thường tiêu tốn trung bình 700 giờ học. Nếu bạn đã giỏi một ngôn ngữ không phải tiếng mẹ đẻ, học thêm một ngôn ngữ khác sẽ ít hơn 700 giờ. Học ngôn ngữ lập trình cũng tương tự như vậy, nhưng ở đây cho rằng bạn cũng chỉ mới biết ngôn ngữ khác ở mức chưa thành thạo, chủ yếu làm quen với lập trình.

Với người có nền về công nghệ thông tin, chúng tôi không dám lạm bàn vì múa rìu qua mắt thợ. Bài viết này cũng trở thành thứ nhảm nhí với họ. Còn người không có nền về IT, có thể học theo cách như này.

Cơ bản phải nắm vững, chậm mà chắc

Nếu bạn chưa quen với lập trình, tốt nhất là bắt đầu với những điều cơ bản. Bạn có thể bắt đầu bằng cách học các nguyên tắc cơ bản của cú pháp PHP và khai báo biến.

Khi tui đã nắm bắt tốt những điều cơ bản, bạn có thể chuyển sang các chủ đề nâng cao hơn như làm việc với các đối tượng, toán tử số học, câu lệnh điều kiện, vòng lặp, hàm và mảng.

Có rất nhiều tài nguyên trực tuyến có sẵn có thể giúp bạn học PHP. Dưới đây là một số tài nguyên mà bạn có thể thấy hữu ích:

  1. PHP: The Right Way: đây là một trang web chỉ nói về PHP, nó có mọi thứ cần thiết cho người mới bắt đầu học PHP.
  2. PHP Courses của Codeademy: có một số khoá PHP cơ bản, miễn phí dành cho người bắt đầu.

Lý thuyết và thực hành đan xen, học đều các ngày trong tuần

Học theo cách của những người học ngoại ngữ

Quy ước viết từ/ ngữ trong các bài viết

Để dễ dàng cho các bạn đọc, hiểu bài học, chúng tôi liệt kê một số quy ước trong bài viết để các bạn khi đọc phân biệt được đâu là mã cần viết, cách gọi tên, từ khóa tra cứu thêm trên Internet.

Đây là quy ước khi học HTML, CSS, JavaScript. Quy ước khi học PHP có bài riêng.

Chúng tôi tự xưng là Khó ăn cát bê tông (viết tắt KACBT).

Ký hiệu:
Mẹo, tips, lời khuyên: đây là mẹo/ lời khuyên hữu ích cho bạn
Ghi chú, ghi nhớ: điều cần ghi nhớ nằm lòng
Biểu tượng cảnh báo: chú ý/ cẩn thận

I. Quy ước chung

1. Tên file, file (tập tin)

Tên file luôn sử dụng chữ thường, không chứa khoảng trắng, nếu muốn dễ đọc ta dùng dấu gạch ngang (dấu trừ trên bàn phím).

Tên file không chứa ký tự tiếng Việt có dấu, không chứa ký tự đặc biệt nào khác dấu trừ kể trên.

Đặt tên file HTML

File luôn được lưu với Encoding là utf-8 (without BOM) để nội dung tiếng Việt hiển thị tốt, không bị mã hóa ra dạng giun dế không thể đọc.

Tips Các bài học nên sử dụng 1 trong 2 trình soạn thảo code được gợi ý tại đây.

2. Quy ước trong nội dung file HTML

Các thẻ HTML không phân biệt chữ HOA, chữ thường. Theo thông lệ chung hiện nay, KACBT gợi ý bạn một số quy ước nên tuân thủ để việc tra cứu, học hỏi nâng cao về sau thuận tiện, dễ dàng.

Trong nội dung một file HTML, các thẻ (tag) đều viết chữ thường. Nếu nội dung tag dài, nên đặt tag mở (opening tag) trên một dòng, nội dung (text) gồm một số dòng khác, tag đóng (closing tag) nằm trên một dòng riêng. Ví dụ:

JavaScript được viết hoa chữ S vì đây gần như là tên riêng, danh từ riêng, hoặc nhãn hiệu. JavaScript được viết tắt là JS.

Thẻ trống (empty tag) thì nên sử dụng tự đóng thẻ:

Các thẻ rỗng (empty tag) nên tự đóng

Tên thẻ, một khoảng trắng rồi đến dấu chém tới (slash) dù không bắt buộc.

Những thẻ rỗng không thể làm theo cách thẻ có nội dung. Nghĩa là:

Thẻ rỗng viết theo kiểu thẻ có nội dung là không hợp lệ!

sẽ được xem là thẻ không hợp lệ (invalid tag).

Ở những bài học đầu tiên, khi CSS chỉ để minh họa cho HTML ta có thể viết trực tiếp CSS vào phần HEAD, bên trong thẻ STYLE.

Những bài học về sau, khi dùng CSS, JS phải tạo file riêng, không viết CSS, JS trực tiếp vào file HTML.

II. Quy ước của KACBT trong bài viết về HTML, CSS, JS

Thẻ (tag): là quy tắc đánh dấu trong HTML để trình duyệt biết cách mà xử lý. Cấu tạo chung của thẻ sẽ gồm <tên-thẻ>Nội dung của thẻ</tên-thẻ>

Thẻ DIV, thẻ P được viết khá đầy đủ

Nếu thẻ thuộc loại không có nội dung, sẽ là <tên thẻ />, minh họa:

Thẻ IMG – chèn ảnh vào nội dung HTML

Khi KACBT viết “hãy tạo một HEAD” (chữ HEAD viết hoa, viết HOA cho dễ đọc chứ không phải là bắt buộc về quy định của W3C khi soạn HTML), bạn cần nhập nội dung:

HÌnh 1. Cách viết một thẻ HTML một cách tổng quát

Tương tự, bạn thấy KACBT viết “hãy tạo một DIV” thì bạn nhập:

Thẻ DIV
Hình 2. Khi nói tạo một DIV

Thay từ HEAD, DIV bằng từ khác như P, SECTION,… bạn đọc thấy trong bài, những từ được viết in HOA 100%.

Mặc dù trong HTML không phân biệt chữ hoa với chữ thường, nhưng khi tạo thẻ, ta nên viết thường toàn bộ như trên.

Diễn giải bằng lời cho một tag đầy đủ:

Lần lượt nhập từ bàn phím:

  1. Dấu bé (dấu <)
  2. Tên thẻ (ví dụ: p, div, title)
  3. Dấu lớn (dấu >)
  4. Nội dung thẻ (text) nếu thẻ có nội dung
  5. Dấu bé (dấu <)
  6. Dấu xuyệt chém tới (dấu / slash)
  7. Tên thẻ (giống 2. ở trên)
  8. Dấu lớn (dấu >)
Minh họa cấu tạo một thẻ HTML

Khi tag không có nội dung text, trông tag như sau:

Tag không có nội dung

Thẻ (tag) và phần tử (element) quan hệ với nhau thế nào?

Khi KACBT viết “tạo một Đoạn văn” hoặc “tạo một Paragraph” hoặc “tạo một P”, bạn phải linh động để hiểu mục đích đều yêu cầu bạn tạo thẻ P.

Trong các bài viết HTML, chúng tôi sử dụng các từ khác nhau để đề cập element như: phần tử, thành phần, nhân tố, đối tượng. Bạn cần linh động nắm bắt!

Khi KACBT viết “tạo Image” hoặc “tạo IMG” hoặc “tạo element hình ảnh” bạn phải ngay lập tức biết rằng đang yêu cầu bạn nhập đoạn mã:

Element đại diện cho một hình ảnh

Chú ý có một thẻ HTML tên là HTML, nó cũng giống như bạn tên Nguyễn Văn Tên, khi người khác hỏi bạn: bạn tên gì? Bạn đáp: tôi tên Tên. Tức là trong file HTML có tồn tại duy nhất một thẻ:

Thẻ HTML trong file HTML

Trật tự, thứ tự các thuộc tính (attribute) trong một thẻ HTML không quan trọng. Thường thì các thuộc tính quan trọng/ thường dùng/ để nhận diện người ta sẽ cho đứng trước. Ví dụ:

Các dòng 1, 3, 4 trên là tương đương, cho ra cùng một element IMG.

Trong hầu hết các ngôn ngữ lập trình, ngôn ngữ máy tính đều cho phép người viết tạo các ghi chú. HTML cũng không phải là ngoại lệ.

Bạn muốn ghi chú gì (comment) đó, những dòng ghi chú giúp bạn sau này đọc lại hoặc phân tích mã, và ghi chú không xuất hiện cùng nội dung trang web khi người duyệt web xem trang web, chỉ cần tạo một dòng/ vài dòng như bên dưới:

Comment trong HTML, 3 cách trên đều được

Quy ước trong CSS

Một khối CSS có cấu trúc:

  1. Selector theo đúng quy định viết CSS
  2. Dấu sừng trâu mở
  3. Các luật (rule): gồm phần bên trái là property kèm dấu hai chấm, bên phải là giá trị
  4. Dấu sừng trâu đóng
Một khối mã CSS (block of CSS code)

Để tránh việc sai sót, ngay khi viết bạn nhập selector xong, nhập dấu sừng trâu mở, dấu sừng trâu đóng rồi lùi con trỏ lại giữa hai dấu sừng trâu, bấm phím Enter để nhập các rule.

Viết lần lượt các khối CSS theo trình tự xuất hiện của các element trong HTML.

Ghi chú (comment) trong CSS được bắt đầu với dấu chém tới (slash), tiếp theo là dấu hoa thị/ dấu sao (asterisk), nội dung ghi chú, và đóng bằng dấu hoa thị, rồi đến dấu chém. Minh họa:

Comment trong CSS
Ghi chú trong CSS

Quy ước trong JavaScript

JavaScript là ngôn ngữ phân biện chữ HOA, chữ thường. Do đó, không được tự tiện viết theo ý bạn mà phải viết giống đoạn mã minh họa vì có khi chỉ sai 1 ký tự mà toàn bộ đoạn mã bị đổ vỡ.

File JavaScript đặt trong thư mục js ngang cấp với file HTML bạn đang sử dụng để khi dùng, sử dụng đường dẫn tương đối tham khảo đến file.

Đặt các file JavaScript (tức file .js) trong thẻ SCRIPT trước thẻ BODY đóng. Trông như sau:

Vị trí đặt thẻ SCRIPT gọi file JavaScript vào HTML

Ghi chú trong JavaScript: nếu comment ngay trong dòng mã đang viết, hãy sử dụng hai dấu slash liên tục rồi đến nội dung ghi chú.

Nếu comment là một đoạn, sử dụng lần lượt dấu slash, dấu hoa thị, nội dung comment, dấu hoa thị, dấu slash giống với ghi chú CSS đã đề cập bên trên (xem hình có số 2 trong vòng tròn màu đỏ).

Một số khái niệm căn bản

Thư mục (directory/ folder trong lĩnh vực máy tính): khái niệm quen thuộc cho mọi người dùng máy tính trên mọi hệ điều hành. Nó là một tên đại diện để nhóm các tập tin lại với nhau, khi xóa thư mục, đồng nghĩa với các thư mục, tập tin bên trong nó cũng bị xóa.

Đường dẫn (path): để chỉ vị trí của một thư mục hoặc một tập tin (file) cần chỉ định. Nhà cửa có địa chỉ, một thư mục/ tập tin đối với hệ điều hành cũng có một đường dẫn để chỉ định nó. Trong hệ điều hành Windows, ký tự phân cách các thư mục là dấu slash ngược (dấu \). Trong khi học HTML, bạn sử dụng dấu slash xuôi (dấu /) để viết.

Phần mở rộng của file (file extension): trong khi học HTML bạn sẽ luôn thấy file có phần mở rộng, còn gọi là đuôi, hoặc chấm. Ví dụ: .html, .png, .jpg, .js, .css. Các đuôi file nên dùng chữ thường để tránh rắc rối khi xuất bản trang web của bạn lên hosting, gây lỗi. Nguyên nhân lỗi là do Windows không phân biệt chữ HOA, chữ thường trong tên file, phần mở rộng, nhưng hệ điều hành khác phân biệt chữ HOA, chữ thường.

Bài đầu tiên: thực hành để học

Mong muốn giúp bạn tự tay làm được một trang web theo cách dân ngoại đạo CNTT. Chúng tôi – Khó Ăn Cát Bê Tông (KACBT) viết loạt bài chỉ dần cách làm khá “tà đạo”.

Bạn tránh né, thoát khỏi sa đà vào những thứ rối rắm, mệt mỏi.

Biểu tượng HTML5

Bạn sẽ thoát được cảm giác “Ủa, CNTT khô khan, khó khăn kiểu này mà vẫn được nhiều người thích sao?“.

Bạn chỉ cần đặt niềm tin vào KACBT, tin tưởng bản thân, thích thử cái gì đó mới & không khó lắm.

Nếu có thêm một chút chăm chỉ, cẩn thận, bạn sẽ có một trang web (hoặc một chùm trang web có mối liên quan = website) sau một thời gian không dài, tương đương một khóa học làm bánh, nấu ăn cơ bản.

Làm ngay một trang web đầu tay

Mở trình soạn thảo code lên, nhập nội dung:

Hình 1. Ảnh đoạn mã HTML
Hình 1. Hình ảnh đoạn mã HTML của trang web đầu tay

Biểu tượng cảnh báo Số thứ tự bên trái là do trình soạn thảo mã đánh số, không phải do bạn nhập vào từ bàn phím.

Save file với tên bai1.html vào thư mục D:\xampp\htdocs

Mở trình duyệt web, bấm Ctrl + O để duyệt (browse) đến file bai1.html vừa tạo. Bạn thấy:

Hình 2. Thể hiện hình hài trang web khi xem bằng trình duyệt

Xong! Vậy đó, bạn đã sở hữu trang web “made bởi tui“. Phấn khích?

Giải thích đoạn mã trên

Lúc này bạn cần “học vẹt” một chút. Về sau, mỗi lần tạo một file mới để làm web, bạn tạo nội dung:

  • Giống Hình 1 từ dòng 1 đến dòng 7.
  • Sửa dòng 5 “Vùng đất thực hành web” để phản ánh chủ đề trang web bạn làm ngày hôm đó.
  • Xóa các dòng 8 đến 11, chỉ để lại dòng trống ở dòng 8 để nhập nội dung mới.
  • Dòng 12, 13 giờ đây đã trở thành dòng 9, 10.

Đây là kết quả:

Mẫu đơn giản nhất để tạo 1 trang web bất kỳ

Giải thích những gì vừa xảy ra

File bai1.html vừa tạo được gọi là file HTML (HyperText Markup Language). HTML chính là “quả tim, khối óc, khung xương” của mọi trang web trên thế giới này.

Có lúc, bạn đọc đâu đó thấy “ngôn ngữ đánh dấu siêu văn bản”, “mã HTML”, “code HTML” cũng chính là HTML đang nói.

Từ nay trở đi, KACBT viết kèm từ tiếng Anh bên cạnh các câu chữ tiếng Việt hoặc chỉ dùng tiếng Anh vì không biết chuyển ngữ sang tiếng Việt thế nào.

Đây không phải xính tiếng Anh, chỉ vì công nghệ Web, ngôn ngữ HTML ban đầu do một người Anh sáng tạo ra, dùng tiếng Anh mô tả. Tài liệu, ngôn ngữ của khoa học tin học, công nghệ thông tin trên thế giới này phần lớn xuất bản bằng tiếng Anh.

Dù tiếng Anh không phải là tiếng mẹ đẻ , một số nước cũng không còn xem tiếng Anh là ngôn ngữ thứ hai, không là ngoại ngữ mà tiếng Anh được dạy như các môn Toán, Lý, Hóa.

Chúng ta cứ vậy học, đòi hỏi sự “thuần Việt” sẽ khó khăn, vô lý, nhiều lúc không thực tế. Hơn nữa, tiếng Anh ngày nay không còn được xem là ngoại ngữ, mà là thứ tiếng ai cũng biết ít nhiều.

Có lẽ bạn đã học tiếng Anh nhiều năm, không giỏi vẫn đọc được chút ít, đâu khó khăn gì phải không nào?

Cách viết các cụm từ tiếng Anh trong các bài hướng dẫn có hai mục đích:

  • Giúp bạn tra cứu Google dễ dàng hơn khi cần tham khảo.
  • Giúp bạn quen với việc hiểu thuật ngữ tiếng Anh, dẹp bỏ được việc ngại đọc tiếng Anh.

Đọc Quy ước viết từ/ ngữ trong các bài viết.

Bạn cần quay trở về với Hình 1 bên trên, hình có đánh số dòng 1 đến 13, nhớ nhập nội dung đó đặt trên trình soạn thảo bên cạnh cửa sổ bài viết này đọc để dễ đối chiếu, hiểu bài.

Dòng 1: gọi là dòng DOCTYPE (Document Type Declaration) báo cho trình duyệt biết cần phải phân giải tài liệu HTML dưới theo dạng nào, phiên bản bao nhiêu.

Hiện tại, ngôn ngữ HTML đang ở phiên bản 5 (HTML version 5), còn được đề cập như là HTML5 (số 5 thường hay được viết dính liền, viết rời cũng không sao nhưng viết dính liền HTML5 phổ biến hơn).

Vậy, dòng 1 này luôn là vậy ở mọi file HTML. Bất kỳ trang web nào khi bạn mở ra thấy không giống vậy nghĩa là nó ở phiên bản cũ hơn, được làm từ cách đây ít nhất 5 năm.

Dòng 2: thẻ HTML mở (opening tag) này là thẻ dùng bao quát cho mọi tài liệu/ file HTML.

Dòng 3: thẻ HEAD mở, dùng để khai báo liên quan đến phần Header trong giao thức HTTP truyền trang web. Các tag trong phần HEAD này thường không xuất hiện trên màn hình hiển thị nội trang web, ngoại trừ thẻ TITLE làm nên tiêu đề hiện lên tab cửa sổ trình duyệt.

Dòng 4: thẻ META, báo cho trình duyệt biết tài liệu HTML được mã hóa dạng Unicode UTF-8. Nếu file của bạn có nội dung không phải tiếng Anh, luôn có dòng này để font chữ hiển đúng. Thẻ này là thẻ rỗng (empty tag) nên không có thẻ đóng, nên áp dụng tự đóng (self-closing).

Dòng 5: phần tử (element) TITLE để đặt tiêu đề cửa sổ tab của trình duyệt. Thẻ này cũng giúp cho việc máy kiếm như Google, Bing dễ tìm thấy trang web trên Internet. Title cần phản ánh chủ đề chính nội dung trang web.

Dòng 6: thẻ HEAD đóng của thẻ HEAD mở ở dòng 3.

Dòng 7: thẻ BODY, tức là phần thân của tài liệu HTML, nó cũng chính là phần mở đầu cho phần nội dung chính của trang web. Các bố cục, văn bản, hình ảnh hiển thị trên trang web đều là các thẻ khác nằm bên trong body.

Dòng 8: phần tử H1, thể hiện dòng chữ to, đại diện cho tiêu đề cấp 1 của tài liệu. Ta cứ hình dung một tài liệu có cấu trúc thì H1 là cấp nội dung lớn nhất, bao quát nhất.

Dòng 9: phần tử P, tạo ra một đoạn văn (paragraph) trên trang web.

Dòng 10, 11: phần tử P, tạo ra một đoan văn khác trên trang web.

Dòng 12: thẻ BODY đóng cho thẻ BODY mở dòng 7.

Dòng 13: thẻ HTML đóng, đóng cho thẻ HTML mở dòng 2, chính thức đóng lại tài liệu HTML.

Những điểm cần nắm vững, học thuộc lòng

Thẻ (tag) và phần tử (element) giống/ khác nhau thế nào? Xem giải thích.

Xét theo khía cạnh cấu trúc mở/ đóng thì thẻ được chia làm hai nhóm:

  • Nhóm thẻ có nội dung (container tag): phần lớn các thẻ thuộc nhóm này. Tức là có thẻ mở, rồi đến nội dung của thẻ, sau đó thẻ đóng.
  • Nhóm thẻ không có nội dung/ thẻ rỗng (empty tag): ít thẻ, bạn có thể nhớ danh sách thẻ sau: AREA, BASE, BR, COL, EMBED, HR, IMG, INPUT, LINK, META, PARAM, SOURCE, TRACK, WBR

Từ đặc tính trên, dễ dàng nhận thấy thẻ có nội dung có thể chứa một/ nhiều thẻ có nội dung khác và/ hoặc thẻ không có nội dung bên trong nó. Trong khi đó, thẻ không có nội dung thì không thể chứa bất cứ cái gì trong nó.

Đứng ở góc độ xây dựng bố cục các khối cấu trúc giao diện trên trang web, các phần tử (element) sẽ rơi vào 3 nhóm:

  1. Phần tử dạng khối (block-level element): mỗi phần tử tạo ra một khối hình chữ nhật, mặc định chiếm trọn không gian chiều ngang của màn hình mà không cho phép phần tử nào khác nằm cạnh nó bên trái hoặc bên phải. Việc chiếm không gian không đồng nghĩa với độ rộng của khối, khối có thể nhỏ hơn nhiều so với chiều ngang của khối cha mẹ.
  2. Phần tử trong dòng (inline-level element): các phần tử nằm cùng một dòng cạnh nhau trên màn hình, nếu chưa canh chỉnh CSS, các phần tử sẽ nằm liền sát nhau. Các khối này không có chiều rộng và chiều cao của riêng nó mà phụ thuộc vào khối cha mẹ và phần tử con của nó.
  3. Phần tử khối trong dòng (inline-block element): các phần từ này được phép nằm cạnh nhau nhưng chúng là khối riêng biệt, có thể chỉnh chiều rộng và chiều cao khối.

Minh họa bên dưới giúp hình dung rõ hơn về phần tử dạng block, inline hoặc inline-block:

Các kiểu hiển thị (display) của một phần tử (element)

Chưa cần biết CSS là gì, chỉ cần biết dùng CSS để “làm đẹp” các element khi chúng hiện lên màn hình.

Ta hình dung các element là những khối hình chữ nhật (dài, ngắn khác nhau) được trình bày trên trang web với khung viền, màu nền, có chứa hình, chữ bên trong, hoặc đơn giản chỉ khối vô hình khi cần mới hiện ra. Hoặc nếu khối có kiểu display là inline sẽ hơi giống chữ nhật nhưng bị răng cưa trồi sụt ở 2 cạnh bên.

Làm cho trang web chạy trên môi trường gần giống như khi xuất bản

Phần này lẽ ra KACBT để cho bạn tự mày mò làm nhưng sẽ có người chưa từng học tin học căn bản, sử dụng máy tính một cách rất bản năng nên việc cài đặt sẽ khó khăn.

Nếu bạn đã đọc bài Đồ nghề và đã cài đặt thành công mọi thứ, dừng ở đây. Còn vẫn khá ABC, cứ đọc và lần lượt làm theo.

  1. Vào trang để tải XAMPP, click link này.
  2. Tải file ở dòng giữa để phiên bản không quá mới, không quá cũ, đủ hợp thời.
  3. Cài đặt XAMPP bằng cách nhấp đúp file đã tải về.
  4. Chạy XAMPP lên bằng cách vào Menu của Windows hoặc thanh tìm kiếm.

Kết quả sau khi cài thành công XAMPP, mở bảng điều khiển:

Bảng điều khiển XAMPP

Giờ đây, bạn chỉ cần mở Notepad++ lên, gõ như sau:

Nội dung web Xin chào.
Nội dung trang web Xin chào

Bấm nút Save, tìm đến D:\xampp\htdocs, nhập tên file xinchao.html như minh họa:

Đặt tên file là xinchao.html

Mở trình duyệt web lên, gõ vào thanh địa chỉ, như minh hoạ:

Thanh địa chỉ trình duyệt
Chỗ có localhost/xinchao.html chính là thanh địa chỉ (address bar)

Cứ trước mỗi buổi học web, bạn lần lượt làm:

  1. Mở XAMPP Control lên, bấm nút Start ở dòng có chữ Apache như đã minh hoạ ở phần trên.
  2. Mở trình soạn thảo Notepad Plus Plus (Notepad++) lên, sử dụng nội dung mẫu để sẵn sàng cho bài học mới hoặc bài yêu cầu Save as file bài trước đó.
  3. Mở trình duyệt web lên, gõ http://localhost/baiX.html (thay X bằng số thứ tự của bài).
  4. Mỗi khi có sự chỉnh sửa mã (tức nội dung HTML được soạn trong Notepad++), nhớ bấm Ctrl + S để Save lại trước khi xem kết quả bên trình duyệt. Có rất nhiều bạn cứ nghĩ rằng chỉnh xong là tự save, hoặc không biết là phải Save mỗi khi có sự chỉnh sửa. Đó là thiếu kiến thức tin học căn bản vậy.
  5. Khi chuyển qua trình duyệt để xem kết quả, nếu bấm F5 (hoặc nút reload/ refresh; hoặc Ctrl + R) trên trình duyệt mà chưa có sự thay đổi thì: thử Shift + F5, kiểm tra lại mã HTML bên Notepad++, đã Save file chưa? File chưa Save sẽ thấy có hình dấu sao ở góc trái trên title bar.

Tham gia thảo luận bài 1 để được giải đáp nếu bạn có gì đó chưa rõ.

Lời khuyên “thực hành tốt” cho người mới học làm web

Lời khuyên này được cóp nhặt trên Facebook của một trang tên là Tech Mely, nhưng được sửa lại một vài chỗ cho dễ đọc hơn.

Về HTML

  • Luôn khai báo DOCTYPE: trình duyệt sử dụng DOCTYPE để hiểu toàn bộ tài liệu cần được diễn giải như thế nào.
  • Chỉ nên dùng 1 thẻ H1 cho một trang nếu trang đó không đang bố trí như một mục lục cuốn sách.
  • Hình ảnh cần phải có thuộc tính alt, và có thuộc tính width, height để trình duyệt render được mượt mà, hỗ trợ người mắt kém dùng trình duyệt đọc tiếng.
  • Sử dụng Semantic Elements: hãy sử dụng header, footer thay cho chỉ sự dụng các thẻ div mà thôi
  • Luôn đóng tất cả các thẻ, kể cả các thẻ như meta, img, br.

Về CSS

  • Tránh import quá nhiều thư mục CSS: code của bạn được tải với nhiều tệp CSS, thời gian cần thiết để tạo trang sẽ tăng lên.
  • Tránh Inline Styles.
  • Sử dụng @media nếu trang của bạn phải tải trên cả web và thiết bị di động để tạo giao diện tùy biến responsive.
  • Cẩn thận với các thuộc tính CSS nặng: các hiệu ứng, !important.

Về JavaScript

Suy nghĩ về khả năng tiếp cận vấn đề cần giải quyết, các thuật toán thường dùng.

Sử dụng các công cụ dành cho nhà phát triển web: trình soạn thảo, môi trường phát triển như NodeJS, REST mock API.

Framework là giải pháp cuối cùng: bạn phải nắm vững JavaScript cơ bản thay vì quá phụ thuộc vào một/ vài framework nào đó.

Về PHP

Ngay từ ngày đầu bắt tay vào dòng code PHP đầu tiên truy cập trang phptherightway chấm com. Lần lượt đọc bài ở trang này, từ trên xuống dưới, từ trái qua phải.

Mỗi ngày đọc chút một, đọc là để hiểu, làm theo.

Dựng môi trường để học PHP

Cách nhanh nhất để dựng môi trừng học PHP đó là ta tải một phần mềm web server có tích hợp sẵn PHP để làm môi trường phát triển nội bộ, còn gọi là localhost.

Lựa chọn hàng đầu hiện nay đó là phần mềm máy chủ web XAMPP, click biểu tượng bên dưới để tải về.

Logo XAMPP. Click hình để vào trang download XAMPP

Nên chọn dòng chính giữa để phiên bản không quá mới cũng không quá cũ.

Cài đặt khá đơn giản. Chỉ xin lưu ý một điều: khi cài đặt sửa đường dẫn ổ đĩa C:\xampp thành D:\xampp bởi vì ổ C: thường là ổ đĩa cài đặt hệ điều hành, nhỡ cài lại hệ điều hành mọi thứ mất hết sẽ khiến cho những gì làm ra trong quá trình học phát triển web với PHP trôi sông trôi biển.

Phi lộ

Trang web này dành cho những ai thực sự mong muốn tự học làm trang web, phát triển website, kiến thức chủ yếu dành cho người mới bắt đầu. Bạn là:

  • Học sinh muốn làm trang web cho cá nhân, nhóm bạn, lớp học.
  • Một người làm việc nhiều trên mạng, rất quen thuộc với web, chưa từng làm web, giờ muốn tự tay làm một trang web.
  • Một cá nhân muốn học phát triển website để kiếm sống.
  • Một người tò mò, muốn thử cái gì đó mới mẻ, mang tính công nghệ chút xíu, nghĩ rằng web là cái thú vị.

Nếu bạn thuộc một trong các trường hợp kể trên, trang web này dành cho bạn.

Các bài viết được một trong hai người viết, thi thoảng có khách mời. Trong bài người viết tự nhận là tên KACBT, mình hoặc tui.

Rối não chút chơi? Xưng hô trong các bài viết có lúc là mình, tui, gọi người đọc là bạn. Cũng có lúc, bạn & tui được dùng lẫn lộn nhau. Đây không phải là nhầm lẫn mà là cố tình.

Khi bạn đọc một bài viết có giọng điệu kiểu như “Tui thực hiện thao tác này để đạt được cái này…“, lúc đó, người đọc cần hiểu KACBT đang dùng theo kiểu ám thị, thực hành tâm lý sư phạm, với dụng ý để người đọc tự tin rằng chính bản thân họ đang đọc bài, thực hành chứ không phải KACBT nào cả. Như vậy, tâm thế “người trong cuộc” giúp người học tiến bộ, hiểu sâu. Bạn đã rõ rồi chứ… tui?

Những điều nên & không nên cho người mới

  • Đừng quan tâm lộ trình: hãy đi rồi có đường, đích đến không quan trọng bằng vui thú trên chuyến đi.
  • Một chuyến đi mà bạn không chắc sẽ đi đến đâu rất thú vị, đáng trải nghiệm, đậm thử thách hơn nhiều so với chuyến đi bạn đã nhìn thấy rõ ràng sẽ tạo cảm giác chán phèo.
  • Hãy yên tâm rằng KACBT có lộ trình khá bài bản cho bạn, các bài học sẽ có thứ tự, bổ sung cho nhau để cuối cùng sản phẩm tạo ra là một website hoàn chỉnh.
  • Mỗi ngày hoặc tối đa 2-3 ngày học một chút sẽ tốt hơn nhiều so với dồn lại 1 tuần, 1 tháng mới học một buổi nhiều tiếng đồng hồ.
  • Nhớ đăng ký để tham gia thảo luận, giúp quá trình học tốt hơn, hiểu bài và thực hành thông suốt. Chú ý: chỉ đăng ký nếu bạn tích cực, mỗi tuần đều tham gia thảo luận 1-2 lần, khi bạn không tham thảo luận trong vòng 1 tháng, chúng tôi sẽ xóa tài khoản.
  • KACBT phối hợp các cách thức để lý thuyết, thực hành, bài tập nâng cao, dự án nhỏ để người học cảm thấy có hứng thú, tự đánh giá được sự tiến bộ.

Để không lạc lối trên trang web lộn xộn này

Bạn cần truy cập chức năng Menu ở giữa trang – logo hình cuốn tập mở. Tui học gì cứ mục đó mà đọc bài lần lượt theo số thứ tự 1-2-3…

Dùng trình soạn thảo code nào cho người bắt đầu?

Nói về trình soạn thảo mã dành cho dân lập trình thì đầy ra, việc lựa chọn này cũng gây tốn giấy mực, tranh cãi loạn cả lên. Vì vậy, bài này có thể làm mất lòng các bạn. Mình chỉ nói rằng cái gì gọn nhẹ, ít chức năng, chỉ vừa đủ sử dụng là ngon lành cho người mới tự học rồi.

Mục đích là bắt tay vào viết code để học, chứ không phải trang bị vũ khí khủng để làm gì. Bạn có thấy trường dạy lái xe nào cho học viên thực hành trên những con xe ô-tô dạng siêu xe hoặc xe phân khúc tầm cao giá trên 1 tỉ đồng?

Vậy, ứng viên cho trình soạn thảo code cho người học mới bắt đầu trên môi trường Windows? Có vài gợi ý sau:

  1. Giao diện đơn giản, nhỏ gọn, dễ dùng: Notepad Plus Plus
  2. Một trình soạn thảo code khá PSPad.
  3. Một chàng phi công soạn thảo PilotEdit Lite (chú ý khi tải click phiên bản có chữ Lite)
  4. Nếu bạn dùng hệ điều hành MacOS (máy tính Apple) thì có sẵn TextEdit, bạn cần tra cứu cụm từ Work with HTML documents in TextEdit on Mac
  5. Nếu bạn dùng hệ điều hành họ Linux như Ubutu, LinuxMint, Fedora, Kali,… bạn có thể dùng gEdit có sẵn trong hệ điều hành này. Tìm kiếm trong thanh tìm kiếm từ Text Editor chính là gEdit.

Các trình soạn thảo văn bản thô kể trên đều miễn phí hoặc dùng cho cá nhân không phải mua licence.

Những bạn đang học theo hình thức gia sư 1 kèm 1, chúng tôi sẽ yêu cầu như là sự bắt buộc: chỉ được dùng một trong các trình soạn thảo bên trên. Ai cứng đầu, thích dùng mấy “vũ khí khủng” thì đã không thể tiếp tục rồi, vì họ có triết lý khác tui, tui hướng dẫn họ thì dễ… cãi lộn, học hành gì nữa?

Bạn hãy mạnh dạn bỏ qua các tên tuổi như:

  • VS Code (viết dài là Visual Studio Code): cái này quá khủng, nhiều chức năng quá gây rối
  • Sublime Text: mắc tiền để mua, đến 99 đô la Mỹ thì không dành cho người mới tự học làm web
  • Bracket, Atom: những cái này trước khi có VS Code thì ngon, nhưng giờ VS Code đã thống lĩnh
  • Các IDE khác: cái này dành cho những người lập trình phần mềm hơn là dân ngoại đạo

Việc sử dụng các trình soạn thảo trang bị nhiều thứ hay ho, trong đó cái chức năng “nhắc bài” cực kỳ tai hại cho người mới học vì sẽ không nhớ được các từ khóa, cú pháp của ngôn ngữ mình học. Mặc dù nhiều người giờ cảm thấy nóng ruột, muốn làm cái gì đó nhanh vì sợ không theo kịp thiên hạ. Nhưng họ nào có biết rằng con người ta hoạt động đơn nhiệm, và câu “dục tốc bất đạt” vẫn luôn còn tồn tại đó. Để có rượu ngon người ta không làm cách nào khác ngoài việc ủ trong hầm hàng chục, hàng trăm năm. Để có một dân tộc vĩ đại, người ta cần phải tích luỹ văn minh qua nhiều thế hệ.

Cho dù, bạn đang ở đây chỉ muốn làm kiểu nghiệp dư chơi mà thôi, chúng tôi vẫn muốn rằng chơi thì chơi nhưng phải có cái gì đó đọng lại như một kỷ niệm, ngồi gõ phím lóc cóc, thô sơ là một sự “sang chảnh” trong thế giới đầy “tóp tóp”.

Bạn học tiếng Anh mà không cần nhớ từ vựng chứ? Tương tự, bạn cũng cần phải nhớ “từ vựng” khi học ngôn ngữ HTML, ngôn ngữ định kiểu xếp tầng CSS, lập trình JavaScript.

Trong một số bài thực hành, bạn cũng cần biết đến những trình soạn thảo dạng live trực tiếp, trực tuyến như codepen chấm io, hoặc jsFiddle chấm net, hoặc vài thứ khác. Những công cụ này khi học đến những bài học cần đến, KACBT sẽ giới thiệu, giờ đây bạn chỉ cần nghe tên thôi để bớt bỡ ngỡ chứ chưa cần dùng ngay.

Giới thiệu về Web

Web là gì? Web được hiểu là một mạng lưới các siêu văn bản (hyper text) được đưa lên Internet để liên kết với nhau, có thể truy cập được.

Để xem các thông tin về web bạn có 2 nguồn tham khảo:

  1. Trang Wikipedia về World Wide Web.
  2. Trang Web của tổ chức W3C – nơi duy trì các tiêu chuẩn về Web.
Phân biệt Internet với WWW
Hình 1. Phân biệt Internet với WWW

icon heart World Wide Web không đồng nghĩa với Internet. World Wide Web được viết tắt là WWW, nhưng thông thường người ta dùng từ Web để chỉ chung. Từ Web là từ đúng, nhưng viết Web khá mất công nên khi đánh máy, nên KACBT viết là web.

Thoạt nghe thì rối rắm, thực sự bạn hiểu như vầy: 1 trang web chẳng qua là một văn bản, giống như mấy cái tờ giấy mà bạn thấy người ta dán trên cửa vậy, hoặc dán quảng cáo ngoài trụ điện đi cho dễ hình dung. Điểm khác biệt ở đây là siêu văn bản này nằm trên máy tính, điều hay ho là khi click chuột hoặc chọc ngón tay (khi truy cập bằng điện thoại) lên các liên kết xuất hiện trong siêu văn bản này thì bạn được dẫn đưa tới văn bản khác sau vài giây. Tức là nó có tính động vậy, thay vì tĩnh cứng ngắc như văn bản in ra giấy.

Nhiều trang web nằm chung trên một tên miền (domain) có sự kết nối với nhau thành một thể thống nhất thì được gọi là một website.

Nhiều website trên Internet trở thành một lưới khổng lồ như hàng triệu mạng nhện thì người ta gọi là WWW.

Minh họa "lưới nhện" World Wide Web.

Trải qua sự phát triển thì ngày nay người ta gọi là Web 2.0, và đang manh nha xuất hiện Web 3.0 nhưng vẫn còn tranh cãi Web 3.0 trông ra làm sao.

Tôi muốn xem một trang web, nó ở đâu?

Rất đơn giản, bạn mở trình duyệt web lên, nhập cái gì đó vào ô tìm kiếm và Enter. Trên màn hình hiện ra các kết quả tìm kiếm có thể từ Google, Bing hoặc công cụ tìm kiếm mặc định nào đó trên trình duyệt web của bạn, đó chính là trang web. Khi click vào một kết quả như vậy, bạn cũng sẽ được dẫn đến một trang web.

Nếu bạn không hình dung được, hãy mở trình duyệt web lên và nhập vi.wikipedia.org bạn sẽ vào được một trang web rất thú vị.

Hình 2. Diện mạo trang chủ Wikipedia tiếng Việt

Sống trong thời đại Web 2.0

Mặc dù rất nhiều người đang sử dụng Web 2.0 mỗi ngày nhưng họ chẳng biết quái gì về tên gọi của nó, cũng như những đặc điểm, tính chất cơ bản nhất của nó. Điều này cũng giống như bạn có một chiếc xe máy để đi nhưng chẳng biết gì về nó. Có vẻ là với nhiều người điều đó rất bình thường thôi, cần gì phải biết về chiếc xe. Nhưng khi nó gặp trục trặc nhỏ nào đó trên đường mà nơi đó không có tiệm sửa, nếu bạn biết chút ít thì bạn có thể tự cứu mình ra khỏi rắc rối.

Ở đây, KACBT muốn nói rằng bạn vào đây để xem các hướng dẫn nhằm có thể tự tay làm cho mình một trang web, không lý gì bạn sợ phải tìm hiểu về Web 2.0. Nào, mời đọc ngay Web 2.0 cho nóng sốt xình xịch để rồi “à há, hoá ra cũng thú vị về cái quen thuộc nhưng khá mơ hồ“.