Start learning web programming. I started work, but I feel like I'm at a dead end. Programming from scratch. Where to start Java and Web coding

Backend

Backend is the server part of the application, which is not visible to users. This includes: authorization, storage and processing of data, email newsletters etc. Let's just say the backend is what's under the hood.

There are many programming languages ​​here, here are the most common ones:

Php
Asp net
Java
Python
Ruby
Node js

I advise you to choose just one, because with the current requirements for programmers, it will take at least several years to reach the middle level. When choosing, you can get acquainted with the vacancies in your city, see which ones are more suitable, where they pay more and depending on what language they require, and select it.

The server is largely used for working with data. Therefore, you will need to learn at least one of relational databases data:

Oracle
MSSQL
MYSQL
Postgres

In terms of difficulty, this is about the same as mastering a programming language. In all the listed databases there is a part that is the same everywhere - the so-called sql (query language), as well as a procedural language that is different in each database. Since sql is still the same, and it is the basis for everything related to data processing, switching to another database is not such a problem. Therefore, you can choose any one to begin with, but even here I would go by the principle of analyzing vacancies.

Personally, I give a plus to studying the backend, since the skills here are more static and once you learn something, you can work on it for a long time.

Frontend

Frontend is the part that runs in the browser with which the user directly interacts. These are dynamic interfaces, menus, events based on user action, data exchange with the server part, in general, what happens on the client.

The programming language here is javascript. On the one hand, this is a definite plus, since after studying it, all the companies in your city that are engaged in web development will be open to you, and now many are doing this. On the other hand, there are nuances.

JavaScript currently has two standards that are widely used: ECMAScript 5 and ECMAScript 6. The difference between them is that ECMAScript 5 does not have a full-fledged OPP. ECMAScript 6 has it, but since this standard appeared relatively recently, most applications are already written in ECMAScript 5, as a result of which it will be necessary to master both standards and, as a result, two different approaches to development.

Another point that needs to be taken into account is that the same code written in javascript can differently work out in different browsers and on different OS. With the current requirements for applications, it will be necessary to write so-called cross-browser code, that is, code whose execution will give the same result everywhere. There is no specific manual for writing such code; in this case, forums and ok Google can help you.

The problematic issues I described have been resolved in modern js frameworks (for example, Angular and React). But in projects that are written without using frameworks, these issues remain.

For me personally, an even bigger disadvantage is that trends are developing very quickly here. Versions of frameworks are constantly updated, new libraries are released, and everyone immediately wants to start using them. In general, you can't keep up with the community.

Fullstack

Already from the name it should be clear that this type developers are developing both parts. I don’t recommend trying to become such a developer, since you won’t have enough brainpower in any case, and most companies have already taken the path of division of labor. However, the full stack is where you need to start in order to take a step towards the backend or frontend. After developing a couple of small applications, you will understand the difference between them (and there really is one) and you will be able to decide which side is closer to you.

At one time, to make up my mind, I read the book “Creating Dynamic Websites”, author “Robin Nixon”. The book is small, only 500 pages, but thanks to it I got a general idea of ​​web development and I boldly made a choice towards the backend, which I still don’t regret. I gave this book as an example, you can take any other, it doesn’t matter.

Where to start learning programming from scratch?
In this article, I tried to analyze in detail whether it is possible to become a programmer from scratch on your own and what options are there for mastering programming on your own and starting making money from it.
UPD: Those who are looking for where to start learning programming from scratch in 2018 (or are just getting ready to start in 2019 :)) are very lucky thanks to Yakov Kramarenko’s book “Introduction to Development” software" I wholeheartedly recommend checking it out - it's worth the update with the #1 Google rating and reader reviews for those learning to code on their own.

I tried to give the best - in my opinion - way. I warn you - it is not easy! Further reading can cost you many hours of interesting activities :)

I’ll say right away - if you decide to study programming only on your own, without investing money, you will have to spend more time. Expect to master a new specialty in at least a year if you are studying in parallel with another job.

If you find something to add to this article to make it more useful for people, write in the comments.

This article contains better practice, based on my experience, if you want to learn programming on your own. All this is still relevant with a couple of additions.

A book on web programming for beginners

The 2016 version is translated: https://courses.prometheus.org.ua/courses/Prometheus/CS50/2016_T1/about.

It is better to take the course in English. You will improve your language and the information will be fresher. Although the exchange rate did not change much - only in 2017 instead PHP started be used by Python.

