Tôi đã tự học lập trình như thế nào

Tâm sự về chặng đường trở thành lập trình viên

Tôi là một sinh viên bình thường như bao bạn trẻ khác. Tôi hiện tại đang học ngành cơ điện tử tại trường DH. Sư Phạm Kĩ Thuật TP. HCM và làm việc tại công ty outsource lớn ở TP. HCM với vai trò là .Net fullstack developer. Keyword "Tự học lập trình như thế nào?" nó rất phổ biến, chắc hẳn có rất nhiều bạn đang và đã dấn thân vào ngành lập trình. Tôi muốn chia sẻ một ít kinh nghiệm của bản thân trên chặng đường tự học để trở thành lập trình viên như thế nào và những khó khăn.


1. Điểm xuất phát

Quê tôi ở Quảng Ngãi, một vùng đất nghèo, nơi đây cũng đã sinh ra rất nhiều nhân tài cho đất nước. Năm 2015 tôi đỗ đại học và vào Sài Gòn, trước đó tôi là một học sinh ở quê lên tỉnh học ở trường chuyên Lê Khiết. Ở trường THPT, tôi không phải là một học sinh giỏi nhất lớp, nhớ năm 11 tôi còn đứng bét lớp với chức danh học sinh trung bình, ở trường chuyên nó là điều tệ nhất. Nhưng tôi không buồn vì có học đâu mà không bét lớp 😄. Thời đó sáng đi học, chiều chơi game, tối cũng chơi game nốt (hãy cho một like nếu bạn đã từng). Rồi một ngày đầu năm lớp 12 cảm thấy chán nản, game cũng không muốn chơi, tôi đã tự hỏi bản thân mình muốn gì. Rất nhiều sự lựa chọn được tôi liệt kê, nhưng cuối cùng tôi chọn tiếp tục học để đỗ đại học. Sau đó tôi tự lập ra cho mình một số thói quen:

  • Đi học thêm đầy đủ ( Không hoàn thành, nghỉ học nhiều hơn đi học)
  • Sống lành mạnh, chơi thể thao ( Cái này thì đầy đủ, môn cầu lông sở trường, đa số nghỉ học để đi đánh cầu lông)
  • Đọc sách, thông tin công nghệ ( Mỗi ngày tôi dậy sớm để đọc báo công nghệ Genk.vn và hay đọc sách để mở mang kiến thức và cảm thấy thích thú)

Kết quả thi đại học của tôi không cao, được hơn 24 điểm và đủ để vào trường SPKT.


2. Sinh viên năm nhất

Mang theo cái suy nghĩ "năm nhất phải chơi cho đã" từ quê lên, tôi đã chết chìm ở trường đại học. Tôi trở lại con đường ăn chơi và chơi ác hơn trước nên gây ra hậu quả là điểm số năm nhất thấp lẹt bẹt, nhưng cũng may mắn không rớt môn nào. Nhưng cũng may mắn, dù tôi ăn chơi nhưng vẫn tiếp tục đọc sách và đọc nhiều hơn trước nên cũng cảm thấy mình được khai sáng. Rồi một ngày nọ, tôi lướt trên các trang công nghệ, đọc những thành công rực rỡ của công ty này, ông này. Tôi đã đặt ra một câu hỏi cho bản thân "Sẽ đi về đâu nếu mình cứ trải qua thời sinh viên như thế này?".


3. Đi tìm câu trả lời

Câu hỏi đó khiến tôi trằn trọc mỗi đêm, dành nguyên một tuần để ngủ, la cà quán cafe để suy nghĩ cho tương lai của mình và tôi đã đưa ra một quyết định Đi Làm Thêm. Lên mạng search vài trung tâm gia sư và đăng kí dạy học, sau đó tôi đi dạy cho các bạn nhỏ từ lớp 6 đến lớp 12 và cảm thấy rất vui, rất hài lòng.

Nhưng tôi vẫn đi đến giảng đường đại học trong tâm trạng buồn chán với tất cả các môn và học chỉ để qua môn, chống đối. Kết thúc năm nhất với số điểm thấp tẹt, duy nhất một môn có điểm thi tuyệt đối đầu tiên, đó là Viusal Basic. Rồi nó lại đặt cho tôi một câu hỏi "sao mình lại được như vậy?", có phải mình đã tìm ra câu trả lời cho câu hỏi "Sẽ đi về đâu nếu mình cứ trải qua thời sinh viên như thế này?". Chính xác là như thế, chúng tôi đã tìm thấy nhau ( tôi và code).


4. Con đường tự học

