Biết nhiều ngôn ngữ lập trình chưa chắc đã là giỏi!

Chắc hẳn khi bắt đầu tìm hiểu về công nghệ thông tin (CNTT), ai cũng đã có lúc băn khoăn không biết nên học ngôn ngữ nào bây giờ, học framework này liệu có hợp lý không. Tưởng như đơn giản, nhưng cũng giống như “hôm nay ăn gì”, việc tìm đáp án cho câu hỏi này nhiều khi cũng khá là đau đầu.

Tuy nhiên, việc quá tập trung vào chuyện “học gì” có thực sự quan trọng đến thế?

Cũng giống như việc ngoài chợ có quá nhiều thứ để chọn, thì ngành CNTT cũng có quá nhiều ngôn ngữ lập trình, thư viện và framework có thể học.

Nhắc đến ngôn ngữ lập trình thì phải kể đến Python, JavaScript, Java, C#… là những ngôn ngữ phổ biến nhất hiện nay. Dựa trên chúng, hàng loạt các thư viện và framework được sinh ra, ví dụ Python có Flask, Django, TensorFlow; JavaScript thì có React, Angular, Vue; hay như Java thì là Spring và Struts.

Đấy mới chỉ là những thứ được biết đến nhiều nhất. Hàng ngày còn rất nhiều công cụ khác được tạo ra mà chúng mình không thể nào biết hết được. Mỗi công cụ lại có những điểm mạnh và điểm yếu riêng. Python, JavaScript hay những ngôn ngữ kịch bản (scripting languages) khác thường được chọn vì cú pháp đơn giản dễ dùng, nhưng có nơi lại dựa trên Java, C# để xây dựng các hệ thống lớn. Ngoài ra R, Matlab thường xuyên được dùng trong Data Science, còn trong lập trình nhúng thì C hay C++ được sử dụng rất nhiều.

Nguồn: http://www.studyins.com/

Mỗi lĩnh vực CNTT lại cần đến một hệ sinh thái riêng. Nhưng thật ra, việc chọn công nghệ nào để phát triển sản phẩm lại nên là vấn đề với các senior developers và doanh nghiệp. Còn đối với các bạn sinh viên sắp và mới ra trường, định hướng mới nên là mối quan tâm hàng đầu. Bạn muốn trở thành một AI Engineer, một Web Developer, hay làm gì cũng được miễn là có tiền? [:)].

Có những bạn bắt đầu học lập trình thì bị ngợp bởi những băn khoăn như thế này:

A: Mình sẽ chọn học C, vì C hay được dạy ở trường!

B: Không, chọn Golang hay hơn vì nghe nói lập trình ngôn ngữ này được trả lương cao!

C: Sao không chọn PHP, Python vì nhiều công ty đang tuyển developer ở vị trí này (như Got It chẳng hạn)?

Mình đã từng đọc một bài viết khá hay của bạn Phạm Huy Hoàng (toidicodedao) về vấn đề lựa chọn ngôn ngữ, trong đó tác giả có nhắc đến việc nhiều người đang coi ngôn ngữ như một thứ tôn giáo. Chính vì các bạn đó lúc nào cũng nghĩ lựa chọn của mình là tốt nhất dẫn đến việc chia phe phái và tranh cãi một cách thiếu tôn trọng nhau (bạn nào cũng đang làm thế thì hãy suy nghĩ lại xem liệu có nên hay không nhé).

Hay ta cứ học mỗi thứ một ít, thay vì bận tâm chuyện “học gì”?

Cũng có một số bạn thay vì băn khoăn không biết nên học gì thì lại chọn học mỗi thứ một ít. Việc này mặc dù đem đến một cái nhìn tổng quan hơn về các công cụ khác nhau, nhưng ngược lại, cũng có những mặt trái nhất định.

Nguồn: Internet

Đầu tiên phải kể đến việc sử dụng một cách thiếu hiệu quả tài nguyên cá nhân, ở đây có thể hiểu là công sức, thời gian, và tiền bạc.

