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:
HTML, CSS, CSS3 ( Bootstrap, Bulma, CSS preprocessor… )
Javascript ( Jquery )
Kỹ năng tìm lỗi, sửa lỗi
Biết sử dụng các công cụ hỗ trợ ( Dev tool, IDE, Photoshop, AI,… )
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:
Làm việc tốt với ít nhất 1 Framework Javascript ( ReactJS, AngularJS,… )
Biết sử dụng hợp lý các thư viện hỗ trợ khi xây dựng sản phẩm
Tối ưu giao diện người dùng ( UI )
Tối ưu trải nghiệm người dùng ( UX )
Có thể kết hợp với Designer để tạo ra giao diện sản phẩm tối ưu hơn
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:
Front-end cơ bản ( HTML, CSS, Javascript, … )
Nắm chắc ít nhất một ngôn ngữ server-side ( PHP, Ruby, Python, Java, C#, .NET, NodeJS, … )
Am hiểu, sử dụng thành thạo hệ quản trị CSDL MySQL, hoặc PostgreSQL, Oracle, NoSQL, …
Kỹ năng tìm lỗi, sửa lỗi
Nâng cao:
Các kỹ thuật nâng cao: Cache, Logs, Background-Job, Cron job, …
Clean code
Kỹ năng bảo mật cho ứng dụng
Kỹ năng tối ưu hiệu năng ứng dụng
Nắm chắc cách hoạt động, môi trường để chạy ứng dụng
Nắm chắc các mô hình và các thành phần trong ứng dụng
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
Luôn có cơ hội học hỏi
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
Học lý thuyết. Output: Trả lời được câu hỏi … là gì?
Thực hành. Output: Từ kiến thức đã học, hãy làm 1 VD cụ thể
Hãy tưởng tượng là mình sẽ dạy lại người khác
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
Tại vì bị hổng kiến thức cơ bản
Tại vì suy nghĩ quá máy móc
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ì
“Mặc dù bạn học rất kỹ càng, không bị hổng kiến thức”
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ì..
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ả!”
Tại vì thiếu kỹ năng tìm lỗi, sửa lỗi ( Debug )
Tại vì chưa hình cái nhìn bao quát
Tưởng mình là Super Developer
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, …
Đố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
Mỗi function chỉ làm 1 nhiệm vụ, công việc
Code đơn giản nhất, dễ hiểu nhất, đảm bảo tính đúng đắn nhất trong logic
Kỹ tính trong từng dấu “chấm”, dấu “phẩy”, từng dấu thụt đầu dòng (Tab)