
Xin chào mọi người, hôm nay mình muốn chia sẻ chi tiết về hành trình tự học lập trình của mình. Hãy cùng nhau khám phá nhé.
- Nhiệm vụ của tôi là phát triển một hệ thống quản lý học tập cho học viên (Learning Management System) dựa trên hệ thống thô sơ của tôi: cho phép học viên học, làm bài, và xem điểm số. Tôi được phối hợp với công ty lập trình A.
- Chi phí đặt hàng là khoảng 9x triệu đồng, và sau khoảng 1 tháng, tôi nhận được phiên bản demo của hệ thống. Nhưng… đó là một thất vọng to lớn. Tôi hiểu rằng sản phẩm phần mềm sẽ cần nhiều giai đoạn sửa lỗi và cải thiện, nhưng cái tôi nhận được thực sự không thể sử dụng được. Dù có nhiều lần báo cáo, thảo luận, nhưng… không cải thiện được gì.
- Sau khi rời khỏi công ty, tôi vẫn muốn hoàn thiện hệ thống học tập để phục vụ công việc giảng dạy, nhưng việc thuê công ty lập trình lại khiến tôi lo ngại về chi phí và chất lượng. Một suy nghĩ xuất hiện: tại sao không tự học lập trình!
1. Sự gặp gỡ
- Hai năm trước, tôi đảm nhận vị trí Giám đốc học thuật tại một trung tâm. Tôi được mời tham gia sau khi dạy tiếng Anh cho sếp của công ty, và từ đó, tôi thấy được hệ thống học tập mà tôi tự xây dựng. Điều này giống với những gì tôi chia sẻ ở đây, nhưng còn thô sơ hơn nhiều.- Nhiệm vụ của tôi là phát triển một hệ thống quản lý học tập cho học viên (Learning Management System) dựa trên hệ thống thô sơ của tôi: cho phép học viên học, làm bài, và xem điểm số. Tôi được phối hợp với công ty lập trình A.
- Chi phí đặt hàng là khoảng 9x triệu đồng, và sau khoảng 1 tháng, tôi nhận được phiên bản demo của hệ thống. Nhưng… đó là một thất vọng to lớn. Tôi hiểu rằng sản phẩm phần mềm sẽ cần nhiều giai đoạn sửa lỗi và cải thiện, nhưng cái tôi nhận được thực sự không thể sử dụng được. Dù có nhiều lần báo cáo, thảo luận, nhưng… không cải thiện được gì.
- Sau khi rời khỏi công ty, tôi vẫn muốn hoàn thiện hệ thống học tập để phục vụ công việc giảng dạy, nhưng việc thuê công ty lập trình lại khiến tôi lo ngại về chi phí và chất lượng. Một suy nghĩ xuất hiện: tại sao không tự học lập trình!
2. Khám phá tri thức và sự mơ hồ vô cùng
- Tôi bắt đầu tìm kiếm về tự học lập trình trên Google và Youtube, xem rất nhiều bài viết và video hướng dẫn. Nhưng mà càng xem, tôi càng… mất hứng thú với việc học… vì không biết nên bắt đầu từ đâu, làm sao để tiếp cận với frontend, backend, PHP, Swift. Sau một tuần tìm kiếm và xem video, tôi đã bỏ cuộc, cảm thấy rất thất vọng!3. Bạn Lâm, Nhà Phát Triển .NET
- Hai tháng sau, tôi tình cờ gặp lại một bạn học viên cũ và kể cho bạn về dự định xây dựng một hệ thống học tập chất lượng cho lớp học. Bạn học viên giới thiệu cho tôi một người bạn tên là Lâm - một Nhà Phát Triển .NET có 5 năm kinh nghiệm. Ban đầu tôi hơi e dè vì lo sợ thất bại như trước, nhưng bạn học viên đã động viên tôi nên tôi quyết định trò chuyện với Lâm để xem sao. - Công việc tôi nhờ Lâm làm chính là phát triển phiên bản Web của ứng dụng English Journey mà tôi đã chia sẻ trước đó. Sau nhiều cuộc gặp gỡ, trao đổi, họp trực tuyến, một tháng sau, Lâm đã gửi cho tôi bản Demo của dự án.
Tôi rất bất ngờ khi, dù chỉ là phiên bản Demo, nhưng tôi đã có thể tạo bài học, cho các học viên đăng nhập và học Speaking một cách dễ dàng.
- Lâm là lập trình viên đầu tiên mà tôi kết bạn, tôi cảm nhận được sự giỏi giang, nghiêm túc và trách nhiệm trong công việc của anh ấy. Chúng tôi hẹn gặp nhau để trò chuyện nhiều hơn và tôi hỏi về việc tự học lập trình. Lâm, một lập trình viên Backend, khuyên tôi nên bắt đầu từ những kiến thức cơ bản, cụ thể hơn là đưa cho tôi một danh sách video học về ngôn ngữ lập trình C# trên Youtube. Tôi rất hào hứng, nhưng sau một tuần thử nghiệm, tôi đã từ bỏ vì cảm thấy nó quá khô khan. Nhưng giờ đây, tôi đã có một người bạn làm lập trình đầu tiên ^^
4. Bạn Thái Ngọc - Nhà Phát Triển Game Di Động
- Tình cờ, tôi được một bạn học viên cũ giới thiệu với Thái Ngọc - một Nhà Phát Triển Game Di Động, và sự ham muốn học hỏi của tôi bắt đầu bùng nổ:
Mọi lập trình viên đều rất nhiệt tình và thân thiện, luôn sẵn sàng giúp đỡ ^^

