Có một thứ mà các lập trình viên và nhạc sĩ có cùng điểm chung

Bài viết được dịch từ blog Coding Horror

Trong bài viết trước đây của tôi, một độc giả đã đặt ra câu hỏi này:

Tôi đã từng gặp rất nhiều người rất giỏi trong lĩnh vực máy tính và họ có một tình yêu lớn dành cho âm nhạc. Liệu phải làm gì để có khả năng nhìn thấy cái đẹp ở trong các hệ thống số phức tạp?

Tôi yêu thích âm nhạc. Tôi có một bộ sưu tập âm nhạc rất lớn, tôi thích nghe nhạc và khám phá các ban nhạc mới cũng như các thể loại mà tôi chưa từng được nghe. Nhưng tôi không có một chút khả năng nào về âm nhạc cả. Vì vậy, sẽ không thực sự thích hợp để tôi bình luận về điều này. Tôi đã đọc về những ý kiến so sánh ở nhiều nơi khác nhau. Đủ để tôi tự hỏi liệu có một mối quan hệ nào giữa việc trở thành một nhạc sĩ và trở thành một lập trình viên không nhỉ?

Lập trình viên và mấy tay nhạc sĩ có điểm gì giống nhau?Lập trình viên và mấy tay nhạc sĩ có điểm gì giống nhau?


Để có được những ý kiến chuẩn xác, chúng ta hãy tìm tới những lập trình viên mà ngoài ra họ còn là nhạc sĩ thực thụ. Tôi nghĩ Rob Birdwell, người đã để lại một bài viết duy nhất khá buồn bã vào năm 2003 trên blog lập trình của mình, đã tổng kết lại điều này rất tốt:

  • Hãy thực tế: các nhạc sĩ trở thành lập trình viên, nói chung không phải là một hướng đi theo đam mê, đơn giản chỉ vì công việc này có thể mang lại thu nhập để thanh toán các hóa đơn cho bạn.
  • Việc tạo ra âm nhạc và phần mềm là công việc kết hợp giữa hợp tác và cá nhân.
  • Các nhạc sĩ, bất kể thời nào, nói chung thường gắn với kỹ thuật. Bản thân các nhạc cụ (phần cứng) thường giao tiếp với các thiết bị khác (amps, mixers, mutes) để thu được những âm thanh khác nhau. Các nhà soạn nhạc thường xuyên đối phó với một loạt các công nghệ để có thể viết ra được bản nhạc của mình, trình diễn và/hoặc sản xuất nó.
  • Âm nhạc là một phương tiện trừu tượng – những bản nhạc trên giấy cần phải được thông dịch và thực thi (chơi). Cũng giống như việc viết ra các dòng code, thường có nhiều việc phải làm để chúng có thể chạy được.
  • Âm nhạc là một hình thức tự thể hiện. Nhiều lập trình viên, thường xuyên cố gắng thể hiện mình thông qua các dòng code.
  • Một nhà giáo dục âm nhạc nổi tiếng, Dick Grove, đã từng nói rằng các nhà soạn nhạc/nhạc sĩ thường thích giải quyết các câu đố. (Dick Grove là một người rất am hiểu về máy tính – mặc dù tôi không chắc ông có biết lập trình hay không, nhưng tôi không nghi ngờ về khả năng ông có thể làm điều này.)

Rob rõ ràng là một gã đã nhúng chân mình vào cả 2 thế giới lập trình viên và nhạc sĩ, mặc dù trong anh thì âm nhạc rõ ràng là đã chiến thắng. Rob có một blog về âm nhạc khá sôi động với nhiều bài viết hay. Thậm chí còn có một số thông tin về lập trình xuất hiện rải rác ở đâu đó trong blog.

Tôi để ý thấy một bình luận trong một bài viết trên blog lập trình của Rob từ Carl Franklin, người cũng tình cờ là một nhạc sĩ tuyệt vời. Anh có thể chứng minh điều đó: đây là video biểu diễn của Carl về bài hát Jungle Love với tư cách là ban nhạc một người. Thật không thể tin được! Carl cũng nhìn thấy sự tương đồng giữa các nhạc sĩ và lập trình viên:

