<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: WebSailors</title>
    <description>The latest articles on DEV Community by WebSailors (@websailorspro).</description>
    <link>https://dev.to/websailorspro</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F397161%2Febf02934-77fd-4bfb-82d1-6d368826e8e9.jpg</url>
      <title>DEV Community: WebSailors</title>
      <link>https://dev.to/websailorspro</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/websailorspro"/>
    <language>en</language>
    <item>
      <title>Top 5 Books Each Programmer Must Read During Their Entire Life. Part 4</title>
      <dc:creator>WebSailors</dc:creator>
      <pubDate>Fri, 14 Aug 2020 19:07:39 +0000</pubDate>
      <link>https://dev.to/websailorspro/top-5-books-each-programmer-must-read-during-their-entire-life-part-4-3lhb</link>
      <guid>https://dev.to/websailorspro/top-5-books-each-programmer-must-read-during-their-entire-life-part-4-3lhb</guid>
      <description>&lt;p&gt;“Clean Code” by Robert C. Martin.&lt;/p&gt;

&lt;p&gt;The main idea of this book is make a developer follow the principle of “Leave the code cleaner than you found it”.&lt;/p&gt;

&lt;p&gt;This relatively big book of over 300 pages describes the problem of writing the so-called “Clean Code”. It is written very involving, so reading it will take only several days, but the effect will last for life.&lt;/p&gt;

&lt;p&gt;The book is rich of clear theoretical statements and code examples. The principles of developing a clean and qualitative code described by the author can be easily applied on practice, making a significant addition to the knowledge obtained from other books. The reason is that the book contains many practical advices for code improvement, as well as technique for assessment of quality of libraries and apps.&lt;/p&gt;

&lt;p&gt;The book has several parts that describe both the beginning of professional programmer’s path (techniques, patterns, general principles) and its peak — debugging the existing code, and developing new software.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XvQPYbSZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8ib1l869xlrspx5tl3ue.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XvQPYbSZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8ib1l869xlrspx5tl3ue.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We also would like to mention the paragraph about multi-threaded applications, which is not common for that type of books.&lt;/p&gt;

&lt;p&gt;From the programmer’s point of view, this book’s context is its orientation towards Java software. It has examples of software in this language, as well as signs of both “clean” and “dirty” code. &lt;/p&gt;

&lt;p&gt;That makes it somewhat difficult for those unfamiliar with this language but does not depreciate the benefit of reading it.&lt;/p&gt;

&lt;p&gt;Stay tuned! In the Next and Final Part of this Series of Articles, we at WebSailors will tell you about the last book in our Top 5 — “The Art of Computer Programming” by Donald E. Knuth.&lt;/p&gt;

&lt;p&gt;Read our new article - &lt;a href="https://websailors.pro/12-tips-how-to-choose-a-software-development-company"&gt;12 Tips how to choose a software development company to not lose money&lt;/a&gt;&lt;/p&gt;

</description>
      <category>books</category>
    </item>
    <item>
      <title>First steps in IT: how to learn fast</title>
      <dc:creator>WebSailors</dc:creator>
      <pubDate>Tue, 04 Aug 2020 14:20:44 +0000</pubDate>
      <link>https://dev.to/websailorspro/first-steps-in-it-how-to-learn-fast-4ga6</link>
      <guid>https://dev.to/websailorspro/first-steps-in-it-how-to-learn-fast-4ga6</guid>
      <description>&lt;p&gt;Junior in IT – this notion is very broad. One started working in an IT company for the first time after University, another decided to master a new stack of technologies, and the third radically changed the field of activity and came into development from a completely different specialty.&lt;/p&gt;

&lt;p&gt;All three options are united by one thing: in one sense or another, a person is a junior, and he needs to learn everything as quickly as possible. Today we at &lt;a href="https://websailors.pro/"&gt;WebSailors&lt;/a&gt; are telling you what to do if this is your case.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Getting rid of stereotypes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is especially important if your first steps are not in the technology stack, but in the field itself. There are quite a lot of myths about the profession of a programmer, and it is worth parting with at least most of them. Here are the most common ones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;"programmers make millions." IT-sphere is really one of the most profitable and rapidly developing in the labor market, but in reality, the salaries of newcomers and trainees range from 15-35 thousand in the regions to 60-170 thousand rubles in Moscow and St. Petersburg;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;"I will only program." Another common misconception. Meanwhile, when working on each task, writing code takes on average less than half of the working time - everything else is spent on code review, testing, documentation, communication with the client, etc. In Other words, you need to learn not only to program;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;"you can become a Senior very quickly." It is quite difficult to give an objective assessment of the level of your work on your own. Usually, this can only be done by a more experienced developer or a competent manager. But the fact is that each IT company has its own scale of assessment of competencies, and the vision of Junior/Middle/Senior skills in one organization rarely coincides with other points of view. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can only know one thing for sure: senior is the highest professional level of a developer, which requires deep knowledge in several technology stacks at once, experience in both the frontend and backend, and at least several serious successful commercial projects in the asset over the past years.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yqmun183--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/okd8srx65gtxtvbub9hj.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yqmun183--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/okd8srx65gtxtvbub9hj.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Communicate with your mentor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Often you have to learn new technologies yourself. But if you are lucky enough to work for a company, then most likely you already have a mentor - or at least a more experienced developer who is willing to share their knowledge. This process may not always go smoothly - in the eyes of a mentor, you will in any case be an unintelligent child who still has a lot to learn. &lt;/p&gt;

