TỰ HỌC LÀM WEB
Tập 1 – HTML căn bản
Lê Gia Công
Phiên bản 2023
Tự học làm web – Tập 1
HTML căn bản
Mục lục
Lời nói đầu ................................................................................................................7
1
Nghề làm web.....................................................................................................9
1.1
Áp dụng “Nụ cười Stan Shih” vào nghề Công nghệ thông tin .......................... 9
1.2
Muốn theo nghề lập trình bắt đầu từ đâu? ........................................................ 10
1.2.1
Học theo chương trình chính quy ........................................................................... 11
1.2.2
Học theo chương trình tự chế.................................................................................. 14
1.3
2
Làm web là làm gì? ............................................................................................. 16
1.3.1
Các cơng đoạn căn bản để làm web ........................................................................ 16
1.3.2
Một số vị trí trong nấc thang nghề nghiệp .............................................................. 16
1.3.3
Tham khảo quy trình để làm ra một sản phẩm phần mềm ...................................... 18
1.4
Muốn làm web cần học những gì ....................................................................... 20
1.5
Xem và đọc thêm ................................................................................................. 22
1.6
Bài tập và thực hành ........................................................................................... 23
Cách học ...........................................................................................................23
2.1
Học và Hành ....................................................................................................... 23
2.2
Thang đo Bloom .................................................................................................. 24
2.3
Tháp học tập ........................................................................................................ 28
2.4
Chu trình học tập Kolb ....................................................................................... 29
2.5
Mơ hình Dreyfus ................................................................................................. 32
2.6
Xem và đọc thêm ................................................................................................. 34
2.7
Bài tập và thực hành ........................................................................................... 35
3
Lộ trình học web front-end ............................................................................36
4
Web căn bản ....................................................................................................40
4.1
Web ...................................................................................................................... 40
4.1.1
Web là gì? ............................................................................................................... 40
4.1.2
Nội dung của web ................................................................................................... 41
4.1.3
Xem và đọc thêm .................................................................................................... 42
4.1.4
Bài tập và thực hành ............................................................................................... 42
2
Tự học làm web – Tập 1
4.1.5
4.2
Câu hỏi ôn tập ......................................................................................................... 43
Trình duyệt web ................................................................................................... 44
4.2.1
Trình duyệt web là gì? ............................................................................................ 44
4.2.2
Quá trình hiển thị trang web của trình duyệt .......................................................... 48
4.2.3
Xem và đọc thêm .................................................................................................... 49
4.2.4
Bài tập và thực hành ............................................................................................... 50
4.2.5
Câu hỏi ôn tập ......................................................................................................... 51
4.3
5
HTML căn bản
URL, siêu liên kết và siêu văn bản ..................................................................... 52
4.3.1
URL là gì? ............................................................................................................... 52
4.3.2
Giao thức File ......................................................................................................... 54
4.3.3
Siêu liên kết............................................................................................................. 55
4.3.4
Siêu văn bản ............................................................................................................ 55
4.3.5
Xem và đọc thêm .................................................................................................... 56
4.3.6
Bài tập và thực hành ............................................................................................... 56
4.3.7
Câu hỏi ôn tập ......................................................................................................... 58
HTML ...............................................................................................................59
5.1
Tạo một trang web đơn giản ............................................................................... 59
5.1.1
Trang web tĩnh là gì? .............................................................................................. 59
5.1.2
Chuẩn bị nội dung cho trang web ........................................................................... 60
5.1.3
Cấu trúc cơ bản của một tài liệu HTML ................................................................. 61
5.1.4
Thêm cấu trúc và ngữ nghĩa cho nội dung .............................................................. 65
5.1.5
Phần tử kiểu block và inline.................................................................................... 67
5.1.6
Xem và đọc thêm .................................................................................................... 69
5.1.7
Bài tập và thực hành ............................................................................................... 69
5.1.8
Câu hỏi ôn tập ......................................................................................................... 73
5.2
Hoàn thiện một trang web đơn giản .................................................................. 74
5.2.1
Phần tử rỗng ............................................................................................................ 74
5.2.2
Thuộc tính ............................................................................................................... 75
5.2.3
Hiển thị tiếng Việt ................................................................................................... 77
5.2.4
Thêm CSS cho trang web ....................................................................................... 78
5.2.5
Kiểm tra tính hợp lệ của mã HTML ....................................................................... 79
5.2.6
Xem và đọc thêm .................................................................................................... 81
3
Tự học làm web – Tập 1
HTML căn bản
5.2.7
Bài tập và thực hành ............................................................................................... 81
5.2.8
Câu hỏi ôn tập ......................................................................................................... 86
5.3
Hiển thị văn bản .................................................................................................. 87
5.3.1
Đoạn văn bản và đề mục ......................................................................................... 87
5.3.2
Danh sách ................................................................................................................ 90
5.3.3
Một số phần tử hiển thị nội dung khác ................................................................... 94
5.3.4
Xem và đọc thêm .................................................................................................... 97
5.3.5
Bài tập và thực hành ............................................................................................... 97
5.3.6
Câu hỏi ôn tập ....................................................................................................... 100
5.4
Bố cục một trang web ........................................................................................ 100
5.4.1
Các phần tử tạo bố cục trang web ......................................................................... 101
5.4.2
Xem và đọc thêm .................................................................................................. 110
5.4.3
Bài tập và thực hành ............................................................................................. 111
5.4.4
Câu hỏi ôn tập ....................................................................................................... 116
5.5
Phần mềm lập trình web ................................................................................... 117
5.5.1
Phân loại phần mềm lập trình ............................................................................... 117
5.5.2
Sử dụng phần mềm lập trình ................................................................................. 120
5.5.3
Xem và đọc thêm .................................................................................................. 120
5.5.4
Bài tập và thực hành ............................................................................................. 120
5.5.5
Câu hỏi ôn tập ....................................................................................................... 122
5.6
Một số phần tử HTML khác ............................................................................. 123
5.6.1
Các phần tử inline ................................................................................................. 123
5.6.2
Div và span ........................................................................................................... 125
5.6.3
Cải thiện khả năng tiếp cận với ARIA .................................................................. 128
5.6.4
Hiển thị các kí tự đặc biệt ..................................................................................... 129
5.6.5
Xem và đọc thêm .................................................................................................. 130
5.6.6
Bài tập và thực hành ............................................................................................. 131
5.6.7
Câu hỏi ôn tập ....................................................................................................... 137
5.7
Liên kết trang web ............................................................................................. 138
5.7.1
Trang web, website, ứng dụng web ...................................................................... 138
5.7.2
Tạo liên kết ........................................................................................................... 140
5.7.3
Liên kết ngoài ....................................................................................................... 141
4
Tự học làm web – Tập 1
HTML căn bản
5.7.4
Liên kết trong một website ................................................................................... 142
5.7.5
Liên kết trong một trang web ................................................................................ 149
5.7.6
Liên kết đến phân đoạn trong trang khác .............................................................. 152
5.7.7
Hiển thị trang đích ................................................................................................ 152
5.7.8
Gửi email, gọi điện thoại bằng liên kết ................................................................. 153
5.7.9
Tải tập tin bằng liên kết ........................................................................................ 154
5.7.10
Xem và đọc thêm .................................................................................................. 154
5.7.11
Bài tập và thực hành ............................................................................................. 154
5.7.12
Câu hỏi ơn tập ....................................................................................................... 160
5.8
Hình ảnh............................................................................................................ 161
5.8.1
Phần tử img ........................................................................................................... 161
5.8.2
Ảnh SVG ............................................................................................................... 165
5.8.3
Hiển thị ảnh linh hoạt ............................................................................................ 168
5.8.4
Xem và đọc thêm .................................................................................................. 176
5.8.5
Bài tập và thực hành ............................................................................................. 176
5.8.6
Câu hỏi ôn tập ....................................................................................................... 181
5.9
Bảng ................................................................................................................... 182
5.9.1
Hiển thị dữ liệu dưới dạng bảng ........................................................................... 182
5.9.2
Gộp ô..................................................................................................................... 185
5.9.3
Thêm ngữ nghĩa cho bảng..................................................................................... 188
5.9.4
Bài tập và thực hành ............................................................................................. 192
5.9.5
Xem và đọc thêm .................................................................................................. 193
5.9.6
Câu hỏi ôn tập ....................................................................................................... 193
5.10
Form ............................................................................................................... 194
5.10.1
Tổng quan về Form ............................................................................................... 194
5.10.2
Các control phổ biến ............................................................................................. 199
5.10.3
Tăng tính ngữ nghĩa cho form .............................................................................. 207
5.10.4
Tạo bố cục và thiết kế form .................................................................................. 208
5.10.5
Bài tập và thực hành ............................................................................................. 209
5.10.6
Xem và đọc thêm .................................................................................................. 218
5.10.7
Câu hỏi ôn tập ....................................................................................................... 218
5.11
Các thành phần nhúng.................................................................................. 219
5
Tự học làm web – Tập 1
HTML căn bản
5.11.1
Iframe .................................................................................................................... 220
5.11.2
Object và Embed ................................................................................................... 221
5.11.3
Video và Audio ..................................................................................................... 222
5.11.4
Canvas ................................................................................................................... 224
5.11.5
Bài tập và thực hành ............................................................................................. 226
5.11.6
Xem và đọc thêm .................................................................................................. 228
5.11.7
Câu hỏi ôn tập ....................................................................................................... 229
5.12
Một số chủ đề khác ........................................................................................ 229
5.12.1
HTML không chỉ là ngôn ngữ đánh dấu ............................................................... 229
5.12.2
Cách tìm và sửa lỗi HTML ................................................................................... 230
5.12.3
Chú thích ............................................................................................................... 232
5.12.4
Bài tập và thực hành ............................................................................................. 235
5.12.5
Xem và đọc thêm .................................................................................................. 235
5.13
Tập làm dự án ................................................................................................ 235
5.13.1
Dự án 1 .................................................................................................................. 235
5.13.2
Dự án 2 .................................................................................................................. 253
6
Tự học làm web – Tập 1
HTML căn bản
Lời nói đầu
Câu hỏi đầu tiên xuất hiện trong đầu, khi bạn thực sự muốn bước chân vào lĩnh vực làm web là
“muốn theo nghề làm web bắt đầu từ đâu?”.
Thực tế, bạn có thể bắt đầu theo nhiều cách, ví dụ:
– Cách một, học bài bản theo chương trình của một trường đại học, cao đẳng, hay trung tâm (tạm
gọi là chương trình chính quy)
– Cách hai, tự học bằng cách kết hợp các chỉ dẫn, các bài học của rất nhiều thầy cơ, anh chị trên
mạng; cùng với các khóa học trực tuyến của các công ty, tổ chức, và cá nhân. Tạm gọi cách học
thứ hai này là học theo chương trình tự chế ––tự các bạn chế ra.
Học bài bản theo chương trình chính quy có một số đặc điểm sau:
– Bạn phải vượt qua được các kì thi đầu vào, các đợt xét tuyển của các trường đại học và cao
đẳng
– Học theo chương trình được thiết kế sẵn của các trường
– Chương trình học khá bài bản và chi tiết, cho phép bạn có thể lựa chọn và theo đuổi nhiều
ngành nghề khác nhau
– Bạn cần phải chi trả một khoản tiền khá lớn cho học phí, học liệu, ăn ở, và đi lại
– Cần thời gian khá dài theo đúng tiến độ đào tạo của các trường
– Có nhiều mơn học khó, đơi khi khơng thực sự cần thiết; có những mơn học khơng phải là thế
mạnh của bạn; hoặc bạn khơng thích, nhưng vẫn phải học
Trong phần tiếp theo (phần Tổng quan) sẽ trình bày cụ thể hơn về lộ trình học theo chương trình
chính quy, để bạn có thêm một góc nhìn.
Tuy nhiên, nếu bạn khơng có nhiều tiền, nhưng có ý chí và muốn có một cái nghề; hoặc đơn giản
bạn muốn tự tìm kiếm cho mình một con đường đi riêng, thì bạn vẫn hồn tồn có thế học được
nghề làm web theo chương trình tự chế.
Để học theo chương trình tự chế, bạn cần phải chuẩn bị một cái máy tính; một ít chi phí để mua
các khóa học, tài liệu; nếu tính tốn hợp lý, thì chi phí này bằng khoảng một tháng lương thử
việc của các lập trình viên. Chi phí lớn nhất chính là thời gian, ý chí và quyết tâm của bạn. Tài
liệu này được viết cho các bạn học theo kiểu tự chế. Mời bạn cùng trải nghiệm.
Để có thể làm web, bạn cần đạt được các điều sau:
– Nắm được các kiến thức cơ bản, cần thiết, để tạo ra sản phẩm; làm cơ sở giúp bạn học được
các chủ đề nâng cao
– Học kiến thức một cách bài bản, có “lớp lang”, để trả lời được các câu hỏi “tại sao lại làm như
vậy?”. Thực tế, có nhiều bạn biết làm nhưng khơng biết tại sao lại làm như vậy.
– Kỹ năng làm ra sản phẩm, làm nhiều thì sẽ quen, làm các sản phẩm từ dễ đến khó
– Kỹ năng tự học, tự đọc tài liệu (tiếng Việt, Anh) để có kiến thức áp dụng vào thực tế
– Thái độ đúng đắn khi làm nghề: yêu nghề, có đạo đức nghề nghiệp, tính kỉ luật, tinh thần trách
nhiệm, khiêm tốn, khơng ngừng học hỏi
7
Tự học làm web – Tập 1
HTML căn bản
“TỰ HỌC LÀM WEB, Tập 1 – HTML căn bản” là cuốn sách đầu tiên trong loạt các cuốn sách
giúp bạn có thể tự tin bước vào nghề. Sách được viết theo kiểu dẫn dắt từng bước, bắt đầu với
các kiến thức lý thuyết căn bản, đây được xem như những viên gạch nền móng, từ đó người học
dễ dàng tiếp cận các kiến thức sâu hơn, khó hơn; tiếp đến có thể tự tìm tịi và thử nghiệm kiến
thức đã biết vào việc tạo ra sản phẩm.
Tiếp sau phần kiến thức căn bản, tài liệu cũng cung cấp các từ khóa, liên kết tới các trang web,
sách điện tử (ebook), và video khác trên mạng để bạn tự tìm hiểu, tự thực hành thêm, giúp bạn có
thêm nhiều góc nhìn, nhiều thông tin và nhiều trải nghiệm hơn. Sau khi đã có những hiểu biết cơ
bản về một chủ đề, tài liệu sẽ cung cấp các bài tập và bài thực hành nhằm giúp người đọc hiểu rõ
hơn lý thuyết, từng bước nâng cao kỹ năng thực hành, có thể tạo ra các sản phẩm.
Ngồi ra, sách cũng có các bài tập, câu hỏi bằng tiếng Anh, giúp người đọc từng bước làm quen,
để tiến tới sẽ đọc và làm việc với các tài liệu hoàn toàn bằng tiếng Anh. Bạn có thể sử dụng danh
mục các từ tiếng Anh chuyên ngành tại đây: />Cuối mỗi phần sẽ có các câu hỏi trắc nghiệm, giúp người học hệ thống và củng cố lại kiến thức.
Các bạn cũng sẽ tìm thấy liên kết đến các video bài giảng, hướng dẫn làm bài tập và thực hành
ứng với mỗi chủ đề trên Youtube.
Cuối cùng là hướng dẫn để làm một số dự án.
Nội dung của cuốn sách này:
– Giới thiệu một số chủ đề về chọn nghề, học làm nghề và phương pháp học
– Kiến thức căn bản về web, trình duyệt, URL, siêu liên kết, siêu văn bản
– Kiến thức tổng quan về HTML
– Cách hiển thị văn bản
– Tìm hiểu về liên kết
– Hiển thị hình ảnh
– Thiết kế form
– Nhúng nội dung vào trang web
– Các chủ đề mở rộng liên quan đến HTML
– Tập làm dự án
Đây là cuốn sách đầu tiên trong loạt các cuốn sách tự học làm web. Cuốn sách tiếp theo bạn nên
có là “TỰ HỌC LÀM WEB, Tập 2 – CSS căn bản”.
Dù đã cố gắng, nhưng tài liệu này chắc chắn còn hạn chế về kiến thức, kĩ năng, nhận định. Mong
bạn luôn đọc trong tâm thế hoài nghi.
8
Tự học làm web – Tập 1
HTML căn bản
1 Nghề làm web
Trong phần này, bạn sẽ tìm hiểu một số chủ đề có tính gợi mở, giúp bạn có những tiếp cận ban
đầu về nghề, chọn nghề, học gì để làm được nghề.
Một số chủ đề được trình bày gồm:
– Áp dụng Nụ cười Stan Shih vào nghề Công nghệ thơng tin
– Muốn theo nghề lập trình bắt đầu từ đâu
– Làm web là làm gì
– Muốn làm web cần học những gì
1.1 Áp dụng Nụ cười Stan Shih vào nghề Công nghệ thông tin
Từ hoạt động thực tiễn, chủ tịch tập đồn Acer, ơng Stan Shih đã đưa ra Đường cong nụ cười,
thường được gọi là Nụ cười Stan Shih. Qua đó, ơng cho rằng: trong chuỗi giá trị, giá trị gia tăng
tạo ra do sản xuất (manufacturing) luôn nằm ở đáy của đường cong. Phần giá trị còn lại thuộc về
những cơng việc địi hỏi nhiều kỹ năng và chất xám hơn, như: lên ý tưởng (concept/R&D), xây
dựng thương hiệu (branding), thiết kế (design), phân phối (distribution), marketing, bán
hàng/dịch vụ hậu mãi (sale/after service). Xem hình minh họa (đường cong màu xanh chính là nụ
cười Stan Shih):
Phân phối
Thiết kế
Bán hàng/
dịch vụ hậu mãi
Giá trị gia tăng
Lên ý tưởng
Xây dựng
thương hiệu
Marketing
Phân phối
Thiết kế
Gia công/lắp ráp
Lao động giản đơn cần dùng
Gia công/lắp ráp
Chuỗi sản xuất
Nụ cười Stan Shih và ý tưởng của Chu Hảo
Từ ý tưởng của Đường cong nụ cười tạm rút ra được một số ý, liên quan đến nghề nghiệp trong
lĩnh vực Công nghệ thông tin:
– Để có một sản phẩm phần mềm, một dịch vụ, hay một giải pháp công nghệ, cần phải trải qua
rất nhiều cơng đoạn. Bao gồm: lên ý tưởng, nghiên cứu tính khả thi, xây dựng thương hiệu, phân
tích hệ thống, thiết kế, cài đặt (lập trình), vận hành, phân phối, marketing, bán hàng, bảo trì,
chăm sóc khách hàng. Do vậy, khơng nên nghĩ rằng, học Công nghệ thông tin hay học làm web
9
Tự học làm web – Tập 1
HTML căn bản
chỉ là lập trình, mà thực tế cịn có rất nhiều các công việc khác để bạn lựa chọn. Hãy tiếp cận
từng loại công việc, trải nghiệm từng bước, và trải nghiệm càng nhiều càng tốt để xem bạn thực
sự hợp với loại công việc nào. Nguyên tắc chung là trải nghiệm một công việc đủ lâu và đủ sâu
để bạn nắm bắt được quy trình và cách thức làm việc; thời gian để trải nghiệm mỗi cơng việc
khơng cố định, nó tùy thuộc vào khả năng và điều kiện của mỗi bạn. Với việc trải nghiệm đa
dạng, bạn sẽ có được cái nhìn đa chiều, có tính hệ thống, thấy được mối liên quan giữa các cơng
đoạn. Điều này rất có lợi cho bạn, trước khi bạn chọn một công việc thích hợp nhất cho bản thân
để gắn bó.
– Vịng đời của một sản phẩm bất kì, bao gồm rất nhiều cơng đoạn, vậy thì một phần mềm, một
dịch vụ hay một giải pháp cơng nghệ thơng tin giúp ích được gì vào mỗi cơng đoạn đó? Giúp
giảm chi phí, tăng hiệu quả, hỗ trợ quá trình sản xuất? Bạn hãy luôn suy nghĩ làm sao để ứng
dụng công nghệ thông tin vào mỗi cơng đoạn, đây chính là động lực giúp bạn tạo ra được những
sản phẩm công nghệ thông tin hữu dụng. Chưa cần phải làm những hệ thống phức tạp, hãy bắt
đầu bằng những tiện ích, những giải pháp, hoặc những phần mềm đơn giản nhất, miễn là có ích
và áp dụng được vào trong cơng việc. Theo thời gian, bạn sẽ có kinh nghiệm và kiến thức để làm
các hệ thống lớn hơn.
– Giá trị gia tăng (thu nhập) được phân bổ theo đường cong nụ cười, bạn hãy đối chiếu mỗi cơng
đoạn của vịng đời sản phẩm vào trục đứng (trục Giá trị gia tăng) để biết được thu nhập của mỗi
vị trí, từ đó lựa chọn công việc phù hợp với khả năng của bản thân để có thu nhập cao nhất.
– Số lao động cần cho mỗi công đoạn được phân bổ theo đường cong nụ cười lật ngược (theo ý
kiến của tác giả Chu Hảo, đường cong màu đỏ). Dựa vào đường cong lật ngược này, bạn sẽ biết
được công đoạn nào cần nhiều lao động hơn (do vậy dễ tìm việc hơn). Bạn cũng biết được công
đoạn nào cần phải học nhiều hơn, thì mới có thể làm việc được.
– Có thể dùng kiến thức trong lĩnh vực Công nghệ thông tin để phát triển sự nghiệp của bản thân
hoặc khởi nghiệp theo các ngành nghề khác nhau.
Ngoài các ý tưởng của Đường cong nụ cười, bạn cũng nên tham khảo một vài nhận xét hữu ích
về marketing hiện đại, để áp dụng vào nghề của mình:
– Bản chất của mọi giao dịch trao đổi trên thị trường hiện nay khơng cịn là trao đổi của hàng hóa
hữu hình mà là trao đổi dịch vụ (service). Dịch vụ ở đây được hiểu là q trình sử dụng kỹ năng,
kiến thức, cơng nghệ tác động lên các đối tượng hữu hình (con người, máy tính, nhà cửa, đất đai,
hàng hóa hữu hình) để tạo ra giá trị mới. Như vậy, hàng hóa sẽ là vật trung gian để cung cấp dịch
vụ.
– Kỹ năng và kiến thức là đơn vị trao đổi cơ bản, là nền tảng của lợi thế cạnh tranh. Do vậy, bạn
cần không ngừng học hỏi để nâng cao giá trị của cá nhân và tổ chức.
– Khách hàng luôn là người đồng sản xuất
– Lấy dịch vụ làm trung tâm, hướng vào khách hàng.
1.2 Muốn theo nghề lập trình bắt đầu từ đâu?
Như trong phần Nụ cười Stan Shih đã đề cập, trong ngành Cơng nghệ thơng tin, lập trình chính là
cơng việc cần nhiều lao động, do vậy sẽ dễ tìm được việc làm. Lập trình là cơng việc khá đơn
giản so với các cơng đoạn khác trong vịng đời của một sản phẩm, vì vậy bạn có thể lựa chọn để
thử sức. Học được nghề lập trình sẽ giúp bạn có một nền tảng tốt, từ đó sẽ có nhiều lợi thế trước
khi thử sức ở các cơng đoạn khác trong vịng đời của một sản phẩm cơng nghệ thông tin.
10
Tự học làm web – Tập 1
HTML căn bản
Như trong phần Lời nói đầu đã đề cập, bạn có thể theo nghề làm web (là một công việc cụ thể
của nghề lập trình) bằng hai cách: học bài bản theo chương trình chính quy, hoặc tự học theo
chương trình tự chế.
1.2.1 Học theo chương trình chính quy
Để có thể theo nghề lập trình, bạn cần phải được trang bị rất nhiều các kiến thức liên quan, chứ
không đơn giản là học một ngơn ngữ lập trình. Bạn sẽ phải theo học một chương trình của trường
đại học, trường cao đẳng hoặc một trung tâm đào tạo. Thơng thường, chương trình sẽ được thiết
kế theo 3 khối kiến thức, bao gồm:
– Khối kiến thức giáo dục đại cương
– Khối kiến thức cơ sở ngành
– Khối kiến thức chuyên ngành
Các trường sẽ sắp xếp các môn học theo thứ tự phù hợp, để đảm bảo người học được trang bị
kiến thức một cách bài bản, có lớp lang, mơn học trước là nền tảng cho môn học sau. Theo thứ tự,
các bạn sẽ học Khối kiến thức giáo dục đại cương trước, sau đó đến Khối kiến thức cơ sở ngành,
cuối cùng là chọn một chuyên ngành và học Khối kiến thức của chun ngành đó. Làm web là
một cơng việc cụ thể của chuyên ngành Công nghệ phần mềm.
Lưu ý, chương trình đào tạo của mỗi trường sẽ có các mơn học, và thứ tự học khác nhau một
chút; tùy theo bối cảnh xã hội, xu thế công nghệ, nhu cầu việc làm, thế mạnh của mỗi trường.
Cũng lưu ý thêm, đây là chương trình được thiết kế theo hướng nghề nghiệp; tuy nhiên, đối với
các trường đào tạo theo hướng khai phóng thì chương trình sẽ rất khác, các bạn có thể tự tìm hiểu
thêm. Dưới đây là ví dụ một số môn học của từng khối kiến thức để các bạn tham khảo:
Khối kiến thức giáo dục đại cương
– Tiếng Anh căn bản & chun ngành CNTT
– Tốn (ví dụ Tốn rời rạc, Xác suất thống kê)
– Nhập mơn CNTT
– Nhập mơn lập trình
– Kỹ thuật lập trình
– Phương pháp lập trình hướng đối tượng
– Kỹ năng mềm
Khối kiến thức cơ sở ngành
– Cấu trúc dữ liệu và thuật giải
– Cơ sở dữ liệu
– Hệ điều hành
– Kiến trúc máy tính và hợp ngữ
– Mạng máy tính
Khối kiến thức chuyên ngành (sinh viên chọn
một chuyên ngành để theo học, trong mỗi
chun ngành sẽ có các mơn học tương ứng).
– Công nghệ phần mềm / kỹ nghệ phần mềm /
kỹ thuật phần mềm (3 tên gọi là tương đương)
11
Tự học làm web – Tập 1
Tùy theo từng trường sẽ có các chuyên ngành
khác nhau.
HTML căn bản
– Mạng máy tính và viễn thơng
– Hệ thống thơng tin
– Khoa học máy tính
– Cơng nghệ tri thức
– Thị giác máy tính và khoa học robot
– Thương mại điện tử
– Khoa học dữ liệu
– Digital marketing
– IoT
– Thiết kế mỹ thuật số
– (còn nữa)
Để lựa chọn được chuyên ngành phù hợp, bạn cần xem xét đến một số yếu tố, như sở thích, thế
mạnh của bản thân, cơ hội xin được việc làm, mức lương.
Như đã nói, sinh viên học ngành Cơng nghệ thông tin khi ra trường không nhất thiết phải theo
nghề lập trình, mà thực tế có rất nhiều các công việc khác liên quan để các bạn lựa chọn. Dưới
đây sẽ liệt kê một số tên công việc, bạn có thể tìm hiểu kĩ hơn về kiến thức, kĩ năng cần có của
mỗi cơng việc để lựa chọn chun ngành cho phù hợp. Các công việc sẽ luôn luôn biến động, có
cơng việc sẽ mất đi, có cơng việc mới sẽ xuất hiện, quan trọng là bạn phải nhanh nhạy, có khả
năng tự học, ln ln thay đổi để thích ứng và bắt kịp với thị trường. Bạn có thể đọc kĩ hơn về
các công việc trong tài liệu Những điều cần biết về nghề Công nghệ thông tin – Bộ thơng tin và
truyền thơng.
Một số vị trí việc làm của ngành Công nghệ thông tin:
Lĩnh vực phát triển phần mềm
Lập trình viên – Kỹ sư phát
triển phần mềm
Kỹ sư thiết kế phần mềm
Kiến trúc sư phần mềm
(Software Designer)
(Software Architect)
Chuyên viên phân tích nghiệp
vụ
Kỹ sư cầu nối
(Dev, Software Developer,
Software Programmer)
Kỹ sư kiểm thử phần mềm
(Software Tester)
(Bridge Software Engineer)
(System/Business Analyst)
Quản lý dự án
(Project Manager)
Lĩnh vực mạng và an tồn thơng tin mạng
12
Tự học làm web – Tập 1
HTML căn bản
Kỹ sư quản trị mạng
Kỹ sư an tồn thơng tin
Nhân viên hỗ trợ kỹ thuật
(System/Network
Administrator)
(Security Engineer)
(IT/Technical Support
Engineer)
Quản lý công nghệ thông tin
(IT manager)
Lĩnh vực đa phương tiện
Chuyên viên thiết kế đồ họa
(Graphics/Web/GUI
Designer)
Chuyên viên truyền thông đa
phương tiện
(Multimedia
Engineer/Technician)
Kỹ sư hệ thống thông tin/Kỹ sư tích hợp hệ thống (ERP/MIS/SI Engineer)
gồm các cơng việc cụ thể sau
ERP: Enterprise Resource Planning – Hệ thống hoạch định nguồn lực doanh nghiệp
MIS: Management Information System – Hệ thống thơng tin quản lý
SI: System Integration – Tích hợp hệ thống
Phân tích nghiệp vụ
Phân tích hệ thống
(Business Analyst)
(System Analyst)
Phân tích kinh doanh thơng
minh
(Business Intelligence
Analyst)
Phát triển ứng dụng
Tư vấn CNTT
Tư vấn ERP
(Business Application
Developer/System
Developer)
(IT Consultant)
(ERP Consultant)
Chuyên viên phân tích/Quản
trị cơ sở dữ liệu
Quản trị mạng
Chuyên gia hỗ trợ kỹ thuật
(Network Administrator)
(Technical Support Specialist)
Quản lý dự án CNTT
Quản lý hệ thống thông tin
Giám đốc CNTT
(IT Development Project
Leader)
(Information System
Manager)
(CIO – Chief Information
Officer )
(Database
Analyst/Administrator)
Lĩnh vực khác
Kỹ sư thiết kế vi mạch
Chuyên viên quản trị website
13
Chuyên viên nghiên cứu phát
Tự học làm web – Tập 1
(Integrated Circuit Designer)
Giảng viên chuyên ngành
CNTT
HTML căn bản
(Webmaster/Website
Administrator)
triển CNTT
Chuyên viên tư vấn CNTT
Chuyên viên kinh doanh kỹ
thuật
(IT Consultant/Expert)
(IT Teacher/Instructor)
Kỹ sư quản trị cơ sở dữ liệu
(Database Administrator)
(IT Reseacher)
(Technical Sales &
Marketing)
Chuyên viên, chuyên gia, nhà
tư vấn, nhà nghiên cứu trong
lĩnh vực Thương mại điện tử
(eCommerce )
Các lĩnh vực cơng nghệ mới
SMAC: Social – Mạng xã
Trí thông minh nhân tạo
hội, Mobility – Di động,
(AI – Artificial Intelligence)
Analytics – Phân tích dữ liệu,
Cloud – Điện tốn đám mây
Mạng kết nối vạn vật
(IoT – Internet of Things)
Chuỗi khối
(Blockchain)
1.2.2 Học theo chương trình tự chế
Như ở phần trước đã trình bày, bạn có thể hiểu nơm na: chương trình chính quy được thiết kế
theo hướng từ căn bản đến ứng dụng, nghĩa là sẽ trang bị cho người học một nền tảng lý thuyết
khá căn bản và đầy đủ, làm nền tảng cho người học, giúp họ dễ dàng theo học một chuyên ngành
và ứng dụng được vào công việc khi đi làm.
Để có thêm một lựa chọn nữa cho người học, chúng ta sẽ tiếp cận theo hướng ngược lại, là từ
ứng dụng về căn bản. Nghĩa là, bạn sẽ bắt đầu từ một công việc cụ thể (ví dụ nghề làm web), qua
trải nghiệm học nghề và thử làm nghề, bạn sẽ biết cần phải học các chủ đề lý thuyết, các kiến
thức và kĩ năng căn bản gì? Cách tiếp cận này giúp bạn học có trọng tâm và hứng thú hơn.
Tại sao lại gọi là chương trình tự chế? Vì nó do chính bạn tạo ra, dựa trên những thứ có sẵn,
mang dấu ấn cá nhân. Kiểu học này giúp bạn hình thành được kĩ năng chọn tài liệu, học liệu, tự
tìm ra được phương pháp học phù hợp nhất cho bản thân, luôn tiến về phía trước mà khơng phụ
thuộc vào người khác, có khả năng tự thích ứng trong điều kiện thay đổi khơng ngừng của xã hội.
Dựa trên những thứ có sẵn
Hiện nay, bạn muốn học gì, thì trên mạng sẽ ln có đủ tài nguyên giúp bạn tự học. Nó có thể là
video hướng dẫn, bài giảng, sách điện tử (ebook), tài liệu trên các website bằng cả tiếng Việt và
tiếng Anh, mã nguồn các dự án mẫu. Bạn có thể nghe, xem, đọc, làm theo, kiểm tra, trải nghiệm.
Để tự học hiệu quả, bạn nên ghi chép, tổ chức và tổng hợp các kiến thức, tài nguyên, để có được
một lộ trình học rõ ràng, một hệ thống kiến thức bài bản của riêng bạn, có thể tái sử dụng về sau.
Cá nhân hóa việc học
14
Tự học làm web – Tập 1
HTML căn bản
Với giả định là mỗi cá nhân có một khả năng, tố chất, điều kiện, tiến độ học tập, phương pháp,
và mục tiêu học khác nhau. Vì vậy, với mỗi chủ đề, tài liệu sẽ cung cấp các nội dung như trải
nghiệm rời rạc (xem, nghe, đọc, làm theo), phần lý thuyết tổng hợp, bài tập thực hành và ứng
dụng vào thực tế. Bạn cần phải thực hiện đủ các nội dung thì mới đảm bảo là bạn đã nắm chắc
được mỗi chủ đề. Bạn sẽ tự thiết lập tốc độ học cho phù hợp với bản thân, ví dụ bạn đặt ra mục
tiêu là sau 6 tháng hoặc 1 năm tự học là có thể nộp hồ sơ ứng tuyển (CV) vào các công ty để
thực tập.
Học được phương pháp học
Việc tìm ra phương pháp học hiệu quả với mỗi bạn là một kĩ năng quan trọng. Với sự thay đổi
không ngừng của công nghệ, của môi trường làm việc, khả năng tự học giúp bạn thích ứng tốt
hơn trong cơng việc.
Trong thực tế, bạn phải học không ngừng để biết cách cải tiến các sản phẩm đã có hoặc tạo ra
các sản phẩm có chất lượng và tiện dụng hơn. Nếu bạn có phương pháp học hiệu quả, nó sẽ giúp
bạn nhanh chóng nắm bắt được cơng nghệ mới. Như vậy, bạn không chỉ tập trung vào học kiến
thức chuyên môn mà cũng cần phải học phương pháp học.
Ở các phần sau sẽ có các chủ đề giúp bạn tìm ra được phương pháp học phù hợp với bản thân. Ví
dụ: học và hành, tháp học tập, thang đo Bloom, chu trình học tập Kolb, mơ hình Dreyfus.
Quay trở lại nghề Công nghệ thông tin, như ở phần trước đã giới thiệu một số công việc cụ thể
theo tài liệu của Bộ thơng tin và truyền thơng. Để có thêm một góc nhìn nữa về các cơng việc
phổ biến, bạn có thể tham khảo các thơng tin từ trang Stackoverflow.
Stackoverflow là một mạng xã hội lớn, uy tín của các lập trình viên trên thế giới. Nó giúp các lập
trình viên tìm kiếm giải pháp cho các vấn đề gặp phải trong công việc hàng ngày; là nơi mỗi cá
nhân thể hiện trình độ của mình thơng qua việc giúp đỡ các đồng nghiệp khác; tuyển người làm
& tìm việc làm. Jeff Atwood và Joel Spolsky (người Mỹ) đã sáng lập ra Stackoverflow năm
2008. Hàng năm Stackoverflow thường thực hiện các khảo sát liên quan đến cộng đồng làm nghề
Công nghệ thông tin trên thế giới, bạn nên đọc các khảo sát này để có thêm nhiều thơng tin hơn.
Bảng sau liệt kê một số công việc phổ biến trong ngành Công nghệ thông tin.
Loại công việc
1. Full-stack developer
2. Back-end developer
3. Front-end developer
4. Desktop or enterprise
applications developer
5. Mobile developer
6. DevOps specialist
7. System administrator
8. Database administrator
9. Designer
10. Embedded applications 11. Data scientist or
or devices developer
machine learning specialist
12. Data engineer
13. Engineering manager
14. Data or business analyst
15. QA or test developer
16. Product manager
17. Game or graphics
developer
18. Academic researcher
15
Tự học làm web – Tập 1
19. Educator
HTML căn bản
20. Site reliability engineer
21. Scientist
Số thứ tự mỗi công việc ở bảng trên thể hiện mức độ phổ biến của nó, ví dụ cơng việc đang có
nhiều người làm nhất là Full-stack developer, kế đến là Back-end developer, tiếp theo là Frontend developer. Nói chung, cơng việc nào đang có nhiều người làm thì sẽ dễ kiếm được việc hơn.
Tất nhiên, tùy theo sở thích và điều kiện cá nhân, bạn có thể lựa chọn một trong các nghề ở trên
để theo đuổi; cứ kiên trì và quyết tâm thì cơ hội việc làm sẽ đến với bạn.
Bạn có thể vào mạng, gõ tên của mỗi nghề để tìm hiểu thêm. Đây xem như một thử thách nhè
nhẹ đầu tiên, trên con đường tự học của riêng mình.
1.3 Làm web là làm gì?
Để trả lời câu hỏi “làm web là làm gì”, hãy bắt đầu từ nhu cầu của người sử dụng. Mọi người hay
vào mạng, lên mạng, duyệt web, lướt web để đọc, để nghe, để xem, để mua bán và để làm việc.
Hiểu nơm na, để đọc thì cần phải có văn bản (text), để nghe thì phải có âm thanh, để xem thì phải
có các đối tượng đồ họa (graphic), để mua bán thì phải có gian hàng, có chọn hàng, có thanh tốn
và để làm việc thì phải có chương trình. Văn bản, âm thanh, đối tượng đồ họa, gian hàng, thanh
tốn, chương trình, được gọi chung là các tài nguyên web. Trang web sẽ cung cấp các tài nguyên
này.
Vậy, làm web là làm ra sản phẩm mà nó cung cấp các tài nguyên web cho người dùng. Sản phẩm
này chính là các trang web được hiển thị trong các trình duyệt web (hay gọi tắt là trình duyệt).
Cụ thể hơn, làm web là làm ra một trang web (web page), một website hoặc một ứng dụng web
(web application, web app).
1.3.1 Các công đoạn căn bản để làm web
Để làm được một sản phẩm trong lĩnh vực web (cũng như một sản phầm phần mềm nói chung)
sẽ có nhiều cách làm khác nhau, ví dụ, bạn có thể thực hiện theo các công đoạn căn bản sau [7]:
1. Phân tích yêu cầu khách hàng
2. Phân tích chức năng hệ thống
3. Thiết kế cơ sở dữ liệu
4. Thiết kế giao diện
5. Thiết kế kiến trúc ứng dụng
6. Cài đặt
7. Kiểm tra và sửa lỗi
8. Viết tài liệu hướng dẫn
9. Vận hành
10. Quản trị, bảo trì và SEO
Mỗi cơng đoạn cần có kiến thức, kĩ năng và kinh nghiệm khác nhau, tùy vào khả năng của mỗi
người để lựa chọn công việc phù hợp. Với người mới vào nghề, thường làm ở công đoạn Cài dặt,
Kiểm tra và sửa lỗi.
1.3.2 Một số vị trí trong nấc thang nghề nghiệp
Bảng sau là một số vị trí trong nấc thang nghề nghiệp, khi đi làm tại một công ty phần mềm [8]:
16
Tự học làm web – Tập 1
HTML căn bản
Fresher/Junior developer
Là các bạn sinh viên thực tập, sinh viên mới ra trường, sẽ được cơng ty đào tạo thêm về quy
trình làm việc, văn hóa cơng ty, các kĩ năng, kiến thức, cơng nghệ, để có thể làm việc cùng mọi
người trong cơng ty. Cơng việc thường là tìm hiểu dự án hiện tại, làm một số chức năng nhỏ,
sửa một số lỗi, làm việc dưới sự trợ giúp của những người có kinh nghiệm.
Developer
Là người đã có kinh nghiệm làm việc từ một tới ba năm, đã làm qua một số dự án. Sau vị trí
developer, có thể lựa chọn để đi theo một trong hai hướng sau:
Hướng quản lý
Hướng kĩ thuật
Team leader
Senior developer
Là người quản lý một nhóm nhỏ (3-6 người),
cùng lập trình với các thành viên trong nhóm,
họp với cấp trên, báo cáo với khách hàng,
quản lý các thành viên.
Là người hiểu sâu về cơng nghệ, quy trình, đưa
ra được các giải pháp, hướng dẫn cho người
mới, xem xét và đánh giá mã nguồn của các
thành viên.
Project manager
Technical lead
Là người làm công việc quản lý, lãnh đạo, báo Là người có hiểu biết sâu và rộng về cơng
cáo, phỏng vấn tuyển người cho dự án. Chịu
nghệ, quy trình; lựa chọn công nghệ, thiết kế,
trách nhiệm về sự thành cơng hay thất bại của quy trình cho dự án.
dự án.
Manager
Software architecture
Là người quản lý cấp cao, công việc hàng
ngày là: giao việc, phỏng vấn, họp, trao đổi
công việc với các bộ phận, phịng ban.
Là người có kinh nghiệm từ mười đến hai
mươi năm trong nghề, có khả năng đánh giá
giải pháp, lập nhóm, đưa ra lựa chọn về kiến
trúc hệ thống.
Một số công việc khác
Sales: Người bán hàng
BrSE: Kĩ sư cầu nối
Business Analyst: chuyên viên phân tích nghiệp vụ
Trong lập trình web, thường có ba hướng đi sau:
Tên cơng việc
Lập trình front-end
Mơ tả
Lập trình các phần liên quan đến giao diện
người dùng. Nếu coi trang web như một ngôi
nhà, thì front-end chính là lớp sơn, là mặt tiền
của ngơi nhà.
17
Tự học làm web – Tập 1
HTML căn bản
Lập trình back-end
Lập trình các phần liên quan đến xử lý logic,
xử lý dữ liệu. Nếu coi trang web như một ngôi
nhà, thì back-end chính là hệ thống cốt thép, bê
tơng, điện, nước của ngơi nhà.
Full-stack
Làm việc với cả hai vai trị: lập trình front-end
và lập trình back-end. Ngồi ra, cịn làm việc
với vai trò của một người thiết kế (designer),
người phát triển và triển khai (DevOps là viết
tắt của Development & Operations)
Khi đi làm, việc lựa chọn theo front-end, back-end hay full-stack phụ thuộc vào tính người, có
người thích tìm hiểu rộng, có người thích tìm hiểu sâu, có người rất giỏi: vừa có khả năng hiểu
rộng lại vừa có khả năng hiểu sâu. Vậy, tùy sở thích và khả năng để lựa chọn hướng đi, quan
trọng là phải hiểu và làm thật chun nghiệp cơng việc của mình. Khi làm một hệ thống càng lớn
thì u cầu về tính chun nghiệp và sự chun mơn hóa càng cao, vì vậy không nhất thiết phải
cố gắng bằng mọi giá để trở thành một full-stack, cứ học và làm theo đúng sở trường của bản
thân là tốt nhất.
Khi học thì nên vừa học front-end vừa học back-end ở mức cơ bản, để xem bản thân mình phù
hợp với hướng nào, sau đó sẽ tập trung học thật tốt, thật sâu vào một hướng. Ngồi ra, dù làm về
front-end thì cũng phải biết cơ bản về back-end và ngược lại.
1.3.3 Tham khảo quy trình để làm ra một sản phẩm phần mềm
Phần này lược thuật lại từ bài nói chuyện về Product Management for Managers, của tác giả
Hieu Nguyen (link bài nói chuyện ở phần Xem và đọc thêm).
Theo tác giả, để làm ra một sản phẩm hiệu quả (web cũng là một sản phẩm), có xác suất thành
cơng cao thì cần làm theo các bước trong Tháp quản lý sản phẩm (Product Management Tower).
Tác giả minh họa bằng sản phẩm cho Airbnb (giả định).
Tháp quản lý sản phẩm gồm các bước sau:
18
Tự học làm web – Tập 1
HTML căn bản
Product Management Tower – Airbnb – Tác giả Hieu Nguyen
13
Back-end
BE
BE
12
Front-end
FE
FE
11
User Interface
UI
UI
10
User Experience
UX
UX
9
Product
Feature Set
Airbnb for Family
Airbnb for Work
4
User Personas
Young people, Families, Business
3 Target Customers
2
Segmentation
1
Target Market
Flight Booking
Forex
Needs
Tour Guides
5
Foods
Underserved Needs
(Pain Points)
Activities
6
Attraction Reviews
Product Market-Fit
Experiences
Travel Insurance
7
Accommodation
Transportation
Value Proposition
Place to Stay
8
Listing, Search,
Booking, Payment
Kids
Young
Family
Travel Industry
Business
Luxury
Logistic
Banking …
– Target Market: thị trường mục tiêu mà chúng ta muốn hướng đến, nó dựa trên hai yếu tố là thị
trường mà chúng ta am hiểu và độ lớn của nó. Vì hiểu thị trường nên biết nó đang cần gì? Biết
mình phải làm gì để đáp ứng nhu cầu của thị trường. Chúng ta cũng cần biết được độ lớn của thị
trường để đảm bảo khả năng sinh lời của sản phẩm.
– Segmentation: lựa chọn phân khúc khách hàng. Chia thị trường thành các phân khúc khách
hàng khác nhau. Ví dụ: trẻ em, giới trẻ, gia đình, thương nhân, nhà giàu. Sau đó loại đi các phân
khúc mà chúng ta không muốn phục vụ hoặc khơng thể phục vụ (loại đi những nhóm khách hàng
khơng có tiềm năng).
19
Tự học làm web – Tập 1
HTML căn bản
– Target Customers: sau khi lựa chọn được phân khúc khách hàng, chúng ta sẽ có Tập khách
hàng tiềm năng.
– User Personas: từ Tập khách hàng tiềm năng, chúng ta sẽ đưa ra được bản mô tả về khách hàng
hay Chân dung khách hàng (profile). Đây là bản mô tả chung về một nhóm người dùng mục tiêu
của một sản phẩm. Tập trung vào hành vi và mục tiêu của khách hàng khi sử dụng sản phẩm của
chúng ta.
– Needs: thực hiện phỏng vấn, khảo sát, để biết được các nhu cầu của khách hàng mục tiêu. Ví
dụ người đi du lịch sẽ cần một nơi để ở, phương tiện đi lại, bảo hiểm, các đánh giá về địa điểm
họ sẽ tới, các hoạt động, ăn, hướng dẫn viên du lịch, đặt vé máy bay, đổi tiền.
– Underserved Needs (Pain Points): sắp xếp các nhu cầu của khách hàng mục tiêu, từ quan trọng
nhất đến ít quan trọng hơn, tìm ra được những nhu cầu khách hàng cần, nhưng chưa được phục
vụ tốt bởi các dịch vụ đang có. Cách làm: loại đi các dịch vụ đã được phục vụ tốt hoặc các dịch
vụ mà không phải là thế mạnh của chúng ta.
– Product Market-Fit: sản phẩm thị trường đang cần, và người dùng cảm thấy hài lòng khi sử
dụng sản phẩm đó.
– Value Proposition: đưa ra các dịch vụ mà khách hàng cần, nhằm giúp họ được sử dụng các
dịch vụ tốt hơn những cái đang có.
– Product Feature Set: cần sản phầm gì? sản phầm gồm các chức năng gì? để đáp ứng nhu cầu
của khách hàng.
– User Experience: không chỉ là trải nghiệm người dùng, mà quan trọng hơn là đáp ứng được
nhu cầu của người dùng.
– User Interface: giao diện ứng dụng
– Front-end: làm phần front-end của ứng dụng
– Back-end: làm phần back-end của ứng dụng
Như vậy, qua mơ hình Tháp quản lý sản phẩm, bạn đã biết được công việc cụ thể của một người
làm về UX, UI, front-end, back-end. Họ sẽ làm việc ở giai đoạn nào trong quá trình tạo ra một
sản phẩm phần mềm nói chung, và ứng dụng web nói riêng.
1.4 Muốn làm web cần học những gì
Muốn làm web cần học tiếng Anh chuyên ngành và chuyên môn.
Về tiếng Anh chuyên ngành, bước đầu phải có khả năng đọc hiểu tài liệu. Để hiểu được tài liệu,
bạn cần hai thứ: một là từ vựng và hai là ngữ pháp (ví dụ cấu trúc câu, mệnh đề, đại từ thay thế,
chia động từ, thể bị động, thể chủ động, các từ loại).
Mỗi bạn sẽ có cách học tiếng Anh chuyên ngành khác nhau. Học theo cách nào cũng được, miễn
là cuối cùng phải sử dụng được nó trong cơng việc.
Sau đây là một cách để có thể học tiếng Anh chuyên ngành:
– Chọn một chủ đề mà bạn quan tâm (về HTML chẳng hạn)
– Đọc sách/tài liệu tiếng Việt về HTML trước, chọn cuốn sách/tài liệu nào mà tác giả có ghi các
thuật ngữ tiếng Anh đi kèm là tốt nhất
20
Tự học làm web – Tập 1
HTML căn bản
– Đọc hiểu và làm theo sách/tài liệu tiếng Anh về HTML
– Nếu được, nên tập dịch tài liệu từ tiếng Anh ra tiếng Việt
– Trong quá trình học, nên viết các từ tiếng Anh chưa biết nghĩa ra giấy, tra nghĩa của nó, viết
một hai lần thơi, chứ đừng viết liền một lúc cả trăm lần từ đó, điều này làm mất thời gian. Sau
này nếu gặp lại từ cũ mà mình chưa nhớ nghĩa, thì lại viết ra giấy và tra nghĩa. Bạn sẽ lặp lại quá
trình này cho tới khi nào bạn thực sự nhớ được từ và nghĩa của nó thì thơi. Qua việc viết, từ mới
cùng với nghĩa của nó sẽ đi vào đầu mình lúc nào khơng hay!
Ban đầu cần học để có thể đọc hiểu được tài liệu chun mơn bằng tiếng Anh, sau đó học nghe,
nói, viết. Nếu bạn học thêm được các ngoại ngữ khác thì càng tốt (tiếng Nhật chẳng hạn).
Về chuyên môn, bảng dưới đây liệt kê một số thứ cần học, người học sẽ cảm thấy việc học nhẹ
nhàng và hiệu quả hơn nếu học đúng theo trình tự. Tuy nhiên, nếu tự học hoặc vì điều kiện nào
đó mà không thể học theo đúng thứ tự cũng không sao. Cứ tự tin học, thấy cịn thiếu kiến thức gì
thì bổ sung từ từ, quan trọng là kiên trì và dám bước tới.
Xem bảng minh họa một số thứ cần học (chỉ mang tính chất tham khảo),
Kiến thức
Kiến thức chung (dù theo front-end hay backend)
Mô tả chi tiết
– Kiến thức nền về Hệ điều hành, Kĩ thuật lập
trình, Cấu trúc dữ liệu và thuật tốn, Lập trình
hướng đối tượng, Cơ sở dữ liệu
– Kiến thức nền về WWW, Mạng máy tính
– Kĩ năng và thái độ về khía cạnh kĩ thuật
(cách viết mã, lựa chọn giải thuật, tổ chức mã
nguồn chuyên nghiệp), cũng như khía cạnh
nghề nghiệp (cách làm việc chuyên nghiệp,
hiệu quả và hạnh phúc với nghề)
– Phần mềm Quản lý phiên bản/quản lý mã
nguồn: Git, SVN, TFS
– AJAX / Web API
– RESTful API / HTTP method
– Cơ bản về lập trình front-end và back-end
Front-end
– HTML, CSS, JavaScript
– Các thư viện và framework phổ biến (ví dụ:
jQuery, Bootstrap, AngularJS, ReactJS,
VueJS)
– Responsive design, UX/UI
– Các kiến thức nâng cao (ví dụ: mơ hình
MVC, design pattern, lập trình bất đồng bộ
trong JavaScript)
21
Tự học làm web – Tập 1
Back-end
HTML căn bản
– Một trong các ngôn ngữ phổ biến: Java, C#,
PHP, Ruby, Python, JavaScript, Go
– Cơ sở dữ liệu (SQL, mySQL, MongoDB)
– Mô hình MVC, Design pattern
– Các framework của mỗi ngơn ngữ
– Các kiến thức nâng cao (ví dụ Dependency
Injection, Inversion of Control, SOLID)
– Các kiến thức về triển khai, bảo mật
Bảng trên là liệt kê các thứ cần học để tham khảo thơi. Để nắm hết các nội dung đó quả là thử
thách thực sự, và cũng không cần thiết.
Phương pháp học là:
– Học từ dễ đến khó, học chắc từng khái niệm cơ bản, khi có cái nền tốt rồi, cứ từng bước bồi
đắp thêm các kiến thức mới, mọi thứ rất logic và nhẹ nhàng
– Bắt đầu là HTML, CSS, JavaScript, một vài thư viện/framework phổ biến (ví dụ: jQuery,
Bootstrap, AngularJS, VueJS, ReactJS)
– Sau đó là một ngơn ngữ back-end nào đó cùng với cơ sở dữ liệu tương ứng (Java, JavaScript,
C#, PHP, Python, Ruby, Go, mySQL, SQL), một vài framework phổ biến
– Mục tiêu là hiểu được cách thức để làm được một sản phẩm web hoàn chỉnh (đây chính là học
front-end và back-end cơ bản)
– Trong quá trình học sẽ gặp một số khái niệm, mơ hình, cố gắng tìm hiểu để nắm bắt
– Làm thực hành thật nhiều, tự làm các dự án từ dễ đến khó
– Học từ các trang dạy làm web tại Facebook/Github/Youtube/Website/Blog hoặc học từ chia sẻ
của các anh chị trong nghề
– Cuối cùng, quan trọng nhất là phải kiên trì, chăm chỉ, “cứ đi ắt sẽ đến!”.
1.5 Xem và đọc thêm
– [1] Dùng các từ khóa sau, tìm kiếm trên mạng để đọc thêm: Đường cong nụ cười Stan Shih, nụ
cười Chu Hảo, survey stackoverflow,
– [2] Nụ cười Stan Shih: />– [3] Bài viết về marketing hiện đại của tác giả Lương Hà:
/>– [4] Tư duy phát triển: nụ cười Stan Shih (Huỳnh Thế Du): (xem 18/1/2022)
– [5] Những điều cần biết về nghề Công nghệ thông tin:
/>– [6] Khảo sát của Stackoverflow: />22
Tự học làm web – Tập 1
HTML căn bản
– [7] Bài giảng của tác giả Võ Đức Thiện về các bước làm một phần mềm:
/>– [8] Con đường phát triển sự nghiệp: />– [9] Bài nói chuyện của tác giả Hieu Nguyen về Product Management for Managers:
/>
1.6 Bài tập và thực hành
Bài 1. Liệt kê danh sách các ngôn ngữ lập trình, cơng cụ, kĩ năng, cơng nghệ mà bạn dự định học
để theo nghề làm web.
Bài 2. Tự tạo một danh sách các thuật ngữ tiếng Anh chuyên ngành, kèm theo nghĩa tiếng Việt.
[mẫu].
Bài 3. Viết một CV cho bản thân, mục đích để biết bố cục một CV của người làm về cơng nghệ,
biết được mình cần phải làm gì để có các nội dung ghi trong CV. [mẫu]
Bài 4. Tạo một blog cho bản thân viết về các chủ đề bạn đang theo đuổi, có thể tạo trên blogspot,
wordpress, github, hoặc trên các hệ thống khác. [mẫu]
2 Cách học
Học kiến thức, kĩ năng; thay đổi thái độ, nhận thức của bản thân để có thể làm tốt một nghề, yêu
nghề, yêu người, yêu đời là một quá trình dài mà bạn cần phải trải qua. Tuy nhiên, bạn có thấy là
xã hội ln biến động, và trong tương lai bạn có thể phải thay đổi nghề nghiệp, thay đổi cơng
việc để thích ứng. Trong tình huống đó, bạn lại phải đi tìm thầy, trả học phí, hay đăng kí các
khóa học, vào các trường để học tiếp? Có cách hay hơn là bạn hãy tự trang bị cho mình khả năng
tự học, hay nói cách khác hãy rèn cho mình có được kĩ năng tự học, tìm được cho bản thân một
CÁCH HỌC hiệu quả.
Trong phần này, bạn sẽ tìm hiểu sơ qua một số chủ đề, hi vọng giúp bạn thay đổi cách nghĩ và tự
tìm được cho mình một cách học phù hợp.
2.1 Học và Hành
Thử áp dụng mấy chữ W của tiếng Anh trong lúc học, lúc làm việc. Ví dụ, làm gì thì cũng ln
đặt ra vài câu hỏi, như mục đích của việc làm này là gì? Tại sao lại làm việc này (Why)? Để đạt
được mục đích đã đặt ra thì cần phải làm được những việc gì? Hay mục tiêu gồm những gì
(Which, What)? Và để đạt được các mục tiêu, trước khi đạt được mục đích thì phải làm thế nào,
có cách làm nào hay hơn khơng (hoW)?
Cụ thể hơn, giả sử bạn muốn sống hạnh phúc (mục đích), thì trước đó bạn phải làm việc chun
nghiệp, đây là một trong nhiều kết quả ngắn hạn bạn cần đạt được (mục tiêu), cũng là phương
pháp làm. Để làm việc chuyên nghiệp thì bạn phải học bài bản (phương pháp).
Học bài bản được hiểu là học có lớp có lang, từ căn bản đến nâng cao, học đủ kiến thức để áp
dụng vào việc tạo ra sản phẩm.
Thử quan sát con dấu (seal) hay logo của Viện công nghệ Massachusetts (MIT-Massachusetts
Institute of Technology). Đây là một trường rất nổi tiếng của Mỹ và thế giới.
23
Tự học làm web – Tập 1
HTML căn bản
Dù bạn theo hướng cầm búa (lao động
chân tay), hay cầm sách (lao động trí
óc) thì vẫn ln ln đứng trên một
nền tảng là:
Mens et Manus (tiếng Latinh)
Mind and Hand (tiếng Anh)
Trí óc và Đôi tay
Học và Hành
Lý thuyết và Thực hành
Biểu tượng và con dấu của Viện Massachusetts (MIT)(nguồn en.wikipedia)
Bạn cứ vào wikipedia để đọc về số giải nobel, các giải thưởng khác của MIT, để thấy thành quả
của họ “khủng” cỡ nào. Vậy thì học theo họ cũng là một ý hay.
Hãy ln kết hợp khối óc và đơi bàn tay. Học đi đơi với hành. Học lý thuyết thì ln nghĩ tới nó
sẽ được áp dụng vào đâu, nó có thể làm ra được sản phẩm gì trong thực tế để phục vụ con người.
Khi làm sản phẩm thì ln tìm hiểu xem thử có cách nào làm hay hơn khơng, làm tốt hơn khơng?
Tại sao mình lại làm sản phẩm này? Nền tảng lý thuyết để làm ra sản phẩm này là gì?
Hãy học và làm những gì mà xã hội đang cần hoặc mình nghĩ là xã hội sẽ cần.
Tóm lại, khi học và làm việc hãy ln tự đặt ra cho mình những câu hỏi tại sao, cái gì, bằng cách
nào, rồi tự tìm cách trả lời những câu hỏi đó; ln tâm niệm là học và hành phải đi cùng nhau.
2.2 Thang đo Bloom
Thế nào gọi là giỏi? Có phải một người đạt điểm cao ở trường học gọi là giỏi? Một người đứng
đầu các cuộc thi thì gọi là giỏi? Một người biết kiếm thật nhiều tiền được gọi là giỏi? Một người
có nhiều bằng cấp được gọi là giỏi? Thiết nghĩ, chúng ta không nhất thiết phải mất thời gian để
tranh cãi nhau về khái niệm giỏi, bởi theo lẽ thường, người nào tập trung thời gian, sức lực nhiều
vào một lĩnh vực nào đó thì sẽ có kết quả tốt hơn người khác.
Có thứ khá hữu ích mà chúng ta nên tìm hiểu là Thang đo Bloom. Nó là cái gì vậy?
Thang đo cấp độ nhận thức Bloom (Bloom’s Taxonomy), hay Bảng phân loại Bloom, hay ngắn
gọn là Thang đo Bloom là một cơng cụ dùng để phân loại q trình nhận thức (cognitive). Thang
đo Bloom được nhà tâm lý giáo dục người Mỹ, có tên là Benjamin Samuel Bloom (1913 – 1999)
đưa ra năm 1956. Kể từ khi ra đời, Thang đo Bloom đã được sử dụng rộng rãi và không ngừng
được cải tiến.
24
Tự học làm web – Tập 1
HTML căn bản
Thang đo Bloom được dùng như là công cụ quan trọng trong việc xây dựng mục tiêu giáo dục,
đo lường giáo dục, đặt câu hỏi trong giảng dạy và nghiên cứu, xây dựng và thiết kế bài giảng,
cũng như hướng dẫn giảng dạy để đạt mục tiêu đã đề ra.
Tới năm 2001, các nhà giáo dục học đã điều chỉnh Thang đo Bloom cho phù hợp với thực tế và
có tên gọi mới là Thang đo Bloom tu chính (Bloom’s Revised Taxonomy). Để cho ngắn gọn và
tiện trình bày, chúng ta sẽ gọi Thang đo Bloom tu chính là Thang đo Bloom. Xem hình minh họa.
Thang đo Bloom
Khi bạn muốn theo học, hay làm một nghề bất kì; hay đơn giản chỉ là tìm hiểu về một nội dung,
một chủ đề nào đó, thì bạn có thể lấy Thang đo Bloom để xem trình độ của bạn đang ở mức nào?
Thang đo Bloom gồm 6 cấp độ; thấp nhất là cấp độ 1 (Nhớ), cao nhất là cấp độ 6 (Sáng tạo). Sau
đây là ý nghĩa cụ thể của mỗi cấp độ:
– Nhớ (remembering)
Đây là mức độ thấp nhất của quá trình học, hay quá trình nhận thức. Là khả năng nhắc lại những
khái niệm, những kiến thức tổng quát, các quy trình, các chú ý đặc biệt. Ở mức độ này, bạn có
thể phát biểu là tơi có BIẾT về lĩnh vực đó, nhưng chưa hiểu và chưa thể áp dụng kiến thức vào
việc tạo ra sản phẩm. Kiểu như, để làm web thì phải học HTML, CSS, JavaScript, PHP, MySQL;
nhưng chưa hiểu thực sự chúng đóng vai trị gì trong việc làm web, cũng như chưa thể dùng
chúng để tạo ra một ứng dụng web cụ thể.
Nói chung bạn mới trả lời được những câu hỏi kiểu: nó là cái gì? trình bày? nhắc lại? mơ tả? liệt
kê?
Do vậy, nếu hỏi một bạn mà cái gì bạn cũng biết, và chỉ thế thơi. Thì rất có thể, trình độ của bạn
ấy đang ở mức độ này. Ở một góc độ nào đó, biết nhiều cũng tốt, tuy nhiên, cần phải đi xa hơn
thế.
– Hiểu (Understanding)
25