Why am I bad at learning?

On my last blog post, What’s wrong with this blog? , I took a hard look at this blog in order to look see what I’m doing wrong (or right). In a similar manner, this post will evaluate the way I learn things, both in and outside of class.

Ever since last semester, I have taken time outside of class to improve my programming skills. With the help of Free Code Camp, Stack Overflow, Google and YouTube videos, I was able to move from level 1 to level 10 in my programming skills. I mean, just look at how my personal website has changed from this,

2016-02-05

to this,

2016-02-05 (1).png

Not bad eh? While I could do with a design class or two, I’m proud of that website. It’s my baby!

Tear jerking aside, while I am proud of my growth, I feel as if my learning method is seriously flawed. Before ripping my learning my learning model apart, let’s look into what I’m doing right first,

1. I’m actually learning outside of class

I’ve learned a lot of stuff in my classes. From basic programming to creating unit tests and higher order functions, my CS classes have taught me so much. But, it’s very hard to see the point for some of it. By learning outside of class, I’m able to find a few links between what I’ve learning and my projects. Plus, it puts me slightly ahead in my progress.

2. I learn almost every single day

Whenever I can, I try to do a little programming every day. Whether it’s making a Chrome Extension or doing a Node.js learning exercise, I always try to do something every day. By practicing everyday I get to reinforce my knowledge of all the concepts I’ve learned.

3. I’m good at finding help.

I guess I’m lucky to be living in this day and age, but Google is a powerful tool. It becomes even more powerful once you learn how to Google like a baus! With the right keywords, you can pretty much solve any issue you encounter. Usually, the top results are on Stack Overflow, where you typically get a good explanation of how to do something and a reason as to why it works like that.

With those three positives, let’s now look at the negatives.

1. I give up too easily

In the two hackathons I’ve been to, I have failed on both occasions to build even the most minimalist of viable products. Maybe it’s poor planning, but I typically give in one things get too hard. I guess I’ll need to look into how to work through the dip.

2. I’m learning too many things at once

So, one day, I’ll be learning from client side JavaScript then I learn about this thing called Node.js and think “cool, lemme learn that”. I go learn node then I learn about something called Meteor.js which lets you do everything, both front end and back and think “screw node, let’s do this!” Then I look into Electron.js for making desktop applications and the cycle continues. This isn’t very helpful because it will take a long time before I realize the detrimental impact switching so frequently will make since I miss out on important concepts covered in chapter 3.

3. I shy away from hard things

In order to grow, you sometimes need to do hard things. Whether it’s research for a complicated assignment, trying to lose weight or become more social, it’s expected to encounter lots of friction. By hiding from the hard part, I’m shying away from actual learning. Tutorials can only hold your hand for so long. At some point, you need to understand that while it’s distressing to leave your comfort zone, it’s a necessary step in order to ensure mastery of a skill.

4. I’m probably learning how to Google instead of how to code

I mean, when I “read” through a tutorial or some CS homework, I think to my self “this is simple” and then skip half the chapter to move onto sample problems. All fine and good, until I find one question that I don’t understand. Instead of asking “what is it that I don’t understand”, I immediately look to Google to find the answer. This ties in with bad thing #3 in that I’m shying away from all the hard work instead of sucking it up.

Now that I’ve looked through the strengths and weaknesses of my learning, I can move on from here by making amendments, namely:

  1. Work on one thing at a time- As a human being, I suck at multitasking. It’s best that I stick to learning one tool/framework/whatchamacallit at a time. Right now, that tool is Meteor.js for making full stack applications, meaning that CSS preprocessors, PHP and the like are on hold, unless I need them for the meteor app.
  2. Allocate one hour a day to learning each day- The consistency will help reinforce the things I’m trying to learn.
  3. If I get stuck, slow down and look into what I don’t understand- Once I understand what I’m stuck on, I can then ask smart, direct questions that will help me Google faster and if I need to ask, get an accurate response.
  4. Don’t be afraid to ask for help (humbly) if you need it- One issue I have is that I try to take on too many tasks myself, making me really slow, inefficient and burnt out. By asking for help from others, I get to interact with others and I reduce my burden for myself.

So there we have it, an overview of my learning model, it’s benefits and flaws and way I can improve it. Next week, I’ll be talking about how I merged the line between the theory of my CS classes to the practical of my personal projects/learning. Have a great week


Yikes! I still haven’t updated soJava yet! Also, this blog still has 3 readers and it would be nice to get bigger. Oh, and I still need to fix this poorly layed out site. #sigh.

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s