It is necessary to choose learning tools based on the chosen programming language and the stack that is relevant at a particular moment. General recommendations are as follows.
- A basic book on your programming language – I like the O’Reilly editions, many are translated by the Piter publishing house.
- Similarly, base books on your stack.
- Cookbooks (cookbook) in languages and recommendations of corporations, articles in blogs, etc.
- Beck Kent, Extreme Programming. Test Driven Development is a great book for any developer in general, but especially for the backend developer. Getting into the TDD philosophy is expensive.
- Joel H. Spolsky – you can read his blog, you can also find the e-book “Joel on Programming” on the Runet – a collection of posts from the blog on.
- Robert Martin “The Ideal Programmer”, “Clean Code” – the translated book from “Peter” is good, but in the original the style and jokes are generally incomparable.
- Martin Fowler and the team of authors “Enterprise Application Patterns” is an “adult” book for javaists, but it does not hurt for any server language as a collection of insights and cool finds.
- Free courses and videos, which are endless on Youtube in English. Just listen, repeat, systematize knowledge. For starters, any will do, very soon you will learn to distinguish cool things from amateurish ones.
- webref is a very cool site for web developers, understand, learn.
- codecademy.com is an interactive site for learning to develop in different programming languages in English, from the lowest, zero, level.
- IT | the community of programmers is a carload of organized information with courses, lectures and whatever. Read the comments, easily determine the best for learning.
- The programmer’s library is a bunch of books on any IT topic.
Career of web developer
Career starts as a junior developer. During the trial period, he studies the development processes, communicates with the team and works very hard. For the first six months or a year, a junior gains experience. If during this time many tasks were completed, there were few bugs, and the performance is comparable to more experienced colleagues, you can ask for a raise.
Further growth can be different, like pumping branches in computer games: if you pump technical skills (hard skills), you can grow to the level of an architect. If you feel like building processes, you can learn Scrum or Agile management methodologies and train teams. If there is a bias in classical management, you can grow up to team leaders and CTO (Chief Technical Officer, Technical Director): in this area you need to be able to organize and build processes, and also not be afraid to communicate with customers.
Responsibility: on the shoulders of such a specialist lies a lot. But the most important quality of a programmer is to learn to think in abstractions. If a person cannot move from the material level to the level of functions, objects, patterns, then it will be difficult for him.
Alexander Pryakhin, works in IT management, before that he was a backend developer in PHP and Java:
“I like my profession because of its dynamics. What seemed like fantasy yesterday is reality today. Watch Tony Stark in the 2010 Iron Man movie play video on the TV from his phone. Now this is commonplace. Programmers create ecosystems, digital worlds, high-performance systems. Isn’t that cool?”
Full stack developer
What does he do?
A full stack developer is a universal soldier. He himself creates web applications, starting from designing the structure, ending with its placement on the server. He usually does not develop large projects: this requires the close work of the frontend and backend teams. Often he is engaged in small projects for large companies or freelance, which has its advantages: he does not depend on anyone other than the customer. And if the need arises, you can always retrain as a backend or frontend developer.
Full stack development is often visited by people who create their own startups. For example, WhatsApp was founded by two developers, Jan Koum and Brian Acton. To create an MVP (minimum viable product), they had to master fullstack development. Therefore, often this is not pure programming with a strict methodology, but creativity that allows a specialist to realize his ideas.
What a fullstack developer should know:
CSS markup language and its frameworks: Bootstrap, Tailwind or Vuetify.
Have an understanding of database design, both in SQL (usually PostgreSQL or MySQL) and NoSQL (eg MongoDB). Usually work with databases is carried out through ORM (for example SQLAlchemy).
Have an understanding of the basics of system administration and how to work with Git, a distributed version control system. You also need knowledge of containerization systems (Docker), which allow you to transfer software from a developer to a client with all the necessary dependencies, without having to reconfigure them.
English, as almost all documentation is written in it.
The day of a full stack developer usually begins with the analysis of tickets (user requests) for systems that are under support. After solving urgent problems, work on the current project continues. Freelancing will take a lot of time to communicate and write technical specifications, and large companies usually have a single project management methodology, such as Agile.
In the field of fullstack development, as such, there is no gradation for junior, middle and senior developers, this is typical for small companies and startups. More often there are experts and ordinary developers. The former are able to create a supported project with good documentation from scratch by choosing one of the models