Lập trình. Tại sao ta lại lập trình? Câu hỏi này nảy lên trong đầu tôi vào những năm tháng tôi ngồi trên chiếc ghế tại giảng đường đại học, tôi chưa bao giờ nghĩ mình có thể giỏi được lập trình khi tôi bắt đầu với một ngôn ngữ mới, một thách thức mới, một tư duy sáng tạo mới. Chúng ta, những công dân lập trình, đang ngày đêm viết ra những dòng code C++, Java hay bất cứ ngôn ngữ nào bạn muốn, mỗi dòng code bạn viết ra đều như đang chạy đua với thời gian, với tiền bạc, với công sức và kỳ vọng trong suốt quãng thời gian còn lại của bạn. Đôi khi chúng ta phải viết thật nhiều, say mê như một nhà văn để tạo ra một tác phẩm hay, để người ta có thể hiểu được thế giới bên trong bạn. Lập trình cũng vậy. Tôi hiện đang viết ngôn ngữ C++, trước đó là C++98, giờ nâng dần lên lần lượt, 11 tới 14 tới 17,… Rồi học thêm về Ruby, Python, Java,… Lập trình tiến hóa như tư duy của chúng ta vậy, làm thế nào để tối ưu hơn, hiệu quả hơn. Bạn thường xuyên viết code cho công ty công nghệ dù lớn hay nhỏ, nhất là trong thời đại hiện nay, với sự can thiệp của công cụ AI - bộ não máy tính ưu việt từ trước tới nay là sản phẩm đã trở thành trào lưu, là sự phát triển không ngừng của lập trình, công nghệ hóa, số hoá, phần cứng…. Nhìn rộng ra, con người hay công dân lập trình đóng vào trò trung tâm trong sự phát triển.

ảnh minh họa
Sometimes I dream of saving the worldMr.Robot
Vậy thì, triết học của lập trình là gì? Tôi nghĩ, đằng sau những dòng code, thế giới xung quanh được thiết lập bởi những hệ thống logic, chẳng hạn như 0 và 1. Dãy số nhị phân chạy trong đầu, trong từng toà nhà văn phòng, trong tài chính ngân hàng, trong cách bạn ra quyết định. Khi code, thường hay tạo lỗi, đôi khi điều đó được ví như bài học vỡ lòng. Bug trở thành bạn của ta, một lỗi trong suy nghĩ khiến định nghĩa bạn là ai. Bạn thật sự kiên định, nhìn nhận lại những hành động, ý nghĩ trong tâm trí để khiến nó trở nên sáng suốt trong lành, không còn những lầm lạc. Triết học của lập trình rất sâu sắc, nếu kể ra thì nhiều vô cùng. Sự sáng tạo phải dựa trên một nền tảng vững chắc, từ cách khai báo biến hay hàm, sử dụng con trỏ và áp dụng thuật toán để giải quyết vấn đề được đưa ra. Nghe có vẻ dễ, lập trình quả thật dễ mà cũng thật không dễ. Nhìn qua bạn sẽ không thể thấy hết toàn bộ ý tưởng sâu xa nhất, trái lại, khi bạn là người sáng tạo, bạn là người hiểu rõ nhất.

Câu nói hay của Bác Hồ về sự học
Tôi thích lập trình không chỉ vì nó là một công cụ mạnh mẽ để xây dựng phần mềm hay giải quyết vấn đề, mà còn vì nó là một cách để tôi tương tác với thế giới trong những khoảng thời gian rảnh rỗi. Đôi khi, tôi không ra ngoài chơi với bạn bè, tôi có thể ngồi code để giải tỏa ý chí của mình. Mỗi dòng code tôi viết giống như một mảnh ghép nhỏ trong một bức tranh lớn, nơi tôi có thể biến ý tưởng thành hiện thực. Viết code dạy tôi cách tiếp cận một vấn đề từ nhiều góc độ khác nhau, lặp đi lặp lại đến khi tôi tìm ra một cơ sở lý luận, một phương pháp làm đúng. Cảm giác khi tìm ra một giải pháp tối ưu hay khi sửa được một lỗi khó nhằn mang lại cho tôi niềm vui và động lực tiếp tục khám phá. Tôi có thể bắt đầu với một dòng lệnh đơn giản, nhưng qua thời gian, tôi học cách xây dựng cả một hệ thống phức tạp. Chính sự tiến bộ không ngừng này khiến tôi yêu thích lập trình và luôn muốn tìm tòi, khám phá thêm những điều mới mẻ trong thế giới công nghệ. Một điều tôi nhận ra rằng, không ai có thể hoàn toàn master được ngôn ngữ lập trình vì chúng luôn luôn thay đổi, ta chỉ có thể nói rằng : "Tôi không biết hết mọi thứ!" và biến cái không biết này để liên tục theo đuổi niềm đam mê lập trình.

Nói thêm về ngôn ngữ lập trình, như đã đề cập thì tôi ưa thích dùng C++ vì nó gần với tính cách, con người tôi nhất. Tôi chưa bao giờ có ý định so sánh các ngôn ngữ lập trình với nhau như đa số mọi người thường làm vì ngôn ngữ nào cũng có điểm mạnh và yếu riêng của nó nhưng cá nhân tôi C++ thật sự thú vị. Giống như Java, C/C++ có rất nhiều phiên bản và bạn nên update gcc lên các phiên bản mới nhất nếu thực sự thấy cần thiết. Đơn giản khi hệ thống càng phát triển thì sẽ có nhiều thư viện để bạn tương tác với nó hơn. Hoặc tôi có thể sử dụng các thư viện mã hóa của C/C++ như OpenSSL, STL, hay làm việc với Database với SQLite, irender.... Cái khó nhất và hay nhất của C/C++ chính là con trỏ, con trỏ thì có nhiều dạng, phổ biến bây giờ là smart pointers, cho phép bạn kiểm soát bộ nhớ tốt hơn. Tôi đã từng làm các project với C/C++ nên khi viết bằng C/C++ cần có sự chỉnh chu, dễ nhìn, dễ đọc các hàm và quan trọng là sự kiên nhẫn. Điều này đúng với bất cứ một ngôn ngữ lập trình nào. Với Java, bạn có thể học về interface và các framework liên quan, Java hỗ trợ rất tốt cho phát triển phần mềm và ứng dụng trên điện thoại.

C++
Với Python, hắn ta có thể chạy trên mọi hệ điều hành, một ngôn ngữ thông dịch (interpreter) phổ biến nhất hiện nay vì tính thân thiện với người dùng, hỗ trợ các thư viện Machine Learning, cú pháp đơn giản và nhanh gọn. Tuy nhiên thì Python không thể xử lý nhanh bằng các ngôn ngữ biên dịch (compiler), tiêu thụ bộ nhớ tương đối lớn, rất khó debug vì thường xảy ra khi chạy thử, và độ bảo mật. Mình sử dụng Python để xử lý các bài toán đơn giản, cũng như hoàn thiện các bài tập ở Đại Học.

Python
Cách tốt nhất là hãy coi lập trình như chơi game, bạn thấy nó hoàn toàn là hành trình, hóa giải với từng level của dự án. Càng nhiều biến càng nhiều hàm, chương trình càng phức tạp và sẽ có đủ "công cụ" để hoàn thiện level đó.
Lật qua lịch sử, lập trình không phải là một khái niệm mới chỉ xuất hiện trong kỷ nguyên số, mà thực chất nó đã trải qua một hành trình dài hàng thế kỷ. Từ thế kỷ 19, Ada Lovelace – nhà toán học người Anh – đã được xem là lập trình viên đầu tiên khi viết thuật toán cho “Máy phân tích” của Charles Babbage, dù khi đó máy tính điện tử chưa tồn tại. Đến Thế chiến II, Alan Turing đã đặt nền móng cho khoa học máy tính hiện đại bằng việc phát triển Máy Turing và giải mã Enigma, giúp thay đổi cục diện cuộc chiến. Bước sang những năm 1950-1970, lập trình tiến hóa từ mã nhị phân sang các ngôn ngữ bậc cao như FORTRAN, COBOL, và đặc biệt là C – ngôn ngữ đã đặt nền tảng cho các hệ điều hành quan trọng như Unix và Windows. Thập niên 1980-1990 đánh dấu sự phát triển của lập trình hướng đối tượng với C++, Java, đồng thời Internet bùng nổ, mở ra kỷ nguyên phần mềm toàn cầu. Từ những năm 2000 đến nay, lập trình tiếp tục tiến hóa với sự bùng nổ của trí tuệ nhân tạo, điện toán đám mây, và các công nghệ như Machine Learning, Blockchain, IoT. Sự ra đời của GitHub, Docker, và các công cụ hỗ trợ lập trình viên giúp quá trình phát triển phần mềm nhanh hơn, mạnh mẽ hơn.

Như thường lệ, tôi phải thật sự biết ơn những người đã góp công tạo nên những ngôn ngữ lập trình hay những chiếc máy tính, ý tôi là hệ thống máy tính rất lớn để góp phần vào sự phát triển của xã hội. Nếu như không có họ, sẽ chẳng thể có những người lập trình như tôi và bạn, và dĩ nhiên sẽ không có bài viết này. Những công dân lập trình rất thầm lặng, tĩnh tâm lập trình nên thế giới tốt đẹp hơn. Tất nhiên, đã có những thành phần lợi dụng sự phát triển này để làm xấu mọi chuyện đi, nhưng sẽ luôn tồn tại những công dân xuất chúng, đập tan những xảo quyệt lừa đảo,… Câu hỏi cuối, liệu có tương lai nào cho lập trình viên hay không? Tôi tin rằng câu trả lời là có, bất kỳ ai cũng có thể là lập trình viên. Cảnh giới cao nhất của lập trình không nhất thiết phải ngồi dưới máy tính và code mới được coi là lập trình, người đó có thể là công nhân, một người nông dân, một cầu thủ bóng đá, một người làm vườn, một nhà khoa học,… Lập trình là giúp bạn thức dậy mỗi ngày và làm điều gì đó phi thường. Lập trình thay đổi thế giới và thế giới cần những công dân lập trình.
Nếu cuộc đời là một hệ thống, thì tôi và bạn là biến số, định hình kết quả sau cùng.page này dành cho một thằng nerd

Quan điểm - Tranh luận
/quan-diem-tranh-luan
Bài viết nổi bật khác
- Hot nhất
- Mới nhất
VietnamsesDream
Lập trình là tự động hóa ý tưởng. Ý tưởng tồi thì lấp trình nó là thứ tồi. Ví như các hệ thống AI thương mại thei kiểu tuning như hiện tại :penguin
- Báo cáo

Page này dành cho 1 thằng nerd
Cảm ơn bạn
- Báo cáo

WandererGuy
nếu là AI thì mạng perceptron thay vì xây dựng phần cứng như này , ta chỉ cần 3 dòng code là làm được (1 sự kì diệu của lập trình, biến ý tưởng thành dòng code và tạo ra 1 thứ có ý nghĩa) https://www.youtube.com/watch?v=l-9ALe3U-Fg&;t=540s
- Báo cáo