Mục lục:
1. Người truyền lửa
2. Mình và năm tháng cấp 3
3. Quá trình học lập trình
4. Làm việc tại công ty startup
5. Đóng góp cho cộng đồng
6. Đại học và không
7. Ý kiến cá nhân
8. Lời cảm ơn
9. Tái bút
Năm mình học lớp 6, lần đầu tiên được nghe tới cái tên “Jonathan James” một hacker đã hack vào hệ thống máy tính của NASA (mặc dù lúc đó mình cũng chẳng biết NASA gì cái quái gì). Tuy nhiên những dòng thông tin ấy đã thôi thúc mình muốn tìm hiểu về một thứ – đó là máy tính.
Sinh ra ở một làng quê tại miền bắc Việt Nam, gia đình không có điều kiện để mua một cái máy tính. Đây là yếu tố khó khăn đầu tiên trong việc theo đuổi đam mê của mình, đồng thời việc đi ra quán NET là một việc bị cấm rất gay gắt với một đứa ở lứa tuổi như mình. Nhưng niềm đam mê vẫn ấp ủ ở đó cho tới năm mình học lớp 8, lúc này ở trường học đã bắt đầu giảng dạy những thứ cơ bản về lập trình và máy tính nói chung. Mình thường hay sử dụng chiếc điện thoại có thể kết nối mạng của chú để tìm hiểu về những thứ như: Hacker là ai? Họ làm gì? Làm sao để trở thành một hacker? Có lẽ những câu hỏi đó đa phần những ai bắt đầu dấn thân vào con đường Công nghệ thông tin đều đã từng đặt câu hỏi.
Không chỉ dừng lại ở việc đọc, phải hành động gì đó. Mình đã đặt mua một chiếc mặt nạ Guy Fawkes (cái này có thật nha mấy bạn). Mình nhờ mẹ tại thời điểm đó đang làm việc tại Sài Gòn mua cho cuốn sách dạy lập trình. Tất nhiên mẹ mình cũng không có kiến thức gì về thứ con trai mình đang yêu cầu cả. Mẹ đi ra nhà sách hỏi nhân viên ở đó chỗ nào bán sách dạy lập trình và cuối cùng mẹ mình đã chọn được 2 cuốn ngẫu nhiên với cái tên: “TỰ HỌC LẬP TRÌNH VISUAL BASIC.net” và “Giúp bạn học tốt Lập trình cơ sở dữ liệu Access 2003”. Hai cuốn sách đó thực sự không hỗ trợ được nhiều cho mình, tuy nhiên nó vẫn là một khởi đầu tốt – một nguồn cảm hứng.
Thời điểm đó ở trường, Pascal vẫn là một môn học cực khó với những ai không có niềm đam mê nhưng với mình thì ngược lại. Hình như có một thứ ma thuật nào đó đã gắn kết mình với lập trình. Mình học nó rất nhanh và niềm đam mê ấy trở nên bất tận.
Sau 3 năm mình đã có một chiếc laptop cá nhân riêng. Máy chỉ có 2GB RAM và mình đã tự mày mò cài đặt hệ điều hành Kali Linux. Thời điểm đó mình thấy Linux như một “vị thần”. Hằng ngày mình dành nhiều thời gian ngồi trước máy tính và hầu như không chơi bời gì bên ngoài. Đi học về là lao đầu vào máy tính.
Mình làm gì trên máy tính?
Vẫn với suy nghĩ trở thành một hacker, mình tìm hiểu và đọc mọi thứ liên quan tới thủ thuật, hacking, hacking và hacking. Mặc dù với khả năng đọc hiểu tiếng anh còn rất kém nhưng mình đã bắt đầu hình thành thói quen tìm kiếm trên Google bằng tiếng anh với sự cộng tác của Google dịch. Mình cũng đã bắt đầu học nhiều hơn về lập trình, tại thời điểm đó mình chọn lập trình C. Trên Youtube cũng có rất nhiều những kênh dạy về lập trình C và mình chọn kênh có nhiều bài nhất để theo dõi. Quá trình tự học lập trình cũng khá khó với mình, không có ai chỉ ra những lỗi sai hoặc chương trình bị báo đỏ. Nhưng điều đó cũng chưa bao giờ khiến mình thấy chán nản.
Bước ngoặt lớn nhất có lẽ là sau khi học xong lớp 12. Ban đầu mình muốn theo ngành An ninh mạng, tuy nhiên số điểm không đủ để vô trường đã đăng ký nguyện vọng nên mình đành phải đăng ký các khóa học ở trung tâm. Mình đăng ký 2 khóa bao gồm: 1 khóa về lập trình web với Angular 2 và 1 khóa lập trình C nâng cao (dù bên trung tâm yêu cầu muốn học nâng cao phải học khóa cơ bản, nhưng mình vẫn đăng ký khóa đó). Với những kiến thức tự chắt góp trên mạng, khóa lập trình nâng cao thật sự là quá sức với mình, trong buổi thi cuối mình chỉ được 5 điểm và giờ nghĩ lại lúc đó thật dại khờ.
Kết thúc khóa học mình bắt đầu đi nộp CV trên mạng, trên các fanpage lập trình và cuối cùng cũng đã xin việc được tại một công ty startup. Lúc đầu vô mình được training thêm những kiến thức về Javascript và sau đó thì sử dụng framework React để xây dựng web. Để tránh bị lùi về sau mình đã tìm hiểu mọi thứ liên quan tới các công nghệ web nói chung và React nói riêng hằng ngày, và cũng nhận được sự khen ngợi từ các anh sếp. Tuy nhiên, có một câu mà mình vẫn đắn đo tới giờ đó là “Mặc dù lập trình bên web này em đang ổn, tuy nhiên sẽ rất khó để có thể rẽ sang một hướng đi khác vì kiến thức về khoa học máy tính của em còn thiếu nhiều”. Câu nói đó có lẽ đã là động lực lớn nhất để cải thiện con người mình ở thời điểm hiện tại. Biết được những khuyết điểm của bản thân là không học đại học hoặc cao đẳng, bị hổng kiến thức về khoa học máy tính nói chung, mình đã chịu khó quay lại tìm hiểu xem những kiến thức ở trường lớp xem họ dạy gì và mình tìm hiểu nó trên Google. Tại thời điểm hiện tại mình vẫn coi những video online của CS50. Dành cho những bạn chưa biết, CS50 là một kênh Youtube của trường đại học Harvard, họ quay những video về Khoa học máy tính hoàn toàn miễn phí. Bạn có thể xem nó để vừa học được khoa học máy tính và lập trình cơ bản mà lại luyện nghe được tiếng anh (mình hay mở phụ đề tiếng anh để nghe và đọc).
Sau một khoảng thời gian đã quen với Javascript và React mình bắt đầu tham gia vào các cộng đồng công nghệ và đặt biệt là Github. Commit đầu tiên trên Github của mình là một bài dịch cho facebook/react. Về sau này mình tự viết những dự án nhỏ của cá nhân trên đó và cũng nhận được những sự ủng hộ rất tích cực từ mọi người. Nó cũng là một động lực giúp mình hoàn thiện bản thân hơn. Xin được gửi lời cảm ơn tới những người đã ủng hộ mình.
Trước kia mình cũng đã từng ủng hộ quan điểm không cần phải học đại học cũng có thể lập trình được. Điều đó hoàn toàn đúng ở nhiều khía cạnh, nhưng ở một vài phương diện bạn sẽ nhận ra rằng nếu học đại học thì có thể tư duy của bản thân nhạy bén hơn. Không biết các bạn có đồng ý với mình rằng, học đại học ở Việt Nam vẫn còn đặt nặng vấn đề lý thuyết và điểm số, trong khi lý thuyết cũng chưa hẳn là chuyên sâu. Hãy thử xem những video của CS50, những bài giảng dành cho chính sinh viên Harvard của họ, những kiến thức về khoa học máy tính được giảng rất kỹ lưỡng và tỉ mỉ, những hình ảnh minh hoạt cụ thể và trực quan. Nó sẽ khiến bạn hứng thú hơn chứ đúng không? Tại sao tụi nước ngoài nó học cái gì cũng luôn đi chầm chậm nhưng mà lại cực kỳ chắc chắn và đi được rất xa.
Thực tế cho thấy rằng rất nhiều bạn sau khi tốt nghiệp đại học tới lúc vô các công ty thử việc thì không đáp ứng được nhu cầu của các nhà tuyển dụng, thậm chí là cả những kỹ năng mềm.
Học thế nào là đủ cho lập trình ?
Có lẽ rất nhiều bạn đặt câu hỏi giống như mình. Theo ý cá nhân, học bao nhiêu đi chăng nữa cũng chẳng bao giờ là đủ, chỉ có càng học thì càng thấy mình còn nhiều điều bản thân chưa biết. Vậy chỉ học tới lớp 12 thì sao? Do mình không học đại học nên mình cũng không biết chính xác, tuy nhiên với những dự án mình đang làm tới hiện tại, những thứ cần xử lý cũng chỉ ở mức toán cơ bản hoặc một chút vật lý. Có thể do mình không theo những ngành liên quan tới xử lý dữ liệu hoặc AI nên mình chưa có cái nhìn cụ thể về ngành đó, dù mình biết đụng tới AI là đụng tới toán cao cấp.
Bản thân mình vẫn còn bị áp lực với chuyện tấm bằng đại học. Chuyện có bằng đại học hay không vẫn còn là một tranh cãi ở Việt Nam, có rất nhiều công ty họ sẽ đánh giá thấp bạn nếu như bạn không có bằng đại học dù bạn đã có những năm kinh nghiệm. Yêu cầu của họ hoàn toàn là hợp lý, tuy nhiên theo cá nhân mình họ cũng cần phải cân nhắc điều đó, hãy nhìn vào khả năng của ứng viên hơn là một tấm bằng.
Hiện tại công việc chính của mình là phát triển ứng dụng trên di động, mọi thứ cũng có thể nói là ổn đối với bản thân mình. Mình cũng không đề cập đến câu chuyện về lương ở đây, vì mỗi công ty, tổ chức đều có cách trả lương riêng.
Bài viết này giống như những dòng tâm sự của chính bản thân mình và những góc nhìn cá nhân, nếu ai có những góc nhìn hay quan điểm khác thì hãy bình luận ở phía dưới, mình sẽ lắng nghe và tiếp nhận. Hy vọng bài viết này sẽ mang đến động lực cho các bạn sẽ, đang và đã học lập trình, hãy cố gắng và thành công sẽ ở phía trước.
Mình xin được cảm ơn M.R đã trau chuốt lại lời văn của mình.
Tại sao mình lại đặt tiêu đề bài viết là “Đại học là cái bánh xe”. Thời điểm mình viết ra bài viết này mình cũng thấy rằng việc có bằng đại học cũng giống như việc bạn chọn cái bánh xe cho cuộc đời mình vậy. Nếu chỉ cần lăn bánh bạn có thể chọn 1 cái bánh xe bằng đá hoặc bằng gỗ, nó vẫn có thể di chuyển nhưng không nhanh được. Bạn cũng có thể chọn 1 cái bánh bằng cao su và bơm hơi nó sẽ êm ái và nhanh hơn nhưng nếu bị bể bánh cũng có thể gây ra nguy hiểm. Cuối cùng, bạn có thể không cần tới cái bánh xe nào vì bạn có đủ khả năng để mua 1 cái trực thăng. Bánh nào cũng có ưu và nhược điểm của nó, quan trọng là bạn tiếp nhận nó như thế nào.
Phụ lục:
Jonathan James – https://en.wikipedia.org/wiki/Jonathan_James
CS50 – https://www.youtube.com/c/cs50
Cảm ơn!