Why can't I teach myself?
June 29, 2009 2:34 PM   Subscribe

Why do I suck at teaching myself, reading, and studying? Can I fix it?

Right now I have at least seven books about programming on my bookshelf that I have attempted to read. With each of them, I started reading, got excited about what I was learning, then reached a certain point and just quit reading. I don't really think there's a particular reason I can recognize for why I quit reading the books. I think I just get distracted, pick up another one thinking that I'll do better the next time around, and start reading that one only to fall prey to the same fate.

I've pretty much always been this way. It's been a struggle to me to teach anything to myself or do any studying on my own. Most of the things I have really learned in life are things that required me to get really hands-on or things that were taught to me one-on-one by another person. I did very well in school but almost never studied materials outside of lectures.

I think the problem is general enough that it can apply to most subjects, but the specific area that it has seemed to recur in has been computer programming. It's always been a great interest to me and I've always wanted to learn a language, but I always seem to fail at it. It's getting to the point that I think I may just not be cut out for programming... that I'm not the right kind of person for it. That really frustrates me and I want to prove myself wrong.

So is there anyone else out there with this problem? How did you fix it? Am I just going to have to lock myself in a room with as little distraction as possible and force my way through this stuff? Or should I just face the fact that I can't be better at this and try to take classes?
posted by joshrholloway to Education (15 answers total) 17 users marked this as a favorite
Not everyone learns well out of a book. I can't learn programming out of a book worth crap either. Reading may just not be your best way to learn. You may be a "must have to do it physically" (or via lecture) learner. It definitely sounds like you are from what you say here.

I think you're just gonna have to take classes. I wish you luck on that one, I haven't found any real "programming for total noob" classes where I live. Or at least, the one I took turned out to be an obscure language that nobody but the prof used, so I learned nothing.
posted by jenfullmoon at 2:57 PM on June 29, 2009

Working in a group helps me study, or at least helps me motivate myself to study on more on my own. I suggest a taking class or getting involved in a study group along with self-directed study.
posted by YoBananaBoy at 2:57 PM on June 29, 2009

