avatarPen Magnet

Summarize

A Junior Programmer’s Guide to a Successful Programming Career

Have a focus, but don’t lose variety

Photo by John Schnobrich on Unsplash

If you have freshly entered a software career, there is a good chance you are overwhelmed with the opinions.

This is because your peers and seniors have an enormous impact on what you think about your daily work, your programming methods, your productivity and your overall outlook on your software career.

Not only do you receive their advice, but you also actively try to follow/imitate them in unintended ways. As a result, it is very easy to get confused about your ideal software career path.

So, here are some steps to maximize your focus.

1. Be Thankful for Where You Are

You got hired by pursuing a programming degree, or an online tutorial. You landed a job in a software firm. They assign you 30 documents to read. Now you hate your workplace. This is not what you signed up for!

I began my software career in a similar situation. I hated it at that time from the core of my heart. Today, I feel it was for a good reason. Documentation brought clarity in the most important aspect of software building: scope.

The only bad part of it was that I was tasked with continuous documentation with no intermittent chance at development.

I summarized it here:

It’s not just about documentation. It could be vague responsibility, incoherent workflow, or non-communicative colleagues or bosses.

We are not far away from the time when software will control the world. You do not want to miss your chance to be at the helm of the affairs. Do not allow bitter moments to take over your career decisions.

Take this: At this stage, whatever bad comes your way paves your understanding about how it should, or should not be.

Maybe destiny will give you a chance to fix it for the industry. Learn the ropes. Take your time with software and colleagues. Then, jump off as soon as you get a chance to enter your ideal workplace.

Avoid the Productivity Trap

A fellow junior developer of mine was always ready with their assigned task in every daily standup meeting. The developer was junior to me, yet I found that they often finished their assigned task much faster than everyone else. I admired them for their productivity.

Until one day, when I realized they were blindly copy-pasting from Stack Overflow without knowing what the code did. In a rigorous code review session, they failed to explain lines of code they wrote.

Most of the time, if you are using an open-source library or even a component written by a senior dev, you get a chance to step inside a function you use in your high-level application code. Do it. Take your time to learn what that function does.

Even if you do not understand its complexity, with repeated efforts you will learn a lot.

As a junior developer, you have every chance of making mistakes. You are allowed more time to settle in. Do not get bogged down by peer-pressure. Do not rush into delivering something you do not understand. Get under the hood of things.

If your manager pressurizes you to be more productive, explain to them politely you are building your knowledge base, and it will pay up dividends within weeks.

If needed, invest more work time to compensate for productivity loss. Overtime invested at this stage will liberate you early on your future Fridays.

Identify Your Type of Career

A friend of mine was an underpaid software tester for a very long time. He hated testing from the core of his heart, but he was unable to break his career jinx.

He struggled day and night, learned big data from online tutorials, and got into an MNC through hush-hush hiring. Success! He was now paid at par with his peers, and everything seemed within reach.

Three months into that, he quit that MNC due to a toxic culture and joined a growth-stage startup in big data. Because here, he will get a chance to do some real work!

The moment of truth struck. What he realized was far from what he expected: he didn’t really like working with big data software. Hadoop and Scala sucked big time, and it won’t be a month before his superiors would know about it too.

He started getting nightmares about getting fired from the company for being incompetent. A hot sector in software may give you your desired salary jump, but how long can you sustain it? You simply can’t fake it till you make it forever.

No matter what they say, there is something called “your cup of tea”. It’s not about the programming language. It’s about the programming model required to solve a specific real-world problem.

Data science is a gold rush for today. You can very easily learn Python too. But you can only sustain and grow into a data science career if you love statistics, or are at least good at solving basic statistic problems during school. If not then, at least before you join the next hot data science startup.

The same applies to basic algorithmic problem solving that goes into preparing for FAAMG and its ilk.

If you can’t successfully wrap your head around the linked list, Big O notation and hash tables, but still know when to use which algorithm or data structure, you can still make a good programmer in a small to mid-sized software firm.

The key thing is to identify your true turn-on. It could be something beyond programming too.

For example, if you like sharing your code snippets with the community, you could build a thriving GitHub repo that is followed and starred by thousand of other programmers.

If you are good at troubleshooting, try answering a question twice a week on Stack Overflow. You will be amazed at what you have become in just two years.

Stay in the Middle of Things

A programming career is like dieting. If you eat too much fat (well-paying or comfort-zone skillset), obesity can kill your mobility. If you don’t eat whole and diverse food (complementary skills), you may soon face nutrition problems.

If you love working with SQL queries, it’s great. SQL and database operations often make or break popular apps and websites accessed by billions every day. Your daily impact on the world is your sole source of career motivation.

However, tech firms are adopting teams that are full of well-rounded people. They do not like the fact that they over-rely upon your database skills. What if you leave tomorrow, or some calamity hits you badly?

They want a team where every developer knows the front end, back end, middleware, and (optional) some deployment basics. That‘s their risk-mitigation strategy against unexpected situations.

If you’ve got a well-paying job due to a niche skill, great. But keep an eye on what’s happening around you. Learn how the other components complement yours to make a full-fledged product. Who knows, someday you might be obsolete.

Always remember:

In programming, you are working towards your obsolescence. Make sure you are well-protected past that.

Evolve Yourself into a Good Senior Developer

A senior developer role is all about opinions. A senior developer interview is often laden with questions about your opinions.

But how do you begin to form opinions?

If you are a React developer, and targeting a full-stack developer role, it is not enough to enroll in five online courses that teach you Node.js, Docker, AWS, REST, and GraphQL (optional).

For that matter, it is also not enough to build a full-fledged website from the tutorial artifacts and upload it to GitHub. Those are good starting points, though.

Programming is a discipline rooted in experimentation. You depend upon libraries. Those libraries give you liberty in customizations. You can choose from 64 libraries to achieve a similar task.

Figure out what the differences are and what your choices are. More importantly, what is your rationale behind those choices?

Why you prefer a specific back-end DB? Why did you prefer AWS Lambda instead of plain REST endpoints? What is your preferred npm response compression package and why?

Your ideal way of going past having the tutorials is to experiment, then search if others did the same.

The advantage of this approach is that you get firsthand experience of what happens under the hood, and you get validation from other experts’ opinions online.

An opinion ripened with experience is far more valuable than nonsense speech during senior developer interviews.

Lastly, reading is underrated in programming. Reading about programming and reading experts in online forums is a very crucial part of this transformation.

Conclusion

Programming can be quite a fulfilling career if you build yourself through the right steps.

Being a junior developer allows you to identify your true programming self, and to be wrong a lot of times. Utilize this opportunity and be the best developer you can be.

Programming
Software Development
Careers
Work
Software Engineering
Recommended from ReadMedium