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.


Hãy xem bạn được bao nhiêu điểm nhé !


1. Công nghệ Web. Tối thiểu cần nắm được cơ bản về HTML, CSS và JavaScript.


2. Ngoài ra cần biết các framework cốt lõi của Web như là Angular, React/Redux. Hiểu về các quy chuẩn thiết kế API, REST, Promises và lập trình không đồng bộ (asynchronous programming).


3. Có kiến thức về các công nghệ quan trọng như ES2015, PostCSS, SVG, Long Polling và WebSockets. Cụ thể thì cần hiểu được hoạt động của long polling và làm sao để kéo giãn (scale) các hệ thống như vậy.


4. Công nghệ Back end. Tối thiểu hiểu được một web framework (Express, Flask, DropWizard, Spray), và cơ sở dữ liệu quan hệ (Postgres, MySQL.)


5. Bên cạnh đó, phải nắm rõ các hệ thống statless, caching (redis, memcached, hazelcast, hay là một phần của hệ thống akka), một cơ sở dữ liệu không quan hệ (Cassandra, ElasticSearch, MongoDB) và một hệ thống hàng đợi (RabbitMQ, Kafka.)


6. Xây dựng và deploy hệ thống. Biết sử dụng ssh. Có thể cấu hình CircleCI/Travis. Cấu hình Jenkins, tích hợp github vào các tiến trình build và release, và hiểu cách tuân theo luồng xử lý của git. Bash scripting. Ít nhất biết về Puppet, chef, ansible, hay salt để có thể thực hiện các quá trình tự động và quản lý cấu hình. Hiểu được làm thế nào để xây dựng nên hệ thống “đường ống vận chuyển liên tục” và tầm quan trọng của hoạt động bền vững (robust operational plane).


7. Hệ thống Cloud. Bởi vì chúng đang dẫn đầu thị trường. Hiểu sâu về AWS; ít nhất 2 trong số EC2, S3, ELB, SQS/Kinesis, DynamoDB/Redshift.


8. Analytics. Tối thiểu hiểu sơ lược về các hệ thống xử lý luồng/mảng quy mô lớn: Hadoop, Spark, Spark streaming, vân vân.


9. Thông thạo ngôn ngữ. Í nhất 3 trong số JavaScript, Python, Scala, Java, C#, Go.


10. Các kỹ năng cốt lõi về thiết kế. OOP/SOLID, lập trình hướng chức năng, TDD, hệ thống phân lớp, design patterns, IoC containers, cùng với nền tảng vững chắc 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.


Nguồn: Nguyễn Xuân An  Gramy.vn


 


(Edited 30/4)