• 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!”

David Thomas and Andrew Hunt

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.”

David Thomas and Andrew Hunt

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.”

David Thomas and Andrew Hunt

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.”

David Thomas and Andrew Hunt

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

or to participate.