Recently, veteran brother in the series share the idea grew from a programmer to architect, engaged in combing the architecture work needs to be familiar with or proficient in hard and soft skills, is now released out small partners invite you to explore together, I will continue to improve the follow-up added:
Programming language
Strong typing: C ++, Java
Weak Type: Javascript, Python
标记 type: XML, HTML, JSON, YAML
Development Framework
Presentation Layer: React, Vue, Flutter, Weex
FIELD layer: Spring, Spring Boot
Data layer: Hibernate, MyBatis, JPA
Base layer: Log4j, LogBack, Quartz, C3P0
programming
OOD OOD
Design Patterns Design Patterns
Domain-Driven Design DDD
Database class
Relational: MySQL, PostgreSQL, Oracle
NoSQL:Redis、MongoDB、HBase、Neo4j
SQL, stored procedures
Query optimization (indexing, storage, partitions)
operating system
Linux、Windows、Android、iOS
Process, storage, file, equipment, operations, etc.
Network protocol
Network Layer: IP
Transport Layer: TCP, UDP
Application Layer: HTTP, FTP, SMTP, NTP
Middleware category
Message type: ActiveMQ, Kafka, RocketMQ
Containers: Apache, Tomcat, Nginx
Indexing: Lucene, Solr, ElasticSearch
Security Mechanism
Authentication OAuth2.0
RBAC permissions authentication
Risk vulnerabilities: XSS, CSRF, SQL injection, script injection
Precautions: verification code, digital signatures, digital certificates
Infrastructure
Resource selection, capacity estimate: VPC, network domains, IP network segment, domain name
Firewall Policy
Load balancing strategy: F5, LVS, HAProxy, Nginx
Data architecture
Data Modeling
Storage solutions
Database Selection
HA solutions (separate read and write)
Backup program (hot, cold, from the master)
Disaster recovery plan (city, remote)
Synchronization scheme (real-time)
Application Architecture
Architecture Selection: C / S, B / S, SOA, micro-services (Dubbo Spring Cloud Service MeshServerless
Architectural view: logical, process, development, deployment, etc.
Interface design: RESTful, JMS, IPC, RPC
Distributed Systems
Scalability Design: vertical extension, horizontal expansion
Availability design: current limiting, fuse, downgrade
Consistency design: ACID, BASE, CAP and other theories, distributed transaction (lock), distributed consensus algorithm
Partition fault tolerance
Reliability design: service isolation, asynchronous calls, resource redundancy
Comprehensive Skills
Software Engineering
Project management
Self-marketing: writing, PPT, lectures, training, consulting
Architect, is the main direction of our programmers Daguai upgrade, it is not like a newspaper training courses can get individual skill, competence architecture work to slow the accumulation of a lot of skills, both hard skills as well as soft skills. Bite to eat fat. From the programmer to architect can not be done overnight, it is a gradual, steady improvement still exists between the order of advanced process, each stage has to master the skills of each stage, a number of skills. If you want to upgrade to the architect, you can reserve these skills consciously in their daily work.
Adhere to the original is not easy, if you feel valuable, trouble moving hands and pointing a " Like " or forward to more junior partner, veteran brother will be more motivated to adhere to. In addition, I will continue to share career planning, job interview, skills upgrading, to build influence and other experience, focus on " IT veteran brother " program enabling life!