Tôi Đã Tự Học Lập Trình Như Thế Nào?

Tôi Đã Tự Học Lập Trình Như Thế Nào?

Hỏi đáp CNTT 29/11/2021

Ngày nay, việc học CNTT nói chung và lập trình nói riêng đang là một xu thế. Báo chí, TV liên tục nói về các startup về công nghệ, về sự phát triển vượt bậc cũng như lợi ích mà CNTT mang lại. Chính vì thế, càng ngày có nhiều người muốn tìm hiểu về CNTT, có thể là học cho biết, cũng có thể là muốn chuyển hướng nghề nghiệp làm một lập trình viên toàn thời gian. Bài viết dưới đây là chia sẻ kinh nghiệm của tôi – một người tự tìm tòi học hỏi lập trình (cụ thể là ngôn ngữ C++).

Giới thiệu một chút về bản thân, tôi tốt nghiệp ĐH chuyên ngành Điện Tử – Viễn Thông, hồi đó tôi có được học lập trình căn bản C. Sau này ra trường đi làm thì tôi làm cho một công ty design chip cho thiết bị viễn thông. Công việc của tôi là dùng ngôn ngữ SystemVerilog (một loại ngôn ngữ lai giữa Verilog và C++) để viết ra những modun test cho sản phẩm được viết bằng Verilog. Giới thiệu như vậy để mọi người biết là tôi đã có background về lập trình, nên việc tự học khá là dễ dàng. Những khái niệm lập trình căn bản tôi đã nắm khá rõ, giờ chỉ còn việc học thêm và nâng cao lên về lập trình hướng đối tượng.

HỌC NGÔN NGỮ LẬP TRÌNH NÀO?

học lập trình

Trước tiên, tất nhiên là lựa chọn loại ngôn ngữ để học. Ngôn ngữ lập trình thì nó có rất nhiều và mỗi cái có một mục đích khác nhau. Muốn làm web thì học HTML, PHP, Ruby…Muốn học lập trình di động thì có Java, Object C, Swift…Việc chọn một ngôn ngữ là tuỳ vào mục đích của bạn, còn nếu bạn muốn học cho biết thì theo mình nên bắt đầu bằng Python hoặc C/C++/Java. Python thì dễ dàng hơn cho người chưa có kinh nghiệp về lập trình, cú pháp của nó rất dễ đọc và dễ hiểu. Bạn cũng có thể chọn C++, cú pháp của nó có thể hơi khó hiểu hơn một chút so với Python, và càng về sau lại càng nhiều khái niệm phức tạp hơn, nhưng nếu bạn đã nắm vững được C++ rồi, thì tôi nghĩ việc bạn học bất kỳ một ngôn ngữ khác đều sẽ rất nhanh chóng. Gọi là phức tạp tức là so với ngôn ngữ khác, nhưng nếu học từ từ đi sâu dần vào thì bạn cũng sẽ hiểu hết được thôi, nên nếu bạn muốn chọn C/C++ để bắt đầu thì hoàn toàn không sao cả.

CÔNG CỤ, KỸ NĂNG CẦN CÓ

  • Về công cụ tất nhiên là bạn cần phải có một cái máy tính với cấu hình ổn một chút, vì việc lập trình đòi hỏi bạn phải compile code, chạy chương trình, debug. Những việc này sẽ tốn khá nhiều tài nguyên của máy. Cụ thể nếu bạn học C++, bạn nên cài Visual Studio từ 2013 trở lên (bản community không mất phí), vì Visual Studio hỗ trợ rất nhiều từ viết code cho tới debug.
  • Tư duy logic và khái niệm cơ bản về toán học.
  • Tiếng Anh: cái này cực kỳ quan trọng. Có tiếng Anh các bạn mới có thể tiếp cận được nguồn tài liệu và tài nguyên phong phú trên internet.
  • Cuối là là đam mê. Bạn học lập trình thấy vui không? Nếu thấy vui và phấn khích khi giải quyết được một vấn đề bằng cách lập trình thì bạn chọn đúng rồi đó. Nếu không, hãy dừng lại.