&lt;p&gt;Try to contain your emotions and learn to take positive advice and constructive criticism. This should be taken as an axiom at least until your level of professionalism comes as close as possible to the level of the mentor. It is very important not to go to extremes: asking questions about each written line of code and waiting for everything to be done for you will not add to your good reputation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't reinvent the wheel&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Simply put, to come up with new ways to solve old problems most often does not make sense: it turns out either for a long time, or very difficult, or completely wrong. If templates for solving certain problems already exist, then this means that another developer has already faced a similar situation before you and it is completely optional for you to spend time on your own discoveries. The so-called best practices (best practices) are easiest to find on Habr, Github and other similar portals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Write well right away&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Among web-developers often arise discussions whether it is worth it to write “beautiful” code right away? We at &lt;a href="https://websailors.pro/"&gt;WebSailors&lt;/a&gt; are absolutely sure that a beginner should make it a rule to write both beautiful and working code. Do not allow work in the spirit of “let well alone”. &lt;/p&gt;

&lt;p&gt;Of course, you can’t do without hacks in development, but try to at least minimize their number. Be sure to remember your mistakes when they arise. Be sure to keep them in mind for the future. A code that is understandable not only to you - saves time and allows you to move forward much faster in terms of professional growth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Join the community of like-minded people&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mentors and your own experience of trial and error will, of course, serve you the good turn, but you can’t quickly develop and keep abreast of all the latest trends in development without leaving your office or home. Communication and exchange of experience in the IT community is ongoing, and the best places for it are meetings, conferences and hackathons. &lt;/p&gt;

&lt;p&gt;You can learn about them most often from colleagues, and if this is not your case, then monitoring groups on social networks and chats in instant messengers is what you need. Look for a conversation or channel in the Telegram of the local IT community, browse through the IT-events portal at your leisure and subscribe to useful VKontakte groups, listen to a podcast or interview with a well-known developer: you will definitely find something suitable. &lt;/p&gt;

&lt;p&gt;Get to know at least a couple of like-minded people at the nearest meeting, and then it will become much easier to find out about everything. One has only to start, and then everything will go by itself. And new knowledge and experience of other developers always help a beginner to learn everything faster - not only in theory but also in practice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accumulate practical experience&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And of course, the truth as old as the world last: nothing can be learned without practice. Try to do yourself as many different types of tasks as possible. Perhaps, over time, it is worth the risk to even complete your own small project - write a small program or application (even if no one ordered them). In any case, this is an experience that will come in handy sooner or later.&lt;/p&gt;

&lt;p&gt;Source - &lt;a href="https://websailors.pro/"&gt;WebSailors&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>10 most correct habits for a web-developer</title>
      <dc:creator>WebSailors</dc:creator>
      <pubDate>Tue, 04 Aug 2020 14:09:46 +0000</pubDate>
      <link>https://dev.to/websailorspro/10-most-correct-habits-for-a-web-developer-38el</link>
      <guid>https://dev.to/websailorspro/10-most-correct-habits-for-a-web-developer-38el</guid>
      <description>&lt;p&gt;Surely, you have been aware about the habits that can facilitate your life as well as about those that complicate it. Today we at &lt;a href="https://websailors.pro/"&gt;WebSailors&lt;/a&gt; shall talk about the most useful habits in the world of software development. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Clarify goals and details&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Develop the habit to clarify the goals and tasks. The human brain is arranged in such a way that it resists doing every incomprehensible work. &lt;/p&gt;

&lt;p&gt;Therefore, before starting, ask yourself every time: do I understand exactly why I am doing this and what result I am waiting for? How well do I understand the task itself and the process of solving it? If the answer is not like “It is 100 percent clear what and when and what for to do” then clarify the situation: specify details with the team leader, client, and teammates.&lt;/p&gt;

&lt;p&gt;Here the principle works: if you do not understand the question asked then put it to yourself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Remember the business sense of tasks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another good habit, partly related to the previous one, is to always find out what final benefits your actions will bring. In other words, if a web-developer does not understand who exactly he will make happier by developing this table or writing that function, then most likely he is screwing around. &lt;/p&gt;

&lt;p&gt;Don't write code for the sake of code: try to find out how your actions will help the business and its target audience. Even if the strategic goals are not spelled out in your requirements list.&lt;/p&gt;

&lt;p&gt;This approach is to create clear and useful user stories. Each such story begins with the user's need to do something and ends with some result that partially or fully satisfies his needs. The set of stories should fully cover all the possible interests of users in this niche. Only in such a situation, the project itself make sense.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Don't reinvent the wheel&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A tip, especially useful for beginners: make a habit to use well-known approaches and templates, canonical solutions and software libraries for solving problems. To do this, you need to actively seek, study and process, experience in real projects. Doing this you solve several problems at once: save time and your own strengths, solve problems in proven ways and study the experience gained by other developers for you. &lt;/p&gt;

