/ Góc Học Tập

Bộ kỹ năng cần có của lập trình viên

Các kỹ năng cần có của lập trình viên là gì chưa? Itexpress.edu.vn chia sẻ cùng bạn bộ kỹ năng quan trọng không thể thiếu cho lập trình viên.

Ngày nay, các công ty thường tìm người có khả năng làm việc ở mọi khâu phát triển phần mềm, có khả năng trích xuất thông tin từ các cơ sở dữ liệu khổng lồ, và có tư duy chiến lược về các thiết bị mới, đồng thời cũng phải có khả năng xem xét khai thác các hệ thống cũ nhưng với các ngôn ngữ và nền tảng lập trình mới nhất.

Để tìm các kỹ năng của nhà phát triển được săn đón nhiều nhất trong năm nay, tạp chí Infoworld đã tìm đến các nhà tuyển dụng, các CTO (giám đốc công nghệ), các CEO (giám đốc điều hành), và các nhà quản lý khác, những người quyết định các công nghệ cần áp dụng, các chiến lược cần xem xét, và các kỹ năng mềm cần có. Và sau đây là 13 kỹ năng cần có của lập trình viên

Kỹ năng cần có của lập trình viên

Kỹ năng cần có của lập trình viên

1. Thành thạo JavaScript

Hiện nay, các nhà phát triển nắm vững JavaScript không sợ thất nghiệp. Trước giờ, thành thạo JavaScript luôn là kỹ năng được các nhà tuyển dụng săn tìm. JavaScript được mọi người quan tâm vì có hàng tá nền tảng và thư viện liên quan (như AngularJS hoặc React) được cộng đồng JavaScript xây dựng.

Bất kể bạn phát triển ứng dụng cho desktop, web, hoặc di động thì JavaScript luôn tỏ ra có ích và là kỹ năng rất có giá trên thị trường hiện nay.

Tuy JavaScript là vua, nhưng bạn cũng đừng bỏ qua các ngôn ngữ lập trình và giải pháp phổ biến khác như học lập trình web php tphcm hoặc Ruby on Rails và Python kết hợp với Django, bởi lẽ cả 2 giải pháp công nghệ này đều có vai trò quan trọng trong việc xây dựng ứng dụng web mở rộng.

2. Làm việc với dữ liệu lớn (Big Data)

Các dự án dữ liệu lớn ngày càng lớn hơn và chưa có dấu hiệu chậm lại trong những năm tới.

dữ liệu lớn (Big Data)

“Tuy dữ liệu lớn không phải mới nhưng đó là xu hướng cần phải nắm bắt”, ông Andrey Akselrod – nhà đồng sáng lập và cũng là Giám đốc công nghệ tại hãng Smartling cho biết, “Các nhà phát triển phải có kiến thức sâu về BI (Business Intelligence) và các sản phẩm phân tích, các công cụ máy học (machine learning), và các giải pháp khác để di chuyển, lưu trữ và tổng hợp lượng lớn dữ liệu. Chỉ khi đó, họ mới có thể giúp tổ chức của mình lưu trữ, tương tác và phân tích dữ liệu lớn để đưa ra quyết định kinh doanh tốt hơn”.

Tốc độ tạo ra dữ liệu chóng mặt và cơ hội cũng vô cùng, theo lời John Piekos hiện là Phó chủ tịch kỹ thuật tại VoltDB.

“Di động và IoT đang trở nên phổ biến khắp thế giới”, ông Piekos nói. “Các ứng dụng hiện nay khai thác một lượng dữ liệu đáng kinh ngạc, phân tích và tương tác dữ liệu trong thời gian thực. Các kỹ thuật thu thập và xử lý dữ liệu tức thời, chẳng hạn như giải pháp truyền và lưu trữ dữ liệu trong bộ nhớ, đang trở thành những kỹ năng cần có. Và kỹ thuật lưu trữ, quản lý và phân tích lượng dữ liệu khổng lồ – petabyte trở lên – sẽ là kỹ năng phục vụ đắc lực cho nhà phát triển trong thập kỷ tới”.

