First steps in web development. Where to begin?
Web development is a huge field of activity that began in the 90s of the past century. The pioneer was Geneva scientist Tim Berners-Lee. He created the world’s first website describing WWW (World Wide Web) technology based on the HTTP Protocol, URL addressing method, and HTML layout. It was the world’s first data catalog. Since then, website development has become one of the fastest growing industries in the world. In 1995, there were less than a thousand of companies engaged in web development, while in 2000 the number of such companies, registered in the United States only, exceeded thirty thousand.
As for Russia, the Internet and web development, as such, began only in the early 2000-s, despite the fact that the first Russian-language site was made in 1995. This “lag” may be explained by weak development of communication channels, the lack of specialized literature in Russian and the lack of specialized education.
When we started writing our first programs in the 90’s, the main tools were Pascal, C/C++, and Assembler. If you knew Delphi — you were a programmer, if you knew C++, then you were already regarded as a “guru”. Web development was treated with extreme distrust that time; people did not see the prospects and methods of distributing the results of their work. The most affordable tools of programme distribution were floppy disks, and later on, CD-ROMs. Downloading any program from the Network took hours.
The two thousands completely changed the situation. Young people became imbued with the idea of Internet access, the development of sites, network games; there appeared the first social networks and, most importantly, books and training courses became available via Internet.
But the problem of “plenty of information”, a huge number of languages and technologies came to first place. It became extremely difficult for a programmer to “start” in such a situation. This situation is observed even now. But web programming is a very good profession, the demand for such specialists is high, and salaries are high. That is why to “start” is definitely worth doing.
Based on our own experience, we tried to figure out how to make the first steps in web development, where to start and how to develop harmoniously.
At first, you should honestly decide in relation to your own “classification”, for example, according to Zed Shaw (author of the book “An Easy way to learn Python”): whether I am a beginner or Junior programmer. The fact is that the beginner is very poorly developed in basic programming concepts and does not even have general competencies. The beginner is afraid of the word “console”, “assembly”, “configuration”, “compilation”, does not know the protocols, methods and development tools and basic algorithms. A Junior programmer already understands something, has some experience, and even knows something. It should be remembered that from a beginner, you can easily grow first to a novice programmer, and then to a professional, so you should not worry too much.
Next, you should determine the area of your future professional activity. The fact is that the following specializations in web development are now clearly divided:
Back-end developers. They are mainly engaged in creating server software, they know how databases are arranged and how to work with them, they have system administration skills, and they can create algorithms for processing information that is common to all clients (business logic of the application). Usually they work in cooperation with front-end developers, and they see the result of their work on the front-end screens or when using special debugging tools.
Front-end developers create the “appearance” of sites and web applications; they develop the user interface, templates for CMS. Nowadays, using special APIs (frameworks) of the React type.js / Angular / Vue.js, a front-end developer can create non-static websites, namely, web-browser applications when part of the logic is transferred from the server to the client computer.
Mobile / Native developer develops mobile applications at the intersection of web technologies and native (natural) tools for mobile devices. The transition of web developers to mobile development was made possible by the appearance of modern tools such as NativeScript, React Native, Ionic, Flutter, and similar solutions.
Full-stack developer. A full-stack developer can accomplish both front-end and back-end. This is a complex specialization, but it allows one person to develop both the server and client parts of a distributed application. The complexity of training such a specialist is that you need to know a lot of technologies. For example, Python (Django), Ruby on Rails, Java/Scala, PHP or .NET for the server, and definitely JavaScript for client. The situation is slightly improved by the ability to use JavaScript or TypeScript on both the server and client side, just as for mobile devices.
In any case, there is a basic set of techniques that any programmer in this field should know: HTML layout, styling CSS elements, and adding interactivity using JavaScript. You also need to know REST approaches, API building principles, HTTP/HTTPS protocols, basic operations for working with databases, and methods for building and running server and client applications.
How can a Junior programmer embark on an uncharted sea of web development?
Here we can give some tips.
Select a specialization and technology stack.
First, you need to decide what to do in the future. Criteria can be as follows: personal interest, prospects for future work, or a desire to develop in a certain direction. In any case, we can advise you to start with common technologies for all spheres, gradually moving in the chosen direction.
Learn from examples.
Any training without real examples is a waste of time. Mastering previously unknown material without reinforcement, you lose all sense in the effort spent. All the material studied must be supported by practice. Examples can be read in a documentation, books; you may participate in a competition, read a collection of Olympiad programming challenges, and finally just “invent” them
Read the documentation.
Documentation for API or framework is a developer’s best friend. Well-written documentation with examples from the authors of the code can answer all the main questions, and after studying it, you can already start analyzing the materials of forums or blogs.
Solve the problem.
Having set yourself any task, even the simplest, you should try to solve it yourself. You can try to find a solution on a forum or blog, but in no case, you should simply copy the code without fully understanding how it works. Otherwise, it will only be harmful. The main thing is constant practice. Write more code, solve more problems.
Read books.
The book is the best friend of a programmer of any level. Most people do not consider it necessary to spend time studying books, ostensibly “saving” their time. A well-written and methodically verified book can systematize knowledge, explain basic concepts, and convey all the necessary knowledge. At the same time, it is necessary to study not only books clearly on the studied technologies. There are great books on general development issues, technologies, algorithms, and code culture in general. In our blog, we will try to highlight the most useful materials on this topic and present our analysis.
Learn different courses.
Sign up for various courses, especially if they are free. Learn webinars, listen to podcasts, and watch interviews with experienced developers and key figures in the high-tech world. This will allow you not only to expand your own horizons and be aware of modern technologies, but also to quickly raise your own level.
Instead of a conclusion.
The world of modern web development is wide and interesting. A Junior programmer will learn a lot of new things. Therefore, you should be patient, never give up, go to your goal slowly and consistently. There are still many interesting things ahead, many discoveries and achievements.
This is the profession of the future and a chance to change the world!