Lectures Tehnotreka. Basics of web development (spring 2016)
We continue the publication of our educational materials. This course is dedicated to the development of medium-scale web applications (in other words, personal blog sites). The course is an overview and introduces future web-developers with a wide range of technologies and general principles of web-applications. In fact, the course is needed in order to “plunge” students into the topic and allow them to concentrate on specific technologies in the future, without losing sight of the overall architecture.
The goal of the course is a comprehensive study of the structure and principles of operation of modern web applications and the Internet as a whole, as well as the acquisition of practical skills in web development. The emphasis in the course is on backend development. At each of the lectures, students are given a task, in the course of which step by step the final project is formed, ready to become the first in the portfolio of the future web developer. ')
As a tool, students during the course will become familiar with the administration of nginx, MySQL and Redis, development on Django and the use of such libraries and products as Centrifugo, Gunicorn, Celery, Elasticsearch. In addition, the basics of the layout and work of CSS-frameworks and JS-components. The course is taught by Ilya Stytsenko (developer in the internal information development department) and Denis Isaev (head of the C / C ++ programmers group at Mail.Ru Mail). In more detail - under the cut.
Lecture 1. "Introduction + network protocols"
The first lecture tells you who and why you really need a web development, how the project is built (from the availability of the TK to the display on the combat servers). We consider the purpose and principles of the network as a whole and network protocols (DNS, IP, TCP, HTTP / HTTPS).
Lecture 2. "Web-servers"
There are several topics at the core of this lesson: the basics of UNIX systems, server-side methods for working with sockets, a diagram of web-server operation (and network connection processing), administering nginx as a web-server, and using gunicorn as an application server.
Lecture 3. "Server Development"
Introducing students to the concept of a web framework. We talk about what they are and how they differ from each other. Parse the MVC paradigm and its application in Django. We study the basic features of django and each of the components, begin to build data models and readonly-part of the future project.
Lecture 4. "Processing user data"
Let's see how to make the user to create and change the content on the site: how to get data from the user, validate the data from the server, create and edit objects. Regarding the topic of authorization.
Lecture 5. "HTML, CSS, JavaScript"
We consider the layout. A simple topic about the principles of rendering in modern browsers, students get acquainted with HTML, CSS, DOM-model. We give the most basic use of JavaScript and jQuery.
Lecture 6. "Server Development tier 2"
Data aggregation in the database, AJAX requests and JSON, generic connections between models, Django management teams.
Lecture 7. “Additional topics. Deep into Django »
The lecture is devoted to review topics about what and why we do in web development: server architecture, real-time in web applications (use websockets using Centrifugo), queues (using Celery), site search (Elasticsearch, Sphinx, Haystack that's all). Consider the issue of caching in Django and in web-projects in general.
Lecture 8. “Rolling out the site for production”
The final lecture. You will learn how we roll out sites for production: choose a domain, name and server; We work with the server (SSH / terminal, monitoring, logs, backup, security, etc.). And a little bit of SEO. Just for dessert.
At the end of the course, you will learn how to use MVC frameworks, get experience writing HTML pages both “naked” and using CSS frameworks like Bootstrap. In addition to developing, our students learn to install and configure a web server, design a data model, and get the skills to debug web applications at all stages of execution.
Playlist of all lectures is on the link . Recall that current lectures and master classes on programming from our IT specialists in Technopark, Technosphere and Tehnotrek projects are still published on Tekhnostrim channel.