Completing the course will take time, but will provide a fairly complete understanding that is otherwise difficult to obtain on your own.

Initially, you need to decide which area of ​​programming interests you. If we're talking about about learning development from scratch and you want to start making money from it soon, then in my opinion there are two options: development for mobile devices or web development.

The best choice in such a situation, in my opinion, is to start learning web development. Here the entry threshold for beginners is lower and there is an opportunity to start fulfilling simple orders earlier.

How to become a programmer yourself from scratch

If I were starting from scratch to learn web development on my own (realizing that without investing money this is a longer path), then I would recommend this path to myself:

1. Understand HTML and CSS

A good course for basic development of HTML and CSS: https://learn.shayhowe.com/html-css/ (English) or https://webref.ru/layout/learn-html-css (translation).

After that, it’s worth looking at the capabilities of Bootstrap, which has become the de facto standard for accelerated development of web applications: http://getbootstrap.com/

This will be enough for the next steps.
You might want to stop at this point and study CSS in more detail. This will give you the opportunity to work as a layout designer - a person who makes a static design out of HTML page, after which the programmer revives it, implementing the logic of the project.

You can also make money from this - both as a freelancer and by working in an IT company that specializes in web development.

But since we decided to become a programmer, we move on!

2. Get to know jQuery

If you liked it, you can continue to understand the frontend and start learning Javascript.

If https://angularjs.org/ or http://backbonejs.org/ follows, then this is the path to front-end development. A good specialty, especially since such knowledge will be useful to any programmer who has chosen web development.

My advice is to stick with jQuery for now and move on.

3. Master a server programming language

There is a lot of choice here. The most promising programming languages ​​are Ruby, Java, Python, Node.JS (Javascript for the server).

The most in simple language programming for a beginner will be Python. If you learn Python and then the Django web development framework, you'll have everything you need to tackle some pretty complex projects on your own.

A good option is the programming language Python and Django

Plus - Python and Django will teach you the “correct” programming. Python is consistently among the TOP5-10 most popular languages, and good specialists Python has some of the highest paid programmers. Python is both a simple and understandable programming language for novice programmers, and is used in many large companies and on large projects.

To get started on your own, read "Python for Kids" by Jason Briggs or watch:

Among other materials, I recommend Learn Python The Hard Way. book " Simple Python. Modern programming style." And, of course, The Python 2 Tutorial and The Python 3 Tutorial.

Django is arguably the best framework for web development

The best tool for all occasions is very difficult to find. Django has the potential to become such a tool for web development.

Where to start to learn Django:

Start with the official documentation, there is a very good tutorial there: https://docs.djangoproject.com/en/2.1/intro/

Tango with Django is good opportunity improve your English and at the same time gain an understanding of how web projects are structured and how everything works.

Option #2 - PHP and WordPress

Another way is to start with PHP and work with popular CMS. If you are learning programming yourself and want to get started quickly, start with PHP.

Many people consider PHP to be a “not quite real” programming language, and for good reason. PHP is rarely used in large web applications and is designed only for the web - it cannot be used in other areas.

On the other hand, PHP leads in the number of websites launched in the world. The most popular CMS (content management systems) are based on it.

After that, figure out how to create themes for WordPress - this is probably the most popular CMS in the world, judging by the number of sites running.

Once you understand this well, you can already find a job. There are a lot of sites running PHP and WordPress, so there is enough work for everyone.

How to start making money as a programmer

Many people imagine the work of a freelance programmer like this:

In reality it looks something like this:

If you are ready to work as a programmer and are looking for a way to earn money, welcome to freelancing! Freelance exchanges will allow you to find simple orders(possibly almost free at first) - to get practice. Generally, working for an IT company can be more lucrative if you are just looking for a programming job.

After point 2 - having mastered HTML, CSS and jQuery - you can go to freelance exchanges and take simple orders, building up your profile.

Do you know English? https://www.upwork.com/

Not at all, even with a dictionary? http://freelance.ru/

By the time you can make websites yourself, it will be easier for you to find clients - there will be reviews and experience.

Fast track to web development

Based on my experience, it will take 6 to 12 months to learn programming from scratch. best case scenario, while 6 months is if someone helps you.

To speed up the process of entering IT, look for the opportunity to go to training (you may need more than one) or find a person who will train with you. In reality, without a person who will pass on their knowledge to you, it is very difficult; you can sit for a year reading books and never start. And with knowledgeable person who can simply talk about difficult things- much easier.

