Hỏi - đáp Nơi cung cấp thông tin nghề nghiệp và giải đáp những thắc mắc thường gặp của bạn

Bạn đang là kiểu lập trình viên nào? - Phần 2

>>> Xem lại Phần 1

Ma trận năng lực / Competence Matrix

Ma trận năng lực dùng để kiểm tra xem thành viên của team có đủ khả năng để thực hiện một task bất kỳ hay không. Thường thì ma trận sẽ thiết kế theo hai trục ngang và dọc. Một trục là những thành viên trong team, trục còn lại là những kỹ năng, công nghệ liên quan đến dự án. 

Sau đó, từng thành viên trong team tự đánh giá bản thân mình, và kết quả sẽ được đặt ở vị trí mà mọi người đều có thể nhìn thấy. 

Bảng ma trận năng lực có thể giúp bạn tìm ra được những điểm nhấn về khung kỹ năng, từ đó có thể đưa ra được những quyết định điều chỉnh nhân sự chính xác hơn.

Mô hình đường cao tốc/Highway Metaphor

Mô hình đường cao tốc là một thuật ngữ riêng mà tôi nghĩ ra để phân biệt các kiểu lập trình viên ở trên. Ý tưởng đến từ sự đa dạng của cuộc sống hàng ngày của chúng ta. Cuộc sống là một quá trình thích ứng đa dạng và không có câu trả lời nào là hoàn hảo cho mỗi người. 

Do vậy, tôi bắt đầu nhìn vào cuộc đời lập trình viên theo một cách tương tự. Như một con đường cao tốc, chúng ta có rất nhiều làn để đi, mỗi làn đều có một giới hạn tốc độ, tải trọng, trở ngại và những ưu tiên riêng. Bên cạnh đó, chúng ta có thể thêm hoặc gỡ bỏ làn đường. Tất cả đều tùy thuộc vào chúng ta và chỉ có chúng ta có thể lựa chọn được con đường phù hợp nhất để đầu tư thứ quý giá nhất của mình vào đó: thời gian.

Theo cách nhìn của tôi, thì sự nghiệp của một kỹ sư phần mềm có một số làn đường quan trọng như sau: 

  • Ngôn ngữ lập trình/Language.
  • Thị trường ngách/Domain.
  • Kiến trúc dự án/Architecture.
  • Hướng công nghệ/Technology focus.
  • Công nghệ./Technologies
  • Lưu trữ dữ liệu./Storage
  • Định dạng dữ liệu/ Data format
  • Caching.
  • Search engines.
  • Engineering practices.
  • Testing.
  • DevOps.

Ngôn ngữ lập trình/Programming Languages

Ngôn ngữ lập trình có thể phân thành nhiều loại khác nhau, ví dụ như kiểu static hay dynamic, kiểu strong hay weak. Nếu bạn thành thạo một ngôn ngữ, hãy chuyển hướng sang ngôn ngữ khác, điều này sẽ giúp làm mở rộng tầm nhìn của bạn, đồng thời giúp bạn nhìn rõ được điểm yếu và điểm mạnh của ngôn ngữ mình đang dùng.

Thị trường ngách/Domain

Một sản phẩm có thể thuộc về một trong những thị trường ngách, ví dụ:

  • Mạng xã hội /Social.
  • Quảng cáo/Advertising.
  • Thương mại điện tử/E-Commerce.
  • Chăm sóc sức khỏe/Healthcare.
  • Tiện ích/Utilities.
  • Viễn thông/Telecom.
  • Tài chính/Finance.
  • Game/Gaming.

Bạn có thể đầu tư thời gian để hiểu rõ hơn về thị trường ngách mà mình thích và bạn đang làm việc, để nâng cao giá trị của mình. Ví dụ nếu bạn hứng thú với thị trường quảng cáo, bạn cso thể tìm hiểu về lượt click, view, các chỉ số CPI, CPM, CPC..vv. Và khi bạn không còn hứng thú với nó, hãy chuyển sang thị trường khác. Điều này sẽ làm tăng hiểu biết, làm CV của bạn trở nên đẹp hơn và giúp bạn tìm được hướng đi phù hợp nhất với mình.