Đối với các nhà phát triển đang tìm cách bổ sung kỹ năng xử lý dữ liệu, có thể bắt đầu với các kỹ thuật như Hadoop, Spark, R, và đủ loại nền tảng máy học.

3. Sử dụng mã nguồn

Đặc biệt với các nhà phát triển tự do, có thể đưa chương trình lên GitHub chứng tỏ sản phẩm của bạn được dùng nhiều và được mọi người xem xét, đánh giá.

“Hãy đưa sản phẩm lên các thư viện có tiếng và mở mã nguồn để chứng minh giá trị với người sử dụng lao động tiềm năng”, Kiran Bondalapati, đồng sáng lập và Giám đốc công nghệ của ZeroStack nói. Bondalapati bổ sung thêm rằng việc đóng góp cho các dự án nguồn mở cũng có thể giúp tạo lập uy tín hợp tác.

Candace Murphy, giám đốc tuyển dụng tại công ty dịch vụ nhân sự Addison Group, nói rằng kỹ năng .Net và Java vẫn đang có nhu cầu rất lớn, nhưng “các xu hướng lớn hơn trong phát triển mã nguồn mở đang mạnh lên.

“Chúng tôi đang nhìn thấy sự gia tăng nhu cầu chuyên gia có kinh nghiệm về Ruby, Python, Node.js và Javascript nguồn mở AngularJS. Xu hướng này được thúc đẩy bởi các công ty đang chuyển ra khỏi các nền tảng truyền thống đòi hỏi phí bản quyền”, ông Candace nhận định.

4. Linh hoạt và trau dồi kỹ năng làm việc nhóm

Phát triển phần mềm linh hoạt (Agile) nên có trong bộ kỹ năng cần trang bị trong năm 2016 của các lập trình viên, theo Greg Sterndale, đồng sáng lập của PromptWorks, công ty tư vấn về ứng dụng Web và di động. Giữ cho mọi việc đơn giản: “tập sử dụng với các phương pháp có khả năng phân các dự án lớn thành những dự án nhỏ, phân mức độ ưu tiên, thích nghi với thay đổi và tạo ra giá trị tốt nhất”.

Việc phản hồi rất quan trọng trong môi trường phát triển linh hoạt, Abushadi của Dev Bootcamp nhấn mạnh sự cần thiết thấu hiểu cộng sự cũng như dự án: “Khả năng cung cấp thông tin phản hồi trung thực, tốt bụng, và có thể biến thành hành động khi làm việc theo nhóm chỉ thực sự khả thi khi bạn có sự đồng cảm, và kỹ năng trao – nhận thông tin phản hồi thường chính là sự khác biệt giữa các dự án thành công và không thành công”.

5. Lập trình di động

Các nhà phát triển di động rất được săn đón, đặc biệt là những người có thể phân phối các sản phẩm của mình rộng rãi, theo Akselrod của Smartling. Akselrod cho rằng “không thể trở thành nhà phát triển di động thành công chỉ với các kỹ năng công nghệ, mà phải có thêm hiểu biết về kinh doanh. Viết chương trình chỉ là giai đoạn đầu của dự án. Biết làm thế nào để quảng bá ứng dụng di động, thu hút và giữ chân khách hàng, mới dẫn đến thành công”.

“Khi điện thoại di động mới xuất hiện, vấn đề đầu tiên đặt ra là ứng dụng: Làm thế nào để xây dựng những trải nghiệm đặc biệt chạy tốt trên các loại thiết bị và hệ điều hành”, theo Jeff Haynie, CEO và đồng sáng lập của công ty công nghệ di động Appcelerator. “Khi ngành di động trưởng thành, yêu cầu các kỹ năng và công cụ tốt hơn, tất cả mọi người hiện nay phải đối mặt với thách thức lớn tiếp theo: Làm thế nào để có được dữ liệu – ở đúng định dạng, đúng kích cỡ, với khả năng linh hoạt và đáp ứng tức thời – đưa vào các ứng dụng? Điều đó khó hơn nhiều”.

