I'm currently a Software Engineer in one of the fast growing startups in my country.

I'm an open source contributor.

I'm a writer on Medium and for freeCodeCamp.

I also published my own Mobile Application with my own back-end server.

Some people might look at me and think that I'm an ideal Software Engineer. You might think that I have always been like this, able to do everything like I was born with the talent to do so.

But in reality, I am not everything that people see. Even now, everything I am doing is all for the sake of growing.

Photo by Tim Foster / Unsplash

I am not an overly smart person. I used to score pretty badly during my university life. And I don't have a good long term memory.

I am not a fast learner. Some people might only need to be explained something once to fully understand it. Meanwhile I might need two or three explanations.

I was not even a good writer. I always struggled doing those assignments which asked you to write a story in 1000 words kind of thing.

And especially, I am not a confident person. I have huge Impostor Syndrome.

Fortunately, I am able to compensate for all those things that I lack. I'm able to get myself back up every time I am feeling down.

Still, nothing comes instantly. Everything comes with hard work and progress. It takes times and dedication to overcome it all.

In this article, I will share several things that enable me to overcome my own weak points.

1. Make learning a habit

Photo by Raj Eiamworakul / Unsplash

Some people read books every day. Some people watch videos or listen to tech podcasts for learning, or even take online courses.

As for me, I tend to lose focus on long reads and stop halfway through on online courses. But I found reading short tech articles on Medium or freeCodeCamp effective for me. Finding the best way for you to learn is the first step into learning.

Make it become your habit. Whether it's having 5 minutes to read every day in your morning toilet, or even time to read before bed. As for me, I always commute with public transportation and I tend to spend my time finding a good 5 to 10 minute article to read.

Learning keeps me updated everyday. Having a head start has helped me keep myself together so I don't get left behind on track.

Learning is a lifetime journey for us.

2. Make coding a habit (too)

Photo by Adi Goldstein / Unsplash

Yes, it does sound crazy. When you are doing it, a lot of people will think that you need to get a life. Why did I say that? Because I am living proof of that case!

But for me it's a part of making myself better. It keeps me from getting rusty and also it helps a lot when I am trying to learn new things. After all, hands-on execution really helps me a lot when learning new things.

Making coding into a habit is not an easy thing - for god's sake it is coding! It's full of weird magic and unknown realms. All that aside, you need to find some parts of it that you like. As for me, I love the challenge of exploring new things, which is never ending in coding.

Just because you like it doesn't mean you'll make it a habit. What really helped me back then was doing 100 days of code. It helped me get into the habit of opening a computer everyday and at least looking at some code.

3. Sharing is caring

Photo by Priscilla Du Preez / Unsplash

When you are learning so much, there is always time to give back. This really helps boost your confidence. It's also one of the better ways for you to learn, as sharing will help to fill any knowledge gap in thing you are trying to share.

There are plenty of ways in which you can try to share your thoughts: writing a blog or article is one of the ways (as I am doing right now). Giving a technical talk, or even simply mentoring your peers are other ways.

Also, remember those stack-overflow questions you have been copy-pasting?
It is now the time for you to give back to the tech community and share your own though also.

4. Look into an open-source project

Photo by Alex Holyoake / Unsplash

GitHub is full of interesting things. Try to take your time exploring and you might find a lot of interesting things. Some are complicated super-libraries, some are not even code, only list of open-source APIs which you can use. There are even some joke repositories there for a laugh.

Contributing can even start from making an issue on a repository. Every big thing always starts small.

5. Impostor Syndrome? Learn from it!

Photo by Maksym Gryshchenko / Unsplash

Have you ever felt like you are a fake? Feel scared that everybody will figure out that you are just a scam, like you don't actually belong here? Yup, that's what impostor syndrome is.

Most people certainly have felt this before, especially in the fast growing field of technology. In reality, this is very common and it is actually a good sign if you are having it. This means you are in a place where you know enough to know that you do not know enough things.

The thing about impostor syndrome is, don't let it overwhelm you with negativity. Let it drive you and become a motivation for you to grow and be better.

Final thoughts

Now, even after all that, you might wonder if I have successfully dealt with all my weaknesses. If I have already accomplished enough. If it's time yet for me to stop.

The answer is a big NO.

You never stop in growing. The moment you stop growing, you will start dying inside. The world is vast and you'll never have enough knowledge.

Success is a long journey ahead, nothing is ever instant. Focus more on the progress rather than your destination and your path will feel lighter. Keep up your consistency and you will surely reach your destination. Even then always remember to give yourself a break when the time comes.

Thanks for reading through my article! I do hope that it will be useful for you! I will be very happy if it is! :)

"It does not matter how slowly you go so long as you do not stop" ~ Confucius