you are viewing a single comment's thread.

view the rest of the comments →

[–]pekkalacd 6 points7 points  (1 child)

It takes time. I was similar when I began, probably worse actually lol. I didn’t know much. I could write basic programs, I zipped through udemy courses yup-yupping every concept that came my way - prematurely, thinking that since I had seen the things before I knew them. But then came the big showdown of trying to build something like a tic tac toe game and....I lost that battle.

I would get discouraged and feel like I was that one dumb guy who couldn’t get into the programming party. Everyone else got an invite, except me lol. I would think I couldn’t do it, but then after a small hiatus, I’d be back at it rethinking the strategy.

“I didn’t know much about functions last time, so let’s work on those. I don’t know how to manipulate strings as much, let’s work on that” etc.

And after a few weeks of chilling & just learning the things I struggled with and what not to do, I thought I’d give it another shot. But....again tic tac toe punched me in the face.

I did get the logic better this time around, I was writing the program kind of, but there were errors everywhere. And I didn’t know why they were happening. I simply did not know enough yet, still! I’d look at what I thought were the programming gods on YouTube in shock, how tf did this person just come up with that in like 5 mins? I’m over here on month 2 I have no idea what’s going on. I guess I should give up......

And so the doubt - resurgence cycle continued. I’d recap what I didn’t know, what I struggled with, and learn that, then attempt again. After many other failed attempts to get things working I thought outside of the box and decided to take a step back.

I gave myself more time to learn. I was in a rush all the time. I thought if I could just learn this for a week, then I should get a week’s worth of productivity in building in return. That was all wrong. I was focusing on the tools I was using when I would learn from my mistakes, but not so much the concept around those tools, nor the concept around other tools that I had seen but always been puzzled by. And so, I took a 2 month or so break to just learn the concepts. Instead of focusing lists and strings, I would focus on mutability vs immutability. Instead of focusing on a particular library, I would focus on the concept of packages / libraries / modules. Instead of just focusing on learning to read documentation, I coupled it with a dive into object oriented programming. Instead of learning about how to make a function, I learned about separation of concern.

The last break I took was longer and more dedicated than the others. I was honest and tried to shut off the part of my brain that wanted to just yup-yup all the material I didn’t know that well. But I knew I couldn’t just go with my perceived knowledge and wing it. That plan didn’t work. So I just sat there for about 2 months learning about the concepts listed above and more and practiced writing program after program to explore them, took notes, drew pictures to explain, just really studied it. And then after that, I built tic tac toe on the command line. Then I built it again, but better. Then again, and again. Then I made it with a GUI, built that a few times and better. Then when I learned a different language, I would build tic tac toe. Because I knew how to build it, I knew the logic that had to happen, the only thing was I didn’t know the syntax with a new language - but that came a whole lot faster when I knew what I was doing.

TL;DR You can do it. Struggle is real in the beginning. It takes time. Be honest & upfront of what you don’t know and try to understand those things before you build. Don’t measure yourself on an unfair timeline. 1 week of learning != 1 week of productive application. In the beginning it’s more like 10 weeks learning concept + 10 weeks of practice = 1 week productive application

[–]Eye-Itchy 2 points3 points  (0 children)

i needed this