Các nhạc công nói riêng (những người chơi guitar chẳng hạn) có thể trở thành những lập trình viên tuyệt vời. Đó không chỉ là về toán học và âm nhạc có sự tương đồng, hoặc các nguyên tắc cơ bản vs nghệ thuật. Các nhạc công thường phải phóng to (zoom in) để làm việc với các chi tiết kỹ thuật lặp đi lặp lại, và trở nên rất tập trung – như một người chơi guitar luyện tập một bản nhạc với tốc độ chậm. Nhưng, các lập trình viên giỏi nhất có khả năng để sau đó thu nhỏ (zoom out) và nhìn thấy bức tranh lớn, nơi mà phần code của họ phù hợp với toàn bộ dự án, giống như một nghệ sĩ bước lùi lại từ một bức vẽ để nhìn thấy toàn bộ bức vẽ đó, hay một nhạc công phải tạo ra cái gì đó giao tiếp với một công việc hoàn chỉnh, không chỉ là ở quy mô và các khía cạnh kỹ thuật của nó.

Carl là một nhân vật quen thuộc trong cộng đồng lập trình .NET từ những ngày đầu tiên. Anh hiện nay đang điều hành một đế chế truyền thông nhỏ; tôi đã có dịp tham gia vào đế chế này khi ghi âm một .NET Rocks podcast với anh ta và Richard Campbell khoảng hai năm trước đây.

Trong khi tôi chắc chắn đánh giá cao những ý kiến thực tế của Carl và Rob khi cả hai đều là lập trình viên kiêm nhạc sĩ, nhưng tôi lo lắng rằng đây chỉ là một sự ngộ nhận mà giới lập trình viên chúng ta sử dụng để tự thổi phồng mình lên. Cũng giống như Paul Graham so sánh các lập trình viên với họa sĩ. Hoặc khi Alistair Cockburn nói phát triển phần mềm là một trò game cộng tác, và các dự án phần mềm cũng giống như leo núi đá vậy.

Chúng ta là các lập trình viên; bởi vậy tất cả những gì chúng ta nói cũng đều quy về lĩnh vực lập trình cả.

Một cảm giác mà tôi có được của “người trong cuộc” là khi nghe nhạc với một cảm giác được đắm mình giống như khi lập trình một cái gì đó thú vị vậy. Có những nhịp điệu của luồng thuật toán cứ trầm bổng trong tâm trí tôi. Nhưng tôi khá do dự để rút ra bất cứ ý kiến về sự tương đồng sâu sắc nào hơn.

Tôi đã là một nhà phát triển phần mềm (trên lý thuyết) có năng lực chuyên môn trong 15 năm nay. Và mỗi năm lập trình trôi qua, tôi thấy mình càng ngày càng thấm thía với một đoạn trong lời bài hát A Little Green Rosetta của tác giả Frank Zappa.

Lập trình viên giỏi phải kiếm được ra tiềnHọ là những nhạc sĩ giỏi
Nhưng điều đó chẳng tạo ra sự khác biệt nào
Liệu họ có là những nhạc sĩ giỏi?
Khi mà không có ai sẽ mua đĩa hát này
Và sẽ chẳng mang lại được cái mẹ gì nếu chỉ là những tay nhạc sĩ giỏi

Bây giờ đây bạn đã biết đó là một thứ mà các lập trình viên và nhạc sĩ thực sự đều có điểm chung.

Các bài viết liên quan:

Về tác giả bài viết:

Jeff_atwood_coding_horrorJeff Atwood là một chuyên gia công nghệ tại Mỹ, hiện đang sinh sống và làm việc tại Berkeley, CA. Anh là một kỹ sư phần mềm chuyên về công nghệ Microsoft .NET, và là một blogger nổi tiếng trong cộng đồng công nghệ với blog Coding Horror, anh là người sáng lập và kiêm Giám đốc điều hành (CEO) của trang web hỏi đáp uy tín Stack Overflow và cũng là đồng sáng lập của Stack ExchangeDiscourse.

3 comments on “Có một thứ mà các lập trình viên và nhạc sĩ có cùng điểm chung

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s