|
It's hard to make any kind of objective assessment based on a single article this sparse on concrete details as this, but I get strong vibes of a day-dreamer personality. This oscillation between excitement about an idea, and the hard reality and challenge of actually making progress. I have these tendencies at times myself, and my first piece of advice is to bring some structure and accountability to other people into your approach. In my case two things were game changers: studying CS with an actual teacher and classmates, as well as going and getting a professional job. I had done a lot of self-taught stuff as a teenager, but honestly the essence of programming eluded me until 12-18 months into my CS undergrad. A lot of it was just the reps, but the structure of having a dedicated professor and assignments gave me a focus that really helped. I also think it was good to work primarily with backend languages like C, C++, Java and Scheme without the distraction of web and GUI elements that have a world of complexity (often incidental) that distracts from understanding the basics of data structures and algorithms. The next big leap was working on a team in a professional setting. In my case it wasn't even with other programmers, I worked primarily with non-technical stakeholders as the sole web designer and programmer on a design team that primarily did print design (yeah this was a while ago). Even though I didn't have technical mentors in that first job, just the accountability of having to deliver on some projects that multiple people were contributing to taught me a ton about how to do what was necessary to consistently ship. This is the number one thing to improving: you've got to ship and keep shipping. If you get stuck, cut scope and ship something simpler. Just never stop shipping. Finally, a word on motivation. I'm not here to judge anyone's motivations: do whatever works for you. That said, I feel the best motivation for getting good at programming is curiosity about how things work. If you're not innately curious about technical things, the steady stream of compiler errors and bugs will eventually grind you down. Perhaps this is what the title is referring to. Personally I don't think of programming as hard, but that's because the high I get from debugging a thorny issue outweighs the pain of understanding the root cause. Multiple times the author discloses an expectation that something should be easy, and then getting frustrated when it's not. Whatever your motivation, you've got to have some tenacity and grit to put in the work to power through—that's how it will become easier over time, not due to innate intelligence or time spent on tutorials/videos/reading materials. |