&lt;p&gt;Of course, you should not include a whole framework in the project for the sake of a single function, but you should not invent, for example, your own array sorting algorithm as well, if this is not the aim of the project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Keep abreast of IT events&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another good habit associated with the previous one. You should use templates to perform tasks, you need to find them, and for this - constantly monitor everything that happens in your web-development area.&lt;/p&gt;

&lt;p&gt;Make a habit of reading useful articles, books, channels on social networks at least for half an hour a day. Every day you need to “discover” at least one new technology or useful news. It is also considered good practice to go out at least once a month: to attend meetings, speeches of famous specialists, hackathons, and conferences. &lt;/p&gt;

&lt;p&gt;Well, or at least just spend the evening in a friendly atmosphere with colleagues. In addition to relaxing in all these cases, you will have a great opportunity to make new acquaintances and exchange experiences.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--L8ogiGtB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/76zr36jquva8jfjzub60.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--L8ogiGtB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/76zr36jquva8jfjzub60.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Develop an emotional intelligence&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The habit of not condemning, but entering into the position of another person, regardless of the adequacy of his appeal to you, can often do a good job. “To understand a criminal, think like a criminal,” investigators say among themselves, and this is the right advice for absolutely all people. The ability to listen, understand and adapt to the emotional state of another person is a useful skill that needs to be regularly trained. &lt;/p&gt;

&lt;p&gt;Try to do this consciously at first - for example, once a day to observe your own behavior in a conversation as if from the outside and adjust it in accordance with the emotional level of the interlocutor. Perhaps it makes sense to periodically read psychology literature for this (not to the detriment of work tasks, of course).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Develop algorithms&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No matter how good and detailed the technical assignment may seem to you, before you start writing code, you should compile and work out all the algorithms that solve its individual parts. Indeed, most often all questions arise not when reading the assignment, but already in the process of completing the task or, even worse, when the project is delivered to the customer. &lt;/p&gt;

&lt;p&gt;Often, it is at the end of the work that differences arise in understanding the tasks between the customer and the contractor, and this rarely adds optimism. At a minimum, this forces us to devote much more time to our work than it seemed at first, more often than not, this happens “at our own expense”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Upgrade your English skills regularly&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The important skill, the development of which is also worth turning into a habit. In the world of web development, it won\t go anywhere far without English. We hope that you probably understand that. The vast majority of new books, technical documentation, articles, notes, and even comments in code are written in English. &lt;/p&gt;

&lt;p&gt;Therefore, it is useful to accustom yourself to learn at least five new words a day, start at least one conversation in English with a client/colleague (if possible). Watching TV shows with English voice acting or singing songs in English will also help. And try to take courses to improve the level of the language at least once a year - such certificates will definitely not be redundant for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Work with someone else's code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We at &lt;a href="https://websailors.pro/"&gt;WebSailors&lt;/a&gt; believe that exploring the code of other developers and learning how to read it is an extremely useful skill for any developer. With the study of such sources of knowledge, you solve at least two problems: learn how to write beautiful and maintainable code, or learn how not to do it. &lt;/p&gt;

&lt;p&gt;Parsing someone else's project will also help you train your code debugging skill. All these skills and competencies will definitely come in handy to improve the quality of your own work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. Test all your programs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you are often accompanied by criticism of the customer or colleagues on the topic “yes this code of yours doesn’t work at all”, then do not rush to consider yourself an incomprehensible genius or strive to turn everything into “crutches” to make it work. &lt;/p&gt;

&lt;p&gt;It is much better to train yourself to test your own programs before they reach the customer. The important questions are: What testing methods can the customer use? What could be the weak points of your code? It is better to find out in advance than to spend time debugging and reworking after the release of the work done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. Sleep at night&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Which of us did not sit on a sleepless night at work, sincerely convinced that when the deadlines are on, there is no other way but to work without sleep? Coffee, energy drinks and as a result - autopilot next day as the smallest of consequences. &lt;/p&gt;

&lt;p&gt;The truth is that at night without sleep, brain productivity decreases several times: that is, in eight sleepless hours you will do exactly as much work as in two or three hours on a fresh head. So does it make sense not to sleep, if there is a chance to do everything productively in the morning?&lt;/p&gt;

&lt;p&gt;We hope that you accept all these tips and be as healthy and productive as possible.&lt;/p&gt;

&lt;p&gt;Source - &lt;a href="https://websailors.pro/"&gt;WebSailors&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>First steps in web development. Where to begin?</title>
      <dc:creator>WebSailors</dc:creator>
      <pubDate>Mon, 29 Jun 2020 15:31:27 +0000</pubDate>
      <link>https://dev.to/websailorspro/first-steps-in-web-development-where-to-begin-19kb</link>
      <guid>https://dev.to/websailorspro/first-steps-in-web-development-where-to-begin-19kb</guid>
      <description>&lt;p&gt;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. &lt;/p&gt;

&lt;p&gt;It was the world’s first data catalog. Since then, &lt;a href="https://websailors.pro/"&gt;software development&lt;/a&gt; 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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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 &lt;a href="https://websailors.pro/"&gt;programming&lt;/a&gt;  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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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. &lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://websailors.pro/"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bfemYz0g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/i3axia0rvclux43ok3f7.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mobile / Native developer develops mobile applications at the intersection of web technologies and native (natural) tools for mobile devices. The transition of web &lt;a href="https://websailors.pro/"&gt;developers&lt;/a&gt; to mobile development was made possible by the appearance of modern tools such as NativeScript, React Native, Ionic, Flutter, and similar solutions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;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.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;How can a Junior programmer embark on an uncharted sea of web development?&lt;/p&gt;

