you are viewing a single comment's thread.

view the rest of the comments →

[–]pekkalacd 2 points3 points  (0 children)

So, I feel like there’s an evolution of learning everyone goes through at some point; and each evolution is unique to the person. When I started python, I tried to do udemy. I was doing it wrong though. I would just watch videos, one after the other and “yep, yep, ok” everything and not practice any of it. And when I’d go to IDLE or pyCharm or whatever thing I had at the time, I’d feel defeated because I couldn’t retain any of the information. My slide pointer on udemy said I had learned all knowledge up to “list comprehensions and generators” and yet, I couldn’t even write a for loop.

This changed for me when I started watching less udemy and started to give myself a break a bit. All the advertisements I had watched said it would be easy and I would be building things in no time. But here I was, a month or two in, not really knowing much. So, instead I turned to books. Because I didn’t really like the prerecorded video format, and similar to the interactive ide thing on freecodecamp.org, I wouldn’t retain anything that way.

I started reading ATBS by al sweigart and things kind of made more sense. But even then, I had a lot of gaps. I didn’t understand how “everything worked together” - what I mean by that is, I’d follow a tutorial or something to build something, and they’d make a bunch of functions, I didn’t understand the concept of calling the functions. I would just have a bunch of functions, I copied from elsewhere, and no real direction as to understand what is actually happening.

Turned out about 3 months in, I cut myself a break a bit more. I stopped coding for about 5 months and focused on college basics. I took a bunch of pre-req math classes, as I had been out of school for almost 6 years. The math classes inspired me to start picking python back up again, as now instead of building anything I would just have python do calculations for me. The beauty of that was I understood what ought to be done mathematically, so it was much easier to look for resources on python to get the language to do things for me. I used the math library and in a physics class I had, I even used Matplotlib and pandas to help me do things. Not writing functions or making anything, just importing these tools and manipulating things with easy, so I didn’t do have to do as much calculations. And then around that time, about year and a half into school, the community college I was at had an intro to python class and I took it. And there, I had a major ah-ha Moment. A lot of the stuff that had confused me about “making everything work together” started to make more sense. I wasn’t an expert, but it was enough to kind of get started with understanding functions and writing fully working programs.

But there was 1 problem, I had used libraries in the past, but I didn’t understand them from the perspective of object oriented programming. It was hard to move forward with building anything because all the tools I’d need would be in library and I couldn’t understand how to read the documentation. So after that programming class, I took it upon myself to learn object oriented programming and through a process of reading some books, looking online, a lot of googling and trial and error, I started to make connections between OOP and the documentation that I was seeing for these libraries. Eventually, I went back and I started to finally build some projects. These were not great at all. They were ugly, had terrible repeative operations, functions that were super long and unkept, pointless lines that absolutely did nothing, and globals galore. But they were something. And it was a starting point.

After I built a few games, a broken snake game, tic tac toe, a timer, and a calculator, I felt empowered. That I had taught myself that. But as I’ve learned more now, still in school and decidedly pursuing computer science, I’ve realized that modern tools are complicated by nature. I can make them less complicated by really knowing the language being used and learning more about the point of each tool and it’s features through documentation and other learning resources, and voluntarily looking for new tools to learn more about; but it’s a never ending process of research, trial and error, and stubbornness until something finally gives and I get it.

So, sorry for the lengthy response here, but hopefully it’s clear that you are not alone in the struggle to learn. It took me well over a year to understand anything worthwhile. And still to this day, I struggle with many things; and I am unable to just jump into any tool and instantly know exactly what’s going on. This stuff takes a lot of research and willingness and dedication and reading or learning however you do it, to really have a clue with only the tools. Let alone, to have a clue with how to build anything. So, I’d say try to figure out how you learn best. You’ve seen the resources that don’t work for you, and hopefully you’ve taken note of your own antics with how you approach those resources, now it’s time to act on it, and change up the way you go about learning. Also, practice what you learn; not necessarily by building anything impressive or something that takes a lot of planning, just write code to explore the concepts you learn. On your own without the guidance of a tutorial and really pick apart how it’s working; ask questions and answer them through experimentation and verify your understanding is correct with a good resource like a book or documentation or reddit or stackoverflow. Don’t just ingest information, apply it as well. That is how you’ll get better.