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 to understand new things, but sometimes what you know can make it harder to understand a new concept.

I've noticed that this applies especially to people who are learning their second programming language. Becoming a programmer already warps your brain enough - when you discover that what you've learned is just one of many different ways to think about solving programming problems, it can be tough to handle. I have seen professional programmers of ten years baffled by things like blocks 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 studied programming and they've been able to get it. I am certain it is not that the professional programmers are bad at what they do, but that their thinking is so ingrained that they literally can't accept the idea when I show them something radically different from what they already know.

Whether you're learning your second language or your twentieth, here's what I suggest: as you work, and as you go through documentation and educational materials, 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 anything with it. Then go through the list, and map everything on it to things you already know. What do you know about how strings work? What do you know about order of operations? Networking? Exception Handling? Now you have a list of things that the language has that you're familiar with. It also represents a starting off point for investigating further - you've identified similarities with this language and other languages you know, but now you need to learn how it differs. You don't want your knowledge of another language to incorrectly prejudice your understanding of the new one.

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