Bài trước: Web (4) - Muốn theo nghề lập trình bắt đầu từ đâu (học kiểu tự chế)
---
1.1
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 toá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 toá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.1.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:
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.1.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:
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 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. |
Senior developer 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 Là người làm công việc quản lý, lãnh đạo, báo cáo, phỏng vấn
tuyển người cho dự án. Chịu trách nhiệm về sự thành công hay thất bại của dự
án. |
Technical lead Là người có hiểu biết sâu và rộng về công nghệ, quy trình;
lựa chọn công nghệ, thiết kế, quy trình cho dự án. |
Manager 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. |
Software
architect 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ụ CTO (Chief Technical Officer): Giám đốc kĩ thuật, chịu trách nhiệm chính về toàn bộ các vấn đề kĩ thuật, công nghệ, xu hướng, đào tạo, tuyển dụng của công ty. |
Trong lập trình web, thường có ba hướng đi sau:
Tên công việc |
Mô tả |
Lập trình front-end |
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à. |
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. Ngoà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 chuyên nghiệp trong công việc của mình. Khi làm một hệ
thống càng lớn thì yêu cầu về tính chuyên nghiệp và sự chuyên 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. Ngoà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.1.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:
– 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).
– 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.
---
Cập nhật: 4/3/2024
Bài sau: Web (6) - Muốn làm web cần học những gì
---
Tải tài liệu đầy đủ: Tự học HTML căn bản
-----