- Sloth Bytes
- Posts
- How To Start A New Programming Project đŠ„
How To Start A New Programming Project đŠ„
Hello friends!
Welcome to the first issue of Sloth Bytes! I hope youâre doing well and I hope you enjoy the content in it and please suggest any improvements by replying!
Sloths are three times stronger than us
Average sloth
Sloths are the undisputed pull-up world champions. From the moment they are born sloths are able to lift their entire body weight upwards with just one arm. Not only that, but sloths have 30% less muscle mass than similar sized mammals and are over three times stronger than the average human.
How To Start A New Programming Project
I got multiple responses from subscribers asking how to start new projects and how to get project ideas.
Since this newsletter is a new project it only made sense to start here.
Letâs break down how I start new programming projects.
Project Ideas
Finding a project idea can be as simple as solving a problem you encounter in your daily life or as complex as trying to create the next billion-dollar company.
Now if you donât know a single thing about programming you should instead focus on learning the programming language itself.
Understand the basics before trying a project.
Once you have a solid grasp of the fundamentals, you can start applying what youâve learned with practical projects.
Hereâs how I think of project ideas:
1. Steal I mean take inspiration
The project doesnât need to be groundbreaking.
The goal is to apply what youâve learned in a real-world context.
Look at projects that are commonly recommended to people (youtube, books, etc). These are usually designed to teach you fundamental programming concepts and problem-solving skills. This could be creating a calculator, a simple blog, recreating something, etc
2. Add your unique twist
Once you find a project you want to attempt. Think of ways you can make it unique.
Career tip: Recruiters see thousands of applicants and they most likely see the same projects. You need to stand out.
Hereâs an example: Making the classic to-do list app. We can make it unique by turning it into a mood based to-do list app.
This simple change makes it unique.
A to-do list app where users create a task and when they complete the task, they describe their mood when they were working on the task.
Even though itâs still a to-do list app, it stands out. Plus youâll end up learning more than if you simply followed a tutorial.
How To Start The Project
One subscriber asked âHow should you plan it out properly when thereâs so many unknown variables?â
1. Start Small
Begin with what you know.
Break down the project into smaller, manageable tasks.
This helps reduces unknown variables and makes it easier to adjust as you learn more. Once you start working on the project, youâll start to recognize what needs to be done.
2. Iterate
As you work on the project or finish the tutorial (if youâre watching one), look for ways to enhance your project.
Try to make it more complex.
For example, after getting the basic functionality working, add more complex features. Ideally, unique features that solve additional problems.
This not only improves your skills but also helps your project stand out from others.
3. Focus On Progress Not Perfection
Aim for 'good enough' rather than perfection.
Perfectionism can stall your progress, especially when dealing with unknowns.
FINISH THE IMPORTANT FEATURES FIRST.
Write code that works. You can always refine it later.
If the code is obviously bad then itâs fine to refactor it. Just donât obsess over it.
Once you feel that itâs âgood enough.â Move on to a more advance project or try a unique project that interests you and repeat the cycle.
The Pragmatic Programmer
I brought up this book in my latest video. Itâs a must-read for any developer whoâs looking to refine their skills and adopt best practices in software design.
Iâm still reading it, but David Thomas and Andrew Hunt offer insights that go beyond specific programming languages and frameworks which is great because that means anybody can read it.
Some Key Takeaways
1. âThere must be an easier wayâ
âSometimes you will find yourself working on a problem that seems much harder than you thought it should be. Maybe it feels like youâre going down the wrong pathâthat there must be an easier way than this!â
If youâre ever in a situation like this, ask yourself these questions:
Is there an easier way?
Are you trying to solve the right problem, or have you been distracted by a peripheral technicality?
Why is this thing a problem?
What is it thatâs making it so hard to solve?
Does it have to be done this way?
Does it have to be done at all?
You may find the reason when you answer these questions!
2. Rubber Duck Debugging
âA very simple but particularly useful technique for finding the cause of a problem is simply to explain it to someone else.â
It sounds quirky and simple, but verbalizing your logic can really help spot errors and improve clarity. Youâd be surprised how effective it is.
Why the rubber duck?
Well because âThe other person should look over your shoulder at the screen, and nod his or her head constantly (like a rubber duck bobbing up and down in a bathtub).â
3. Broken Windows
âDonât leave âbroken windowsâ (bad designs, wrong decisions, or poor code) unrepaired. Fix each one as soon as it is discovered. If there is insufficient time to fix it properly, then board it up.â
Do not neglect a feature or quit while itâs halfway done.
But in the case you do: donât just let it rot.
Instead do this:
Comment the code out
Leave a comment saying something like âNot implementedâ
Use temporary dummy data
This approach leads to a healthier codebase and a more productive development environment.
Why this book sloth?
The Pragmatic Programmer isn't just about specific techniques; it's about developing a mindset that embraces changes and challenges with a practical approach. It teaches developers how to write flexible, dynamic, and adaptable code. Skills that will always be needed.
Who is this book for?
Developers at any stage of their career who want to improve their technical skills and productivity. Whether you're starting your first project or leading a team, the wisdom in this book can take your development practices to the next level. I mean Iâll let the book speak for itself here:
âThis book will help you become a better programmer. It doesnât matter whether you are a lone developer, a member of a large project team, or a consultant working with many clients at once. This book will help you, as an individual, to do better work. This book isnât theoreticalâwe concentrate on practical topics, on using your experience to make more informed decisions.â
What is this?
Rive is an amazing tool that allows developers and designers to embed animated interactions seamlessly into apps, games, and websites.
Features to Explore
Built for interactivity: Set up animations to react to user inputs, such as touches and clicks, enhancing the user experience.
Collaborative Design: Simultaneously work with team members on the same project, streamlining the design process.
Export anywhere: You can use your animations anywhere. From no code tools, game engines, and multiple programming languages.
Who is this for?
Developers and designers looking to bring a new level of interactivity to their projects.
Letâs start very simple and use the same first challenge as my discord (definitely not because I got lazyâŠ) Shout out to Alireza for this challenge!
Challenge: Write âhello worldâ in the weirdest way you can.
Output should simply say "hello world"
You can submit your answers by:
Replying to this email with a link to your solution (github, personal blog, portfolio, etc)
Sharing it on twitter, linkedin, or any social platform you use
So youâre curious on what Iâm up to⊠thanks đ
This week has honestly been a lazy week I was feeling a little burnt out from videos (mainly from editing), but after this small break Iâm ready to make another one!
Whatâs been bugging me
I need to balance content creation and programming better.
I really do enjoy programming, but Iâve been slacking on it to focus on creating content, so I need to manage my time better since Iâm starting to forget some concepts (skill issues) and I canât have that since my contentâs about programming.
Anyways, that's all from me! Have a great week, be safe, make good choices, and have fun coding.
Iâll see you all next week!
Reply