Lập trình

Lập trình viên cần học những gì?

Huy Erick

Một câu hỏi được nhiều bạn sinh viên IT quan tâm là để trở thành một lập trình viên cần học những kiến thức gì, rèn luyện kỹ năng gì? Câu hỏi này có vẻ...

Một câu hỏi được nhiều bạn sinh viên IT quan tâm là để trở thành một lập trình viên cần học những kiến thức gì, rèn luyện kỹ năng gì? Câu hỏi này có vẻ đơn giản nhưng thực tế lại rất khó để trả lời. Lập trình là một lĩnh vực rất rộng, có hàng tá ngôn ngữ cần phải học, hàng trăm công nghệ cần nghiên cứu, và môi trường làm việc tại mỗi công ty lại hoàn toàn khác nhau. Vì vậy, nhiều bạn sinh viên vẫn cảm thấy mông lung và không biết nên bắt đầu từ đâu.

Dạo gần đây, tôi đã tham gia một số nhóm lập trình trên Facebook và nhận ra rằng hầu hết các bạn sinh viên vẫn chưa thể tưởng tượng được cuộc sống ngoài kia của các lập trình viên chuyên nghiệp. Vì vậy, trong bài viết này, tôi muốn chia sẻ những kinh nghiệm "code thuê" của mình trong nhiều năm làm việc, như một lời tâm sự, để cố gắng miêu tả cho các bạn sinh viên về đời sống thực của các lập trình viên, họ đang làm gì? Dùng ngôn ngữ gì? Có mệt không? Và làm thế nào để sống sót.

Kỹ năng mềm:

Bạn phải nhớ rằng lập trình là "giải quyết vấn đề bằng máy tính" chứ không phải "lập trình là viết code" như được dạy trong trường đại học. Lập trình giải quyết các vấn đề thực tế trong cuộc sống, vì vậy bạn cần phải rèn luyện nhiều kỹ năng khác nhau để có thể giải quyết được vấn đề. Điều này mới là thứ quan trọng nhất, không phải chỉ kỹ năng code của bạn. Kỹ năng mềm bao gồm cả kỹ năng phỏng vấn xin việc, trình bày vấn đề, phác họa ý tưởng, văn hóa văn nghệ và nhiều hơn nữa.

Team work: Làm việc nhóm, tức là làm việc với người khác. Trong công việc lập trình, không ai làm việc một mình cả. Bạn phải biết làm việc với code của những người khác và học hỏi từ những người giỏi hơn mình. Rất nhiều tài liệu và sách về giao tiếp và tâm lý học có thể giúp bạn phát triển kỹ năng giao tiếp và hòa nhã với mọi người. Điều quan trọng là biết trình độ của mình và luôn có tinh thần nâng cao. Đôi khi, sau một ngày làm việc căng thẳng, hãy tụ tập với đồng nghiệp để thư giãn và tăng tinh thần đoàn kết.

Tiếng Anh: Mình nói thật, không biết tiếng Anh thì đừng mơ lập trình giỏi. Hầu hết tài liệu và nguồn thông tin trong lĩnh vực này đều dùng tiếng Anh. Tuy nhiên, bạn không cần phải thành thạo tiếng Anh như một người bản địa hay đạt điểm cao trong TOEIC để thành công trong lập trình . Bạn chỉ cần đọc và hiểu tài liệu, có thể tìm cách fix lỗi trên Stack Overflow và viết tên các hàm bằng tiếng Anh. Trong thời đại toàn cầu hóa hiện nay, code của bạn có thể được đọc bởi một người nước ngoài, vì vậy việc có kiến thức tiếng Anh là một lợi thế lớn. Đừng lo lắng, dùng từ điển khi gặp từ khó và sau một thời gian, bạn sẽ đọc được tiếng Anh một cách thuần thục.

Kỹ năng tự học: Đây là yếu tố sống còn trong lĩnh vực công nghệ. Công nghệ thay đổi với tốc độ chóng mặt và kiến thức mà bạn học hôm nay có thể trở nên lỗi thời sau vài năm. Vì vậy, để không bị tụt hậu, bạn cần "học cách học". Hãy tìm hiểu cách tiếp thu kiến thức một cách nhanh nhất có thể.

