Beginner Beware: The Mistake That Can Derail Your Programming Path
Learn about the common fallacy that will trip your learning journey
Hello to all friends, colleagues, and all the weekend developers!
Back with another Zen story but a funny one.
A man and his wife were traveling with their donkey.
On the first day, both rode on his back. In town, they heard people whispering: “What a mean couple, putting all that weight on the donkey.”
On the second day, the man rode and the wife walked beside. People whispered: “What a cruel man, forcing his wife to walk while he rides on the donkey.”
On the third day, the man walked, the wife rode the donkey. People said: “What a careless man, letting his wife ride alone on the donkey.”
On the fourth day, both walked beside the donkey. Again, people whispered: “What a stupid couple! Why walk if they could ride on the donkey?”
Most passionate programmers fall into this trap of doing what others say is good for them.
For beginner programmers, this is a bane that can affect their career prospects.
It will become their biggest block to getting a job.
This can be seen in people's standard advice about building projects when learning programming.
This is correct but the question is at what stage of your learning should you think about creating the project?
The Downsides of Building Projects Too Early
While it's tempting to dive into building projects right away, doing so without a sufficient understanding of programming fundamentals can result in several challenges:
Lack of Direction
Without a solid grasp of programming concepts, you may struggle to define project goals and effectively plan the project's scope.
You do not know how to break down the project. This can lead to confusion and a haphazard approach that undermines the project's success.
What that does is, you lose your confidence in yourself and it becomes a dangerous downward spiral for your aspirations.
Inefficient Problem-Solving
This was one of the early mistakes that I did in college. I did not know data structures which was a critical piece for the project I was doing.
I implemented some fancy logic to get around it. But the code broke down for the simplest scenario that my professor tested with.
As you are not aware of most of the programming principles, you will end up writing thousands of lines of code which will only increase your development time and all those debugging.
As like me despite all that effort, your code might breakdown with the lightest of touches.
Suboptimal Code Quality
Rushing into projects without a strong understanding of best practices can lead to poor code quality.
Imagine you get selected for an interview and your interviewer sees your hacks.
Imagine how the interviewer will feel about it.
You may not even get any feedback for your code and you will be left wondering why you did not get selected in spite of having projects in your portfolio.
Get Stuck
There are a million places you can get stuck when doing projects. But these million places can turn into billion places with a lack of fundamentals.
There will be constant roadblocks that send you to the stuck state.
You will get frustrated.
This leads to abandoned projects and potentially your aspirations to programming.
Strategies to Avoid Building Projects Too Early
To ensure a successful and rewarding project-building experience, it's important to follow these strategies:
Solidify the Basics
Invest time in mastering the foundational concepts of programming before taking on complex projects.
Understand variables, loops, conditionals, and functions thoroughly.
One of the ways you can use to determine if your fundamental is strong enough is by practicing similar problems many times over but spread over weeks.
It will build the myelin sheath in your brain that will hold you in good stead.
Learn from Others
You may already use online resources and tutorials.
The most important thing that you can do is read other people’s code.
It will expose you to programming techniques that hours of tutorials might not be able to show you.
Incremental Progression
Start with small, manageable projects that align with your current skill level.
That was wrong.
Don’t start with manageable projects.
Start with problems.
Solve simple problems first.
Add layers of complexity and iterate.
Absorb new learning
If you learn something new on a project, go deeper in that concept rather than moving away from it.
Write a blog post explaining your understanding.
Talk with other developers about it.
Take time to analyze and understand concepts and techniques you encounter along the way.
Embrace Code Reviews and Feedback
Seek feedback on your code from more experienced programmers.
Code reviews are the best way to grow.
It is hard for the ego but liberating to get feedback that you can improve upon.
Personal Projects for Practice:
Develop personal projects specifically designed for practice and experimentation.
This should focus on going deep into a particular concept.
These projects provide a safe environment to explore new concepts and technologies without the pressure of delivering a final product.
Conclusion
Building projects are a vital component of a programmer's growth, but it's important to avoid the mistake of starting too early.
By understanding the potential downsides and following proactive strategies, you can make the most of your project-building journey.
Remember to prioritize learning over immediate results, embrace feedback, and engage in practice.
With these approaches, you'll be equipped to navigate the challenges and maximize the benefits of building projects, ultimately becoming a more skilled and confident programmer.
Weekend Reads
From Merchant Mariner To Tech Exec: How To Successfully Pivot A Career. A good link to get inspired
A Very Gentle Introduction to Large Language Models without the Hype: Fantastic Introduction on Large Language Model
Microservices by Martin Fowler: Another long read for the weekend.