&lt;p&gt;Here we at &lt;a href="https://websailors.pro/"&gt;WebSailors&lt;/a&gt; can give some tips.&lt;/p&gt;

&lt;p&gt;Select a specialization and technology stack.&lt;/p&gt;

&lt;p&gt;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.&lt;br&gt;
Learn from examples.&lt;/p&gt;

&lt;p&gt;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&lt;br&gt;
Read the documentation.&lt;/p&gt;

&lt;p&gt;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.&lt;br&gt;
Solve the problem.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Read books.&lt;/p&gt;

&lt;p&gt;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 at &lt;a href="https://websailors.pro/"&gt;WebSailors&lt;/a&gt; will try to highlight the most useful materials on this topic and present our analysis.&lt;/p&gt;

&lt;p&gt;Learn different courses.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Instead of a conclusion.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;This is the profession of the future and a chance to change the world!&lt;/p&gt;

&lt;p&gt;Source - &lt;a href="https://websailors.pro/"&gt;https://websailors.pro/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Top 5 Books Each Programmer Must Read During Their Entire Life. Part 4</title>
      <dc:creator>WebSailors</dc:creator>
      <pubDate>Mon, 29 Jun 2020 14:47:50 +0000</pubDate>
      <link>https://dev.to/websailorspro/top-5-books-each-programmer-must-read-during-their-entire-life-part-4-4ad3</link>
      <guid>https://dev.to/websailorspro/top-5-books-each-programmer-must-read-during-their-entire-life-part-4-4ad3</guid>
      <description>&lt;p&gt;“Clean Code” by Robert C. Martin.&lt;/p&gt;

&lt;p&gt;The main idea of this book is make a &lt;a href="https://websailors.pro/"&gt;developer&lt;/a&gt; follow the principle of “Leave the code cleaner than you found it”.&lt;/p&gt;

&lt;p&gt;This relatively big book of over 300 pages describes the problem of writing the so-called “Clean Code”. It is written very involving, so reading it will take only several days, but the effect will last for life.&lt;/p&gt;

&lt;p&gt;The book is rich of clear theoretical statements and code examples. The principles of developing a clean and qualitative code described by the author can be easily applied on practice, making a significant addition to the knowledge obtained from other books. The reason is that the book contains many practical advices for code improvement, as well as technique for assessment of quality of libraries and apps.&lt;/p&gt;

&lt;p&gt;The book has several parts that describe both the beginning of professional programmer’s path (techniques, patterns, general principles) and its peak — debugging the existing code, and developing new software.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XvQPYbSZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8ib1l869xlrspx5tl3ue.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XvQPYbSZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8ib1l869xlrspx5tl3ue.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We also would like to mention the paragraph about multi-threaded applications, which is not common for that type of books.&lt;/p&gt;

&lt;p&gt;From the programmer’s point of view, this book’s context is its orientation towards Java software. It has examples of software in this language, as well as signs of both “clean” and “dirty” code. &lt;/p&gt;

&lt;p&gt;That makes it somewhat difficult for those unfamiliar with this language but does not depreciate the benefit of reading it.&lt;/p&gt;

&lt;p&gt;Stay tuned! In the Next and Final Part of this Series of Articles, we at &lt;a href="https://websailors.pro/"&gt;WebSailors&lt;/a&gt; will tell you about the last book in our Top 5 — “The Art of Computer Programming” by Donald E. Knuth.&lt;/p&gt;

&lt;p&gt;Source - &lt;a href="https://websailors.pro/"&gt;https://websailors.pro/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>books</category>
    </item>
    <item>
      <title>Top 5 Books Each Programmer Must Read During Their Entire Life. Part 3</title>
      <dc:creator>WebSailors</dc:creator>
      <pubDate>Fri, 26 Jun 2020 10:17:21 +0000</pubDate>
      <link>https://dev.to/websailorspro/top-5-books-each-programmer-must-read-during-his-entire-life-part-3-3jp2</link>
      <guid>https://dev.to/websailorspro/top-5-books-each-programmer-must-read-during-his-entire-life-part-3-3jp2</guid>
      <description>&lt;p&gt;Martin Fowler is credited with a quote: “Any fool can write code that a computer can understand. &lt;a href="https://websailors.pro/"&gt;Good programmers&lt;/a&gt; write code that humans can understand ”.&lt;/p&gt;

&lt;p&gt;Today almost every book that contains material on code developing and controlling has a reference to M. Fowler’s “Refactoring”. Despite its size of over 400 pages, the book is a real page turner. The main reason of its popularity is the quality, practical orientation, and applicability. &lt;/p&gt;

&lt;p&gt;Each main information block begins with an example and aimed on improving the code given in it. The only issue for an unprepared reader is that the book contains many philosophical quotes. However, as odd as it sounds, they are all aimed on practical use.&lt;/p&gt;

&lt;p&gt;The refactoring process itself is presented not as something abstract or as simple change of names of variables and functions, but as a process of step-by-step improvement of code and software’s internal structure, making it easier to understand the operating principles and modify the code, not changing its purpose.&lt;/p&gt;