Vấn đề sức khỏe: Đừng tưởng làm lập trình ngồi một chỗ trong phòng máy lạnh thì không cần quan tâm đến sức khỏe. Sau vài năm làm việc, bạn sẽ trải qua một số vấn đề như đau lưng, mỏi vai hay hoa mắt. Hãy bỏ ngay những thói quen thức khuya, ăn uống không đúng giờ và sử dụng chất kích thích như rượu bia, thuốc lá. Hãy tìm thời gian để vận động và chơi thể thao. Sức khỏe là yếu tố quan trọng để theo đuổi đam mê của bạn.

Chuyên môn về kỹ thuật:

Lập trình là một ngành kỹ thuật, vì vậy bạn cần trang bị cho mình kiến thức về kỹ thuật. Vậy lập trình viên cần học những gì?

Mình sẽ chia lập trình viên thành một số loại để bạn có thể chọn theo đuổi:

Mảng mobile: Bạn sẽ viết phần mềm chạy trên các điện thoại thông minh, đặc biệt là Android và iOS. Mảng này đang rất hot vì sự phát triển của thiết bị di động và số lượng người dùng tăng cao. Để theo mảng này, bạn cần học Java (nếu bạn theo Android) hoặc Objective-C, Swift (nếu bạn theo iOS). Hiện nay, có một số công nghệ multi-platform như React Native và Flutter cũng rất được ưa chuộng.

Mảng embedded: Còn được gọi là lập trình nhúng, tức là viết chương trình chạy trên các thiết bị điện tử như tivi, điều hòa, tủ lạnh, máy giặt, robot và nhiều hơn nữa. Mảng này khá khó và yêu cầu trình độ cao, liên quan đến điện tử. Tuy nhiên, đây là một mảng thú vị và có tiềm năng phát triển cao. Bạn cần học ngôn ngữ C, C++ hoặc Java để theo mảng này.

Mảng web: Web là một lĩnh vực không còn xa lạ gì nữa. Mảng này luôn có cầu về nhân lực, nhưng lương không cao như một số mảng khác. Có rất nhiều ngôn ngữ lập trình được sử dụng để phát triển web, như PHP, Java, Node, Python, Ruby và nhiều hơn nữa. Ngoài ra, bạn cần phải học thêm HTML, CSS và JavaScript. Trong mảng web, bạn có thể chọn phát triển ở ba hướng: backend, frontend và fullstack. Lập trình viên backend xử lý phía máy chủ, lưu trữ dữ liệu, trong khi lập trình viên frontend xử lý phía máy khách, hiển thị giao diện với người dùng. Lập trình viên fullstack đa năng hơn, là người làm cả backend và frontend.

Mảng desktop app: Tức là viết phần mềm chạy trên máy tính. Có nhiều ngôn ngữ lập trình có thể được sử dụng để phát triển các ứng dụng class='hover-show-link replace-link-5' ứng dụng span class='hover-show-content'> desktop, như C#, Python, C, C++. Mình khuyên bạn nên học .NET WinForms để làm ứng dụng class='hover-show-link replace-link-5' ứng dụng span class='hover-show-content'> trên nền tảng Windows. Việc lựa chọn một trong bốn mảng trên và tìm hiểu kỹ về nó là điều cần thiết. Khi bạn học đến năm 3 hoặc năm 4, hãy làm một số dự án nhỏ để có thể thực hành và có cái để trình bày khi đi xin việc. Làm việc thực tế và trải qua một số dự án sẽ giúp bạn tích luỹ kiến thức theo thời gian.

Đừng lo lắng nếu bạn cảm thấy trình độ của mình chưa đáp ứng yêu cầu công việc. Các công ty thực tập sẽ cung cấp chương trình đào tạo và hướng dẫn cho bạn. Kể cả các lập trình viên có kinh nghiệm, khi chuyển sang một môi trường làm việc mới, họ vẫn cần thời gian để làm quen với hệ thống hiện tại.

Cố gắng rèn luyện và học hỏi mỗi ngày. Lập trình là một thế giới rất thú vị và đầy tiềm năng. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về những gì bạn cần học và những thách thức bạn sẽ gặp phải trên con đường trở thành một lập trình viên. Chúc bạn thành công với đam mê của mình.

Hình ảnh minh họa

1