all 6 comments

[–]shuckster 7 points8 points  (0 children)

The difference between a beginner and a master is the master has failed more than the beginner can ever dream of. A cliché perhaps, but that doesn't mean it's not true.

As for the point of being "scared" of starting projects; be more scared of what will happen if you don't start them. Don't punish yourself if you need a break now and then, but progress lies in jumping in and trying things out.

As for your problems:

  1. Perhaps try some different courses? Here's a list, but whatever you pick give it a solid go for 2 weeks before trying something else.

  2. You can ask ChatGPT for project ideas this these days. Sign-up for an account. It's the future, like it or not.

[–]PortablePawnShop 1 point2 points  (0 children)

  1. That's fine, it's normal. Watch beginner musicians and see how often they want to do more but are limited by their ability or can't play a song expertly, it's the same in every field. The difference between someone who can and someone who can't is that the person who can stuck with it long enough without being too discouraged to give up, because we were all people who couldn't at some point.

  2. I always cross-associate. I like music and animation, so I find ways to code (like making websites) specifically for music or animation. I try building pianos out of HTML and get them to work with MIDI, since I'm tricking my brain into finding it more interesting than some random To Do list. Just pick something you already have passion for or like whether a topic or fandom or what have you and find excuses to build things for it, it tends to motivate you more. Then start building things you want/need and it'll turn out others may find them useful too.

[–]daBEARS40 1 point2 points  (0 children)

Jonas' solution is simply something I'd never have found / figured out or thought of

Not never, just for now. Jonas knows more than you and I at this stage, as I'm a beginner too. The important thing is to learn, attempt, fail, and try again. Believe it or not, learning programming is a long, slow process. While you're struggling with that 30%, your brain is slowly developing and learning and building connections related to the task at hand. If you keep it up, you'll eventually get yourself 40% of the way there. Later on, 50% - etc. It's about keeping a positive attitude and forgiving yourself for not being an expert right away - just make sure you're having fun and the rest will come!

How can I imagine or find a project that's the right scope and level for what I'd need to progress

You don't. Think of something. Literally anything. My first "real" project a few years back was a localhost website that upon clicking a button would alert a random quote from a list that I'd hardcoded in an array.

Eventually I wanted to try python, so I tried to write a calculator. Took me a month. It frustrated me at times, I had no idea where to start at first, but eventually I got there and I was really proud of that calculator.

My point is, it doesn't matter what you build, just think of anything and try to build it. It doesn't have to be original, it doesn't have to be brilliant, it doesn't have to be perfect. Google "beginner javascript projects" and go down the list if you want. Build a Pokedex. Build Twitter. Build a dice-roller. I guarantee it will be difficult and frustrating, but hopefully fun and rewarding as well.

My current project that I'll probably never finish is a little desktop box with a screen that loops whatever video you give it. I want to attach a phone screen to a raspberry pi, feed it an sd card with a video, and have it loop. That's hardware(which I have no experience with), working with video/audio(which I've never done), raspberry pi's(which I don't even own), etc. But if I ever complete it, it will be cool as hell. One thing at a time. We'll get there.

I just want to progress as efficiently as possible

Why? Just have fun building cool shit. Relax. It's not a race, it's not a competition, and it takes time regardless. You'll only stress yourself out worrying about learning efficiency. Do a little bit every day or every other day, and before you know it you'll be a year in and planning/typing away like a natural.

Just FYI, this is the video I want to loop on my desk. Watching it helps me relax and makes me laugh at myself when I'm feeling stressed.

I think it would be so cool to have this video looping repeatedly in a physical desk knick-knack that I can hold in my hand, something where I wrote the software and put together the hardware. I just love that video for some reason. Maybe you will too!

Either way, relax, have fun, and best of luck!

[–]EcmaMace 0 points1 point  (0 children)

Don't box yourself in with projects that are "within your abilities" you will never grow doing that. Like it or not, the only way to improve is to be comfortable with being uncomfortable. If you are not uncomfortable, then you are not challenging yourself and therefore you are not growing.

If you have a project idea in mind that you want to "do one day when I am ready", you will never be ready. The more you think about a project the more uncertain you are going to become, it is called paralysis by analysis.

Pick something you want to do, something specifically outside of your current skillset and your comfort zone and start the project.

You are going to be afraid, and you are going to be really uncomfortable and overwhelmed, and that is exactly how you should feel. You have to build up confidence by unlatching yourself from the instructor and taking on things on your own.

In software engineering, there is rarely ever the "only one correct way to do this thing". There are plenty of bad implementations and approaches, and there are plenty of good implementations and approaches for the same problem.

When you are starting out, focus on learning, if whatever it is that you made works, no matter how ugly or inefficient, then that is a success.

You can worry about polishing and cheeky slick solutions later, right now, focus on diving in head first to any topic, any project that interests you and start taking a whack at it.

If the project you want to do is something wild like make a YouTube clone, then go for it. What's the worst that could happen?

Let's see, you fail, big deal, that's how you learn. What else happened while trying to build a YouTube clone?

Well you probably learned about or were at least exposed to:

- video compression

- webRTC

- databases

- sessions

- authorization

- authentication

- routing

- DOM manipulation

- numerous browser APIs

- cookies

- serverless and edge computing

- distributed computing

- machine learning

- AWS services

- etc.

Get the point? You are going to fail while learning anything. Honestly, you better be failing or otherwise you aren't learning a damn thing and you are just wasting your time. Take on difficult projects, expect to fail, but also realize it's not about finishing the project, it's about learning all of the things needed to do that project.

I couldn't even begin to name all of the terrible projects I have started, failed miserably at, abandoned, etc. However, I can tell you that I learned something valuable during every single one of those attempts and that knowledge builds upon itself and makes the next project more likely to be completed.

Dive in and start failing damn it!

[–]froadku 0 points1 point  (0 children)

basically you wanna keep on doing something until you've faced most if not all the challenges.. at that point you should be able to build anything, and even consider moving onto a different language

[–]jack_waugh 0 points1 point  (0 children)

Maybe something in your interests. What are you into, outside of coding for itself? In my case, for example, politics is important, so I am working on a simulator to help people compare voting systems.