&lt;p&gt;The book gives answers to such questions as when to change the code, which code needs to be changed, and how to perform such change.&lt;/p&gt;

&lt;p&gt;All examples and proposed solutions include large code blocks and particular methods, classes, method parameter sets, repeated sections and “bottlenecks” where objective-oriented programming principles are violated.&lt;/p&gt;

&lt;p&gt;We should particularly mention that there is a whole paragraph dedicated to test driven development (TDD), creation of automated tests, and description of particular testing environments.&lt;/p&gt;

&lt;p&gt;It can also be underlined, that specialists who read the “Refactoring” often change their approach to coding, becoming more literate, accurate and concentrated on what they are doing.&lt;/p&gt;

&lt;p&gt;Next Part of this Series of Articles we at &lt;a href="https://websailors.pro/"&gt;WebSailors&lt;/a&gt; will tell you a bit more about the fourth book in our Top 5 — “Clean Code” by Robert C. Martin. Stay with us!&lt;/p&gt;

&lt;p&gt;Source - &lt;a href="https://websailors.pro/"&gt;https://websailors.pro/&lt;/a&gt;&lt;br&gt;
Read our new article - &lt;a href="https://websailors.pro/how-to-protect-company-data"&gt;How to protect company data from hackers&lt;/a&gt;&lt;/p&gt;

</description>
      <category>books</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Top 5 Books Each Programmer Must Read During Their Entire Life. Part 2</title>
      <dc:creator>WebSailors</dc:creator>
      <pubDate>Fri, 26 Jun 2020 08:41:58 +0000</pubDate>
      <link>https://dev.to/websailorspro/top-5-books-each-programmer-must-read-during-his-entire-life-part-2-4a1a</link>
      <guid>https://dev.to/websailorspro/top-5-books-each-programmer-must-read-during-his-entire-life-part-2-4a1a</guid>
      <description>&lt;p&gt;The second book in &lt;a href="https://websailors.pro/"&gt;WebSailors&lt;/a&gt; Top 5 is “Design Patterns” written by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides.&lt;/p&gt;

&lt;p&gt;In the modern world of &lt;a href="https://websailors.pro/"&gt;software development&lt;/a&gt; the standard approaches are competent approach and reuse of previously developed instruments. The basic of that approach is the object-oriented programming. There are many books about it, but this one is the most useful.&lt;/p&gt;

&lt;p&gt;After reading “Design Patterns” you understand that there is no need in reinventing a way to solve a problem, but it is much more effective to learn about the ones that already exist and use them correctly.&lt;/p&gt;

&lt;p&gt;Although the material is quite complex for a beginner, it allows to understand and accept the concept of object-oriented programming, learn the patterns, and obtain knowledge of what and when to use.&lt;/p&gt;

&lt;p&gt;The book contains several paragraphs on more than 300 pages and describes both the basic theory of patterns and their practical use. The reader step-by-step learns about the purpose and structure of patterns, their peculiarities and practical implementation.&lt;/p&gt;

&lt;p&gt;Among all the patterns described in this book, the special attention is given to creational, structural, and behavioral patterns. It can be stated that in the modern software world such patterns already became a standard “language” of the code. Such patterns as abstract factory, factory methods, and singleton are already in all the learning guides and encyclopedias.&lt;/p&gt;

&lt;p&gt;The only thing that makes it more difficult to immediately use the obtained knowledge is that all the examples in this book are written using Smalltalk language, which is barely known nowadays. &lt;/p&gt;

&lt;p&gt;Thus, the reader has to convert the pattern realizations to their language. From some point of view, it is not a disadvantage, but the necessity to practice the theory and gain more thorough understanding of the material.&lt;/p&gt;

&lt;p&gt;Next Part of this Series of Articles we at &lt;a href="https://websailors.pro/"&gt;WebSailors&lt;/a&gt; will tell you a bit more about the third book in our Top 5 — “Refactoring” by Martin Fowler. Stay with us!&lt;/p&gt;

&lt;p&gt;Source - &lt;a href="https://websailors.pro/"&gt;https://websailors.pro/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>books</category>
      <category>webdev</category>
    </item>
    <item>
      <title>WebSailors</title>
      <dc:creator>WebSailors</dc:creator>
      <pubDate>Thu, 25 Jun 2020 14:10:09 +0000</pubDate>
      <link>https://dev.to/websailorspro/websailors-b48</link>
      <guid>https://dev.to/websailorspro/websailors-b48</guid>
      <description>&lt;p&gt;&lt;a href="https://websailors.pro"&gt;Professional Web and Mobile Software Development&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Contact us today for more information!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://websailors.pro/"&gt;https://websailors.pro/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>Top 5 Books Each Programmer Must Read During Their Entire Life. Part 1</title>
      <dc:creator>WebSailors</dc:creator>
      <pubDate>Thu, 25 Jun 2020 14:02:09 +0000</pubDate>
      <link>https://dev.to/websailorspro/top-5-books-each-programmer-must-read-during-his-entire-life-part-1-89a</link>
      <guid>https://dev.to/websailorspro/top-5-books-each-programmer-must-read-during-his-entire-life-part-1-89a</guid>
      <description>&lt;p&gt;It is barely possible to imagine modern education without reading books. To become a professional, one need not only to read specialized technical literature, but also books of a more broad kind that refer more to the “philosophy” of programming. When the first type forms professional competence, the second type helps to shape thinking, basing on the knowledge that was accumulated for years.&lt;/p&gt;

