Tag Archives: laptrinhvien

Con đường trở thành lập trình viên – các khái niệm về lập trình web

lap-trinh-vien

Bạn đang băn khoăn về con đường trở thành lập trình viên? Bài viết sau đây sẽ giải đáp cho bạn tất tần về Lập trình viên là ai? Học ngành nào thì sẽ làm lập trình viên? Ngoài ra bài viết sẽ cung cấp những khái niệm cơ bản về lập trình web (front-end, back-end, full-stack) để bạn có thể nắm bắt một cách dễ dàng khái niệm lập trình viên sẽ làm gì.

1. Lập trình viên là ai?

  • Là người thiết kế, xây dựng và bảo trì các chương trình máy tính. Bằng cách thao tác với những đoạn mã trên các công cụ lập trình. Lập trình viên còn được gọi bằng nhiều cái tên khác như dân IT, developer, coder, programmer…
  • Các lập trình viên thường làm việc với ít nhất 1 ngôn ngữ lập trình. VD: Javascript, PHP, Java, Ruby, Python, C#, ASP,…
  • Lập trình viên được ví là những thợ “Coding”, làm ra các phần mềm, phát triển nó dựa trên công cụ lập trình

2. Xác định mục tiêu ban đầu?

  • Học lập trình để làm gì?
  • Học lập trình để trở thành ai?
  • Input / Output là gì?

3. Theo đuổi chuyên ngành nào?

  • Thiết kế/Lập trình Website (Front end, Back end, Fullstack)
  • Lập trình Mobile
  • Thiết kế hệ thống 
  • Lập trình Ứng dụng (PC)
  • Lập trình Nhúng
  • Big data / Machine Learning / AI
  • Blockchain

Dưới đây là những khái niệm cơ bản về lập trình web để bạn có thể nắm bắt một cách dễ dàng khái niệm lập trình viên sẽ làm gì.

3.1. Lập trình viên Front-end

  • Xây dựng giao diện người dùng

Xây dựng giao diện Website từ mẫu thiết kế (PSD, AI, Images,…)

  • Tối ưu hiệu năng của ứng dụng Front-end

Tối ưu về tốc độ của ứng dụng

  • Tối ưu trải nghiệm người dùng

Mang lại trải nghiệm tốt cho người dùng khi sử dụng sản phẩm Website

Lập trình viên Front-end cần nắm chắc các ngôn ngữ (lập trình) sau:

  • Cơ bản:
  1. HTML, CSS, CSS3 ( Bootstrap, Bulma, CSS preprocessor… )
  2. Javascript ( Jquery )
  3. Kỹ năng tìm lỗi, sửa lỗi
  4. Biết sử dụng các công cụ hỗ trợ ( Dev tool, IDE, Photoshop, AI,… )
  5. Kiến thức về Layout ( Các dạng giao diện phổ biến của Website, màu sắc,… )
  • Nâng cao:
  1. Làm việc tốt với ít nhất 1 Framework Javascript ( ReactJS, AngularJS,… )
  2. Biết sử dụng hợp lý các thư viện hỗ trợ khi xây dựng sản phẩm
  3. Tối ưu giao diện người dùng ( UI )
  4. Tối ưu trải nghiệm người dùng ( UX )
  5. Có thể kết hợp với Designer để tạo ra giao diện sản phẩm tối ưu hơn
  6. Nâng cao độ khó tính lên mức A+, A++

3.2. Lập trình viên Back-end

  • Xây dựng ứng dụng làm việc phía sau giao diện người dùng
  • Phân tích, thiết kế các thành phần, mô hình ứng dụng
  • Phân tích, thiết kế cơ sở dữ liệu
  • Xây dựng giao diện lập trình ứng dụng ( API )
  • Tối ưu hiệu năng ứng dụng Back-end