At one time, I chose the entry path through training. Given that I knew a lot about development, this allowed me to master in 2 months what could have taken six months. Find your way.

I have people who have seriously decided to start a programming career and want to speed up the process. There are many other courses. If you find yourself a mentor - a person who will lead you by the hand - this will significantly shorten your path to becoming a developer.

As soon as you feel confident that you can create something, look for a company where you can develop further or clients.

HTML, CSS, Python and Javascript are just the basic knowledge, the first stage. Next, practice, studying algorithms and development tools is very important.

If you have questions, ask in the comments! I hope this article will help you take the first step. Good luck!

If you look at it, each of us does programming every day. Don't believe me? But you set the alarm on your phone to certain time. Or set the program for washing machine, multicookers.

In this case, by your actions you change the value of the variables and start execution various functions, which are registered in program code each of the devices. For those hungry for new knowledge, we will talk about programming for beginners in more detail:

Programming today

To continue our further acquaintance with programming, let's do introductory overview about the state of this industry today. This will greatly facilitate understanding of the material. It will also allow every beginner to do right choice, choosing a suitable area for yourself.

It should be understood that in our time, programming has already grown from the basics into a separate science, which includes many areas and specializations. Many of them have already been formed, and some are just beginning to emerge.

Technology refers to a well-proven and established method (approach) for implementing certain tasks and functions using several programming languages.

One such technology is ASP.Net. It is built on the legacy Asp platform using one of the .Net languages. The most commonly used are C# and Visual Basic . ASP.Net is server technology


, used to build websites and web services: But this connection is not the main one used to build a modern virtual space . The language most often used to create web resources is PHP programming and MySQL. Of course, all these components " thickly seasoned

Although the relationship between these disciplines has not yet been identified as a separate web technology, they are often all considered as a single whole. That is, knowledge of their basics is a generally accepted standard and is mandatory for every web programmer.

Web programming

At the very beginning of the emergence of modern virtual space, only one hypertext language was used ( HTML). This is where web programming begins. Over time, the possibilities of its tags and attributes for designing web pages became limited. Therefore, a special styling language for CSS elements was implemented.

With its help the possibilities visual design sites have increased significantly. This is what contributed greatly to the development modern web design as a separate industry.

The next stage in the evolution of the Internet was the emergence of dynamically changing resources. Before this, all sites were static and could not change their content in response to user actions. This limitation was partially overcome by embedding blocks of Java Script code in HTML.

But this approach did not make it possible to create a web page on the fly. In addition, the use of Java Script does not allow you to completely hide its code, which significantly reduces the security of the resource.

It is possible to create dynamically changing resources only through the use of server-side programming languages. The main one is PHP.

Programming in PHP is the main way to create dynamic resources and Internet pages.


But on at this stage development of the Internet, one server language for building web resources is not enough. To dynamically create web pages, you need a source in which you can save all the parts of the template.

And in response to a client browser request, quickly retrieve the data necessary for generation. The most commonly used database management system (DBMS) is MySQL. This needs to be taken into account when deciding where to start web programming.

Now let's summarize the above:

  • The basis of any website is HTML and CSS;
  • The most common is dynamic type web resource;
  • Main server language is PHP;
  • In addition to PHP, the MySQL DBMS is used to create dynamic web pages.

All of the listed disciplines are basic. Their basics are where you start learning web programming.

Application programming

It refers to the field of application development application level. That is, those that are designed for direct interaction with the user. Simply put, this is writing client applications, which we install on our PC to solve any problems ( playing sound and video, editing text or graphic data, etc.).

Another type of application programming is system Programming. It involves the creation of programs with the help of which interaction is realized with each other. various parts operating system (drivers, translators).

The most promising application level programming languages:

  • C/C++ is where you start learning programming. Despite their advanced age, these languages ​​remain relevant today. Moreover, C is the main language in which the Windows operating system is written:


  • C# is a distant descendant of previous languages. Part of the .NET package from Microsoft. Used as in application programming, and for creating web applications based on asp.net technology;
  • Java is a cross-platform language. The basis on which today's popular mobile operating system is based Android system. Application development for this operating system is a very promising area:

How to study

If you are a beginner and do not even know the basics of programming, then it is best to start learning with C or C++. Most other languages ​​have similar syntax and structure.

It is also important to choose the right main sources of information. It is best if these are books on programming. By manually entering example code, a beginner quickly remembers the structure and basic elements of the language.

