Bài đăng này là tôi sưu tầm trên mạng của trang daoducdev.edu.vn, nói chung cũng rất hay, đối với những sinh viên chưa biết bắt đầu từ đâu thì nên đọc bài việt này để tham khảo :


1. Tư duy lập trình cơ bản.
  • Lựa chọn một ngôn ngữ lập trình để tạo dựng một tư duy tổng quan và tìm hiểu những khái niệm cơ bản nhất trong lập trình như câu lệnh, biến, toán tử, cấu trúc điều kiện, vòng lặp, hàm, làm việc với file…
  • Các bạn có thể chọn C, một ngôn ngữ tuy cũ nhưng chưa bao giờ lỗi thời. Hoặc Python, với cách thức code đơn giản và dễ tiếp cận. Tôi đã tiếp cận lập trình bằng Pascal và tôi nghĩ đó cũng không phải là một lựa chọn tồi 
  • Những bước đầu tiên chắc chắn bạn sẽ gặp những khó khăn nhất định. Nhưng đừng nản chí. Hãy bắt đầu chậm rãi, từ tốn và kiên định. Lập trình thực sự không hề khó như bạn tưởng tượng đâu!
2. Cấu trúc dữ liệu và giải thuật
  • Khi đã nắm vững những kiến thức lập trình cơ bản, đây là môn học sẽ giúp các bạn rèn luyện và đưa tư duy lên một tầm mới, bài bản và có chiều sâu hơn.
  • Đây là một môn học khó, thực sự là như vậy. Nhưng tôi sẽ đưa ra một vài gợi ý về những kiến thức các bạn cần nắm vững khi học:
    • Giải thuật đệ quy
    • Các giải thuật tìm kiếm và sắp xếp cơ bản.
    • Các cấu trúc dữ liệu cơ bản: Linked List, Stack, Queue, Tree (mấy cái này thú vị ghê !!!)
  • Nếu cảm thấy hào hứng, các bạn hoàn toàn có thể tìm hiểu thêm các cấu trúc dữ liệu và thuật toán khác. Nhưng nếu không giỏi trong môn này, cũng đừng quá lo lắng nhé! 
3. Lập trình hướng đối tượng
  • Gần như chắc chắn khi đi làm các bạn sẽ làm việc với một hoặc một vài ngôn ngữ lập trình hướng đối tượng. Chính vì vậy, tư duy lập trình hướng đối tượng là bắt buộc với lập trình viên.
  • Tôi khuyên bạn nên lựa chọn C# hoặc Java để học môn này. Đó là 2 ngôn ngữ lập trình hướng đối tượng chặt chẽ và rõ ràng nhất hiện nay. Hơn nữa, đó cũng là 2 ngôn ngữ mở cánh cửa vào nhiều chuyên ngành trong lập trình từ Mobile, Game hay Web…
  • Class, object và các đặc tính của hướng đối tượng ( bao gói, trừu tượng, thừa kế, đa hình) là những kiến thức các bạn cần nắm được khi học môn này. Nếu có gì chưa hiểu, đừng ngại hỏi, có rất nhiều người sẵn sàng giúp các bạn.
4. Phân tích, thiết kế hướng đối tượng (OOAD).
  • Đây là môn học bổ sung kiến thức hoàn hảo cho môn Lập trình hướng đối tượng (OOP) mà tôi đã đề cập ở phần 1 của bài viết này. Tuy khá khô khan, nặng nề về mặt lý thuyết nhưng khi kết hợp tốt với các kiến thức OOP trong các project thật, bạn sẽ rất nhanh chóng hiểu và thấy được sự cần thiết của môn học này. 
  • Làm một căn nhà, cần vẽ thiết kế trước. Tương tự như vậy, làm một phần mềm, việc trước tiên cần làm là phân tích và thiết kế. Nếu bước này làm tốt thì công việc phát triển phía sau chắc chắn sẽ chuẩn xác và đơn giản hơn. Trong quy trình phát triển phần mềm, về cơ bản thời gian sẽ phân chia theo quy tắc 4-4-2. Tức là 40% thời gian đầu cho phân tích, thiết kế, 40% tiếp theo là thời gian để phát triển và 20% thời gian còn lại là sửa lỗi và maintain. Nói như vậy để các bạn thấy được sự quan trọng của OOAD.
  • Tôi sẽ đưa ra một vài kiến thức cơ bản mà các bạn cần hiểu và nắm được trong môn học này:
    • Kĩ thuật phân tích hướng đối tượng.
    • UML
    • Biểu đồ cấu trúc – Structured Diagrams (Class Diagram, Object Diagram, Component Diagram)
    • Biểu đồ hành vi – Behavioural Diagrams (Use case Diagram, Sequence Diagram, Activity Diagram…)
    • Hiều về Design Pattern. Một vài Design Pattern cơ bản (Singleton, Factory, Command, Observer, MVC)
    • Quy trình phát triển phần mềm. 
    • Phát triển phần mềm theo hướng kiểm thử – TDD