&lt;p&gt;However, it will take years to read all these books and even more time to think them through and build an understanding.&lt;/p&gt;

&lt;p&gt;What to begin with, though?&lt;/p&gt;

&lt;p&gt;How we supposed to approach such vast diversity?&lt;/p&gt;

&lt;p&gt;In this Series of Articles we've collected the most important works that every professional developer should be familiar with.&lt;/p&gt;

&lt;p&gt;First of all, we at &lt;a href="https://websailors.pro/"&gt;WebSailors&lt;/a&gt; would like to begin with a wonderful book called “Code Complete” by Steve McConnell.&lt;/p&gt;

&lt;p&gt;This book was translated to Russian in 2005 and one year later there hardly had been a professional who didn’t read it at least once. Yes, it is big and contains about a thousand pages, but it covers almost all aspects of modern &lt;a href="https://websailors.pro/"&gt;software development&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DALSGk7X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4l1z2h7n81npc2yiyd79.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DALSGk7X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4l1z2h7n81npc2yiyd79.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It includes such topics as aspects and peculiarities of good coding, testing problems and their solutions, as well as debugging and optimizing strategies. The most important thing about this book is that McConnell answers such conceptual questions as controlling the complexity, quality, and scalability of a system.&lt;/p&gt;

&lt;p&gt;He thoroughly describes all the rules and details that a programmer should stick to in order to create a good and supportive code. He draws a line between necessary level of abstraction and sufficient level of details, describes different approaches to development and using of qualitative interfaces of classes and packets, even speaking about such nuances as variable naming.&lt;/p&gt;

&lt;p&gt;For instance, there are more than 30 pages dedicated only to the general principles of function naming and using of variable names, with all rules and advices given from the practical point of view.&lt;/p&gt;

&lt;p&gt;Besides, the book contains formal and informal principles of commercial software development, code refactoring rules, inspection methods, and ways of optimization, and approach to a test driven development.&lt;/p&gt;

&lt;p&gt;Many specialists consider it the best book on software making and believe that every developer should reread it at least once a year.&lt;/p&gt;

&lt;p&gt;Please stay tuned! In the next Part of that Series of Articles we at &lt;a href="https://websailors.pro/"&gt;WebSailors&lt;/a&gt; will talk about the book, written by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides “Design Patterns”.&lt;/p&gt;

&lt;p&gt;Source - &lt;a href="https://websailors.pro/"&gt;https://websailors.pro/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>books</category>
      <category>webdev</category>
    </item>
    <item>
      <title>5 Reasons why Open-Source worth it</title>
      <dc:creator>WebSailors</dc:creator>
      <pubDate>Thu, 25 Jun 2020 13:42:29 +0000</pubDate>
      <link>https://dev.to/websailorspro/5-reasons-why-open-source-worth-it-71f</link>
      <guid>https://dev.to/websailorspro/5-reasons-why-open-source-worth-it-71f</guid>
      <description>&lt;p&gt;Nowadays all over the world most &lt;a href="https://websailors.pro/"&gt;programmers&lt;/a&gt; are in doubt if it’s a good idea to write Open-Source code or not. In our article we will name 5 reasons why it’s worth it!&lt;/p&gt;

&lt;p&gt;Before you start, let’s tell you what Open-Source is? In simple terms, Open-Source project is a project with the source code being open to change by third-party developers and the community as a whole. Open-source has become a powerful impetus for the development of the IT industry.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://websailors.pro/"&gt;WebSailors&lt;/a&gt; System Architect Dmitry B.&lt;/p&gt;

&lt;p&gt;And the point here is not even the availability of software for free use. At a fundamental level, many such projects are even higher in quality than commercial software. Such projects have reliable support, subsidies from major players in the software market, provide independence from monopolists and corporations, provide a high level of security, focus on the specific needs of users and, most importantly, form a culture of code and the ability to work in a large team.&lt;/p&gt;

&lt;p&gt;Even if you are a novice developer, participating in open source projects will help to pump your skill and gain new knowledge.&lt;br&gt;
The benefits of Open-Source projects will give you wealth experience and new acquaintances. In addition, contributing to Open-Source will prove to be an interesting line in your resume. Here are 5 reasons we have identified.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Professional growth opportunity&lt;br&gt;
Open projects allow you to learn and develop, how other developers organizing their documentation, examples of use and other important information. Anyone can study based on the source code, clone the repository, “borrow” it’s parts to their projects and even participate in the development. There is also a system of questions and answers where you can find a solution to your own problems with your own product.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Accessibility&lt;br&gt;
The other benefit of open source projects is their availability and accessibility to the &lt;a href="https://websailors.pro/"&gt;developer&lt;/a&gt; and even just to a simple user. Such projects are distributed from their own team resources in the form of assembled packages for various operating systems, but main requirement, which lies in the very concept of Open-Source is, that it’s code is required to be uploaded to an open repository such as Github. To receive the product, simply follow the instructions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Independence&lt;br&gt;
Each transition to a new software provider entails new risks and costs. According to Forbes statistics, about 90% of startups fails. The same thing happens with more than 50% of small and medium companies with being less than five years on the market. In this regard, any business investing its energy or money in the development of open source software makes long-term investments in its own products.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Focus on customer&lt;br&gt;
Top priority always is a Client. The whole point is that Software products are developing by the community not for sale, but for use. Everyone can participate in the development by adding the features that he thinks is needed to a user.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Support&lt;br&gt;
Commercial products are often developed by IT monopolists. Therefore, the supplier is the only party that can help in solving a particular problem. Such providers may help for free under the support program, or may require some reward. In the case of open source support for the community, free developers and specialists is guaranteed. In an extreme case, the correction of the problem is performed independently and is immediately applied.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In conclusion&lt;/p&gt;