Các vấn đề kết nối và việc các thiết bị đang rời bỏ màn hình thúc đẩy hơn nữa nhu cầu nghiên cứu dữ liệu của phát triển di động.
“Các mô hình kết nối của ứng dụng web không hiệu quả”, Haynie cho biết thêm. “Vì vậy, vấn đề này, cùng với việc ngày càng có nhiều thiết bị thậm chí không có màn hình và phụ thuộc hoàn toàn vào dữ liệu và các dịch vụ, có nghĩa là truy cập và thao tác dữ liệu thực sự là thách thức phát triển mới”.

Di động là một trong những khía cạnh hấp dẫn nhất của IoT, theo Reinero của MongoDB. Nhưng ông cảnh báo nó cũng đặt ra những thách thức.
“Các ứng dụng di động có thể trở nên bùng nổ và đặt gánh nặng lên cơ sở hạ tầng”, Reinero nói, “Điều này có nghĩa mọi thành phần back-end của dịch vụ di động, bao gồm cả các máy chủ ứng dụng và máy chủ cơ sở dữ liệu, phải có khả năng mở rộng một cách nhanh chóng. Nhà phát triển cần phải làm quen với cả với mô hình nhân rộng các thành phần riêng lẻ … cũng như làm thế nào để quản lý các giải pháp cơ-sở-hạ-tầng-như-một-dịch-vụ như Amazon Web Services, Microsoft Azure, và Google Cloud Compute”.

Ngay cả khi lập trình di động không phải là điểm mạnh của bạn, làm quen với công nghệ mới có thể thúc đẩy sự nghiệp của bạn.

“Đối với di động, các nhà phát triển có kinh nghiệm UX/UI (giao diện người dùng) đang có nhu cầu cao”, Jason Hayman, giám đốc nghiên cứu thị trường của TEKsystems nói. “Khả năng hiểu và làm việc cộng tác hiệu quả với UX/UI ưu có thể làm cho các nhà phát triển trở thành ứng cử viên sáng giá hơn”.

6. Bảo mật

Theo Murphy của Addison, các công ty bị các lỗ hổng bảo mật trong năm rồi đã biết mình cần gì và những kỹ năng nào có ích nhất cho họ trong năm 2016.

“Họ đang dùng cách tiếp cận chủ động hơn để tăng cường an ninh, không chỉ trong bộ phận CNTT”, Murphy nói. “Kết quả là chúng ta sẽ chứng kiến sự thay đổi các kỹ thuật được yêu cầu nhiều nhất trong năm nay”.

Các chuyên gia ghi nhận sự gia tăng nhu cầu đối với an ninh mạng, bảo mật ứng dụng cũng như bảo mật đám mây.

“Với sự gia tăng trong việc áp dụng điện toán đám mây, các tổ chức ngày càng lo ngại về bảo mật và tương hợp”, Aashish Kalra, chủ tịch của Cambridge Technology Enterprise nói. “Điều này đã dẫn đến một sự bùng nổ về nhu cầu cho các chuyên gia về bảo mật, kiểm soát và quản trị dữ liệu”.

Tuy các nhà phát triển có truyền thống chuyển vấn đề này cho chuyên gia bảo mật, nhưng nhu cầu cần nhà phát triển đảm bảo an toàn chương trình của họ không ngừng tăng lên. Hãy xem nó như một kỹ năng vô giá cần bổ sung.

7. Gì cũng biết

Nhiều công ty hàng đầu hiện nay săn lùng các nhà phát triển đa năng, làm việc thoải mái với đủ loại kỹ thuật và nền tảng, “những người hiểu được ý nghĩa quyết định về mặt kỹ thuật từ các lớp xử lý bên dưới của phần mềm đến các lớp thể hiện bên trên”, Hossein Rahnama, người sáng lập và giám đốc sản phẩm của công ty mới khởi nghiệp Flybits nói. “Họ là tài sản lớn của công ty vì giúp cho công việc của các đồng nghiệp dễ dàng hơn nhiều và giúp cho công ty khởi nghiệp tránh được việc phát triển cục bộ, cho phép duy trì các đội phát triển ở quy mô nhỏ và hiệu quả”.

