Do remember your first day of programming job? Maybe it is your first job or 5th job. You will always remember the problems that you faced during your first day or even the first week.
You don’t know where is your computer. You don’t know who is your immediate boss yet. A higher level boss or someone from HR has hired you. Then they send you to the appropriate department.
On the first day, I bet you were a little worried. Your tasks were not clear. You have to understand the codebase. There could be little documentation or no documentation.
Whatever was the condition, I believe you have passed through them in three or four weeks. Now you know who is your immediate boss, where is your computer, what technologies are in use, state of documentation and you begin to feel comfortable with the codebase.
Now starts the honeymoon period. Your boss will give you tasks. Small task but easier for you. This is your period where you start learning about your organization.
Sometimes, your boss will give you difficult tasks and for that you need help. In many organizations, your boss will assign you a mentor. If you have ever assigned a mentor then you know that your mentor does not have time. Your boss does not have time and it looks like nobody has time.
I don’t consider myself lucky. I was given no mentor at all. I have to figure most of the things myself. Let me admit that I have snatched my hairs at the beginning of my job. Feeling disgusted and under stress, I thought that I am in the wrong place:)
Anyway, during first 2 years, you are learning new things. Like that awesome framework that everybody talks about. You are working on that framework and you have something to brag about with your friends.
After 1-2 years you start to realize that you know enough about the place. Enough about the technology that you are currently working on. You want to know where are you going with all this.
Up to now, you have been given small tasks that any new hire can do. Yes, it is true. Believe me or not go and just look at all the code you have written when you started.
But what’s Next-AGAIN?
Can you do the similar tasks that were given to you 1 or 2 years ago, forever?
What if you want to move up the ladder? You want to get promoted and become a senior architect if you choose to remain in technology side. Vice president or CEO if you want to move up in the management role. In both cases, you don’t want yourself to be passed over.
What if there is a downsizing and you are in the front of the row to let go. Why? Because you are replaceable by a cheaper option or any existing developer can do your work. Put it simply and harshly you are replaceable.
What if you want to move to another organization. Your dream organization. That organization has the higher salary or it is another geographical location where you want to live. Your dream organization is more high-tech and you love that. But you cannot move there with a limited or specific skill set.
In order to achieve excellence and all the benefits above you have to show your dominance. It is that simple.
In order to move up the ladder fast, you have to become the necessity of your boss and your team. You have to win battles for your team and your boss.
So the answer to my question – Now What? Now you have to prove your existence.
When you do this you don’t have to worry about downsizing or letting go and you will be promoted automatically.
What/Who is Stopping you
Well, there are roadblocks and you have to take care of them. The first roadblock for a junior developer is that nobody in the team has time.
Your mentors don’t have time. Your bosses and senior colleagues don’t have time. Sometimes you are also busy with a project and you don’t have time for your personal development.
Your seniors and mentors don’t have time because they are busy in doing ‘the important’ work. But they have time to tell you the tales of their success. Or they have time to show off. Don’t they?
They preach you why object-oriented design is important like a religion. But they don’t have time to sit with you for an hour or two and teach you a couple of things.
Secondly, you are shy and you don’t want to disturb anybody. This comment from a junior developer summarizes my point:
“Everyone on my team is swamped, and it’s very hard to ask for advice without feeling like I am bothering them, and I feel useless sometimes. What is the best way to go about asking for advice without seeming like a complete noob, and doing it with enough tact as to not take away from the productivity of the team?”
Solution to their Religion
The solution is that you will have to learn the art of questioning and approach.
Here is a small tip. Don’t be shy. You have to gather the courage and asked the question. Don’t ask questions too often. Set a time with your seniors and mentors. Specific time with a disturbing problem. A disturbing problem is something that is disturbing to you and you have done everything that you know but you are unable to solve or decide.
This will open up the gates of learning and believe me you will learn quickly from mentors than learning yourself.
But how quickly and why I am emphasizing learning from someone ahead of you? Let me give you an example. A rockstar friend of mine told me that it took approximately 6 months to learn professional front-end development (CSS, jQuery, and HTML) that is how to apply a basic level of knowledge to the type of projects that his organization tackles.
But he has taught all of his junior this stuff within 2 weeks. His junior started development on projects within 2 weeks. Isn’t that fast?
See! You can collapse the timeline by learning from others. Their experience from real life projects and their mistakes can become the guideline for you. When you learn from real life and real-world projects then you are way ahead of your peers.
Once you become the necessity of your organization fast then you can carve out time to work on additional skills. These additional skills will set you ahead of all of your peers and you can move up the ladder not only in your organization but anywhere else in the world.
Don’t become someone who uses other people’s libraries or frameworks and writes only glue code to come up with the solution.
Look, I am not against framework or libraries. No, not at all. There are some higher level developers who have worked hard and encapsulate their knowledge in that little framework that you can download and use that in your framework.
I want you to be like those higher level developers. What you need to do is develop is transferable skills. Skills through which you can develop your own API and one of those skills is object-oriented design. Another skill is problem-solving and algorithm design.
No matter how many frameworks are invented and dies, you possess skills that can be used to create frameworks or understand frameworks faster than anyone else.
I believe with these hardcore skills people will pursue you and not the other way around. Your development path will not be limited to your own organization but you can any organization.
It is difficult to condense the problems of every junior developer in this short email. You can tell what do you think about the problem you have faced as a junior developer or what problems you are currently facing if you are a junior developer.
So go ahead and comment below. Also, don’t forget to subscribe because I share personal experiences there which you can use for yourself as I use them for myself.