&lt;p&gt;An Open-Source project can be characterized by the following keywords:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exchange of experience.&lt;/li&gt;
&lt;li&gt;Teamwork.&lt;/li&gt;
&lt;li&gt;Access to knowledge.&lt;/li&gt;
&lt;li&gt;Clean code (Styled code).&lt;/li&gt;
&lt;li&gt;Openness.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples of successful open-source projects&lt;/p&gt;

&lt;p&gt;Every day we at &lt;a href="https://websailors.pro/"&gt;WebSailors&lt;/a&gt; use such tools. If you will carefully look at the statistics, then the most famous solutions that have contributed to the development of the global IT culture are open-source projects.&lt;/p&gt;

&lt;p&gt;First of all, these are Linux distributions (Ubuntu, BSD and others). They are installed on 80% of the server hardware, are used in research centers and, in fact, on 2.5 billion Android devices in the world.&lt;/p&gt;

&lt;p&gt;Another one is Apache server software and the MySQL database on which most Web and Mobile projects are based, along with WordPress and PHP.&lt;/p&gt;

&lt;p&gt;This list could go on and on. These could be browsers, developer tools, games and much more.&lt;/p&gt;

&lt;p&gt;Investments in Open-Source projects&lt;/p&gt;

&lt;p&gt;Billions of dollars are invested annually in open source projects. Confluent, Neo4j, HashiCorp and GitLab are just a few examples of companies that have managed to attract very large investments in their development. Large companies and funds invest in such projects, leaving them in the status of open-source. Microsoft, having completely changed its attitude towards open source, bought GitHub, IBM intends to acquire Red Hat, and so on.&lt;/p&gt;

&lt;p&gt;Last year, the market for mergers, investments and IPOs grew to $ 70 billion. This year, an additional grow of $ 2 billion is planned for commercial open source solutions.&lt;/p&gt;

&lt;p&gt;According to statistics, companies that develop open-source solutions earn more than $ 100 million a year. Their customers are increasingly choosing to use open source solutions without buying expensive licenses, paying for support, customization for their own needs or additional functions after implementation.&lt;/p&gt;

&lt;p&gt;For such clients, open-source is primarily the possibility of free implementation, reliability, confidence and support from a huge number of companies and private developers.&lt;/p&gt;

&lt;p&gt;Thus, the coverage of open-source projects is huge and they are waiting for your participation!&lt;/p&gt;

&lt;p&gt;Sourсe - &lt;a href="https://websailors.pro/"&gt;https://websailors.pro/&lt;/a&gt; &lt;/p&gt;

</description>
      <category>opensource</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Template Engines of a Web-Project Interface Building</title>
      <dc:creator>WebSailors</dc:creator>
      <pubDate>Thu, 28 May 2020 13:01:43 +0000</pubDate>
      <link>https://dev.to/websailorspro/template-engines-of-a-web-project-interface-building-1gek</link>
      <guid>https://dev.to/websailorspro/template-engines-of-a-web-project-interface-building-1gek</guid>
      <description>&lt;p&gt;Interface template engines even in the age of “heavy” frameworks such as React / Angular / Vue remain a popular topic and should be considered by both novice programmers and people with some experience in &lt;a href="https://websailors.pro/" rel="noopener noreferrer"&gt;web development&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It might seem that template engines are not very common now, but there are dozens of them, all of them are applied in practice and each has its own properties, advantages and disadvantages.&lt;/p&gt;

&lt;p&gt;To begin with, we shall define what a “template engine” is, where and what it is implemented for.&lt;/p&gt;

&lt;p&gt;A template engine is an inherently special software that uses HTML entities to generate the final view sent in response to a client’s request.&lt;/p&gt;

&lt;p&gt;Web templates are used to create sites and pages of any type, since the template acts as an unfilled form of the document, the same for any presentation before filling in the data.&lt;/p&gt;

&lt;p&gt;The “modern web” is characterized by double projects, for example: React / Angular / Vue for the client part and NodeJS / Django / PHP for the server part. &lt;a href="https://websailors.pro/" rel="noopener noreferrer"&gt;Software Developers&lt;/a&gt; actually write TWO applications to solve one problem. For large projects or projects with great interactivity, this might be reasonable, but is ti so for small and medium-sized projects?&lt;/p&gt;

&lt;p&gt;Knowledge of template engines and methods of their implementation in the project allows the back-end developer with minimal knowledge of CSS frameworks and JavaScript to create and run a project of quite high quality without involving web programmers.&lt;/p&gt;

