paint-brush
Các quý ông, hãy chọn vũ khí của mình! Các ngôn ngữ lập trình bạn nên (không nên?) họctừ tác giả@shcherbanich
219 lượt đọc

Các quý ông, hãy chọn vũ khí của mình! Các ngôn ngữ lập trình bạn nên (không nên?) học

từ tác giả Filipp Shcherbanich7m2024/09/03
Read on Terminal Reader
Read this story w/o Javascript

dài quá đọc không nổi

Trong thế giới lập trình phát triển nhanh chóng, các nhà phát triển phải quyết định có nên áp dụng ngôn ngữ mới hay gắn bó với ngôn ngữ đã được chứng minh. Bài viết thảo luận về ưu và nhược điểm của cả hai cách tiếp cận, nhấn mạnh tầm quan trọng của ứng dụng thực tế và mục tiêu nghề nghiệp khi đưa ra lựa chọn này.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Các quý ông, hãy chọn vũ khí của mình! Các ngôn ngữ lập trình bạn nên (không nên?) học
Filipp Shcherbanich HackerNoon profile picture
0-item
1-item

Như câu nói cũ, ít có điều gì trong cuộc sống tệ hơn việc mang theo dao vào một cuộc đấu súng. Là một nhà phát triển giàu kinh nghiệm, tôi có thể nói với bạn rằng điều này cũng đúng 100% đối với thế giới lập trình. Bạn phải luôn phù hợp trong một ngành công nghiệp đang thay đổi nhanh hơn cả tốc độ tôi viết bài viết này. Ngoài ra, bạn có rất nhiều nhiệm vụ khác nhau để làm. Vì vậy, sau nhiều năm sống sót trong môi trường này, tôi luôn giữ những món đồ chơi yêu thích của mình gần và được nạp đạn. Đối với một công việc im lặng và chính xác, có C++ đáng tin cậy của tôi. Nếu tôi muốn tạo ra một vụ nổ dữ liệu lớn, tôi chọn R, hơi xa hoa nhưng mạnh mẽ một cách thuyết phục. Nhưng nếu mọi thứ trở nên thực sự lộn xộn, tôi sẽ gỡ JavaScript khỏi tường: nó đã giúp tôi sống sót trong quá khứ và vẫn có thể chịu được một số sự lạm dụng nữa. Không có ngôn ngữ nào là tốt hay xấu đối với tất cả mọi người. Điều đó phụ thuộc vào bạn và công việc bạn phải làm. Vì vậy, hãy cùng thảo luận xem bạn có nên luôn theo kịp thời đại hay gắn bó với những thứ cũ kỹ tốt đẹp. Câu hỏi này khó hơn một chút so với vẻ ngoài của nó…

Mỗi ngày có phải là một khởi đầu mới?

Với bản chất sáng tạo của công nghệ, việc thảo luận về việc có nên học một ngôn ngữ khác hay không có vẻ hoàn toàn ngớ ngẩn. Thật vậy, nếu thế giới đứng yên, chúng ta vẫn sẽ sử dụng các tấm đất sét và bàn tính. May mắn thay, mong muốn sáng tạo dẫn đến những tiến bộ liên tục, đòi hỏi phải nâng cấp kỹ năng liên tục. Ví dụ, vào những năm 1960, giao tiếp với máy tính liên quan đến việc đục lỗ trên giấy và đưa vào máy. Ngày nay, máy tính vừa vặn trong túi của chúng ta và lỗ hổng duy nhất chúng ta gặp phải là trong ngân sách của mình sau khi mua chúng. Hãy tưởng tượng nhà phát triển tiên tiến nhất từ những năm 60 cố gắng duy trì sự phù hợp mà không phát triển kỹ năng của họ.


Ngôn ngữ lập trình phát triển nhanh hơn cả người sáng tạo ra chúng. Các yêu cầu, ý tưởng và công cụ mới thay đổi hoàn toàn các phương pháp và thực hành truyền thống xuất hiện với tốc độ đáng kinh ngạc. Các chuyên gia bỏ qua thực tế này sẽ trở nên lỗi thời như các ngôn ngữ mà họ bám vào. Một ví dụ điển hình là COBOL, mặc dù phổ biến vào những năm 60 cho các ứng dụng kinh doanh, nhưng đã trở nên gần như lỗi thời với những tiến bộ công nghệ.


Một lý do khác để học một ngôn ngữ lập trình mới là triển vọng nghề nghiệp. Hiểu rằng hiểu biết sâu hơn về các công nghệ mới nhất sẽ tăng cơ hội có được những công việc lương cao, một số chuyên gia nhiệt tình học các ngôn ngữ mới. Nỗ lực này là chính đáng: biết các công nghệ mới chắc chắn sẽ mở rộng cơ hội việc làm. Đôi khi, các công nghệ mới là cần thiết ngay cả khi bản thân ngôn ngữ vẫn còn phù hợp nhưng công ty thay đổi ngăn xếp công nghệ của mình. Trong những trường hợp như vậy, nhân viên phải thích nghi hoặc tìm việc mới. Thông thường, họ chọn học công nghệ mới.