Lập trình viên Backend cần nắm chắc các ngôn ngữ (lập trình) sau:

  • Cơ bản:
  1. Front-end cơ bản ( HTML, CSS, Javascript, … )
  2. Nắm chắc ít nhất một ngôn ngữ server-side ( PHP, Ruby, Python, Java, C#, .NET, NodeJS, … )
  3. Am hiểu, sử dụng thành thạo hệ quản trị CSDL MySQL, hoặc PostgreSQL, Oracle, NoSQL, …
  4. Kỹ năng tìm lỗi, sửa lỗi
  • Nâng cao:
  1. Các kỹ thuật nâng cao: Cache, Logs, Background-Job, Cron job, …
  2. Clean code
  3. Kỹ năng bảo mật cho ứng dụng
  4. Kỹ năng tối ưu hiệu năng ứng dụng
  5. Nắm chắc cách hoạt động, môi trường để chạy ứng dụng
  6. Nắm chắc các mô hình và các thành phần trong ứng dụng
  7. Triển khai ứng dụng ( Deploy ), cài đặt Web-server, Services, …

3.3. Lập trình viên Full-stack

  • Lập trình viên Full-stack là người đa năng
  • Làm việc chuyên nghiệp trên cả Server-side & Client-side.

4. Chuẩn bị kỹ lưỡng trước khi bắt đầu

  • Đặt tiêu phấn đấu tới là phát triển bản thân & sự nghiệp
  • Đặt mục tiêu ngắn hạn, dài hạn
  • Rèn luyện tính khiêm tốn, không dấu dốt
    1. Luôn có cơ hội học hỏi
    2. Có lòng tin từ mọi người
  • Chăm chỉ, luôn chủ động tìm tòi học hỏi

5. Cách học tập hiệu quả

  • Không ngại học cái mới
  • Học chậm rãi
  1. Học lý thuyết. Output: Trả lời được câu hỏi … là gì?
  2. Thực hành. Output: Từ kiến thức đã học, hãy làm 1 VD cụ thể
  3. Hãy tưởng tượng là mình sẽ dạy lại người khác
  4. Học cách sử dụng các công cụ liên quan, tận dụng tối đa các tiện ích của công cụ

6. Vấn đề gặp phải trong quá trình học

  • Học mãi không hiểu
  1. Tại vì bị hổng kiến thức cơ bản
  2. Tại vì suy nghĩ quá máy móc
  3. Tại vì quá mệt mỏi, căng thẳng
  • Ban đầu học dễ hiểu, càng về sau càng không hiểu gì
  1. “Mặc dù bạn học rất kỹ càng, không bị hổng kiến thức”
  2. Lý do: Kiến thức nâng cao hơn, sẽ cần nhiều thời gian để tiếp thu hơn
  • Code theo video thì được, tự code lại không biết code cái gì..
  1. Tại vì chưa hình thành Tư duy lập trình
  • Code lỗi: “Rõ ràng em không sai ở đâu cả!”
  1. Tại vì thiếu kỹ năng tìm lỗi, sửa lỗi ( Debug )
  2. Tại vì chưa hình cái nhìn bao quát
  • Tưởng mình là Super Developer
  1. Biểu hiện: Thấy cái gì cũng đơn giản, nghĩ cái gì mình cũng có thể làm được, …
  2. Đối tượng thường gặp:
    • Đã có kiến thức cơ bản về HTML, CSS, Javascript
    • Đã có kiến thức về 1 ngôn ngữ server-side như PHP
    • Đã làm việc với MySQL hoặc tương đương, …

7. Học và dõi theo những người đi trước

  • Đơn giản hoá trong suy nghĩ

“Vấn đề to thành vấn đề nhỏ, vấn đề nhỏ thành không có gì”

“Sai sửa, chửa đẻ”

  • Đơn giản ngay cả trong từng dòng Code
  1. Mỗi function chỉ làm 1 nhiệm vụ, công việc
  2. Code đơn giản nhất, dễ hiểu nhất, đảm bảo tính đúng đắn nhất trong logic
  3. Kỹ tính trong từng dấu “chấm”, dấu “phẩy”, từng dấu thụt đầu dòng (Tab)

Bài viết trên đây để cho bạn có thể nắm bắt nhanh các ý chính, để chọn hướng đi cho tương lai của mình nhé.

Tham khảo page: Tuyển dụng MISA – Software để biế thêm các thông tin về MISA.