I attempted to teach myself programming on many occasions and most of it ended up going nowhere or I ended up dropping the class or subject completely after I felt like I hit a wall. To me there was always this sense that learning ot program was a trial by fire. The lessons the instructors try and teach you at the beginning just don’t seem to be applicable to what you want to do. They spend so much time focusing on loops on functions and all you really want to know is how to build that program to track that thing you do for fun. What is typically taught in the beginning of programming feels so far from what you think programming is that often people finish a programing class feeling like they learned nothing. The program spends so much time on how to code they rarely ever seem to talk about why its applicable and why you need to do things in a specific way. They just hope that you can figure out on your own time and through your own experimentation how all these pieces fit together. It takes a very real and very intense sense of curiosity that eventually drives to action.
Now I am in no way going to say I have any knowledge on how to give people this sense of curiosity, but what I do have is a lot of time spent working with students who have beginnings of this curiosity but feel so lost the this strange new world that is computer science and programming that just give up. I am also not going to say that anyone can learn to program, I have worked with enough students to know that this is not the field for everyone, and that is in no way a negative reflection on them. I am not going to ever be an amazing athlete and that is something I have accepted; but I did get lucky enough to be half decent at programming and teaching. So if programming is something you want to learn and you feel like you are missing some fundamental concepts to programming (and trust me, everyone is) then I hope to cover as many of those topics that are just never talked about, but are needed to really succeed. So, let's get into it.
I would like to first talk about two mindsets that exist outside of coding and I feel are needed to be successful at literally anything you do. They are, a scientific mind, and a curious mind. Now I did just claim not to be an expert on curiosity, but I did say I didn’t know how to instill that desire into people. But what exactly is this “curiosity skill?” A simple definition I would give to it is this, “A sense of wonder and interest in a given topic that drives you to want to know more about it, or to solve a problem.” A real life example of this is the time that you had an issue with your car. What did you do about it? Did you take it into a shop or did you roll up your sleeves and get your hands dirty? It is this sense of curiosity combined with the determination to solve the problem for yourself that I am talking about.
Now I am not saying that if you take your car into the shop you are a horrible person with no sense of curiosity or determination, because I still take my car into the shop for most problems. But I have spent some time looking into problems that I have fixed on my own. And there is a laundry list of things I intend to look into and one day I will, when I have the time. Programming is this bottomless pit of rabbit holes where each study fest will only lead to more questions, and if you don’t have this inner drive of curiosity for the topic then you will never be able get a personal sense of understanding to the topic.
The kind of mindset I am talking about are the ones who put in the bare minimum into their work. They work from 9-5 and once 5 hits they are done for the day and not another thought about work will enter their mind until 9 the next day. This may seem harsh but that is the cost of excellence. You must develop your desire to figure things out on your own. I can tell when a student is really striving to learn when their questions shift from, “how do i?” to “where can I get information on.” They are taking personal responsibility for their learning, and their approach has become one of mastery instead of passing. When you are no longer concerned with grades or passing the class and your drive is self improvement then in my unprofessional opinion you have the correct focus.
Ok I will get off my high horse and move onto my next point, having a scientific mindset.