Tham gia các dịch vụ như Top Coder và Amazon Mechanical Turk là cách tuyệt vời để tham gia những dự án thú vị và mở rộng kiến thức chuyên môn, Bryan Reinero, nhà phát triển tại MongoDB, cho rằng: “mở rộng kiến thức chuyên môn vừa tốt cho nhà phát triển vừa tốt cho các công ty mà họ làm việc”.

8. Đầu tư cho devops

Devops là khái niệm mới (kết hợp 2 từ “development” và “operations”), thường được mô tả là “người chịu trách nhiệm viết ứng dụng và cũng là người duy trì vận hành ứng dụng”.

Một số chuyên gia công nghệ nghĩ devops sẽ bị bỏ rơi khi việc sử dụng điện toán đám mây đang dần xâm nhập môi trường doanh nghiệp. Nhưng theo Reinero thì không phải vậy. “Kỹ năng devops khác hẳn, đòi hỏi khả năng phân tích các khía cạnh kỹ thuật để hiểu chương trình vận hành thực tế ra sao và quan tâm đến hiệu suất cũng như sự ổn định trong giai đoạn phát triển”.

Có được những cơ hội việc làm hấp dẫn không phải là lý do duy nhất để xem xét thêm devops vào CV của bạn; đơn giản, kỹ năng devops làm cho bạn trở thành một nhà phát triển tốt hơn và là một người làm việc cộng tác vô giá.

“Các nhà phát triển có tư duy này sẽ phát triển chương trình tốt hơn, nhanh hơn và tự tin hơn”, Reinero nói. “Phương thức Devops cũng cải thiện sự gắn kết và sự linh hoạt của đội ngũ. Đây là điểm cộng giúp công ty vượt lên”.

9. Đa dạng hóa

Những kỹ năng mà các công ty hiện nay tìm kiếm đa dạng hơn đáng kể so với vài năm trước, theo Stagno của WinterWyman Search: “Thị trường vẫn cần Java và C#, nhưng khi bạn nhìn vào nhu cầu tuyển dụng các công ty ra đời sau đợt suy thoái kinh tế lần cuối, bạn sẽ thấy Ruby on Rails, Python / Django, Node.js, và các ngôn ngữ lập trình chức năng như Scala”.

“Bạn không cần phải chạy đua theo công nghệ, nhưng cần đảm bảo mình không bị lạc hậu, thị trường thay đổi không ngừng”.

10. Lên mây

Nhu cầu ổn định về các nhà phát triển quen thuộc với Amazon Web Services và Microsoft Azure không có gì ngạc nhiên. “Trong các nhà cung cấp điện toán đám mây, Amazon vẫn là tay chơi lớn nhất cho đến nay, vì vậy cần nắm bắt các dịch vụ cao cấp của họ như API Gateway, Lambda và Container Service”, theo Nic Benders, kiến trúc sư trưởng tại New Relic.

Khi nói đến phát triển cơ hội nghề nghiệp trên đám mây, không chỉ có các công cụ,. Một phần của xu hướng đang diễn ra, các công ty đang tìm kiếm các nhà phát triển có kỹ năng kinh doanh, bao gồm cả quản lý dự án và khả năng đàm phán với các nhà cung cấp, theo Hayman của TEKsystems.

“Ngoài ra còn có nhu cầu về các kỹ năng có khả năng ‘thúc đẩy doanh nghiệp tiến lên’, nhưng ít có nhu cầu về công việc chiến thuật, vì các nhà cung cấp điện toán đám mây hiện nay đang ngày càng chịu trách nhiệm về điều đó”.

