Learning how to learn. The very beginning on the path to Software Engineer
334 Hours
That’s how much time thus far that I have spent in the Launch School curriculum, counting both the pre-core free content and core. Despite that, I am still in the very first lesson of Launch School’s content, RB101. That may seem to most to be a very discouraging result. How could I justify so much time into what seems to be such a lack of result? Chances are if you are reading this, you are probably familiar with Launch School, but here is a brief synopsis if you are not.
Launch school is a mastery based program that prides itself on its commitment to understanding the core fundamental values of software engineering (perhaps hence the name of the main program, hah.). They make explicitly clear, who and what this program is meant for and who and what it is not meant for. They promise no easy quick achievements or results. Quite the contrary in fact, promising that this will take quite a long time. In Launch School you have several main lessons that you will dive deep into understanding and being able to use in great practical detail. Followed by a written assessment and a live coding interview, both of which you Must score extremely highly on to even progress to the next lesson.
So what have I come to realize in the 2 1/2 months of time that I have been in this program? The most important quality that is most important for this curriculum and has nothing to do specifically with software engineering, is how do you learn? There is no doubt in my mind that this has been the most challenging part of my journey. What is the most practical way of learning? How do I insure to the best of my ability that the information I read or work with will not be cast aside the next time I draw from it? This is something that scales far beyond Launch school in that you learn in every aspect of life.
In the beginning of Launch School there are several sources that or either recommended or required before entering core pertaining to this specific topic. Mastery by George Leonard and the Coursera course: Learning how to learn are two extremely useful sources. LS realizes how critical the importance of how you learn and implores you to take the time for that even before you begin coding. Even with those sources, and many other sources online, I have found myself bouncing around with different methods to approach learning. Traditional note cards, online note cards, online note-taking apps. These are all useful and I use them currently. But I have also learned some other things about myself regarding how to learn.
Breaking Bad Habits
It’s important for me to give some context to how my previous efforts into education had developed some incredibly poor habits. I had not been in any school like setting for over 5 years and I only have a high school education and am not familiar with a college/university type setting. This in itself is not really a huge deal based on all of the research I have done and dialogue with those who have been in these settings, but I simply did not realize how poor my study habits and my efforts were. Initially before I began LS I took many other online programming courses. Freecodecamp, The-Odin-Project, CS50. All very good sources of information for those who know how to properly prepare. I was not one of those ones.
For each program I would enter excited and ready to learn. But I would quickly grow impatient at X subject or Y principle and would wish to move on to the next part. Unaware, but yet on a deeper level, aware that I did not have the core understanding to move on to further concepts. Because of this, I would quickly reach a point of complete and full lack of understanding. This would lead me to questioning my own intelligence and to why I was simply “bad” at programming. My focus was not on learning or understanding concepts, but just to be able to use them in practicality.
Another huge error in my coding journey prior to LS is that I was not committed. I think even at the time I knew the time I was putting in was not what it needed to be to really pursue this path. I would spend anywhere from 2–10 hrs a week and would frequently go weeks without coding. Despite this, I would still chastise myself for not picking up concepts or subjects in programming. I was knowingly erroneous in my actions, but still criticized myself as if I had done everything I possibly could to try and become a software engineer. Honestly, looking back it almost seems as if I were trying to make myself fail.
Validation and Improvements
In LS I still am not perfect with my time management or my study habits, but I can say with assurance that I have put in at least 20 hours every single week since I have begun. And that is not to say I will never allow myself to miss a day, because of course, life happens. But I, for the first time in my life, have a clear goal with a set schedule to abide by. There have been plenty days already that I did not feel like coding or opening up my laptop, but that did not matter. This is something I just do. And with that being true I have noticed that I have become so much better at writing and understanding code than ever before.
The community within LS is also one of the most important factors to learning. Not only do you get to learn from Teacher assistants but also from other students who are simply just further ahead in the course than you. I’ve learned that those students receive constant reaffirmation about previous material they’ve learned while at the same time providing invaluable lessons and processes to learning students. Even so far while I am still at the tail-end of lesson 6 I have found myself almost in a pseudo-teaching role for other students in the earlier parts of the lesson. This has allowed me to constantly refresh content for myself while helping others come to improve on these concepts.
Where To Go From Here
I will soon begin RB109 and I know I will have to spend a lot of time practicing for the assessment, live interview, and the course in general. Many learning processes I will have to put into overdrive to make sure I know as much of each core concept as possible. Even now with the staggering improvements that I have made, I feel as if maybe I will not be fully prepared when I take the written assessment. That’s completely illogical as I have not even begun the actual review yet. But I have come to find that is just the type of person I am. I tend to fear my own shortcomings before I have even started preparation for it. Thankfully I have many other peers and teachers within this program that continue to help me as much I could possibly need. I apologize if this blog has not been very concise, but if there is anything I hope for anyone to take from this is that to allow yourself to improve. Give yourself time and do not allow yourself to become displeased if you are taking longer than intended. If a peer is further along than you that is completely okay. If you take the time and do the things that you know are required to the best of your ability. You will have good results.