DEV Community

Hammykat
Hammykat

Posted on AI-assisted

What I Wish I Knew Before I Started My Programming Journey

All the things I'll say in this post are based on my past experiences with beginners (including myself). The information I display is not applicable to every beginner, nor is it applicable to only beginners.

The dev

There are a lot of types of people beginning to code. The one I'm targeting is the 'ambitious' developer. This person wants to create massive and complex projects, even when they just started coding. That's in no way a bad thing; I was the same.

The mistake

They want to create a massive project, yes, but where's the problem in that? The idea isn't the problem; it's mainly the implementation. A lot of times, someone starting out will completely underestimate (or overestimate, but that happens less) the amount of time it would take to implement something. For example, a beginner might think that they can create a large game or tool or engine in a day. That's exactly the problem.

You see, to make a game or really code anything, you need a certain amount of commitment. If you want to create things, you need to stay motivated and be committed to making them. If you try to make a giant project in which your heart isn't into, you'll probably quit (unless you've got some other source of motivation). I myself have quit many projects due to lack of motivation or persistency.

The solution

So now we know that we need commitment. How??? Find some reason to be motivated. If you love (or like) to code, then that's your reason for coding it! Stick with it! A huge thing that I've experienced is burnout — if I code something and get 80 errors (happens every time I try to run), and then proceed to spend the next 2-4 hours trying to debug it without succeeding, obviously most people would feel irritated. You don't need to continue to build it if you're getting irritated! If you want to complete it, then move to something else temporarily — sleep, make art, watch, whatever you like to do and calms you down. Then, you could get back into it if you want to.

You could also have some other reasons, like you need a job, get paid, etc. Remember those motivations while you build to keep going!

Another huge thing is consistency. A lot of devs, even though they're motivated, will get irritated that they aren't finished yet. Consistency matters. You don't even have to work on it for that long. Work on it for 30 mins a day, and voila! You're making progress. It might seem slow, but it's steady. Much better than working one day for 5 hours and then not working for 2 weeks.

One thing that I feel helps the most for devs to stay motivated is the feeling of progress. If you work for 5 hours on a massive engine design and you stop and look back into your work, not wanting to go back, you... Wouldn't really see anything meaningful you created. Not yet. But now, imagine you spend that 5 hours creating a smaller system with visuals. Now, when you take a break and look at it, you can actually see the progress you've made, how far you've come. You can feel that sense of pride.

When coding something, the first step is often times the hardest. Which is why you should work in steps — one step at a time. The first step, make a basic, bare-bones engine. The second, polish it. The third, improve it, the fourth, add a new feature, and so on. Look at the difference between getting to version 5 of your engine, an actually usable prototype, versus getting through a quarter of version 1 with the same amount of time used. For me, and I feel like for a lot of other devs, it helps. A lot.

Another thing is the thing literally every dev faces: the ERRORS! When coding a bigger project, a lot of people tend to do a lot and then test at the end... Which can be annoying and frustrating. So it's better to break it up into phases: Implement this, test this. Implement that, test that. That way, you don't end up with errors everywhere and no idea where to go.

Don't be afraid to change things.

When you're working on a big project, you're probably going to change your plans. A lot. And that's okay! When you start a project, you don't know everything you're going to know by the time you're halfway through it. You might realize that your system is unnecessarily complicated, or that there's a much better way to do something. Again. And again.

Don't be afraid to change it! You don't have to stick to your original design just because you spent a lot of time on it. Sometimes rewriting something is actually the best thing you can do. Your goal is to make the project better, not to make sure you never change anything.

I've personally had to change parts of my projects because I realized that my original design wasn't very good. It can be annoying to go back and fix things you've already made, but sometimes it's worth it.

So now...

When you code, start your coding journey (or resume it) with whatever you found useful — from the motivation, to the success, to the versions. I hope you'll use this to create something truly wonderful!

Want to contribute to this post? Comment to tell me how I could improve this, and I'll try my best to listen to every one! I can also take a look at your personal projects and give you suggestions and feedback!

Have a nice day, and happy coding!

Used chatgpt for a bit of grammar fixing, and the image generation

Top comments (0)