As additional sources For information, you should select several proven resources. It is important that the site contains not only examples of implementation with code, but also detailed explanations for them.

A person's attitude towards learning is also important. It's best if you treat the whole process as a programming lesson. That is, each lesson should be devoted to mastering a specific topic, accompanied by consideration practical examples and writing code yourself. Then educational process will happen much more efficiently and quickly.

Developer, teacher and author of programming courses Bill Soror published on the FreeCodeCamp blog detailed instructions for those who want to learn web development from scratch. At each point, Soror provides links to training materials and talks about why a particular programming language or framework is needed.

According to Soror, he has been writing code for 20 years. He divided his instructions into several sections based on the learning objectives - for basic learning of programming languages ​​and gaining in-depth knowledge in individual areas of development.

“I decided to learn programming. I like the web, but I don't know where to start"

As in any other discipline, learning programming needs to start with the basics of all areas of web development - often called "full stack". “This will help you determine the area in which you are most interested in studying and will give you the basic knowledge to get started,” writes Soror.

HTML Basics

The developer advises starting with studying HTML basics. “By starting with this you will master the development user interfaces and interaction with them. In addition, you will immediately see the result of your code,” notes the teacher.

"I know the basics of HTML"

JavaScript Basics

"JavaScript is the language of the web, everything popular browsers(Chrome, Firefox, Safari, IE) have built-in JavaScript support. Every site or web application you use probably has a large number of JavaScript code inside. In addition: the language is now becoming popular on other platforms - such as servers, desktops and devices."

"I know the basics of JavaScript and HTML"

CSS

Next, Soror suggests moving on to learning CSS for customization appearance HTML elements. To do this, you can use Mozilla's free tutorial to teach the basics and the CSS-Tricks site to solve basic problems.

Backend

“By this point, you have acquired the knowledge for so-called “front-end development.” Now you can switch to the "backend". This is the code that runs on the server,” writes Soror. - There are many backend languages, but since you are already familiar with JavaScript, I recommend learning Node JS ( software platform- approx. ed.). In addition to Node JS, you can learn Express and Mongo DB."

Express is a library that makes it easier for Node JS to interact with a web server. Mongo DB is a database for storing and retrieving information.

jQuery

JS frameworks

Frameworks allow you to simplify work with the development language and solve major problems using ready technology. There is a market great amount frameworks due to the excessive popularity of JavaScript, writes Soror.

React JS

React was developed by Facebook and runs on the Flux architecture. This is a JavaScript library for creating interfaces. React recently overtook another popular library, Angular, in popularity, so it’s better to start learning frameworks with it, notes Soror. Free course to learn React.

Angular and

Angular - developed by Google. The framework is still popular among developers. After the announcement of Angular, Google decided to completely rewrite the framework and launched Angular 2, so there were two completely different developments with the same name.

The Angular 1 framework can be learned for free at Code School. You can get acquainted with Angular 2 using free videos.

Ember JS

The framework is not as powerful as those developed by Google and Facebook, but it is gaining popularity among developers. Official Ember JS documentation.

"I want to become a backend developer"

“There are many languages ​​in backend development, each with its own pros and cons,” writes the teacher. He also gives a graph of their popularity over the past 10 years:


Programming languages ​​indicated by a green frame are those on which you should focus your attention, says Soror.

Java

A very popular programming language developed by Sun Microsystems (now owned by Oracle). Java is used to develop Android applications. It can also be used to create desktop and web applications.

Since this is a popular language among developers, you can find a large number of instructions for it on the Internet. Soror recommends starting with the beginner course.

C#

Language developed by Microsoft as an alternative to Java. Like Java, C# is an object-oriented programming language and can be used not only to develop web applications, but also desktop programs operating systems. Free course on learning C# from Microsoft Virtual Academy.

Python

There is no big brand behind Python. However, this language allows for rapid development. A site with free lessons for learning Python.

Ruby

There are many Ruby fans among developers - they actively advertise and admire this language, writes Soror. However, its popularity is growing at a slow pace. Essentially the language is a mixture of functional and imperative programming.

The best place to learn Ruby is RubyMonk, says the developer.

Practice

Before execution practical problems Soror recommends immediately creating a profile on GitHub - an online repository for storing, managing and publishing code. You can start getting acquainted with the platform with the “Hello World” instructions or an interactive course.

