10 điều quan trọng cần biết của một lập trình viên trong ngành công nghệ năm 2016 và xa hơn nữa. Các lập trình viên hãy đón đầu xu thế để không bị bỡ ngỡ trong thời đại công nghệ phát triển liên tục.
- Công nghệ Web. Tại một mức độ tối thiểu đối với một người học lập trình, bạn phải có những hiểu biết cơ bản về HTML, CSS và JavaScript.
- Sự hiểu biết về các framework cần thiết như Angular, ReactJS. Hiểu được các nguyên tắc thiết kế trong API, kiến trúc phần mềm REST, Promises và asynchronous programming (lập trình không đồng bộ).
- Luôn nắm rõ các nguyên tắc cơ bản về một trong các kỹ thuật sau: ES2015, PostCSS, SVG, Long Polling and WebSockets. Đặc biệt là hiểu được nguyên lý hoạt động của Long Polling trên hệ thống như thế nào.
- Back End – hiểu được các kiến thức cơ bản về framework web chẳng hạn như Express (NodeJS), Flask, Dropwizard (Java), Spray và các cơ sở dữ liệu phổ biến như (Postgres, MySQL…)
- Sự hiểu biết về các hệ thống Stateless và Stateful, caching system – bộ nhớ đệm (redis, memcached, hazelcast), cơ sở dữ liệu không dùng mô hình dữ liệu quan hệ để quản lý dữ liệu trong lĩnh vực phần mềm là NoSQL (Cassandra, ElasticSearch, MongoDB) và queueing system (RabbitMQ, Kafka).
- Thiết lập và triển khai hệ thống. Biết được cách sử dụng SSH, có thể cấu hình CircleCI/Travis. Thiết lập cấu hình Jenkins, tích hợp git để tiến hành các quy trình build và release, hiểu được luồng xử lý git. Bash scripting. Ít nhất hiểu được các Puppet, chef, ansible, or salt để tiến hành quá trình tự động hóa và quản lý cấu hình.Hiểu được cách thức để xây dựng hệ thống “đường ống vận chuyển liên tục” và robust operational plane (hoạt động bền vững).
- Cloud Systems (hệ thống điện toán đám mây). Các hệ thống cloud dường như đang trở thành một xu thế, sự hiểu biết về vấn đề này cũng rất quan trọng là AWS. Nắm được rõ 2 trong số các công nghệ sau: EC2, S3, ELB, SQS/Kinesis, DynamoDB/Redshift.
- Analytics. Hiểu được các khái niệm cơ bản về hệ thống xử lý luồng/mảng có quy mô lớn như: Hadoop, Spark, Spark streaming…
- Các ngôn ngữ lập trình. Ít nhất 3 trong số các ngôn ngữ: JavaScript, Python, Scala, Java, C#, Go.
- Các kỹ năng quan trọng trong thiết kế. Lập trình hướng đối tượng, lập trình hướng chức năng, TDD (Test Driven Development), hệ thống phân lớp, design patterns, mô hình IoC, cùng các nền tảng về xử lý song song.
Tất nhiên là còn rất nhiều nữa. Nhưng chỉ gói gọn trong danh sách liệt kê trên. Chắc hẳn rằng có rất ít người biết được hoàn toàn về 10 vấn đề này và càng ít người có may mắn làm việc với các công nghệ trên. Các lập trình viên hãy đón đầu xu thế để không bị bỡ ngỡ trong thời đại công nghệ phát triển liên tục.
Techtalk via Gramy