Series nhập môn lập trình – con đường nào cho các bạn tự học lập trình?

4596

So với việc học Đại Học, con đường tự học – học đại có nhiều thử thách và gian nan trắc trở hơn nhiều. Do vậy, mình dành nguyên bài viết này để định hướng, chia sẻ về con đường dành cho các bạn muốn tự học lập trình. Hi vọng chúng sẽ có ích cho bạn.

Xác định lý do muốn học lập trình

Đầu tiên, phải xin cảnh báo trước với các bạn là việc học và việc lập trình không hề dễ dàng. Chuyện tự học lại càng khó khăn hơn và không phải ai cũng có thể theo đến cùng.

Kiến thức lập trình phức tạp, khó tiếp thu. Khối lượng kiến thức nhiều lại hay thay đổi. Đây là lý do mà nhiều bạn dễ cảm thấy nản lòng, muốn bỏ cuộc khi đang học.

Do đó, mình nghĩ trước tiền các bạn nên xác định lý do mình muốn học lập trình: vì đam mê với IT, học để khởi nghiệp, học để làm ra sản phẩm đổi đời. Khi có ý định bỏ cuộc, hãy nghĩ đến lý do tại sao mình bắt đầu học.

 

Ngoài ra, việc xác định lý do học sẽ giúp bạn dễ dàng lựa chọn lộ trình học hơn. VD bạn muốn làm web thì chỉ cần học về web, muốn làm app di động thì chỉ cần học kĩ về di động, không phải lan man học đại trà.

Lựa chọn một con đường để đi

Để có thể đi làm, lập trình ra một thứ gì đó, hầu như lập trình viên nào cũng trải qua những giai đoạn sau:

  1. Nhập môn: Chọn một ngôn ngữ nào đó (C, C++, Python) để nhập môn, hiểu các khái niệm cơ bản trong lập trình (biến, hàm, con trỏ, module). Giai đoạn này mất khoảng 1-2 tháng.
  2. Nhập môn sâu hơn: Học C++ hoặc Java/C# để tìm hiểu về các khái niệm OOP, về cấu trúc dữ liệu và thuật toán. Ngoài ra, bạn còn phải học về cách thiết kế database và cách chúng hoạt động. Giai đoạn này cũng mất khoảng 1-2 tháng.
  3. Những giai đoạn về sau mất từ vài năm cho tới vài chục năm để thành thục.
  4. Chuyên sâu về ngôn ngữ: Sau khi đã nắm các khái niệm cơ bản, các bạn bắt đầu tìm hiểu chuyên sâu một ngôn ngữ nào đó: Ngôn ngữ đó điểm mạnh điểm yếu gì, làm được những gì, cách thiết kế code, cách viết hàm ra sao. Bạn cũng phải tìm hiểu về hệ sinh thái của ngôn ngữ đó (C# thì đi với Window, MS SQL và VS, PHP thì đi với Linux, MySQL, ….)
  5. Kiến thức nâng cao: Mỗi ngôn ngữ đều đi cùng với nhiều framework và thư viện. Phải có những kiến thức nâng cao này thì bạn mới có thể xin việc làm, làm được việc.
    1. Bạn chọn Java Web, bạn phải biết về Struts, Hibernate…
    2. Theo Android thì phải rành Java, hiểu rõ về LifeCycle của app Android, các khái niệm như Acitivty, Fragment,…
    3. Theo C# thì bạn phải biết ASP.NET MVC, Entity Framework…
  6. Kiến thức phụ thêm: Kiến thức về cách dùng Git/SVN, về HTTP và AP Về cách viết code, về kiến trúc phần mềm, caching….

 

Mình khuyên các bạn tự học cũng nên đi theo hướng tượng tự. Hãy xác định thứ mình muốn học rồi tìm tài liệu “nhập môn lập trình” để học những thứ cơ bản trước, sau đó học dần lên.

Điều quan trọng ở đây là các bạn phải rèn cho mình thói quen học tập, có thói quen, bạn sẽ không dễ dàng bỏ cuộc giữa chừng.

Tìm kiếm tài liệu và chọn cách học

Tài liệu học lập trình tiếng Việt khá ít và hơi lộn xộn, chủ yếu là bài tập. Do đó mình khuyên các bạn nên tìm tài liệu tiếng Anh để học, sau này cũng cần dùng tiếng Anh nhiều, học từ bây giờ sẽ tốt hơn.

Dưới đây là một số tài liệu dạng nhập môn cơ bản:

Ngoài ra, các bạn có thể học một số khoá free tại các trường dạy code online như khanacademy, udacity, codeacademy.

Bonus: Đây là link 515 khoá học lập trình online miễn phí của các trường đại học danh giá https://medium.freecodecamp.com/515-free-online-programming-computer-science-courses-you-can-start-in-april-8b0ce1817d61

Bản thân mình không khuyến khích các bạn sưu tầm tài liệu. Dân VN mình có sở thích tải rất nhiều tài liệu, sách vở về nhưng… để đó không bao giờ đọc.

Ở giai đoạn đầu, các bạn hãy chịu khó… làm bài tập. Việc ngồi làm bài tập, ngồi gõ code là cách hay nhất để các bạn nhớ syntax của một ngôn ngữ, nhớ cách gọi hàm, luyện thói quen viết code, tự học cách sửa các lỗi hay gặp.

Hoặc nếu lên một số trang như codeacademy, codeschool, các bạn sẽ được học một cách interactive. Tức là thay vì chỉ đọc và nghe, bạn sẽ được code từng bước theo hướng dẫn. Hệ thống sẽ chấm ngay cho bạn, báo cho bạn biết chỗ sai để mà sửa.

Cách học lập trình tốt nhất vẫn là … làm. Sau khi đã quen với một ngôn ngữ, việc làm bài tập sẽ không giúp ích nhiều cho bạn nữa.  Để tăng tư duy lập trình, hãy tự đặt ra cho mình một dự án nho nhỏ: ứng dụng tính tiền hoặc quản lý thời gian, web bán hàng v…v.

Bạn sẽ thấy mình học được nhiều thứ hơn sơ với việc ngồi giải bài tập nhiều.

Lời kết

Điều cuối cùng mình muốn khuyên các bạn là: lên kế hoạch ít thôi, đừng quá phí thời gian cho việc lên kế hoạch và trì hoãn mà hãy cắm đầu vào làm ngay đi!

Sau khi đọc xong bài này, hãy lập tức làm theo 4 bước sau:

  • Xác định mình muốn học gì, làm gì
  • Xác định sơ lộ trình học
  • Cắm đầu vào học, sau đó tìm tài liệu dần và cập nhật lại lộ trình
  • Áp dụng kiến thức đã học vào để code ra một cái gì đó.

Khi đã thành thạo những thứ cơ bản, bạn hãy chuyên sâu vào một ngôn ngữ nào đó và bắt đầu dùng nó để làm các dự án nho nhỏ. Đừng quá quan tâm lo sẽ học sai ngôn ngữ, ngần ngừ đắn đo quá lâu, developer giỏi nào cũng biết vài ngôn ngữ.

Cứ đi đi, rồi sẽ thành đường thôi, lâu lâu có bị hơi lạc hướng thì cứ quay lại làm theo kế hoạch do chính mình đề ra nhé! Chúc các bạn may mắn.

Post tấm hình chia sẻ nè, 70% lập trình viên trên stackoverflow đều tự học đó

Một số link để tham khảo thêm

Techtalk Via Toidicodedao