Knowledge, Wisdom and Weaknesses
Learning is a process of gathering knowledge and accumulating wisdom through doing. Some people absorb knowledge like sponges and apply them with deep insight. Others need to feel the tools in their hands; they cautiously use it in limited contexts, slowly using it for more as they understand the tool more. Through using the tool, they become more comfortable with the use of the tool as well as its function.
I, and I’m sure many others, fall into the latter category. My introduction to programming was very limited. I was thrown in to the deep end of a Fortran 77 stellar evolution program. I started with simply learning how to use the program and later learning how to read it by following the Go To statements. Only after picking up Headfirst C# did I start to understand more of the Fortran program I had struggled with. I had accumulated knowledge by reading Headfirst C# and wisdom by tinkering with the Fortran program and doing the exercises and examples within the book.
The problem with my personal style of learning how to program is that without an external means of testing the knowledge I’ve gained, I have no idea of how much knowledge and wisdom I possess. When doing my BSc, I was constantly tested and given a score with which I could judge my level of understanding relative to my peers. I could judge the knowledge and wisdom I had by comparing my score with the objectives for the unit I was studying. The score gave a good numerical indicator of how well I accomplished the objectives.
Where did all of this come from, you might be asking yourself. In preparation for Firebootcamp later this year, I’ve started going through a Pluralsight course called C# From Scratch to plug up any holes I may have in my foundation-knowledge. Having the freedom to teach yourself about a subject is great because you can tailor your learning to suit your learning style. I found that the style of teaching in Headfirst C# was a perfect match for my learning style because the book would introduce a topic and then give the reader a problem to solve that sets up a feature or solution in the language that solves that problem. The book allowed you to discover problems that plagued previous developers before introducing a solution or design pattern that avoided the problem. I found that trying to solve the problem on my own first, getting a feel for the problem and throwing my knowledge and wisdom at it before seeing the solution allowed me to see the limitations of what I know and add a new tool to my toolbox.
While the quality of teaching in the Pluralsight is fantastic, I’m finding it difficult to absorb the information. The videos are full of slides and code examples where the teacher shows a concept in Visual Studio but for me, this isn’t enough. Inspired by John Sonmez’s article on learning to learn here, I am creating a mindmap of C# and what I feel are my problem areas which I will then reshape into an objectives list and use to tailor the Pluralsight course to suit my learning style.