When I was a kid, I used to watch boxing with my dad, professional boxers are often divided by weight, including many different classes such as feather, fly, middle, heavy … Developer are also divided and have rankings, but not by weight but by skills, including many different classes from intern, fresher, junior to senior, tech lead …
Myself, I am currently just a feather-and-fly developer, so my surroundings exist a lot of my classmates, even many of them have not been ranked yet. I realize that a lot of you have a hard time, don’t know how to train yourself to improve your ability and rank up.
Skill development is a long way for each of us developers, which requires a lot of time and effort. Everything will be easier if we use time and effort appropriately and effectively; otherwise, everything becomes meaningless.
Learn how to improve debugging capabilities
Every line of code you write has the potential to cause errors, every software has errors. Therefore, to become a great developer, you need to train your skills of finding bugs, fixing bugs, you need to become a bug killer, no bug can pass through your hands.
However, I find that developers with fur and flies often avoid debugging, which makes their debug capabilities bad. Whenever the code has a bug, they often immediately look to another guy who is more likely to get help. As a result, high-level guys get better and better because of being exposed to many bugs, they learn how to judge bugs, find bugs, handle errors …, and those guys who go to fix bugs for them can’t learn anything. both.
In order to improve code and debug capabilities, I think we should learn how to solve our own problems, independently fighting bugs. Don’t rush for help and look for help yourself, only seek help when you’ve really tried your best but still no results. You will probably finish the task more slowly, more tired, but you will learn more things, more advanced level.
Learn how things work
The work for fresher, junior positions is usually quite simple, usually to follow something available. For example, making a web page based on an existing web page, code a function based on the old functions … The reason is because the level of fresher, junior is not enough to be able to do an independent job. There is nothing wrong with this, following the things available by senior brothers will help us learn a lot. However, I see many of you rely too much on the available stuff, just know how to copy / paste the code from the available ones, make slight adjustments to suit the requirements and complete the task. That is no good.
I have seen a lot of you do not understand the basic theory of the web, do not understand how ASP.NET MVC works but still complete the assigned task, the reason is that they rely on the old code available to do something similar to so. As a result, these students didn’t learn much from the process, they only learned how to cope.
In my opinion, in order to develop fast and best, we need to keep an open mind, a curious head. Don’t be easy with what you do, be curious, understand why it is done so. Try to understand why the saints on stackoverflow are so instructions, not just copy their code. Understand why old code is so coded, not just imitated. As above, you will probably finish tasks slower, more tired, sometimes criticized by your boss for slow work, however, think for yourself, learn how everything works well. for you.
Don’t just finish the task, look at the bigger picture
As I said above, jobs for low positions are often very simple, these jobs are usually only a very small part of an extremely large system. Therefore, the developers of feather and fly classes easily fall into the situation as pawns on the chessboard, do not understand the whole situation, do not develop their minds, nor learn more complex knowledge.
So take the time to find out where the things you are being assigned to do are in the system, what are their tasks, why are they doing so … So you will learn how system design, the way a larger system works, even the way their business works … Don’t just take care of working like a mercenary, get it wrong, that’s not good for your mind your.
Of course, sometimes the mercenary is the job the company hired you to do, they don’t pay us to go in there to find out what we are not responsible for. Assuming your task is to edit a little bit of CSS then of course they don’t want you to spend an hour learning how the whole website works. However, always trying to look at the bigger picture helps us learn more, understand the system more, and over time we can take on more complex tasks, which is also beneficial for on the company side. On your side, if you don’t want to be a pawn don’t act like a pawn, always try to look up to see what they are doing above your head.
Always looking for gaps in knowledge
Have you ever fallen into the situation of sitting down to study but did not know anything? If you have been, the reason is because you missed an important job of tracking gaps in your knowledge.
There was a time I always had difficulty handling disagreements with C #, every time doing anything related to asynchronous, I spent a lot of time. I know I have a gap in my knowledge to handle asynchronously, but at the time I didn’t have enough time to study properly, then I forgot that I needed to relearn that knowledge. As a result, the next time I encountered some asynchronous things I spent a lot of time, things kept repeating like that several times. In the end, I decided to create a list on Trello called “knowledge gap” and put “asynchronous in C #” on that list to remind myself to improve this knowledge, then I do not forget anymore. and the situation improved. I keep a habit every time I encounter something I don’t know, what is important but I don’t understand, I put it into the list of “knowledge gaps” to improve gradually. The results are quite satisfactory.
Sometimes we don’t have time to improve, we simply don’t know what we need to improve. So tracking the closing flaw will help you gradually fill in the gaps, improving your capabilities.
Train yourself every day
Outside of work, in addition to code at work or school assignments, take time to train yourself every day. We have so many fields, the knowledge that needs to be trained outside the technology, let’s spend time with them.
A book about soft skills, a book about clean code, a book about history, an hour of English classes, an hour in the gym … will help you become a better person, a better person. Also a better developer.
What I mentioned above does not immediately turn you from a fighter to a heavyweight fighter, but I think it will help your promotion path shorter, more effective.
If you are already a medium-sized and heavyweight developer, do you have any advice for feathered and fluffy developers?