Học ngôn ngữ mới không chỉ có lợi vì lý do thực tế mà còn vì sự sáng tạo. Nó có thể cung cấp những cách tiếp cận mới cho các nhiệm vụ quen thuộc, mở rộng góc nhìn và tiềm năng. Ví dụ, Symfony, một khuôn khổ PHP phổ biến, được lấy cảm hứng từ khuôn khổ Spring dựa trên Java. Nhiều nhà phát triển thư viện nguồn mở đã lấy ý tưởng từ các thư viện được triển khai trong các ngôn ngữ khác và bạn có thể là người đổi mới tiếp theo.

…Hay vàng cũ là vàng thật?

Nhưng vì sự thật, hãy nhìn theo hướng ngược lại với tất cả những điều chúng ta đã thảo luận trong chương trước. Bạn có biết thẻ đục lỗ được sử dụng lần cuối khi nào không? Hãy đoán xem… Và trừ khi bạn gian lận bằng cách tìm kiếm câu trả lời trên Google ngay bây giờ, nếu không thì có lẽ bạn sẽ đoán sai. Câu trả lời đúng là năm 2014. Năm đó, thẻ đục lỗ cuối cùng đã được sử dụng bằng máy bỏ phiếu tại tiểu bang Idaho trong cuộc tổng tuyển cử ở Hoa Kỳ. Hoặc lấy COBOL làm ví dụ, ngôn ngữ mà chúng ta đã đập tan vì lỗi thời chỉ vài đoạn văn trước. Vâng, tính đến năm 2017, theo Reuters , 43% trong số tất cả các hệ thống ngân hàng đều dựa trên COBOL; 80% các giao dịch trực tiếp sử dụng COBOL và có 220 tỷ dòng mã được viết bằng COBOL vẫn đang được sử dụng. Vì vậy, thực sự có một ranh giới (không quá mong manh) giữa sự không liên quan của một ngôn ngữ đối với các hệ thống hiện đại và sự lỗi thời của nó nói chung.


Khả năng một ngôn ngữ lập trình mà bạn biết hoặc sắp học, trở nên lỗi thời và vô dụng trong tương lai gần là bao nhiêu? Không có câu trả lời thực sự nào cho câu hỏi đó, chỉ có thể đoán. Một số tác giả ước tính vòng đời trung bình của một ngôn ngữ lập trình nằm ở bất kỳ đâu từ 14 đến 18,5 tuổi . Người khác nói gần 25 năm đối với các ngôn ngữ chính và 5-6 năm đối với các công cụ chuyên biệt và kỳ lạ hơn. Nhưng cũng có một góc nhìn khác đáng nhắc đến vì nó có vẻ khá được chứng minh qua lịch sử. Nó dựa trên hiệu ứng Lindy, được Nassim Nicholas Taleb mô tả tốt nhất trong cuốn sách của ông 'Antifragile: Những điều thu được từ sự hỗn loạn' : “Nếu một cuốn sách đã được in trong bốn mươi năm, tôi có thể mong đợi nó sẽ được in trong bốn mươi năm nữa. Nhưng, và đó là sự khác biệt chính, nếu nó tồn tại thêm một thập kỷ nữa, thì nó sẽ được mong đợi được in thêm năm mươi năm nữa. Điều này, đơn giản, như một quy luật, cho bạn biết lý do tại sao những thứ đã tồn tại trong một thời gian dài không "lão hóa" như con người, mà "lão hóa" ngược lại. Mỗi năm trôi qua mà không tuyệt chủng sẽ tăng gấp đôi tuổi thọ bổ sung. Đây là một chỉ báo về một số độ bền. Độ bền của một mặt hàng tỷ lệ thuận với tuổi thọ của nó!”


Nói cách khác, những ngôn ngữ đã tồn tại đủ lâu có thể sẽ tồn tại với chúng ta trong vài thập kỷ nữa. Ngược lại, có khả năng những thứ mới lạ sẽ sớm trở nên lỗi thời – nhưng điều đó vẫn còn phải chờ xem. Mỗi năm một ngôn ngữ được sử dụng sẽ làm tăng cơ hội tồn tại lâu hơn.

Nghĩ đến sự nghiệp hơn là ngôn ngữ

Vậy chúng ta nên làm gì? Học một ngôn ngữ? Một ngôn ngữ mới hay ngôn ngữ cũ? Vâng, bản thân việc học luôn tốt. Nghiên cứu cho thấy gần một nửa số nhà phát triển cân nhắc việc học một ngôn ngữ mới. Theo JetBrains' " Tình hình hệ sinh thái nhà phát triển năm 2023 "Khảo sát, hơn 40% người trả lời bày tỏ mong muốn này. Các nhà phát triển làm việc với JavaScript (49%), PHP và Python (45%) và C++ (44%) cho thấy sự quan tâm nhất đến việc học một cái gì đó mới. Việc lựa chọn ngôn ngữ bạn muốn học thực sự phụ thuộc vào hướng đi sự nghiệp của bạn. Nếu bạn đang nghĩ đến một công việc ổn định có thể kéo dài khá lâu (nhưng không phải mãi mãi), bạn có thể lựa chọn một cái gì đó cũ và đã được chứng minh. Những cơ hội như vậy có thể nảy sinh trong khoa học, sản xuất và ngân hàng truyền thống, tức là các tổ chức có máy móc đắt tiền lâu dài và/hoặc cơ sở hạ tầng phụ thuộc nhiều vào mã cũ.