&lt;p&gt;The main goal of the template engine is to separate the presentation from the program code. In particular, the use of template engines improves the readability and testability of the code. At the same time, completely different people can be engaged in design and programming, since the data is connected “surgically” exactly in the places where it is needed, or maybe one person, alternating activities or distributing work on the code and presentation in time.&lt;/p&gt;

&lt;p&gt;It should also be noted here that the template is, in fact, a kind of “contract” between the client and server data. And then it is a contract, so its formation is a responsible job. Therefore, template engines are often created with elements of a real programming language. Elements of object-oriented programming, in particular, inheritance, are supported.&lt;/p&gt;

&lt;p&gt;All templates are created according to the reuse principle and the possibility of transfer to third parties. This means that a good template becomes an object of intellectual property and a subject of sale via the Internet. There are many commercial sites that offer free or paid templates, and also sell licenses for their use.&lt;/p&gt;

&lt;p&gt;Any template engine works with the “engine” inside the framework on top of which it is used. The engine analyzes the written template, extracts specialized tags from it and associates it with data to form the page before sending it to the client. Thus, the template engine can conditionally follow the formula:&lt;/p&gt;

&lt;p&gt;(data_source + tamplate_text) * engine = view.&lt;/p&gt;

&lt;p&gt;Each programming language has its own list of standard template engines, although there are also language-independent ones. Among all, many dependent template engines can be distinguished as follows: Java (Apache Velocity, FreeMaker, Thymeleaf), PHP (Smarty, Twig, Blade, Volt), Python (Jinja2, Django Templates), Ruby on Rails (eRuby, Haml), JavaScript (Handlebars, Pug, Underscore, Haml).&lt;/p&gt;

&lt;p&gt;Among the independent, Mustache, Handlebars, Jade. Moreover, they are also the most used according to statistics.&lt;/p&gt;

&lt;p&gt;For example, Django Template has a very simple syntax and its template is as follows:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F5zgpcp7huxkpfh4qdsbl.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F5zgpcp7huxkpfh4qdsbl.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;after the transfer to the client it looks like:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2fwo2dcuyd6lxqhaquio.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2fwo2dcuyd6lxqhaquio.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That is, using the template engine, you can easily create a page interface, and then fill it with data for each client! At the same time, the template engine supports sections, inheritance and conditions, so that the presentation can be divided not only between the code and the template, but also between several templates, which may or may not be included in the view without a single JavaScript line.&lt;/p&gt;

&lt;p&gt;Of course, pages with templates are formed on the server side. This process is called Server Side Rendering (SSR).&lt;/p&gt;

&lt;p&gt;SSRs and templates are easily subjected to SEO optimization, and without additional libraries and frameworks, because not all search engines can process and execute JavaScript for rendering, for example, React applications and the time of crawling (analysis) of each site is limited.&lt;/p&gt;

&lt;p&gt;SSR has a positive effect on overall project performance perceived by user. This is especially evident on slower machines and on slow or mobile Internet. There is no need to wait until JavaScript is downloaded, processed and executed. The browser only needs to display the finished HTML immediately, without waiting for JavaScript — and the user can already read the content. Thus, the phase of “passive waiting” is reduced. After the “render”, the browser simply walks through the finished DOM, checking that it matches with what is formed for the user, and adds event listeners, if any.&lt;/p&gt;

&lt;p&gt;SSR is used when you need maximum website performance and responsiveness for the client, but you can pay for it with additional server resources. With server rendering, the entire HTML of the page is generated. This completely eliminates the need for additional data requests from the client at the starting point of page unloading from the server.&lt;/p&gt;

&lt;p&gt;A drop in performance can be observed only when time is spent on the formation of the first page on the server. This problem is solved by server-side caching. Further, all HTML responses to standard queries are already “known” and the response time “tends to zero”.&lt;/p&gt;

&lt;p&gt;Of course, server rendering is not a panacea. Its work is accompanied by computational costs, the need for caching, memoization and the presence of advanced memory management systems, but allows you to extract more relevant data and respond to a more complete list of requests than with static or purely client rendering.&lt;/p&gt;

&lt;p&gt;We at &lt;a href="https://websailors.pro/" rel="noopener noreferrer"&gt;WebSailors&lt;/a&gt; will look at various types of rendering in our next articles. The only thing that can be said here is that the template-based SSR gave birth to such modern, but still less common technologies like Gatsby, Jekyll, Svelte and Metalsmith.&lt;/p&gt;

&lt;p&gt;As a conclusion, we can say that the use of template engines is justified for small projects and start-ups, in which the first place is not the interactivity of web components, but the relevance of the data, download speed and minimization of the load on the device of the content consumer. Or, if one or two people are working alone, without the support of “pure” web programmers.&lt;/p&gt;

&lt;p&gt;Read our new article - &lt;a href="https://websailors.pro/12-tips-how-to-choose-a-software-development-company" rel="noopener noreferrer"&gt;12 Tips how to choose a software development company to not lose money&lt;/a&gt;&lt;br&gt;
Source - &lt;a href="https://websailors.pro/" rel="noopener noreferrer"&gt;WebSailors&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>angular</category>
      <category>vue</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