Bạn Ngọc cũng là người tự học lập trình nên luôn tư vấn cho tôi một cách tận tâm, tôi nhận ra rằng lập trình có nhiều hướng phát triển từ phức tạp đến đơn giản: từ Phân tích dữ liệu → Game → Ứng dụng → Website
Ok, giờ đây lại có thêm một người bạn lập trình nữa rồi ^^
5. Martha Sharpe - Lập Trình Viên Tự Học
- Tôi đã theo dõi chị Huyền Chip và biết rằng chị đã được vinh danh trong danh sách LinkedIn Top Voices 2019: Phát triển Phần mềm | LinkedIn - nơi vinh danh những cá nhân nổi bật trong lĩnh vực này. Khi xem danh sách, tôi đã ngạc nhiên với vị trí số 3:
- Chị Martha Sharpe là một người tự học lập trình từ con số 0, chỉ sau 6 tháng tự học, chị đã thành công xin việc làm tại một công ty phát triển phần mềm với vị trí là Frontend Developer. Bạn có thể đọc thêm về hành trình của chị tại đây: Hành Trình của Tôi là Một Lập Trình Viên Tự Học | LinkedIn #freecodecamp.org (trang web nổi tiếng về tự học lập trình, tôi đã hoàn thành việc học HTML, CSS và Javascript trên đó) để chia sẻ hành trình học, nhờ sự hỗ trợ từ cộng đồng khi gặp khó khăn. Đáng kinh ngạc là chị đã tự học mà vẫn dành thời gian chăm sóc cho 4 đứa con, thật đáng kính!


- Chị cũng đã viết một quyển sách điện tử có tựa đề là Teach yourself to code, tôi đã mua và học theo hướng dẫn của chị ở đây Teach Yourself to Code (gumroad.com), chị đã học cả React JS và React Native trong khi tôi chỉ dừng lại ở phần Javascript thôi. ^^
- Chị là người có ảnh hưởng lớn nhất đối với hành trình học lập trình của tôi, chứng minh rằng tự học lập trình không có nghĩa là phải học một mình, mà cần có sự hỗ trợ từ cộng đồng. Nhờ chị mà tôi đã thành công trong việc học phát triển web và có nhiều bạn mới ^^
6. Bạn Liêm - Nhà Phát triển iOS
- Liêm, một học viên cũ của tôi, đến lớp để nâng cao tiếng Anh. Lần đầu gặp, bạn giới thiệu mình là Nhà Phát triển iOS. Tôi ngạc nhiên vì trước đây bạn không làm công việc này. Cuối buổi, khi trò chuyện, Liêm chia sẻ câu chuyện tự học lập trình iOS trong 4 tháng và đã làm việc trong lĩnh vực này suốt 2 năm qua.- Câu chuyện của Liêm đã thu hút tôi và tôi muốn học hỏi ngay từ bạn vì tôi cũng muốn phát triển một ứng dụng Speaking cho học viên. Liêm đã chia sẻ chi tiết con đường học lập trình ứng dụng trong bài viết này nhé:
- Điều đáng nhớ là sự nhiệt tình của Liêm, bạn đã cho tôi mượn sách Lập trình của FPT để học căn bản và hướng dẫn mua khóa học trên Udemy. Mặc dù không có ai trực tiếp dạy bạn lập trình, nhưng họ chỉ định hướng và cung cấp tài liệu, còn lại là sự tự nỗ lực, tìm kiếm trên Google và Stack Overflow để tự học và tạo ra sản phẩm.

7. Tổng kết
Thông qua bài viết này, tôi muốn truyền động lực đến những bạn đang khao khát khám phá con đường lập trình. Dưới đây là những điều tôi rút ra:- Học lập trình không hề khó khăn, không phụ thuộc vào tuổi tác (tôi 29 tuổi).
- Hãy kết bạn với những người có cùng niềm đam mê lập trình, hẹn gặp để chia sẻ, học hỏi kinh nghiệm. Bạn sẽ có người để hỏi, động viên. Hãy tìm một người hướng dẫn, đừng học một mình một cách ngu ngốc (nếu bạn nhận được sự giúp đỡ quý báu từ họ, hãy trả công cho họ).
- Mentor chỉ dẫn bạn hướng đi và định hình, họ sẽ không dạy bạn từng dòng code. Bạn phải tự đọc tài liệu, viết code, và tìm kiếm trên Google.
*Tôi không phải là lập trình viên chuyên nghiệp, nếu có sai sót, mong nhận được ý kiến đóng góp từ mọi người. Chúc các bạn học lập trình một cách vui vẻ ^^