You can start development by creating own blog(instructions for programming a blog in React and Node) or a calendar (instructions for programming a calendar in C# and .Net).

Free lessons can also be found on Free Code Camp:

  • Pomodoro timer (frontend).
  • Trading club (full stack).

I welcome you to my blog again and today I will try to answer the question, how to become a web programmer from scratch as quickly as possible? I’ll say right away that this is possible, in principle, for any person, I don’t see any restrictions in this regard. The most important thing is your desire and perseverance.

First step

First, you need to decide what is the purpose of your training? For yourself or to work in a prestigious company with a big salary and career growth? Whatever the answer, you'll probably want to start with free lessons. And then I will give several sites where you can get training almost for free, but up to a certain level.

Of course, the matter will not end with theory, all the knowledge gained needs to be applied in practice a couple of dozen times - then it will get into your head much better, so it’s even possible to wake you up at night after this and ask: “how does @keyframes work in css?”- you will tell everything in detail.

So this very first step is to know what you need. To do this, I recommend going to a very popular IT portal - Geekbrains. There, by scrolling the page a little, you can see what areas are taught on the portal. We are interested in profession Web developer- this is a web programmer, in essence.

Here at the very bottom you can see what you will study if you pay for the training.

I intentionally cropped this screenshot a little to show you which technologies you need first.

What should a web programmer know?

So, as you can see, this is:

  1. HTML/CSS - basic languages markup and design of web pages, without them it is impossible to imagine website building. This is the basis, the most simple technologies which you should study first.
  2. PHP is the main weapon of a web programmer. This language is used to create social media, online stores, frameworks, engines and much more. It is thanks to it that most online services, comment forms, registration on websites, etc. work.
  3. JavaScript is a programming language specifically for the web; with its help, a page can be programmed so that its design changes when different events occur. For example, when you click on the window, it expands, etc. There are a lot of examples that can be given.

But this is only the most basic level; in fact, if you want to become a professional, you will have to learn dozens of technologies one way or another. Here is a partial list of them:

Where can I learn all this?

In my understanding, there are 3 main ways to learn to become a web programmer:

  1. Read free articles and materials on the Internet, watch free video lessons and courses. This way you can get a base, but you won’t get further than the entry level!
  2. Buy paid courses. I chose this option because I am studying website building not to work for a company, but for myself, so I am satisfied with the courses. 1 sensible course in RuNet costs from 3 to 7 thousand rubles. Personally, I only spent about 40-50 thousand rubles on the course and I don’t regret it, because... I have already gained a lot of knowledge that I was able to put into practice and start earning money.
  3. Buy full-fledged remote training with a mentor. This is the most expensive option, which will cost 40-150 thousand rubles. Of course, in terms of efficiency, it is the best. Such training, for example, can be purchased at online university Geekbrains.

Good platforms for gaining basic knowledge of html, css, php and js would be Magisters.org, HtmlAcademy.ru and premium section of Web4myself.com(although it is paid, access to it is only 500+ rubles per month, and there are tons of lessons there).

well and the best option I see the same Geekbrains- because everything here is paid and serious, you are brought to real results in the form of sites created by your own hands, and not just given a bare outdated theory. Plus, you can get advice from a real mentor there.


As you can see, training to become a web developer costs 6-8 thousand rubles per month and lasts for as many as 11 months, after which, if you haven’t been slacking, you become a truly in-demand specialist. I understand that this may be expensive for most of you, but it is the shortest path to becoming a pro in this profession.

As a result, you can get this decent summary:


And these skills:

If you decide to study on your own, you can save a lot, and you can also achieve relatively good results. The only negative is that you will have to collect knowledge and courses on different technologies literally piece by piece.

For example, in eleven months Geekbrains promises to teach you the following technologies: HTML/CSS, PHP, JS, NodeJS, AngularJS, Yii. On the other hand, in order to find simple work or start making websites for yourself, you don't need to know it all. I already said what is the base. This is html, css, php, javascript. But the fact is that every year the requirements for web developers are growing and if you want serious results, one way or another you will have to study modern technologies and trends.

Courses on PHP and frameworks


On this moment there is a wonderful course PHP7 and MySQL from scratch to guru, which I went through personally and even wrote a separate review about it. I think this course is wonderful, it gives large base according to modern php.

Books also have a right to life. It is useful to read them to expand your knowledge in any field. And you can read a lot about PHP. For example, this.

You don't have to know everything

If you have only learned javascript (and not php), you will be able to work front-end developer, and if it’s the other way around, try your hand at the back-end. In general, even with a little knowledge, you can already earn something from website building, but the more you know, the greater your potential.