Web (5) - Làm web là làm gì?

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

-----

LIÊN HỆ TÁC GIẢ