This set of tips is designed for juniors, but can be useful for any developer who is interested in cultivating good habits. I try to constantly set myself challenging tasks and leave the comfort zone, here you will find a squeeze from my experience in the form of tips for every day. In turn, you can offer me ideas that are not listed here - I strive to constantly improve my techniques and grow above me.
So let's get started.
1. Review technology as often as possible.
Technology overviews are actions designed to stay updated on innovations in your sector. There is not much to say about this point, but, in my opinion, it illustrates well how simple reading can help you in self-education. Even if you do not fully understand the topic of the article and do not learn how to do that hocus pocus to which it is dedicated, you will at least be aware of what this is all about. And this is very important.
')
Now the web is full of services and tools that are designed just to keep us informed. They should be used, they can be the main source where you will go for fresh news and new ideas daily, weekly or monthly.
Tools like
Netvibes save time by bringing all your sources that you selected for technology review into a single tape. I would also advise you to take special time for viewing tapes and reading materials (for example, on Mondays and Thursdays), rather than trying to keep track of news constantly.
Here are some sites and forums I read every week:
However, if you use such content aggregators, try to focus on those technologies that you need in your work. It's too easy to get away with them and start jumping from one to another. Yes, yes, this last article about a new cryptographic ICO is just a bomb, but do you yourself work with cryptocurrencies? Concentrate.
2. Examine and disassemble cool sites
You can find great sites, resources and code experiments on the following sites:
But the point here is not to look at them and say: "Well, I can never do that." Ask yourself how you would implement all this magic, try to understand what tools were used for this. New technology, new library in JavaScript, some kind of CSS property unknown to you? We live in a world where new solutions arise every day — the learning process simply cannot keep up with them.
However, I recommend not stopping to just get into the process - try to repeat it, make a detailed explanation of how this works. The general rule is this: if you could teach someone else how to do it, then you have mastered the topic.
Last year I spent a lot of time on changing my workflow; among other things, I sorted out a lot of sites into components and thus studied how talented developers built them. Thanks to all these steps, I can combine different methods in my work and discover effective practices for creating websites. And that brings me to my next thought ...
3. Learn from those who are more experienced.
Usually, when you settle for a company with a junior, you are given a mentor by some of the leading developers: he looks at your code, creates a list of tasks for you and makes sure that you do not drop the database. Feel free to ask questions in order to learn from them as much as possible. Ask to show how they did that cool thing on the last site that they launched, or that mega-component that made the whole team easier.
And the most important thing: do not be afraid to ask questions that seem stupid to you. We all start a career with a different level of knowledge, so it’s quite natural that you have to ask about things that seem to others as elementary women. And the answers to these questions will probably help you for many more years.
Another good way to learn from the best is code inspection. If your team does not regularly read someone else's code, try to become the person who implements this practice. Without hesitation ask other team members to review your code and say what can be done better in it. Listen to their comments. Join the discussion. Explain why they did what they did, and not how they suggest. Exchanging opinions, discussing and taking over each other's strengths is probably the most healthy way to self-improvement.
4. Never forget to write code comments.
Yes, I understand that you have already heard this advice a million times since you started writing code - on the Internet, from bosses, from teachers, it is possible that from your dog. The point of commenting is not only to make the code easy to understand (both by other developers and by you in the future) - it also encourages you to think about the function before writing it, to define its purpose. And only one.
Refrain from creating multiSuperTaskFunction ().
// I don't know Rick mySuperFunctionAddRemoveCreateEarth( $string, $purpose1, $bool) { $var1 = true; while($var1) { addNewHumans++; } else { heregoesnothing(); } }
Say, for example, you set about writing a function that would manage the ecosystem of the planets. If you have a habit of writing comments on the code, you will not hesitate to break the code into a sequence of several functions, each of which will be responsible for a specific task.
Class Planet { public $name; function set_name(string $new_name) { $this->name = $new_name; } function get_name() { return $this->name; } }
The principle of separation of functions into small fragments helps to quickly catch bugs. It also makes it easier to separate specific elements that can later be used in other projects (modular components). Finally, the code will become much easier to read and you don’t have to hide out of sight when you give it to someone.
5. Heal yourself: refactoring
However, if you rely on everyone except yourself, you will not be able to improve yourself or gain self-confidence. That is why it is important to return to your sloppy code and put it in order. But [in my opinion, this is even more valuable than the development of a new opportunity. So the next time the product manager asks you what kind of unpaid tasks you have spent five hours of work, feel free to reply: "I refactored the code."
“Code refactoring is a technique of weighted improvement in the construction of an existing code base. It consists in making a series of small energy-saving changes, each of which separately is “not worth the waste of time.” However, the cumulative effect of these changes is very significant. By phasing in small portions by entering them into the code, you reduce the risk of errors. ” - Martin Fowler
If in a nutshell: try to regularly inspect your code and make improvements that do not affect the functionality. Make it faster, tidier, more readable, modular. I do it this way: I note for myself some piece of code for which I don’t have much pride or who had to write because of deadlines in a hurry, and after a couple of weeks I return to it.
When a particular piece of code is written as a hit, usually there is some good reason behind it. But the excuse for not taking the time to rectify the situation is much harder to find. An unstable area in the code will always hang over your head, like a sword of Damocles. Revising the code, solving complex functions is, of course, a lot of work, but doing everything the same in record time, because some bug was activated when the product was already rolled out - even worse.
Better take your time and properly understand your mistakes. This will save you a lot of time, nerves and mental health in the long run.
6. Make mistakes
In terms of?!
Being engaged in programming, I realized that one of the most valuable ways to rise to a new level is to go through a number of failures. Believe me: some errors are almost impossible to avoid, and this is a completely normal situation.
Have you ever registered the same function in a project five times? But I, yes, and not just once or twice. But due to the fact that I was faced with such a situation and developed a certain model, this does not happen anymore.
So do not be afraid to make mistakes. You repeat them more than once, but over time it will happen less and less. Your whole professional life will have to replenish your knowledge and adapt to changes in technology, but this is the beauty of our work - every day you learn something new.