I am Vlad, and I am a junior developer in CSSSR, a web production company specializing only in front-end. Today I would like to share my experience of being a junior and the ways to keep your motivation level high no matter what. A year ago, when I just started, I would love to read an article with the same topic, so I hope it will be interesting for everyone from “I have no idea what I am doing” to “I can write code almost independently”.. Let’s go!
Do not compare
Freshmen tend to compare themselves to their younger (or those of the same age) colleagues who are already more productive and knowledgeable. This is the most pointless thing one can be engaged in. A much better idea is to watch your own progress and compare yourself to a person you were the day before. If you note that now you can do something unthinkable earlier, it means you grew and should be proud of yourself.
Do not get distracted
In the end, we get a person who knows a bit about everything, but does not have a full understanding of anything and is not able to deliver any results.
A detailed study plan would be the best solution. You do not have to stop reading news, but instead limit the amount of your attention towards them.
Usually the plan looks like this: high-quality adaptive layout, the whole ES 2015 theory, a bit of jQuery, one or two popular frameworks. It is pointless to run after the latest fashion and study e.g. the React. These guys will tell you why.
Be ready to make (a lot of!) mistakes
You are going to make mistakes, plenty of them. Recently I have ruined a repository where a week-long teamwork was stored. Just try to imagine how “happy” I was. Fortunately, my colleagues have managed to easily restore the whole thing.
Best you can do if you have a problem is:
Not to keep silent. Confess for making a mistake and tell as many details as you can, especially what you were doing and how you have made it. Everybody makes mistakes in their career, there are no exceptions from this rule.
To learn a solution in details. Replicate the problem and the solution in a test environment. Remember, it is not a shame to do wrong, it is a shame not to learn from it.
To tell your problem, e.g. in a form of a blog post. This way you will remember the case yourself and would probably save someone else’s job.
Do not panic
Once again: keep calm, relax. All the good developers I know are as calm as a millpond. Deadlines, problems, difficult bugs, and overnight coding shifts are inevitable. Panic only causes distraction and postpones a clear action.
Learn from others
You’ve created several lines of a code, laid out a gorgeous page. You feel like printing it and hanging it on your wall to see it every day. But then a senior developer came and refactored the code so badly that you virtually feel like killing him. Do not even try. Instead, be grateful to him for finding some time for a review. Study his comments attentively, make sure you fully understand them. Do not hesitate to ask him for clearing your doubts and his choice of a particular solution. Do not be shy in expressing your own concerns and ideas: this way you will let him understand your way of thinking and point out your mistakes. Sometimes you might even prove you were right, and it feels like heaven then. :)
Plan everyday tasks
Plan certain tasks finishing which will make you feel satisfied by the end of a working day and will not let you criticize yourself. Choose tasks which are solvable, but not easy, and you will forget about being sorry for a useless day. If you do nothing apart from your work, your learning progress with slow down. Keep learning or the industry will overcome you. Best practices from some years ago are now considered to be an antipattern.
Work on a pet project
You have to work on something not connected to your job: a blog, a plug-in, an open-source project, or a game. Devote only a limited amount of time to it — the limitations will make you work productively, learn, and satisfy your own ambitions at the same time.
Cut an elephant into smaller pieces
Time is money
Do not waste it. Stuck with a problem? Forget about spending evenings on solving it. You are not yet skilled enough to have problems even Google has no idea about. Have a daily time span, mine is two-hours long. If you do not manage to come up with a solution within this time period, ping your colleague. If you have not understood a word, ask him for a deeper explanation or go to someone else. Do it three, five times, or as many as you need to get a full understanding of the problem.
Get enough sleep
Probably the most known and the least valued advice people get is simply sleep enough. Being a morning zombie, fueled by caffeine is not the way to start a productive day. Two hours before going to bed, turn off all the devices around, avoid any screens. Have a walk, workout — do anything, but do not sit in front of your computer. By night, you lose your concentration and get conscious again in several hours watching stupid Youtube videos or reading your newsfeed. Change the activity if you can. Best solutions I had came to my mind while I was washing up or staying at the gym.
Understand how this works
Most specialists would not be able to explain why they are using a particular feature or a library. They just know the code would not work otherwise. Stop curing the symptoms and go deeper to answer the “why” question. The market is crowded with the coders who are not able to explain their solutions for simple tasks.
If you noticed you could not understand the article, get an English textbook. Do not you want to? Well, great. another junior developer would probably get the next project.
Thank you for reading. I would love to read your comments and thoughts.