Cũng một thời gian dài, tôi chưa gõ một dòng code nào. Lí do bởi không biết phải gõ cái gì hoặc nếu có ý tưởng thì cũng không làm được vì xa vời quá mức cho phép. Mới hồi hè còn làm cái Crawl Data cũng được mọi người nhận xét khá là hoành tráng mà giờ lại không biết làm cái chi hết.
Nhớ lại thời gian hơn một năm trước. Má mua cho cái laptop. Nó cũng tầm tầm chứ không xịn lắm. Ban đầu thì mục đích là chơi game. Nhưng khổ nỗi, wifi thì bắt trộm hàng xóm. Sử dụng Facebook thôi cũng là một khó khăn nói gì tới việc chơi game. Quanh đi quẩn lại cũng chỉ có thể "Nông trại vui vẻ", "Gunny". Mà mấy trò đó thì chơi đến phát ngán rồi.
Kết quả hình ảnh cho Gunny
Hồi xưa cấp 25 mà đồ thế này thì dã man quá trời
Lướt Youtube cùng với một vài bản nhạc Rap của Eminem - những bản nhạc luôn cho tôi cảm giác hưng phấn, bỗng chợt nhớ đến ước mơ làm HACKER từ bấy lâu nay. Và từ khóa hiện lên trong đầu tôi lúc đó chính là "Python". Tôi nhớ nó vì lúc nhỏ, từng coi một TED Talk có liên quan đến việc lập trình, khi liệt kê các ngôn ngữ lập trình thì gồm có như C, C++, Java, Python. Lúc đó thì nghĩ đơn giản lắm, cái nào đứng cuối là đẳng cấp giống như việc siêu nhân nào mạnh thì hay ra sau. Ngay lập tức liền tìm kiếm trên Youtube: "Học lập trình Python cơ bản" và thứ mà tôi thấy chắc nhiều người cũng từng thấy. Đó chính là một series lập trình Python cơ bản do anh Lê Trần Đạt bên Daynhauhoc.com thực hiện.
Cũng như bao nhiêu người tự học lập trình khác, tôi coi các video, sau đó tự gõ lại các đoạn code. Nghiền ngẫm xem chỗ này làm cái gì, chỗ kia làm thế nào. Vừa học vừa tự làm một số chương trình đơn giản như hỏi tên hỏi tuổi người dùng. Sau đó xuất ra kết quả. Đơn giản là vậy, nhưng nó cũng giúp tôi có thêm niềm vui tiếp tục theo dõi series đó để rồi tôi nâng cấp dần những chương trình mình lên. Không chỉ đơn giản là nhập xuất nữa, khi biết được câu điều kiện if else, thì tôi đã có một chương trình "Ai là triệu phú" đơn giản trên màn hình console - một màn hình đen thui với những dòng chữ màu trắng.
Kết quả hình ảnh cho console screen
Màn hình console nó như vậy này
Series đó thì vẫn chưa hoàn thành nốt, nên tôi đành phải tự học lên tiếp. Và khi không còn người hướng dẫn cộng thêm việc còn non nớt kinh nghiệm. Tôi đã tốn khá nhiều thời gian để có thể hiểu bài ở mức cơ bản. Cố gắng là thế, nhưng nhiều cái vẫn gian nan dã man. Nhiều kiến thức tôi không thể nào nuốt trôi. Cụ thể là lập trình hướng đối tượng - OOP. Và cũng vì điều đó, tôi tạm nghỉ học lập trình.
Trong thời gian đó, tôi cũng có tìm hiểu theo nhiều cái khác. Học Photoshop, học làm video và nhớ nhất là lúc nghịch ngu với Linux (tôi sẽ viết một bài kể về việc tôi đã nghịch Linux thế nào). Sau khi tọc mạch các thú không liên quan đến lập trình, cảm hứng lập trình bỗng nhiên trở lại. Tôi có thử tìm hiểu lại cái OOP của Python, kết quả vẫn không khá hơn mấy. Tôi đành kiếm một ngôn ngữ khác để học mong rằng nó sẽ giúp tôi có thêm kiến thức về lập trình để hiểu được cái khái niệm OOP đấy. Lúc đấy cũng không biết chọn ngôn ngữ nào, nghe người ta cứ đồn C ngon lắm, học C hiểu được nhiều thứ lắm. Thế là tôi chọn học luôn. Đời chẳng mấy như mơ, C không hề dễ dàng hơn Python như tôi thầm nghĩ. Thế là tôi lại phải tạm nghỉ học lập trình.
Và cũng sau một thời gian lại quay lại học lập trình. Lần này ngôn ngữ được chọn là HTML vì tôi muốn có một trang web riêng cho mình để còn hất mặt lên trời với mấy thằng bạn. Nắm bắt khá nhanh, tôi học thêm CSS. Tôi tự thử thách mình làm một cái giao diện. Còn nhớ một tối nọ, tôi đã ngồi code từ lúc ăn cơm tối tới tận 2h sáng để làm một cái giao diện giống như Facebook. Lúc đó, tôi mới thấu hiểu câu nói của thằng partner - một thằng tôi quen trên mạng: "Chừng nào mày code mà quên ăn quên ngủ thì mày mới thấy đã". Công nhận là "đã" thật.
Sau khi nghĩ rằng khả năng code HTML, CSS của mình cũng ổn rồi. Tôi tìm hiểu thêm xem nên học ngôn ngữ nào tiếp theo để có thể tạo nên một trang web. Chú voi PHP chính là thứ tôi tìm thấy. Series mà tôi chọn để học chính là series của Lưu Trường Hải Lân. Tôi khá thích series này, giới thiệu kiến thức kĩ càng, ví dụ hay, dễ hiểu. Và trong thời gian này, tôi không có cơ hội hỏi bài bất cứ ai hết nên nhờ đó kĩ năng "Google" của tối khá hơn rất rất nhiều. Hoàn thành mức cơ bản của PHP, tôi ngó thêm một chút về SQL nữa. Và tự tay xây cho mình một trang web trên localhost. Thấy thiếu cái gì học thêm cái đó. Web không có hiệu ứng, học Javascript. Khả năng code CSS còn tệ, học cách sử dụng Bootstrap. Javascript viết hơi dài, học dùng JQuery. Vừa học vừa tra. Bí quá thì đi hỏi. Và không biết tự bao giờ, tôi lại giỏi lên nhiều như thế. Những partners - một số người bạn tôi quen trên mạng ngày xưa kêu tôi không thể nào trở thành lập trình viên được giờ lại nhìn tôi với một cái nhìn khác. Trong quá trình học PHP, tôi cũng có gặp khái niệm hướng đối tượng OOP. Tuy vậy, nhờ một video của anh Khoa Phạm, tôi đã hiểu được bản chất vấn đề. Và sau này khi quay trở lại học Python, tôi cũng nắm hết mọi thứ.
Làm web chán chê. Lại nghỉ học lập trình. Sau đó quay trở lại, và lần nay tôi quyết định học C. Khoảng hơn 1 tuần gì đấy, tôi nắm được kha khá thứ về ngôn ngữ này. Tôi tự mình viết một console game. Chắc nhiều bạn học C cũng từng làm đó chính là Snake Game. Mới đầu cũng làm đơn giản thôi. Có con rắn, chạy tới chạy lui ăn chiến lợi phẩm rồi cộng điểm, tăng tốc độ. Nhưng như vậy thì không có gì hay ho để khoe với mấy partners cho lắm. Tôi nâng cấp thêm vài thứ. Đầu tiên là một cái Menu console rất hoành tráng. Tôi cá với bạn là nó cực xin luôn. Tiếp đến, tôi dùng file để ghi điểm cao. Chưa dừng lại ở đó, tôi thiết kế 3 mode chơi. Mode đầu tiên thì chơi bình thường, rắn ăn táo. Khi nào ăn dính thân mình thì bật ngửa. Mode thứ hai là chiến dịch, hoàn thành map này qua map kia tới khi thắng thì thôi. Mode cuối cùng, thứ ba là tôi lấy ý tưởng từ slither. Tôi cho thêm các con rắn khác vào nữa. Đương nhiên tôi cũng thiết kế một cái thuật toán cho nó di chuyển, chứ không đứng im. Sau khi hoàn thành xong, tôi ngồi đếm lại số dòng code. "2050 dòng. Úi dời". Tôi tự tặc lưỡi khen mình bờ rồ.
Thời gian làm xong game console đó cũng là cuối năm học. Và chẳng mấy chốc hè đến, tôi cũng thư giãn vừa đi đánh điện tử, đó đây với mấy thằng bạn vừa code. Cũng làm được mấy chương trình đơn giản như một cái Terminal, một cái Meme Generator nhưng thành công hơn cả là một chương trình Crawl Data. Nó giúp bạn download một tập truyện trên một số trang web mà bạn muốn đọc. Từ một số gợi ý của một số anh trên diễn đàn Daynhauhoc, tôi cũng làm thêm chức năng download cả một bộ truyện và cũng làm thêm file HTML để đọc Offline dễ dàng hơn.
Năm nay lên lớp 12, thời gian chơi bời cũng ít dần huống gì tới thời gian dành cho việc coding. Sublime Text - phần mềm tôi dùng để viết code nay chả mấy khi dùng tới. Chắc để năm sau code bù.
Dù sao thì nhờ lập trình, tôi đã biết được nhiều thứ hay ho, não cũng nhăn đi phần nào. Tôi cũng đã quen biết, học hỏi được nhiều người giỏi để tử đó thấy mình nhỏ bé mà phấn đầu. Và nếu như bạn, một người chưa từng học lập trình. Mình khuyên bạn nên học lập trình một lần trong đời và biết đâu những dòng code của bạn lại có thể thay đổi thế giới, giúp trở nên tuyệt vời hơn?
Code, Code Editor, Coding, Computer, Data, Developing
Nguồn: Google. Nếu bạn chưa biết thì đó là mã nguồn PHP