Kiến trúc phần mềm/Architecture

Một lối đi khác cho bạn đó là kiến trúc phần mềm, công việc của bạn là nghiên cứu, đưa ra giải pháp tối ưu nhất về mặt  mọi kiến trúc sư khi đưa ra giải pháp cho bất cứ bài toán nào cũng đều phải cân nhắc chi phí, lợi ích tương quan của doanh nghiệp , khi tham gia vào một dự án, kiến trúc sư phải cân nhắc những giải pháp, công nghệ sắp xuất hiện, xem xét những thay đổi gần đây trong lĩnh vực công nghiệp đang phát triển… và làm cách nào để tận dụng tối đa giải pháp hiện tại trong tương lai. Đồng thời họ cũng phải có kỹ năng giao tiếp tốt.

Công nghệ/Technology Focus

Hiện nay thì thị trường có rất nhiều công nghệ để lập trình viên lựa chọn.

Phần mềm doanh nghiệp/Enterprise software

Java EE, SOA, ESB, integrations, etc.

Dữ liệu lớn/Big data

Batch/real-time, Hadoop ecosystem, Storm, Heron, Spark.

High load

Scalability, caching, search engines, etc.

Khoa học dữ liệu/Data science

Machine learning, NLP, CV, etc.

Internet of things/IoT

Smart devices, sensors, etc.

BI

OLAP, ETL, data warehousing, etc.

Điện toán đám mây/Cloud

Virtualization, AWS, OpenStack, CloudFoundry, etc.

Storages

Bên cạnh những giải pháp như RDBMS (Postgres, MySQL, Oracle, etc.) thì những giai pháp  NoSQL (Cassandra, MongoDB, HBase, Riak, Redis, etc.) or even NewSQL (VoltDB, Gemfire, etc.) cũng rất đáng lưu tâm.  This resource can be a great starting point for you. 

DevOps 

DevOps không phải là một công cụ, nó là một phương pháp tiếp cận và đó là một văn hóa với mục tiêu tối ưu hóa vòng đời phát triển phần mềm SDLC (Software Development Life Cycle) bằng cách đưa sự phát triển (development) và operation xích lại gần nhau hơn. Đó là một hệ tư tưởng hoàn toàn mới đã quét qua các tổ chức CNTT trên toàn thế giới, thúc đẩy các vòng đời dự án và làm gia tăng lợi nhuận. DevOps thúc đẩy sự hợp tác giữa các kỹ sư phát triển và bộ phận operation, tham gia với nhau trong toàn bộ vòng đời dịch vụ, từ thiết kế đến quá trình phát triển để hỗ trợ sản xuất.

"Dev" là một thuật ngữ dùng chung cho tất cả các nhà phát triển phần mềm trong khi "Ops" bao gồm các kỹ sư hệ thống, quản trị hệ thống, nhân viên operation, kỹ sư phát hành, DBA, kỹ sư mạng, chuyên gia bảo mật, và nhiều công việc phụ khác. Khi kết hợp, DevOps xóa đi khoảng cách giữa Development (phát triển) và Ops bằng cách giảm đi sự không chắc chắn của việc phát hành và thay đổi. Nó cũng làm giảm thiểu rủi ro liên quan đến các giai đoạn khác nhau của việc quản lý phát hành, bao gồm: Build (xây dựng), (Deploy) triển khai, Test (kiểm thử), và Continuous Improvement (cải tiến liên tục).

Sự lan rộng của phong trào DevOps đã mang lại vô số cơ hội nghề nghiệp cho các kỹ năng khác nhau. Tùy thuộc vào tính chất công việc mà bạn có thể tìm thấy cho mình những công việc phù hợp.

Via Techmaster