What is development
In this review lecture we will decompose the whole process of software development by example. Beginners will get a framework of knowledge for the upcoming lectures, and experienced professionals will structure their knowledge and understand how the architecture of software applications is built.
After the lecture, you will understand the basic stages of development and learn what decisions programmers have to make and what those depend on. We will also give examples of questions for the technical interview and explain why they are asked.
What the development consists of: terminology
This class will teach you about the main programming languages currently used for writing web, desktop, mobile applications, and Gamedev. You will learn what autotests and scripts for the system are written in. You will finally find out why developers are always talking about APIs and how often they actually use them.
After the class, you will feel confident in discussions about what programming language to choose and when to abandon self-written solutions in favor of frameworks.
What the development consists of: API, the choosing a programming language, and working with the design
During the lecture you will see how the API works in practice: the speaker will show how to send the most popular requests, what results to expect, and why. You will also get the speaker's advice on the choice of programming languages and productive work between programmers and designers.
After the lesson, you will practice working with API queries and understand how to organize communication between programmers and designers in your company.
Types of developers. Will Full-stack replace everyone?
At the lesson, you will learn when it is more effective to hire one developer instead of four highly specialized ones and accelerate the development process manyfold. We will also tell you why Full-stack is no cure-all and analyze the peculiarities of this direction.
After the session, you will understand when you should and when you should not hire Front-end, Back-end, Mobile, Embedded, Full-stack engineers and on which projects they will fit perfectly into the processes.
Q&A session on "What the development consists of”
Front-end components
In this overview session, we'll review Front-end development techniques. You will learn what web pages consist of, what terminology is important for a manager to know to ask proper questions to webmasters, and how to explain to a customer what type of layout their application needs.
After the class, you will have the basic knowledge and will be ready to dive deeper into the common frameworks and the process of building a project.
Front-end - frameworks and process parsing
At the lesson, we will tell you how to choose a framework depending on the type of the project, show you by example how the code on preprocessors works, how libraries are connected and requests are sent to the back-end. You'll understand which tasks you shouldn't outsource to front-end developers to build a productive process of interaction with these specialists.
After the class, you will learn to speak to Front-end developers in their language and understand what they base their decisions on.
Q&A session on "Front-end"
Back-end - choosing a programming language and databases
At this lecture, we cover how to collect all the important information and ask the client the right questions to choose the right programming language and technology for Back-end development. We study what databases exist and when to use which. We analyze in detail the relational and non-relational types of repositories with examples.
After the lesson, you'll understand what information Back-end developers expect from you and get the guideline to understand the choice of technology and convey this choice to the client.
Back-end - analysis of the solution design process
At the lesson, you will analyze the competencies of Back-end developers and form a clear view of what to expect from each specialist. We will walk through the main stages of back-end development and talk about the main reference points that are important and need to be controlled by a manager.
After the class, you will be able to evaluate what kind of Back-end developer your team needs so as not to burden Junior with Senior-level tasks. You will also dive deeper into the details of the process and learn how to build the right development process.
Back-end - programming approaches and architecture choices
In this lecture, you will learn what is so special about object-oriented programming and what it is based on. You will learn about the basic architecture patterns and the advantages and disadvantages of monolith and microservices.
After the class, you'll practice in your homework the selection of technologies for the Back-end part of the project.
Q&A session on "Back-end"
How to choose a technology stack for a project
At the session, you will learn what applications can be ordered from your outsourcing company, from which technologies your team will choose. You will level up your expertise in the intricacies of web, mobile, Machine Learning, embedded and cloud applications, and get practical advice from the speaker.
After the session, you will only need the name of the project type to understand whether your company can provide expertise in this area and who you should turn to for an assessment.
Deploying applications + information security
At this lecture, you'll learn what web hosts can store sites and get practical advice on what to look for when choosing one. In addition, we'll analyze the subtleties of CI/CD and what the difference between them is in terms of the organization of the process. We will talk about the main types of vulnerabilities and give tips on how to protect against them.
After the class, you will be able to participate in discussions about choosing a hosting service and make sure that your team has taken all the necessary information security measures.
Version Control - Working with Git
This lecture will give you an in-depth look at what version control is and how it is implemented. You'll understand how version control systems differ and what you need to consider when choosing one. We'll also go over the basics of Git and do a demo on how to use Git using the example of GitHub.
After the session, you'll do your homework to figure out how to make and save changes using a version control system so that nothing gets broken or lost.
DevOps: automation of code delivery to customers
At this lecture, we will analyze typical problems and tasks of a DevOps engineer. You will understand how to monitor the server load, what is the basis for scaling decisions, what solutions are worth and not worth overpaying for, and most importantly, you will be able to have a constructive dialogue about CI/CD in the course of the project.
During the session, you'll create a simple hello-world program in Python and link it to Git branches right away, as instructed by the speaker.
Q&A session on: "Git, application deployment, DevOps"
Documentation
In this lecture, you will see what kind of documentation you need as a manager and what developers can't do without. You will also learn how and when to write documentation and what tools will help you do it optimally. We'll go over how a manager can use documentation to work more effectively.
After the class, you'll learn how to write terms of reference using a User Story method.
Project analytics
This lecture will show you how to work with web and mobile application analytics: we will review the main tools for measuring the traffic, engagement, and conversions, and will learn how to work with external and internal users. You will also get practical tips on working with Legacy projects, reporting, and employee growth.
After the class, you'll get an off-the-shelf list of tools, broken down by category, so you can apply exactly what you need at your client's request. You will no longer be afraid of Legacy projects, will understand how to control the project progress and what developers will thank you for as a manager.
Q&A session on "Project documentation and analytics"
Testing - basic terminology
At this lecture, you will learn key information on testing theory, understand how to do testing in real projects, learn what types of testing are appropriate for different customer requests, and get practical tips on testing requirements.
After the class, you'll understand the problems the testers are telling you about, why it takes so much time to test, and consider the specifics of the process ahead of time.
Testing - system approach techniques
In the class, you will study the classification of testing approaches and go deeper into the peculiarities of a tester's work. We will explain why specialists build so many diagrams and will use examples to understand what test-design techniques are appropriate for different types of tasks.
After the class, you will understand what you should pay attention to when managing a testing team and how to make sure that testing is performed correctly.
Mobile - the process of application development
At this lecture, you will learn about the features a manager must take into account when creating solutions for mobile, and what technologies and practices exist on the market for developing cross-platform and native apps. We will talk about all the preparatory stages necessary to work efficiently.
After the class, you'll understand what additional information about the limitations mobile developers expect from you and learn how to consider the design requirements and monetization model before the first line of code is written.
Mobile - application development, release, and analytics
At this lecture, you'll analyze best practices in the development, support, and analytics of mobile applications and learn where to store data and how to protect it. We'll break down the process of testing in mobile and find out what chatbots are programmed with, and how.
After the lesson, you will be tested on the example of real-world project tasks and form a complete understanding of how mobile development works.