My programming journey started off when I still had a full-time job, and I got into an online copy of Head First Programming for Python. I went through it slowly, one small chunk at a time, and sometimes did not return to the content for days on end. I was genuinely interested in learning, so I got rid of the excuses and decided to take a leap. I quit my job early, made an investment and signed up for a software engineering bootcamp for three months. I am on Day 13 and there are a couple of key realizations I have made that will aid me better in my learning process and help me develop a more appropriate frame of mind, the deeper I get into the content.
Before I started the bootcamp I took my time playing around with what I was attempting to learn, and I had fun. I do acknowledge that I possess a fear that leads me into bouts of procrastination and escapism when I’m faced with content that I perceive as difficult. Back then I had convenient excuses for my lack in consistency. Now that I have devoted my time and prioritised the bootcamp, I have no such excuses and I feel that resistance seeping in, especially now things are started to get interesting (substitute word for difficult).
On the other hand, despite investing 50 hours in each week (or attempting too), it dawned on me that my learning tactics were a bit problematic. As the tasks got more… interesting, I was not fully comprehending of some of the concepts. I had to slow down. I realised I was rushing to meet two goals – 1) creating a program that worked and that fit the course instructions and 2) thriving off the gratification that came with submitting. I was not using my time to my benefit and I was approaching the learning process with a very rote mentality.
For the first 8 days, I was flying through the content meticulously making notes and highlighting in my specially hand-covered book. Understanding what I wrote, I would then dive into the tasks. I didn’t take the time to play around and write my own codes to test and figure out the concepts and its limitations, loopholes and benefits. Instead, I just wanted to get each task done. However, getting something done to fulfill a sense of validation becomes a whole lot more pressurising as opposed to working through something because you want to understand.
Understanding is more enjoyable than trying to get it right, that’s for sure. My body is more relaxed, my attitude is lighter, and my mind is more open to thinking clearly. Most importantly, the biggest drawback of just getting a program to work is that one fails to really interrogate and explore whether the program works under different circumstances with unexpected input from a user. For example, after I delightedly wrote a code and ran it, my enthusiasm evaporated when my mentor entered things I hadn't anticipated and it broke. In other words, pursuing how to write sustainable, efficient and simple code is more important than making it work - quality work over immediate satisfaction.
Another tactic that I was not pursuing was taking initiative. When I didn’t know or understand something I was impatient to receive the answers immediately. I don’t have immediate access to my course mentor and he does take a while to reply, but my personal mentor is very supportive and is open to my questions. However, I took that for granted. There are so many resources online, it is frankly embarrassing that I kept asking him instead of enriching my learning process by employing integrated mediums of knowledge in my understanding. I just wanted to get rid of the feelings of fear and not knowing, because it begins to churn into feelings of stupidity and doubt. Substituting this by setting higher standards in my work ethic, will pay off in the long run. It will just takes time and it means treating tasks as a major learning medium in and of itself, looking beyond the expectations of execution to consider and interrogate it's components.
Navin_Reddy_YouTube_Tutor = “It’s not difficult it’s just unfamiliar”
I found this line so uplifting, because I cannot control something like having a “natural propensity” for a certain skill or mindset, but I can invest time and I can practise. I realised I was learning in very one-dimensional capacities and that whatever questions or inquiring ideas I had, I ought to make the effort to use and build into my learning process.
So that’s all that I have learnt so far, much of it still needs to be implemented, as a lot of my learning habits need to be overridden and unlearnt to make space for new experiences. If you have any more tips or pearls of wisdom, please don’t hesitate to leave a comment.