Tóm tắt con đường trở thành Lập Trình Viên

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. Bạn có thể đọc thêm Fullstack developer là gì tại đây.

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)

Kết luận

Bảng tóm gọn để cho bạn có thể nắm bắt nhanh các ý chính, bạn nên đọc thêm bài “Đường sự nghiệp của một lập trình viên bạn nên biết” để chọn hướng đi cho tương lai của mình nhé. Ngoài ra để biết về chuyện lương bổng thì bạn có thể xem thêm Báo cáo ngành IT của TopDev tại đây.