Why learning your second programming language can be harder than the first

Learning a new programming language is never easy. You have to learn new syntax,tools, and libraries. You make use of what you already know in order tounderstand new things, but sometimes what you know can make it harder tounderstand a new concept.

I've noticed that this applies especially to people who are learning theirsecond programming language. Becoming a programmer already warps your brainenough - when you discover that what you've learned is just one of manydifferent ways to think about solving programming problems, it can be tough tohandle. I have seen professional programmers of ten years baffled by things likeblocks in Ruby. Now I'll be the first to claim fault with my teaching, butI've used those same teaching methods with people who have never studiedprogramming and they've been able to get it. I am certain it is not that theprofessional programmers are bad at what they do, but that their thinking is soingrained that they literally can't accept the idea when I show them somethingradically different from what they already know.

Whether you're learning your second language or your twentieth, here's what Isuggest: as you work, and as you go through documentation and educationalmaterials, make a list of EVERYTHING. Every function, every library, every tool,every concept. Build up that list for the first week or two, don't do anythingwith it. Then go through the list, and map everything on it to things youalready know. What do you know about how strings work? What do you know aboutorder of operations? Networking? Exception Handling? Now you have a list ofthings that the language has that you're familiar with. It also represents astarting off point for investigating further - you've identified similaritieswith this language and other languages you know, but now you need to learn howit differs. You don't want your knowledge of another language to incorrectlyprejudice your understanding of the new one.

Additionally, you'll have a list of things that don't map up to anything youknow. This represents even more learning opportunities, ones you may strugglewith. Keep your head up - it's okay if it's hard. It is a brand new partof your mental universe, after all!

Become a better Ruby developer with free RubySteps lessons