Learning Strategies

I was up late last night contemplating what I’ve been learning and what I aim to learn, which I want to blog about. But first, a vignette:

Yesterday a technical lead from Microsoft added me as a connection on Linkedin. I have no idea why, and we don’t have any connections through other people. I suppose my company has a big name, that’s all I can possibly think of. This girl has a seriously bad ass profile. Graduated from a top Ivy League school, has held positions at Apple and IBM, and she doesn’t waste her time listing stupid languages on her skills list. Instead there are items such as “Architecture” and “Leadership” and other categories. I’d long suspected my listing of individual languages was an amateurish approach, and I know I’m right. Basically, this girl could kick my ass. Not that that’s a bad thing, but it really makes me feel like a weenie programmer.

Ok, so, here’s a short rundown of some of the books on my shelf. I’m making progress through Learning Python, Database Design for Mere Mortals, Python Algorithms, Pro Oracle Spatial, C# 6.0 and the .NET 4.6 Framework, Head First Design Patterns, and I haven’t touched it in awhile but The Web Application Hacker’s Handbook. Books on the shelf I hope to read after these include Pro ASP.NET Core MVC, Xamarin Mobile Application Development, Beginning SOLID Principles and Design Patterns for ASP.NET Development, A Smarter Way to Learn jQuery, and a few others.

Now, here’s the problem. I haven’t been writing much code lately. I started the Project Euler problems with Python, and I know I still need to fix my XML Formatter, but in general the only code I have written has been at work. This is great but I didn’t get many chances to write code at my previous job, but I’m not writing enough, and I have got to get better at algorithms. But I love reading books. I love the feeling of progress, and the proof as I watch the book mark snake its way down through the pages. But I also know that reading a book is not the same as learning.

I have always had a complicated relationship with books. It’s a love-hate relationship. I love reading books, but I hate how long they take to read, and I hate the pressure of having them sitting over me, waiting to be read. That pressure was very real last night. They have the distinct disadvantage of being – quite naturally – verbose. They tend not to get down to the main point. I love having the big picture, and that’s why I read them, but especially with Database Design for Mere Mortals, for example, I find myself slogging through cruft just to find the meaningful information.

I have always wanted to master the things I set out to learn, and this has also been a huge hindrance. An old supervisor advised me not learn regular expressions thoroughly because he said I could always look the information up again later, but I resented this advice because I really wanted to master regular expressions. I’m a poor polyglot programmer, I’d really much rather master what I know, but this may get me into serious trouble later in my career. Again, that Microsoft technical lead doesn’t highlight many languages at all because she knows languages aren’t the point.

So what am I doing? I’m so focused on reading these books cover-to-cover that I’m not leaving myself with any room to write code. This could be a deadly mistake.

I’m not sure exactly where this post is going, but I am actively reassessing how I approach learning. I have largely resented the explosion of Javascript frameworks because I fear learning a new one would require too much effort. But a friend has been learning Node.js over the past several weeks and hasn’t bought a single book for it. What am I so worried about? Regardless, Python is my favorite language so my motivation to master it goes beyond my career, though I’m very fortunate to now have a job primarily using Python. I will keep going with all my Python material for sure. But I may want to rethink whether I need a 1000 page book on Core MVC. I’ve already elected to donate away my CSS3 and Visual Basic books. Honestly, I’m not going to read a book on CSS3, I know 80% of everything in there, and I’ve done enough C# that a book on VB is completely unnecessary given my access to Google.

Anyway, thanks to my new connection, I’m reminded that it’s best not to waste my time and to get down to business. I’ve owned the perspective of exclusively relying on books for a long time now, so changing may be difficult.