Skip to main content. Skip to secondary content (sidebar).

Why you are having trouble learning to program

The pervasive myth among up-and-coming programmers today is that the fastest track to understanding a new programming language is to pick up a book and begin reading all about it. This can be instantly disheartening for many, since so few retain information only distributed in written form. Cognition is a very unique process, and learning how you learn as an individual can certainly be a barrier to learning to program. As counterintuitive as it sounds, that might mean putting the books back on the shelf.

When I was trying to get a better perspective on OOP with JavaScript, I started reading through every tutorial that I could find, diligently trying each code snippet for myself. Yet, there were a few concepts that were not sinking in, and I was getting frustrated. That was until I came across a videotaped presentation by Douglas Crockford. In a matter of minutes I was captivated. The combination of audio, visual slides, and concise code samples, was the perfect learning tool.

This sort of experience can be enlightening, but it can be hard to pinpoint exactly what made the difference. However, it is necessary to take control of the experience and study it, so that you can develop a more fruitful approach to completing certain tasks. In this case, learning to program. The best place to start is by uncovering your learning style.

Uncover your learning style

If you took an entry level psychology course in college, then you may already be aware of the three learning styles. Identifying your primary style is incredibly important, and knowing how to take advantage of it will ultimately allow you to retain more information at a more rapid rate.

Visual Learners

As the name implies, visual learners need visual stimulus. A visual learner requires diagrams, illustrations, handouts, notes, and a facilitator to translate the themes in the visuals. If you are a visual learner, you will find that videotaped presentations at conferences, which intermix slide presentations with dynamic speakers, are the best opportunity for you to retain programming concepts.

Auditory Learners

Auditory learners retain knowledge by hearing others, and by talking through a problem. Tape recorded lectures, and group discussion focused on a specific topic fosters intellectual growth for an auditory learner. Interpreting signals in speech, such as tone, pitch, and speed, can affect how quickly an auditory leaner will grasp new ideas.

Tactile Learners

The tactile learner will want to get into the language code and begin reverse engineering it as soon as possible. Tactile learners begin to unravel the fundamentals by dissecting in depth or complicated examples that are representative of real-world scenarios. If you are a tactile learner, you typically require frequent breaks while studying.

Manage your time

You will find that among the three learning styles, there is a single common thread. Optimum performance is achieved through consistent dedication. When you decide to exercise your style of learning while trying to grasp a new programming language, it is best to set aside the same time slot every day, or every other day. This time does not need to (and should not) be lengthy, but I would suggest at least forty-five minutes to an hour. If you are attending a conference, then you should participate at the time and in the fashion that best suits you. Tape record lectures, find common ground with those attending, ask for copies of presentations, try to build off what you learned by coding in workshops throughout the day. Regardless of what you do, be sure to pencil it onto your calendar, or else you may find yourself experiencing long gaps between study sessions. This has adverse affects on what you retain, since programming concepts are often tightly linked. Forgetting a small portion of what you learn is likely to cause confusion down the road.

Savor the variety

While flipping through a reference book on Java, I came across a recommendation that appeared to be a suggestion direct from the publisher. Stick with a single resource it stated. When learning a new language, it perpetuated the notion that your best chance for success, was to read one book, and it should be that one in particular. I totally disagree, especially when it comes to resources. You need to use all the tools at your disposal. Hit the bookstore and pick up several books at once, download presentations from numerous speakers, find mentors that you can ask questions of, take notes, ask to shadow another programmer on a project. Even though you need some routine, you should not be closed to discovery. You will have a primary learning style, but in time a complimentary style will surface, and it is often the variety brought on by a combination of the two that will help you best.

Set a goal for yourself

The long and short of this final suggestion, is that setting a goal, and reaching it, will enforce a more positive attitude. This in turn gives you the energy to work at it again and again, until you learn what you need to over time. Learning to program, or learning to program a new language, can be a daunting exercise. Negativity is bound to set in at some point, but owning up to achievable goals will help offset the discouragement.

A day late and a dollar short... comments are closed.

01  |  July 19th, 2007 at 5:27 am

You could at least have given the link to the video example that set this all in motion.

Comment by:

Jose Bleet

02  |  July 19th, 2007 at 7:24 am

Hi Jose,

Others have requested the link as well. I have updated the article. The original videos were posted on Yahoo!, but have since been taken down. This is why I linked to them on Ajaxian.

Brian

Comment by:

Brian