I have been coding for more than 10 years now and spent last 6 years working as a Software Engineer.
In this article, I will share 9 things I wish I knew when I started programming knowing which would have made my coding journey lot easier.
1. You don’t need to know everything
There’s simply way too much to know.
In every company I've joined, I didn't know most of the tools I would be using until I actually started working there.
Before my first job at Morgan Stanley as a full stack developer, I didn’t know React, Redux or Flask.
Before my second job at Amazon India as a backend and ML engineer, I didn’t know AWS, Transformers and Typescript.
Before joining Adobe as a Java Data Engineer, I had never worked with Hive, Presto and Kubernetes.
Currently I am working at Amazon in the US as a backend engineer and here I worked with multiple internal tools for the first time.
Software engineering is less about knowing a specific tool and more about willingness to learn new things when the time comes.
2. Learn one Programming Language
When I first started programming, I wanted to learn all the popular programming language and tools.
I thought “The more languages I know, the better programmer I'll be!”
As a result, I constantly switched between languages. I would watch some Java tutorial on one day, Python tutorials the next day and some JavaScript tutorial few weeks later.
I felt like I was learning a lot but my knowledge was superficial at best. I wasn’t really getting anywhere.
For example, I was able to write simple code in java using if/else and for loop but didn’t really understand how the JVM works, how memory is managed, or how multithreading works in Java.
Looking back, I wish I had focused on just one primary language from the start and went deep into it rather than learning little bit of everything.
And trust me, once you have that foundation, learning other languages becomes much easier.
Depth is more important than breadth when it comes to programming languages!
3. Don’t compare with others
As a human being we have a tendency to compare ourself with others and this happens a lot in programming.
When I started college, I knew nothing about coding but some of my peers had already been programming for 2 years.
I started learning about data structures and algorithms during my second year, but some people in my batch were already experts in competitive coding.
This led me to constantly compare myself to others and feel like I was never going to be as good as them.
I spent too much time worrying about how I was doing compared to others, instead of focusing on improving my own skills.
But, here's the thing I learned: no matter how good you are, there will always be someone more talented and smarter than you.
The truth is, everyone's journey is unique.
No one is better than another person.
The only person you need to be better than is the person you were yesterday.
So don't compare, don't compete, just create, learn, build, and enjoy your journey!
4. You won’t remember everything
When I first started coding, I was obsessed with trying to remember every little detail.
But the truth is: there is only so much information you can hold in your brain.
Unless, you repeatedly practice or review what you have learned you will forget it in a few weeks.
That’s how our brain works.
Over the last 10 years, I have learned 8 programming languages including PHP but if you ask me right now to write a for loop in PHP, I wouldn’t be able to since I have forgotten most of it.
You don't need to remember everything.
Just focus on the basics, and then let experience and practice fill in the gaps.
And even if you forget something you can always Google it, read the documentation, go to Stack Overflow or just ask AI tools like ChatGPT.
5. Learn by doing
The best way to get better at coding is by writing a lot of code.
You can watch tutorials.
You can read articles.
You can buy textbooks.
But the real learning starts when you write code on your own.
It’s not always easy and it can get frustrating at times.
And most importantly, it’s going to take time.
But like everything else, the more you do it the better you get.
So, once you have learned the basics, try to write as much code as possible.
This could be through building projects or solving coding challenges on platforms like leetcode.
You should also try to read a lot of code from experienced programmers.
Reading code exposes you to different coding styles, techniques, and best practices that you may not learn otherwise.
6. Don't just be a Programmer
For the first few years, I used to believe that a programmer is someone who is just coding all the time.
But after few years I realized that programming is less about writing code and more about solving problems.
Every line of code we write has a specific purpose and programming is just a tool using which we can solve real world problems.
That’s why it’s important to see ourself as a problem solver rather than just a programmer.
Having a problem solving mindset lets us focus on the bigger picture and helps us spend more time thinking about the solution than writing code.
Once you know what problem to solve and how to solve it, coding becomes lot easier.
So, don't just be a programmer - be a problem solver.
Don't just write code for the sake of writing code. Write code that solves a problem, that makes a difference.
7. Communication Skills are Important
Just being good at the technical stuff isn't enough, being able to communicate your ideas and solutions effectively is what separates the successful programmers from the rest.
This is something I learned late in my career but since then, I've made a conscious effort to improve my communication skills by actively seeking chances to practice presenting my ideas, joining in team discussions, and getting better at talking and writing.
Being good at communication lets you clearly express your ideas, work effectively with team members, and explain complex technical stuff to non-technical folks.
8. Ask Questions
No one expects you to have all the answers.
When I first started programming, I was too shy to ask for help.
I thought that asking for help was a sign of weakness, that it meant I wasn't smart enough or good enough to figure things out on my own.
I would spend hours, sometimes even days, banging my head against a problem, determined to solve it myself.
But everyone needs help sometimes.
Asking questions is how we learn, grow, and become better at what we do.
And the best part is most people are nice and always ready to help.
I've never had anyone refuse to help me. People actually like to help.
Remember, the only silly question is the one that goes unasked.
So, don't hesitate to ask your colleagues, mentors, or even strangers on the internet for help.
Chances are, they've been in your shoes before and are happy to share what they know.
9. Challenge Yourself
Learning to code is like building muscles.
In the gym, if you only lift a light weight dumbbell, you won’t get stronger.
To grow your muscles fast, you need to slowly increase the weight over time.
The same principle applies to coding.
To get better at coding, you need to do harder tasks and solve bigger problems.
But don't try to take on the hardest tasks right away.
Instead, try doing tasks that are a bit harder than what you're used to and slowly increase the difficulty level.
When you push yourself to solve difficult problems, you're not just solving the problem – you're leveling up your skills, expanding your knowledge, and building your confidence.
Thank you so much for reading.
If you found it valuable, hit a like ❤️ and consider subscribing for more such content every week.
Checkout my Youtube channel for more in-depth content.
Follow me on LinkedIn and X to stay updated.
Checkout my GitHub repositories for free interview preparation resources.
I hope you have a lovely day!
See you soon,
Ashish
As an aspiring full-stack developer looking for mentors in this space, this article is a treasure to me. Thanks for this very helpful article
3,5,9 best points to remember..! Thanks for sharing..