Ít đến trường nên việc tự học là lợi thế, tôi bắt đầu tìm tòi trên mạng, sách vở và đặt câu hỏi cho bác google "How to self learning code?", "How to become a developer?", ... Đọc, đọc, đọc và đọc, tôi đọc sách, đọc báo về lập trình, đọc mọi thứ liên quan đến lập trình trong vô thức. Rồi sau 2 tháng ngồi cafe, đóng cửa luyện công tôi chỉ học được những khái niệm cơ bản về lập trình OOP, web, software, database,... và bắt đầu cảm thấy nản. Tôi dừng lại, tôi nghĩ và tôi đặt ra mục tiêu học lập trình để đi làm, phải làm công ty thật lớn. Tôi lại hỏi bác google "Đi phỏng vấn, lập trình viên cần những gì?", rồi tôi nghe lời bác học theo một nền tảng là .Net.

Tôi đọc những khái niệm bằng tiếng việt cảm thấy hay, dễ tiếp thu, rồi một ngày tôi search tài liệu ASP.Net MVC nó không có tiếng việt, chỉ kèm một số blog. Tôi đọc được một blog nói Tiếng Anh là kĩ năng rất cần thiết để học lập trình, tôi bắt đầu đọc và dịch các bài viết, tài liệu bằng tiếng anh. Nếu bạn nào đang đọc blog này đang tự tuy về khả năng ngoại ngữ thì hãy học ngay nhé. Tôi thật sự hứng thú khi đọc những bài viết về công nghệ và những dòng code.

Đến bây giờ tôi vẫn chắc chắn rằng, niềm đam mê đã khiến cho tôi kiên trì và cố gắng nhiều hơn nữa. Tôi đã học bằng cả đam mê.

Lộ trình học lập trình:

  1. Đặt mục tiêu: Hãy viết ra bằng giấy mục tiêu của bạn và cho deadline
  2. Cố gắng hoàn thành mục tiêu: Đánh đổi thời gian, tuổi trẻ để hoàn thành nó nhé
  3. Thực hành: Đừng chỉ đọc không mà hãy học theo project thực tế qua youtube hoặc những trang web chuyên về kiến thức lập trình như w3School.com, tutorialpoint.com và các trang chính thức của nền tảng bạn chọn để theo.
  4. Tìm kiếm cho mình thành quả để có động lực vươn lên Khi bạn đã đủ khả năng, có năng lực thì hãy sắm cho mình cái CV thật đẹp và rõ ràng nhé.

----------------------------------------------- Start --------------------------------------------------------

  1. Chọn cho mình một hướng đi theo các nền tảng Mình nghĩ là có nhiều hướng cho lập trình viên, một số liệt kê theo mình là sẽ dành cho người bắt đầu:

    • .Net Microsoft, Java, LAMP dành cho phần mềm, đây cũng là keyword cho các bạn search nhé
  2. Ngôn ngữ cần thiết cho software dựa trên từng nền tảng bạn làm nhưng hiện nay các bạn điều phải học một số ngôn ngữ căn bản của software hoặc web:

  3. Học những khái niệm căn bản về lập trình như: OOP, khái niệm web, khái niệm phần mềm, ... Năm chắc khái niệm căn bản

  4. Khi đã chọn được nền tảng và ngôn ngữ, các bạn đã biết về nó thì sau đó học về giải thuật dựa trên những ngôn ngữ bạn chọn. Ví dụ giải những bài toán hoặc làm những feature nhỏ để học sau đó thì làm project hoàn chỉnh.

  5. Học viết code đẹp, code sạch Bạn là coder thực thụ thì phải biết trình bày code sao cho đẹp, rõ ràng dựa trên những tiêu chuẩn. Hãy đọc cuốn sách "Clean code" keywords: Clean code, Clean code standards,..

  6. Học Design pattern và Principle Đến lúc nào bạn đã là coder thực thụ thì phải biết đến những khái niệm này. Tự search nhé

  7. Học kĩ năng mềm:

    • Kĩ năng giao tiếp
    • Kĩ năng làm việc nhóm
    • Khả năng tiếng anh
    • Kĩ năng giải quyết vấn đề
  8. Cuối cùng là bạn tự chọn con đường tiếp theo mình phải đi và sự cố gắng, may mắn sẽ đưa bạn đi xa hơn

"Hãy làm ngay khi có thể" - Châm ngôn của mình 😄

----------------------------------------------- Stop --------------------------------------------------------

Sẽ có những bài viết về lập trình và chia sẻ những điều mình biết về ngành này nhé. Comment nếu bạn có câu hỏi.