I’ve been learning on and off about programming for 3 years now. Mostly front-end, html/css/js, for school projects. My degree isn’t in CS or IT, so projects that give the opportunity to code are scarce and often short. So I get that I may simply may not have enough hours in coding.

So I’m delighted to be taking CS50 as a Minor at the moment, this has given me the chance to sink a lot of hours in coding, and currently I am in week 5 Data Structures.

But every time I start on the problem sets, I feel overwhelmed and feel like I don’t understand anything. I have to Google/GPT the most basic of things. Even though I’ve been programming regularly the past 6 weeks, I don’t feel as if I have improved and I’m starting to doubt if this is a career for me.

In a year I would like to find a career in development. Have any of you felt this way? And what has helped you get rid of this imposter syndrome?

  • DreamButt@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    10 months ago

    I dropped out of school for a job so take all of this with a grain of salt.

    Learning to program is more about learning to think in a specific kind of way. Datastructures, algorithms, and other math-y aspects of programming are incredibly unimportant in the day to day of the average programmer. BUT, and this is a big but, learning these things will give you a better understanding of how to think about programs like a programmer.

    Learning to think like a programmer is the single most important skill a programmer has, and it is the most difficult to acquire. In essence thinking like a programmer just means thinking like an engineer or a scientist but with a few extra bits

    Generally this style of thinking focuses on key aspects:

    • iteration (tweak, try again, tweak, try again)
    • decomposition/divide and conquer (identifying when you can make a big hard problem into easier smaller ones)
    • analysis and testing ( logging, mentally tracking the programs “state”, and learning how to prove yourself wrong through experimentation)
    • etc*

    In general you’ll need to develop a thick skin for that feeling of “I have no idea what I’m doing.” Because it never goes away (I’m at 10 years as a hobbiest and 4 years professionally). Instead you should focus on the meta-process of developing your process for learning new things. At it’s essence all engineering is learning to build tools that help you build other tools. Except right here and now the tool you are building is your mental process for problem solving

    Stick with it. It does get easier

    *There are other techniques as well but these are arguably the most fundamental