I'm just like you. Every once in a while I get these books from work, and I get all gung-ho, and give up by page 30. I don't even try anymore; I take classes wherever possible (my work's pretty good at letting people take classes once or twice a year). Some people just learn better in a give-and-take environment. With something like programming, it really can help to have someone at the front of the room walking through the stuff so you can see what it's supposed to look like.

It is also entirely possible that you weren't in fact cut out for programming; again, no shame in that. I learned early on that I didn't have what it took to be a programmer, so I became a systems analyst - now, I think about how I'd want to program something, and hand off my specifications to someone who knows how to make what I want into something tangible.
posted by pdb at 2:58 PM on June 29, 2009

I hear you. I was the exact same way in College. I think in my 4 years I read all the way through maybe 3 books. Still graduated Cum Laude. It's not that I don't enjoy reading, just didactic texts are quite dull and don't stick.

My solution (which worked as long as I had the time and money for it) was an online distance classes for computer programming. I took some offered by my local State College, they were good. It worked since I was motivated to do something for a class (IE for the grade), and I enjoyed / learned from the lecture aspect of it. The reading, such as it was, was broken down into manageable chunks, but mostly you learn from doing exercises (and you don't already have the answers for you on the next page)

Since then I have gained a bit more of a rudimentary understanding of programming in general so I can page through a book at a random pace and still pick up something. I am not a master programmer, but I also got a job that doesn't require programming so it is hard to keep up the hobby.

Online lecture from a reputable college. YMMV.
posted by DetonatedManiac at 3:16 PM on June 29, 2009

err, um... my post above got edited. I case it was not clear, I graduated for real from a liberal arts college and then LATER, after graduating, decided to go for some online classes at another institution.
posted by DetonatedManiac at 3:18 PM on June 29, 2009

Most people fall into one of three learning styles: visual, auditory, or kinesthetic. Most of us have a dominate learning style but there may be some overlap. Adapting materiLs to accommodate your learning style can be helpful. For example, since I am a very strong visual learner, I am able to learn by reading. Maps are graphic so they make sense to me but try to give me directions orally and I just can't take it in. It sounds like you may be a kinesthetic learner which means anything hands-on will help you. It could be that you need to practice the new task step by step, or make flash cards, or sometimes even taking notes or making a graphic organizer to outline the information will draw in that kinesthetic learning style just by the act of writing it down.
posted by tamitang at 3:18 PM on June 29, 2009 [1 favorite]

Best answer: Are you trying to read straight through, or are you stopping to utilize what you're just read before you move on? I've found that if I grind through a text I'll internalize almost nothing, but if I stop to really work on a new concept, maybe once or twice per chapter, I do a lot better.

Assign yourself homework and really strive to master the lessons before you try to move to the next lesson.
posted by lekvar at 3:21 PM on June 29, 2009 [1 favorite]

For me, learning is an iterative process of goal-setting. I'm no programmer, but I did end up learning some VBA way back when because a massive Excel job got dumped in my lap and as an extremely lazy man I just couldn't bear to do by hand what a script would do even better. And as I figured out how to do that, I added more and more goals said script could accomplish. And most of the time I'd fuck shit up and lose all the data or populate the wrong cells or even bring my compy to a screeching halt (didja know there are 65536 rows in an excel spreadsheet, and telling your ancient 486 to calculate every damn one of them takes for fucking ever? Yeah. I know that now.).

I have to set a goal for the use of the knowledge, work through the material by working toward my goal, and the learning is what happens when I'm not thinking about it.

The problem with this is that I end up with spotty and incomplete knowledge of most everything. But I'm fun at parties.
posted by BitterOldPunk at 3:29 PM on June 29, 2009

Best answer: It's hard to learn on your own when it's something like programming, which is, essentially, a technical, and mundane instruction manual (I find that authors' "poetic license" with such texts to be severely lacking). There is just nothing immediately satisfying to apply it to (a purpose that homework and assignments from classes provide), and no social support for reinforcement when you're alone like this. I don't think you should feel bad, or that you "suck," so much as the task you are setting for yourself, by its nature lacks motivational structure -- it lacks "rewardingness".

I like other peoples' suggestions to make your own cirricula, set your own tasks, or try to gather up some friends to learn it with.
posted by tybeet at 3:30 PM on June 29, 2009 [1 favorite]

Best answer: Specific to programming: I think teaching yourself your first language is a very different thing from learning your second (or third, or fourth...) There are a lot of concepts that may not be easy to grasp on your own, and a lot of assumed knowledge is built into the books.

There are also different kinds of programming books: some are meant for reference, some for people who prefer to learn the underlying theory first, some for people who learn by example, and honestly there are a lot of really bad books out there that aren't good for anyone. It may not be you; it might be the books you're choosing that's the problem.

Or you just might work better when you have externally-imposed deadlines instead of forging ahead on your own. Taking a class isn't a sign of failure, you know.
posted by ook at 3:41 PM on June 29, 2009 [1 favorite]

I agree with everyone that there are different learning styles, and that's not a problem, because there's a vast industry churning out classes and training videos.

There's no reason you should try to learn from books, but if you'd like to keep trying, I have a thought for you: when you sit down with a book, how much of it do you try to tackle at once?

When you get a shiny new book, it's easy to let enthusiasm quickly shuttle you through the first 90 pages. And then it's easy to think that you MUST complete the same number of pages on subsequent days. But it's harder because your enthusiasm is gone. Also, the latter part of the book is probably harder to understand than the foundational chapters.

If you told yourself, right now, that you need to read just one page of a C++ book, could you literally not make yourself do it? Just one page?

Because if you can read one page today, you can read another page tomorrow. And you can finish a 300 page book in a year. That may sound like a long time, but it's more productive than a year in which you haven't read the book.

If you try this, you may find that on certain days, you get so into it, you want to read more than a page. At least at first, don't let yourself do it. Quit at the end of the page. Quit mid-sentence if the page ends half-way through a sentence. It's fine if you want to review that sentence the next day before starting on a new page.

The goal here is to train yourself to have some discipline when it comes to reading books for the sake of learning.

I'm a professional programmer. What I really want to learn is 3D modeling. I don't have the time or inclination to speed through a whole book. So I'm doing the one-page-a-day thing. I do it at work, while I'm drinking my morning coffee. My goal is to get through the book by December 31.
posted by grumblebee at 3:50 PM on June 29, 2009 [4 favorites]

The trick that grumblebee does, is the trick.

Slow steady progress. daily. Maybe every other day. 15 pages. 20. Every day move forward. Quit way, way, way, before you're frustrated or exhausted.
posted by filmgeek at 5:54 PM on June 29, 2009

Grab hold of the source code for a cool open source product that you'd like to change somehow, and attempt to do that. Don't refer to your books until you strike a piece of code you don't understand.

Seriously: one of the best ways to become a good programmer is by taking apart source code written by brilliant ones, and learning to improve code written by mediocre ones.
posted by flabdablet at 1:11 AM on June 30, 2009

In my own personal experience as a programmer, I find that nothing beats doing an actual project for learning. Find a program you'd like to build - preferably a very simple one. Set up your environment (A learning experience in itself!), and start at the beginning. What you'll find is that you'll be spending a lot more time looking up things in the API documentation than actually writing code. But, as you go from the reference to your code and back, you'll pick up things that eventually sink in.

I also agree with the other suggestions to block off time to stick to doing this. Try to eliminate distractions (web, tv, etc.).

Good luck!
posted by Citrus at 6:43 AM on June 30, 2009

According to Seth Godin's The Dip (which I never read, but had summarized to me), every task has a phase where it's easy at first, then it gets hard, and then it gets easy again. (The hard part is what he calls The Dip.)

From what I understand, Seth says that rather than persevere through the dip, you may want to give up & move on to something else. Eventually you'll settle on something where the dip is actually pleasurable & you'll persevere through it.

In other words, maybe difficulty is an indication that you won't find much pleasure from doing it later on.

FWIW I'm in your camp - tried to learn programming several times, but never stuck with it. I am, however, a pretty good musician, and I've been teaching myself about copywriting (advertising) in my spare time lately. Just a little bit a day.

I use a little program called Mnemosyne, to add flash cards to & add a couple of flash cards a day & review the old flash cards a little every day. It helps making memorization a little less painful.
posted by MesoFilter at 8:38 AM on June 30, 2009

« Older Help me not quash my Bonsai's second life   |   Please don't let these tomates go! Newer »
This thread is closed to new comments.