Ví dụ, phần lớn các lập trình viên COBOL là trong độ tuổi từ 45 đến 55 vào năm 2017. Thêm bảy năm đã trôi qua kể từ khi nghiên cứu được công bố và bạn sẽ thấy rằng nhiều nhà phát triển COBOL đang bước vào tuổi nghỉ hưu. Nếu COBOL tồn tại lâu như mong đợi, đây có thể là cơ hội để bạn trở thành một chuyên gia hiếm có có giá trị cao. Nhưng hãy nhớ rằng lựa chọn như vậy sẽ đòi hỏi kiến thức rất sâu rộng và kỹ năng hoàn hảo. Ngoài ra, nếu có điều gì đó không ổn, lựa chọn công việc tiếp theo của bạn có thể rất hạn chế trừ khi bạn quyết định thay đổi hồ sơ của mình.


Nếu bạn thích cuộc sống sôi động của các công ty khởi nghiệp hoặc sức mạnh của những gã khổng lồ công nghệ, bạn nên chọn thứ gì đó hiện đại và đầy hứa hẹn hơn. Việc xem những người khác đang làm gì có thể giúp bạn có manh mối: ví dụ, hãy kiểm tra bảng xếp hạng ngôn ngữ lập trình mới nhất của RedMonk hoặc TIOBE . Đừng coi chúng quá nghiêm trọng, vì bất kỳ thứ hạng nào có thể tưởng tượng được đều dựa trên một mức độ đơn giản hóa nào đó, nhưng chúng vẫn có thể cung cấp cho bạn bức tranh toàn cảnh về những gì đang diễn ra. Ngoài ra, cuộc khảo sát được JetBrains đề cập tiết lộ những ngôn ngữ nào đang được học thường xuyên nhất. Bằng cách này, bạn chắc chắn sẽ học được một ngôn ngữ có tương lai.

Luôn luôn thực tế

Kiến thức thu được mà không có ứng dụng thực tế sẽ nhanh chóng trở nên lỗi thời. Do đó, học một ngôn ngữ mới chỉ để đánh dấu vào ô là vô nghĩa. Thay vào đó, hãy cân nhắc cách bạn có thể sử dụng nó trong công việc hiện tại của mình. Nếu công ty của bạn đã sử dụng công nghệ, thì đó có thể là động lực tuyệt vời để học. Chỉ cần yêu cầu quản lý hoặc trưởng nhóm của bạn giao cho bạn các nhiệm vụ liên quan đến công nghệ đó, cho phép bạn củng cố kiến thức của mình thông qua thực hành. Nếu công việc của bạn sử dụng một ngăn xếp công nghệ cố định và không có cơ hội để học điều gì đó mới, bạn luôn có thể tạo dự án phụ của riêng mình để khám phá những ranh giới mới một cách độc lập. Chỉ cần đảm bảo không vi phạm hợp đồng lao động của bạn trong khi làm như vậy.


Ngay cả khi bạn chỉ mới bắt đầu con đường phát triển của mình, chiến lược vẫn như vậy: chọn một công nghệ mà bạn có thể sử dụng trong cuộc sống thực (tại nơi làm việc hoặc trong một dự án phụ). Chọn một ngôn ngữ có tương lai tươi sáng, không phải ngôn ngữ mà cộng đồng nhà phát triển xa lánh. Vì bạn chỉ mới bắt đầu hành trình của mình và không bị gánh nặng bởi mức lương cao và kỳ vọng với tư cách là một chuyên gia, bạn có thể dễ dàng và nhanh chóng thay đổi ngăn xếp công nghệ của mình nếu ngôn ngữ thứ hai bạn học hấp dẫn bạn hơn ngôn ngữ đầu tiên. Bạn có nhiều sự linh hoạt hơn trong lựa chọn của mình và việc tận dụng lợi ích này là xứng đáng. Chỉ cần không lạm dụng: việc thay đổi quá thường xuyên trong ngăn xếp công nghệ của bạn và luồng kiến thức quá lớn có thể gây bất lợi. Tìm sự cân bằng giữa những gì bạn muốn và những gì bạn có thể quản lý, và bạn chắc chắn sẽ đạt được thành công.


Đối với một số nhà phát triển, đặc biệt là những người có nhiều năm kinh nghiệm, lời khuyên của tôi có vẻ hiển nhiên. Nhưng như câu nói, "Lặp lại là mẹ của học tập", và chưa ai từng bác bỏ sự thật của những lời khôn ngoan này. Tôi hy vọng bài viết của tôi sẽ khuyến khích những người đã muốn từ lâu nhưng quá lười để hành động và thúc đẩy những người mới bắt đầu háo hức. Tôi hy vọng lời khuyên của tôi hữu ích và thậm chí có thể truyền cảm hứng cho sự phát triển chuyên môn hơn nữa.