HỌC Ở ĐÂU VÀ NHƯ NÀO?

Như tiêu đề của bài viết là “Tự học”, nên chắc chắn sẽ học thông qua sách vở, những trang web, tài liệu và nguồn tài nguyên sẵn có vô cùng phong phú ở trên mạng.

Mỗi người đều có một cách để tiếp thu kiến thức khác nhau, không ai giống ai. Không thể nói là cách nào tốt hơn cách nào. Sau đây là cách học của tôi mọi người có thể tham khảo.

Tôi bắt đầu học với trang learncpp.com. Trang này tuy được viết bằng tiếng anh nhưng câu cú là từ vựng rất dễ hiểu. chỉ cần bạn biết tiếng anh một chút là có thể đọc hiểu dễ dàng. Khi học trên này có những chỗ nào chưa hiểu, bạn có thể comment bên dưới mỗi bài học để tác giả hoặc ai đó có thể trả lời cho bạn. Trước mình cũng comment hỏi và được tác giả phản hồi lại sau một ngày. Ngoài ra bạn cũng có thể search google thêm để xem những cách giải thích khác. Cuối mỗi bài học thường có những câu hỏi nhỏ và bài tập, bạn nên cố gắng làm hết những bài tập đó để có thể hiểu rõ hơn những gì mình đã học. Học lập trình quan trọng là phải thực hành thật nhiều, khi bạn code thì sẽ có những lỗi phát sinh, sửa những lỗi này sẽ giúp bạn nhớ lý thuyết lâu hơn và nâng cao khả năng debug của bản thân (một kỹ năng cực kỳ quan trọng của lập trình viên). Bạn cũng có thể kiếm thêm bài tập ở trên mạng, hoặc trong những cuốn sách khác để làm thêm.

Để việc thực hành code không bị nhàm chán, bạn có thể lên những diễn đàn để thảo luận những vấn đề mà bạn đang quan tâm, đang thực hành. Có thể là post một câu hỏi lên, có thể là giải thích một câu hỏi mà bạn đã biết câu trả lời cho một người khác. Hiện nay thì có rất nhiều diễn đàn về lập trình, bạn có thể lên mạng search và ra rất nhiều. Đối với C thì có congdongcviet.com, daynhauhoc.com, hoặc là stackoverflow.com một trong những trang nổi tiếng nhất để hỏi đáp về các vấn đề công nghệ thông tin (nhất là lập trình). Thực sự là khi có một vấn đề nào đó vướng mắc tôi đều lên stackoverflow.com để tìm câu trả lời.

Hoc xong lý thuyết trên learncpp.com tôi đã có một lượng kiến thức nền về C++, nhưng như vậy là chưa đủ, tôi cần phải biết về Cấu trúc dữ liệu và thuật toán (data structure and algorithms – DSA ) một phần không thể thiếu trong lập trình. Học về DSA chính cách thực hành tốt nhất những kiến thức C++ vừa học. Để học về DSA cũng như thực hành C++, tôi lên trang hankerrank.com. Trang này rất tuyệt vời vì bài học được sắp xếp rất hợp lý, từ cơ bản đến nâng cao, được phân chia rõ từng chủ đề. Mỗi bài học là một vấn đề, bạn sẽ code trực tiếp trên trang web để giải bài toán được đưa ra và sẽ được chấm điểm ngay tức thì. Nếu bài toán quá khó bạn có thể vô phần “Discussions” (thảo luận) để hỏi những vần đề mà mình chưa hiểu hoặc trang web cũng có phần lời giải cho bạn tham khảo. Ngoài ra trang web còn có video chỉ dẫn rất cụ thể và dễ hiểu.

Lương Thuận – Tổng hợp
ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại