Tại sao bạn nên trở thành một lập trình viên

Bạn biết không trước đây tôi đã từng có ý định viết bài "làm ơn đừng học lập trình" và rồi tôi bỗng chợt nhận ra độc giả có lẽ sẽ dừng đọc ngay khi họ xem qua tiêu đề bài viết đó. Lý do vì sao ư, bạn biết đấy với sự bùng nổ của nghành công nghệ thông tin, công nghệ len lỏi ở khắp mọi nơi, mọi ngóc nghách trong đời sống và trong công việc hằng ngày trong mọi lĩnh vực. Thật dễ nhận ra phần mềm chính là ông vua trong thời đại kỹ thuật số ngày nay, nhà đồng sáng lập hãng Netscape Marc Andreessen đã chỉ ra rằng phần mềm đang làm biến đổi tất cả ngành nghề và lập trình viên là người tạo ra phần mềm.

Tại sao bạn nên trở thành một lập trình viên

Tôi đã tranh luận rằng những người cần học lập trình thường được khích lệ bởi tính chân thật của nó. Bởi vì không hề có những viên đạn bọc đường nào trong lập trình cả. Nếu sau khi nghe cả hai mặt ưu và nhược điểm của nó, và bạn vẫn muốn học lập trình, thì hãy học lập trình bằng tất cả mọi cách có thể.

Ở giai đoạn sơ khai của máy tính, mọi người phải trở thành một lập trình viên bởi vì thời đó không có phần mềm. Nếu bạn muốn máy tính làm bất cứ công việc gì, thì bạn phải viết code cho nó. Máy tính lúc đó được khởi động và chạy thẳng vào một trình thông dịch BASIC với một con trỏ nhấp nháy thân thiện. 

Tại sao bạn nên trở thành một lập trình viên1

Để trở thành một lập trình viên giỏi cũng giống như khi bạn lái xe, để trở thành một người lái xe hơi giỏi, thì mọi người cần phải biết đến mức chi tiết về chiếc xe hơi của họ sẽ hoạt động như thế nào.

Vậy code là gì, theo ý nghĩa trừu tượng nhất?

"code (kōd) …

3.      a. Là một hệ thống các ký hiệu được sử dụng để đại diện cho các chữ hoặc số trong việc truyền tải các thông điệp.
          b. Là một hệ thống các biểu tượng, các chữ hoặc từ đưa ra những ý nghĩa chắc chắn nào đó, được sử dụng để truyền tải các thông điệp mà yêu cầu bí mật hoặc ngắn gọn.
4. Một hệ thống của các ký hiệu và quy tắc được sử dụng nhằm miêu tả những tập lệnh để một máy tính thực thi…

— Trích từ điển tiếng Anh American Heritage"

Có phải nó là máy đục lỗ? Các thiết bị đầu cuối từ xa? Emacs? Textmate? Eclipse? Visual Studio? C? Ruby? JavaScript? Vào những năm 1920s, một kỹ năng được xem là rất quan trọng đó là làm thế nào để sử dụng những cái thước trượt (slide rules) để tính toán. Trong những năm 1960s, thì một kỹ năng quan trọng là học cách vẽ các chi tiết máy. Không có cái nào trong số chúng còn quan trọng ngày nay. Tôi hơi do dự khi đề xuất bất kỳ một hướng tiếp cận riêng lẻ nào tới việc lập trình hơn là các nền tảng căn bản được phác họa trong cuốn sách Code: The Hidden Language of Computer Hardware and Software, bởi vì tôi không chắc rằng chúng ta sẽ thậm chí còn nhận ra công việc lập trình khoảng 20 hoặc 30 năm tới. Đối với lũ trẻ ngày nay, có lẽ công việc lập trình cuối cùng sẽ tương tự như là việc chơi trò game Minecraft, hoặc xây dựng các level trong trò game Portal 2.

Nhưng mỗi người cũng nên thử viết một chút code, bởi vì theo một ý nghĩa nào đó thì nó cũng làm sắc bén thêm trí tuệ của bạn, phải không nào? Về mặt trừu tượng thì nó cũng giống như là đọc trọn bộ Bách Khoa Toàn Thư từ đầu đến cuối vậy. Thành thực mà nói, tôi rất thích những người mà đã dành thời gian của họ để khám phá ra những vấn đề mà họ yêu thích rồi tìm thấy được sự thú vị, và nghiên cứu để tìm cách giải quyết những vấn đề đó. Điều khó nhất trong cuộc đời không phải là việc học hàng đống những thứ có thể hữu ích, mà bạn phải tìm ra bạn đang thực sự đam mê và muốn làm điều gì. Nếu nói rằng nghiên cứu và khám phá dẫn đến công việc lập trình, sau đó bạn học lập trình … thì điều này nghe giống như là chúng chẳng có giá trị gì cả.

Vì vậy, không, tôi không ủng hộ việc học lập trình với mục đích cưỡi ngựa xem hoa để biết cho vui. Mà tôi ủng hộ những người không biết xấu hổ để theo đuổi niềm đam mê của họ.

Tôi thì không trở thành một lập trình viên bởi vì có ai đó nói với tôi rằng học lập trình là quan trọng, mà tôi trở thành một lập trình viên bởi vì tôi đã muốn thay đổi những luật chơi của các trò video game mà tôi chơi lúc bé, và việc học lập trình là cách duy nhất để làm điều đó. Theo hướng đó, tôi cũng yêu thích công việc lập trình.

"Tất cả điều đó để nói lên rằng tôi đã đứng giữa ngã ba đường nhiều hơn một lần, và tôi vẫn còn nghe thấy những bài hát du dương của những tháng ngày bình yên đó trong suốt quãng thời gian mà tôi làm việc gần như là lập trình và tôi đã thích thú với công việc đó. Tôi có một câu hỏi dành cho anh là liệu anh có nghĩ rằng một ai đó có xuất phát điểm như tôi mà có thể học lập trình tới một cấp độ mà tôi có thể được thuê như là một lập trình viên hay không? Tôi không cố gắng để làm công việc này trong khi vẫn phải chạy quanh thành phố để làm một công việc ban ngày khác nữa. Đúng hơn là, tôi chân thành và hoàn toàn muốn trở thành một lập trình viên đích thực và sẽ dành toàn bộ cuộc đời mình để tạo ra (và/hoặc debugging) một cái gì đó có giá trị."

Thật không may, việc gọi bản thân bạn là một “lập trình viên” có thể trở thành một bước dịch chuyển làm giới hạn cái nghề của bạn, đặc biệt là cho một người mà đã từng đảm nhiệm vị trí giám đốc tài chính (CFO) trước đây. Người mà làm việc cùng với tiền và có khả năng kiếm ra rất nhiều tiền.

Nhưng đây không phải là nói về tiền, phải không nào? Nó là về tình yêu. Vì vậy, nếu bạn muốn trở thành một lập trình viên, thì tất cả bạn cần phải làm là hành động theo tiếng nói của con tim bạn mách bảo và hãy yêu quý những dòng code. Bất kỳ một lập trình viên giỏi nào cũng ngay lập tức nhận ra một đồng nghiệp đích thực của họ, một người mà sẵn sàng liều lĩnh trong tình yêu với code, và tất cả những gì liên quan đến nó. Xin chào mừng bạn gia nhập vào bộ lạc lập trình viên của chúng tôi.

Nếu bạn đang đọc bài viết này và nghĩ trong đầu rằng, “này anh bạn, anh hãy cho tôi lời khuyên rằng liệu tôi có nên học lập trình hay không?”, thì tất cả những gì mà tôi có thể trả lời là: vâng! Bạn còn chờ gì nữa!

Tham khảo Coding Horror.