The programming world might be challenging place for a beginner.
I started learning to code few years ago but realized I had made huge mistakes and went down the wrong path that didn’t quiet make me the developer that I needed to be(!want) instead it made me the developer I didn’t want to be, an impostor.
To fix this I didn’t really know what to do and was depressed for a while, I knew a few code and wrote some basic apps including a Facebook chatbot but I was not really growing.
But fast-forward to now, I’m getting really better than I used to be and already working on my own app(tintermarks!).
But I realized I needed to share just how the journey has been/is going and what I wished I had always knew and practiced before now.
1. Decide: Narrow your skills, focus on one thing you’d like to be great at.
“Note: Great is not good if you can be better.”
If you narrow your skills, you will get broad and healthy understanding of whatever it is you want to be good at, it might be a library, framework, programming language or even cooking beans. When you have less things in your mind to study and work with for a long time, you’ll feel really comfortable, become an expert and might even get to help others.
What I did wrong:
2. Pride out, learn in. (or Learning).
“Right now, I know very little about machine learning. In some months, I will know a lot. This morning, I knew little about meanshift. Now, I know a bit. Learning difficult things is really only about biting tiny bits at a time, but don’t stop for a long while.” — Mark Essien.
Coding is a process that requires constant learning and practice for life, no matter even if you made progress installing an IDE, it’s progress after all, you can leverage that to boost your confidence to learning more everyday.
The more basics you understand the more confident you become. Even if you fail, the basics will always be there to guide you and make you better.
Always feel free to revisit/revise the basics. Besides there is no complex without basic and no basic without complex. It takes a long time to become an experienced developer, be patient, respect that.
What i did wrong:
I was always going for the big topics and wasn’t really getting a hang of the basics. I always forgot to practice and learn how to learn,practice better.
3. Start a project.
“I’m just about to take a much-needed nap after surfing all night doing legal stuff and my friend comes in! How bout a ad-blocker, sorry! friend-blocker (or frad-blocker) service that detects friends coming when I want to take a serious nap, automatically tells them I’m already in dream land.”
Well you didn’t hear this from me! :-D. This might sound really evil but it’s an idea that offers solution to a problem which in this case is my problem.
Using the little you learned after studying a framework, programming language or online course/tutorial to create and finish a basic or even not so basic project helps you understand and learn more about real-world applications.
It is the best way to become a good developer or programmer.
Don’t feel discouraged if other people’s projects are more cooler than yours, try instead to be motivated by it and learn about how they tackled such process, chances are that you’ll make a better product if you feel encouraged that you can do it too. Always be patient,calm and positive.
What i did wrong:
I had a really complex structure of my project idea in mind, I needed to respect the fact that modularity and gradual implementation of important features were key to success. I need to think big but start small.
4. Connect, connect, connect.
Those people/events you have in your circle defines you.
If a footballer wants to become better,
He goes to the football field to play, watch others play. That doesn’t mean he’s not a good player, In fact he might get a contract if he’s noticed by a club seeking talent.
Also, to improve teamwork and skills, the footballer also listens to a coach, plays in a team.
Well this article is not for footballers..but the entire scenario is same for developers.
To become better you may need to find a mentor. Make sure you have that person/team/start up you stalk and observe to learn from.
Follow experts and everyone active in your field on social media, and if possible in person, attend meetups, watch keynotes, listen to podcasts, talks in your fields, i particularly love listening to ted talks and watching you-tube videos, it’s a sure way to connect and learn more.
What i did wrong:
Just didn’t care about any of these, was really ignorant.
5. Define yourself.
This has to do with your portfolio and a brief description of what you do. It could be a personal website, application, open-source library or technical article you wrote or even a social media handle with proof of what it is you’ve been able to accomplish with your skills and who you really need to reach.
Apart from being a way to organize your success, it’s a sure way to attract employers seeking to hire someone like you.
This is Actually the part where you get to implement all you have read above, you will work under a person, get a few sad moments from making beginner mistakes; breaking things, and wrong assumptions…
BUT guess what?
“greatness is nothing more than a collection of corrected mistakes.”
if you have a good team/management, they will help you realize this and get past the awkward first months of being a rookie by being there to help you always and show you why you need to pass through the rookie stage.
Feel free to say the words “I don’t know, but I would love to learn”.
It works like magic! Because you’re honest and really want to learn, you won’t be bothered much.
You will need to know/practice company standards, procedures and work twice as hard as everyone else to catch up.
p.s I don’t have a portfolio yet, (shucks!) But…
I’ve been able to realize thanks to experience, and reading great answers on quora, working for a small startup for a brief period and advice from experienced devs too.
What i did wrong:
I did everything wrong here because I was struggling with impostor syndrome then and was not defined.
Just for extras…
Don’t chew more than you can swallow;
Talk is cheap, code is not. You can either learn to talk or learn to code.
Don’t go for jobs, projects you know very well would take a long time of experience to handle, as they say… There is time for everything!
Some more things so important that I needed to learn.
- Learnt about version control.
- Read source code of open source projects a lot.
- Read a good programming book to the end and did all exercises. (Eloquent Js, Herb schildt: beginning Java, Dart programming from Tutorials point) are some I’ve been reading forever.. Lol
- Read books on concepts of coding (looking @ you Code Complete).
- Follow @ProgrammingWisdom on twitter.(good quotes!)
- Follow experts and new devs like me.
- Join discussions, AMA sessions and conferences on things I love most and things interested in.
- Learnt atleast one programming language to core, one more to support it and another to see what’s different or new. In other words, feel free to experiment breifly.
- Learn to google questions and ask on stack overflow.
- Take notes of great things I learned and a brief detail of my own explanations/views, then I make a quick research to confirm if my views are valid and then if not; realize.
- Participate in long code hours and marathons.
- Participate in open source projects and communities.
- Study/practiced Data structures and algorithms, basic string/array manipulations.
Here are a few links to help you get started.
That’s all for now!
Hope you’ve enjoyed reading this as I’ve enjoyed writing, help share this just so someone who needs it might find, it’s just a clap or two…or three away!
On becoming: 5 things I wish I knew when I started to learn to code. was originally published in codeburst on Medium, where people are continuing the conversation by highlighting and responding to this story.
Gurupriyan is a Software Engineer and a technology enthusiast, he’s been working on the field for the last 6 years. Currently focusing on mobile app development and IoT.