Thật ra, việc đánh giá công sức bỏ ra là tương đối khó, vì khả năng học và tiếp thu của mỗi người là khác nhau. Nhưng thời gian thì khác. Mỗi người đều chỉ có 24 tiếng một ngày. Nếu bạn dành thời gian để học nhiều công cụ thì đương nhiên sẽ có ít thời gian để đào sâu, nắm chắc được bất cứ một thứ cụ thể nào. Thêm vào đó, nếu bạn có ý định đầu tư cho những khoá học thì nên cân nhắc xem liệu có nên bỏ chi phí để tìm hiểu nhiều công cụ khác nhau, trong khi rất có thể là sau này bạn sẽ chỉ sử dụng duy nhất một trong số chúng.

Bên cạnh đó, điều nguy hiểm hơn chính là việc biết nhiều công cụ nhưng lại không thực sự hiểu sâu cái nào. Có lẽ tình trạng các bạn sinh viên mới ra trường liệt kê rất nhiều kỹ năng trong CV không phải là hiếm. Thế nhưng, việc cố gắng học thật nhiều ngôn ngữ và frameworks chỉ để làm đẹp CV đôi khi lại vô tình khiến các bạn trở nên “tự tin thái quá” khi nghĩ rằng cái gì mình cũng biết.

Không những thế điều này còn là con dao hai lưỡi, có thể hại lại chính bạn trong một buổi phỏng vấn. Việc để nhiều từ khoá vào trong CV càng khiến cho nhà tuyển dụng có nhiều thứ để hỏi, và khi không nắm chắc kiến thức thì hỏi đâu cũng là đánh vào điểm yếu. Giả dụ vào một ngày đẹp trời bạn có may mắn được nhận, thì việc mà bạn không hiểu rõ cái mình đang làm rất có thể sẽ gây tổn thất lớn cho cả bạn và công ty.

Vậy nên chọn công cụ để học như thế nào cho hiệu quả?

Chắc hẳn các bạn đã nghe đến câu “nhất nghệ tinh, nhất thân vinh”, hay “một nghề cho chín còn hơn chín nghề”, mình thấy rất thích hợp để áp dụng trong trường hợp này. Nói một cách đơn giản hơn, bạn chỉ cần tập trung vào một ngôn ngữ lập trình hay framework, dành thời gian thành thạo công cụ đó, thì những sản phẩm bạn làm ra sẽ có chất lượng và được đánh giá cao hơn. Theo mình, để chọn được công cụ thích hợp, bạn nên lưu ý hai điều sau:

  • Đầu tiên, hãy chọn cái giúp bạn thực hiện tốt việc cần làm.

Bất cứ ngôn ngữ, thư viện, hay framework nào thì cũng đều là công cụ, mà công cụ là để đạt được mục đích. Ví dụ nếu bạn muốn phát triển game, hãy chọn công cụ có hiệu năng tốt, tốc độ cao. Còn khi hiệu năng không phải là ưu tiên hàng đầu, chẳng hạn như khi phát triển một ứng dụng web, thì bạn có thể cân nhắc những công cụ dễ dùng, có tính mở rộng và bảo trì cao.

  • Tiếp theo, bạn nên cân nhắc việc chọn một công cụ phổ biến.

Những công cụ như thế thường sẽ có tài liệu hướng dẫn tốt, đầy đủ, và sẵn nhiều câu hỏi cụ thể trên Stack Overflow, điều này sẽ giúp thời gian học của bạn được rút ngắn.

Ví dụ như Python, ngôn ngữ chính được sử dụng trong hệ thống Backend ở Got It. Chính nhờ việc có rất nhiều tài liệu tốt, nên HR Lead của Got It mới đây cũng đã xuất sắc hoàn thành khoá học Python chuyên sâu của Coursera. Những công cụ phổ biến còn có điểm mạnh là được cập nhật thường xuyên, tức là lỗi sẽ nhanh chóng được sửa và hiệu năng thì càng ngày càng được cải thiện.

Restful APIs với Python, Flask, và SQLAlchemy (Nguồn: realpython.com)

Cuối cùng, hãy chọn những công cụ xuất hiện nhiều trong các bản mô tả công việc.

Việc tập trung vào học những công cụ đó sẽ giúp bạn:

  • có lợi thế ở vòng CV screening, tăng khả năng được gọi phỏng vấn,
  • không ngại những câu hỏi chuyên sâu và hóc búa ở vòng kỹ năng cứng (nhờ đã nắm chắc kiến thức),
  • ghi thêm điểm ở vòng kỹ năng mềm (nhờ thái độ học tập tốt)

