The knowledge of architecture was classified depending on the level and activity of specialists. A memo for those who want to pump their skills in designing applications or software, but are not well versed in the sequence in which to master them.
The entire field of architecture can be divided into 2 levels: the basic knowledge needed already at junior positions to better navigate the project, and skills for working with different systems – these can be highly loaded systems, software development, or transferring and working on an application in the cloud services.
Naturally, the task and role of the specialist in the project determines what is useful in the work. For example, a Senior Developer, Software Architect or Service Station may need to master everything. But an infrastructure engineer who works with cloud services is only the relevant part of transferring applications to the cloud.
Further, we have revealed in more detail what, for whom and what prospects each section provides.
Step 1. Architecture and patterns
The very minimum that, in a good way, should be possessed by any specialist involved in the development.
|You need to study if you …||Develop software products|
|Integrate or develop existing products|
|Junior Software Developer|
|The acquired skills. what do you need to learn to do?||Apply design patterns in development and understand solid principles|
|Know modern software development processes|
|Embed devops in your development processes, improving code and minimizing errors|
|To conduct development from setting a business task to implementation on a production server|
|Draw business processes and diagrams|
|What posts are required?||Middle developer|
In OTUS, these skills are provided by an online course. “Architecture and patterns”. There is no language binding in it – the main thing is to be familiar with the basic concepts of programming, to know the principles of OOP.
More specialized in-depth skills usually go to those who plan a career as an architect or technical expert (STO). But other experts may need this knowledge.
Stage 2. Architecture of highly loaded systems
This is the area of web development, major projects and services: social networks, Internet portals, markets, etc. For a developer who is guided in the principles of the design of highly loaded systems – this knowledge is a competitive advantage and a component of career growth.
|You need to study if you ..||Web developer|
|Team leader web team|
|Middle + developer with experience of 2 years|
|The acquired skills. what do you need to learn to do?||Build web apps that scale easily|
|Ensure web application resiliency even when servers crash|
|Use templates correctly (caching, replication, sharding, indexing)|
|What posts are required?||Architect|
|Lead developer on a complex project|
To master the skills you need a fairly confident experience in development. Those who plan to study in our course “High Load Architect” will require the following level of training:
- Proficiency in one of the server development languages - Python, PHP, Golang (preferred), NodeJS (as a last resort), Java (as a last resort)
- The ability to layout sites at a basic level
- SQL, MySQL skills
- Linux skills
Stage 3. Software Architecture
We can say that software design is aerobatics for the architect and leading developers. A specialist needs both knowledge in the field of highly loaded systems and the nuances of software architecture.
|You need to study if you …||Senior developer|
|The acquired skills. what do you need to learn to do?||Plan software architecture|
|Create scalable, fault-tolerant applications|
|Use classic design patterns in projects (sharding, replication, etc.)|
|What posts are required?||Senior developer|
In OTUS, the course “Software Architect” partially overlaps the program with “Highload Architect”, but at the same time it is more complex. An applicant will need knowledge and experience at the Senior level in one of the following stacks: Java (spring / Java EE), Node.js, C # (.net), python (django), Golang, PHP.
Step 4. Cloud Architecture
This area includes not only the configuration of distributed systems in the cloud, but also the organization of development processes according to a flexible methodology. On the one hand, these skills can be the final touch of an advanced architect, and on the other hand, they can be a useful additional skill for an administrator or infrastructure engineer.
|You need to study if you …||A network and system administrator who wants to become a devops engineer and learn how to maintain a cloud infrastructure|
|A manager or team leader who wants to learn how to transform their organization, technical architecture, and workflows to ensure they work in the cloud|
|The acquired skills. what do you need to learn to do?||Develop and maintain cloud application architecture|
|Perform the migration process to the cloud of the application stack and adapt the organization, roles and work processes (framework recommendations, cost, development of a migration plan)|
|Use a set of architectural requirements tailored for use in the cloud (requirements formation, implementation and analysis)|
|To have an approach to agile devops development and maintenance of cloud architecture (infrastructure as code)|
|Set up scrum process of joint development and maintenance of architecture|
|What posts are required?||Head of development|
|Cloud solution architect|
The demand for these design skills is growing as cloud services occupy an increasing share in the global development industry. It is assumed that they are needed primarily for those who plan to move to a managerial position from a Senior developer or DevOps engineer.
The course “Cloud Solution Architecture” does not intersect with the programs of the Software Architect and high loads, it can be completed by mastering the basics of design. For training, you need experience in development or administration, as well as experience with one of the clouds: GCP, AZURE, AWS. The course itself is devoted to the tasks that a senior level specialist faces – a middle or a junior will not be able to put their knowledge into practice.
Knowledge of architecture and patterns is a significant advantage in the eyes of the employer. This is also the main way to grow from a coder into a sought-after developer, and after that – into a team leader, architect or service station, depending on what is closer to you.
Specifically, so that you can assess whether you have a sufficient level of training to master a particular area of architecture, we have prepared an entrance test for our courses. Watch the program of the course you need, take the test – we will be glad to see you among OTUS students.