“Thành công trên đám mây có nghĩa là cơ sở hạ tầng triển khai an toàn, được giám sát và được quản lý đúng cách”, Reinero của MongoDB nói. “IaaS và các nền tảng điện toán đám mây cung cấp cơ hội tuyệt vời, nhưng quản lý không phù hợp cơ sở hạ tầng điện toán đám mây phân tán có thể làm tiêu tan bất kỳ lợi thế nào nếu các thất bại làm cạn kiệt thời gian và ngân sách của đội ngũ, và dẫn đến tổn thất kinh doanh”.

11. IoT: Thực hiện kết nối

Khái niệm IoT (Internet of Things) đã có từ lâu, còn hiện giờ thì vừa là nhu cầu tuyển dụng, vừa là kỹ năng mà các nhà phát triển tài năng muốn khám phá. Và nó không chỉ dành cho các nhà phát triển hệ thống nhúng.

“Ngay cả nhà phát triển JavaScript cũng cần kỹ năng này”, theo Hossein Rahnama của Flybits. “Sự xuất hiện của các giao thức như Wi-Fi Halo và các công cụ phát triển cho các thiết bị đeo và IoT mở ra nhiều cơ hội cho các nhà phát triển để thoát khỏi các màn hình và xây dựng mọi thứ cho môi trường xung quanh. Chúng ta cũng sẽ thấy rất nhiều thiết kế phần cứng/phần mềm đồng thời nhờ sự ra đời của những công cụ này”.

Reinero của MongoDB nhìn thấy những cơ hội mới, ở đó các thiết bị y tế và điện toán đám mây hội tụ: “Nó gồm thiết bị đeo được sử dụng cho điều trị và chăm sóc ngoại trú, và các thiết bị nhỏ hơn được sử dụng trong chẩn đoán”. “Các thiết bị này sẽ cho phép chúng ta biết nhiều hơn về cơ thể mình. Việc thu thập và phân tích dữ liệu sẽ là một phần quan trọng trong cách sử dụng các thiết bị này. Tính sẵn có của cơ sở dữ liệu phi quan hệ có khả năng mở rộng được sử dụng kết hợp với các hệ thống phân tích sẽ cho phép các chuyên gia phân tích dữ liệu y tế ở quy mô không thể có trước đây”.

12. Thuyết trình

Thế còn kỹ năng mềm? Các chuyên gia thường nêu lên ý rằng khả năng làm việc với các phòng ban là nhu cầu hàng đầu cho nhân viên mới.
“Kỹ năng quản lý khách hàng là quan trọng, đặc biệt là khả năng xử lý một cách khéo léo nhưng thuyết phục khi có những lựa chọn thay thế có giá trị hơn”, Sterndale của PromptWorks nói. “Cũng có thể giáo dục khách hàng về tính chất của phần mềm, hướng dẫn họ những cách thức mà sẽ phục vụ họ tốt nhất về lâu dài”.

“Kỹ năng truyền đạt trong môi trường doanh nghiệp trở nên quan trọng hơn hết”, theo Murphy của Addison Group. “Với việc bảo mật dữ liệu và sự riêng tư trở nên hết sức quan trọng, chuyên gia CNT không được làm lộ thông tin trong các cuộc họp, phải trình bày công việc của mình một cách ngắn gọn nhưng dễ hiểu”.

13. Ứng xử

Nếu bạn là nhà phát triển đa năng, thì cầu nhiều hơn cung. Nhưng nếu bạn đang muốn thay đổi nghề nghiệp, thái độ đúng đắn có thể làm nên sự khác biệt.

“Không ít lần, tôi nhận được phản hồi từ các nhà tuyển dụng về nhà phát triển không nhất thiết là người tài năng nhất trong nhóm, nhưng là một trong những người được đánh giá cao nhất vì thái độ”, Stagno của WinterWyman Search nói, “Họ là một thành viên tốt trong nhóm, sẵn lòng tham gia tìm giải pháp chứ không phải gây ra thêm vấn đề, ra tay giúp đỡ các thành viên trong nhóm, góp ý tưởng và góp sức để cải thiện sản phẩm”.