Kết

Chúng mình xin dùng một lời khuyên để kết lại bài viết của team Back-end nhà Got It: Thay vì dành tài nguyên vào việc học những thứ chưa chắc đã dùng, hãy cân nhắc đến việc chọn một hay hai công cụ phù hợp nhất, sau đó tập trung vào việc thành thạo chúng.

Kỹ năng mềm cũng quan trọng không kém gì kỹ năng cứng (Nguồn: Internet)

Bạn cũng nên dành thời gian cho những mảng khác trong ngành, ví dụ như rèn luyện thuật toán để tối ưu code, nghiên cứu DevOps để có thêm kiến thức về quá trình triển khai và giám sát hệ thống, hay tìm hiểu thêm những xu thế công nghệ mới như AI.

Ngoài ra, các kỹ năng mềm như tiếng Anh, giao tiếp, thuyết trình, làm việc nhóm… cũng vô cùng quan trọng, nhất là khi bạn đã đi làm. Đừng nghĩ rằng làm dev chỉ cần biết code nhé, vì chính suy nghĩ đó sẽ ghìm chân bạn trước những cơ hội thăng tiến và phát triển bản thân đấy!

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

Thao Hoang
Thao Hoang
January 17, 2020
0
Share this post to:
Tags:
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
ปั้มไลค์
ปั้มไลค์
5 months ago

Like!! I blog quite often and I genuinely thank you for your information. The article has truly peaked my interest.

Các bài viết liên quan
10 tài liệu lập trình Python tốt nhất

10 tài liệu lập trình Python tốt nhất

Trong 5 năm gần đây, Python luôn được vinh danh trong top những ngôn ngữ lập trình phổ biến nhất và được yêu thích nhất thế giới. Với những newbie về lập trình, Python cũng là một trong những lựa chọn phổ biến, bởi đây là ngôn ngữ lập trình hướng đối tượng bậc cao […]
Học Python từ cơ bản đến nâng cao với hơn 40 dự án thực tế

Học Python từ cơ bản đến nâng cao với hơn 40 dự án thực tế

Python đã và đang là một trong những ngôn ngữ lập trình phổ biến nhất thế giới hiện nay. Nhưng làm gì để thành thạo Python khi bạn chưa có nhiều kinh nghiệm làm việc? Làm sao để có một profile, một CV đẹp để ứng tuyển vào công ty mà bạn ao ước? Có […]
Git và GitHub — liệu bạn đã thật sự biết cách sử dụng?

Git và GitHub — liệu bạn đã thật sự biết cách sử dụng?

Biến Git và GitHub trở thành công cụ đắc lực cùng Software Engineer nhà Got It!
Ở tuổi 22, bạn nên có những kinh nghiệm phỏng vấn gì?

Ở tuổi 22, bạn nên có những kinh nghiệm phỏng vấn gì?

Hai mươi hai tuổi, phần lớn chúng ta đều đứng trước một ngưỡng cửa mang tên “Tốt nghiệp”. Bạn sẽ phải chọn giữa bắt đầu đi làm, hay học lên bậc cao hơn; tự đi tìm việc, hay chờ để được giới thiệu; ở lại thành phố này, hay chuyển đi nơi khác; chọn công […]
Làm Test Engineer ở Got It có lợi thế gì cho bạn?

Làm Test Engineer ở Got It có lợi thế gì cho bạn?

Test Engineer ở Got It là trải nghiệm như thế nào? Sau các bài viết về công nghệ, về quy trình tuyển dụng hay lộ trình đào tạo, hãy cùng nhìn lại một cách tổng quát nhất những lợi thế mà bạn có được khi làm Test Engineer tại Got It nhé! Khác với các […]
Thiền và những lợi ích bạn có thể chưa biết trong ngành lập trình

Thiền và những lợi ích bạn có thể chưa biết trong ngành lập trình

Mình có ý tưởng viết bài này vào một ngày chớm thu ở Hà Nội, khi thời tiết có chút se lạnh và bầu trời có vẻ dịu dàng hơn. Một không khí hoàn hảo để cho ta hít một hơi thật sâu, thả lỏng tâm hồn và cho phép cơ thể được thư giãn. […]