5. Lập trình mạng cơ bản.
  • Trong một thế giới của Internet mà lập trình viên không có những hiểu biết cơ bản về mạng thì thật là thiếu sót vô cùng lớn. Đây có thể là cả một chuyên ngành riêng với rất nhiều thứ phải học, nhưng cá nhân tôi thấy những kiến thức sau là quan trọng nhất đối với lập trình viên:
    • Hiểu cơ bản về các thành phần phần cứng trong một hệ thống mạng (modem, router, các loại cáp…).
    • Mô hình OSI
    • Hai giao thức cơ bản TCP và UDP
    • Kiến trúc Client – Server
    • Lập trình Socket
    • Request/Respone – Gửi và nhận
6. Hệ quản trị cơ sở dữ liệu quan hệ.
  • Nền tảng của công nghệ chính là dữ liệu. Nói một cách nôm na thì lập trình chỉ đơn giản là xử lý dữ liệu đầu vào (input) để cho ra thông tin có ích (output). Chính vì vậy, học cách quản trị dữ liệu là tối cần thiết đối với lập trình viên.
  • Những khái niệm và tư duy cơ bản khi làm việc với SQL nói chung hay một hệ quản trị cơ sở dữ liệu cụ thể nào đó nói riêng (MySQL, MS SQL…) là tiền đề quan trọng cho mọi công việc của lập trình viên sau này. Hơn nữa, học về cơ sở dữ liệu giúp bạn rèn luyện tư duy quản lý, tổ chức, truy vấn…rất có ích cho con đường dài sau này.
  • Tôi sẽ liệt kê một vài kiến thức cần nắm vững của môn này để các bạn tham khảo:
    • Quan trọng nhất là hiểu cách thức phân tích, xây dựng Mô hình Quan hệ – Thực thể, từ đó thiết kế được một database.
    • Các ràng buộc như khóa chính, khóa phụ, not null…
    • Các kiểu dữ liệu cơ bản (cái này phụ thuộc vào từng hệ quản trị cơ sở dữ liệu cụ thể)
    • Các nhóm lệnh cơ bản: Khởi tạo, thay đổi, xóa, select.
    • Cách thức join để lấy dữ liệu từ nhiều bảng.
    • Index, View, Store Procedure
    • Phân quyền trong database
    • Transaction.
    • Cách thức các ngôn ngữ lập trình phổ biến kết nối và làm việc với database.
7. HTML/CSS/JavaScript căn bản.
  • Web là một phần không thể thiếu của thế giới internet ngày nay. Vì vậy, dù có lưa chọn lập trình web hay không, kiến thức cơ bản về cách thức tạo lập ra một website cũng là rất có ích với lập trình viên.
  • JavaScript hiện là một trong những ngôn ngữ lập trình phổ biến và được dùng nhiều nhất hiện nay, biết một chút về ngôn ngữ này thực sự không thừa, dù có thể tương lai bạn chả bao giờ phải dùng đến nó.
  • Khi học web basic, bạn sẽ được làm quen với việc xây dựng, tổ chức một giao diện (UI), là thứ mà người dùng sẽ tương tác trực tiếp. Thông qua đó, bạn sẽ rèn luyện được khả năng về UI/UX, biết cách để hiểu người dùng, hiểu khách hàng của mình sau này hơn.
  • Sau đây là một vài kiến thức cần nắm vững khi học môn này:
    • Cấu trúc một trang HTML cơ bản. Cách thức HTML làm việc với CSS và JavaScript.
    • Các thẻ HTML cơ bản.
    • CSS – Cú pháp và bộ chọn (selectors)
    • Cách thức tổ chức nội dung của một website
    • JavaScript căn bản
    • Làm việc với Form
    • DOM và BOM.   
Nhìn có vẻ dài nhỉ ? Nhưng biết làm sao được, chúng ta cứ lần lượt thực hiện các mục tiêu này thôi !!

Post a Comment

Mới hơn Cũ hơn