Learning your second or third programming language

(Daniel Hollands) #1

When learning a second or third programming language, how do you survive re-learning the introductory concepts that you already know (variables, operators, conditionals, etc…), without getting bored?

I’m currently doing an Android game development course on FutureLearn, and we’re just covering the basics of all the above thing - and it’s boring me to tears.

I get that many (if not most) of the people doing this course will be total beginners, and need to understand this stuff - but there has to be a better way than spending half an hour talking theory about them? For me it’s boring, but for everyone else, I’d imagine it’s possibly overwhelming?

Maybe the course I’m doing isn’t best suited to me for this reason, and that I might be better off jumping in the deep end - I don’t know.

What do you think?

(Andy Wootton) #2

Wrong course. They have to be written for a target level of knowledge and you aren’t at it. There will be such a course though, because your skills are not ancient.

I have the same problem but when I find a professional level ‘conversion’ text, it assumes I’m converting from a level of knowledge of another language that I don’t have either. It’s a long-standing problem for me because I tried to learn C++ without ever learning C properly. Now I’m learning Clojure without any knowledge of functional programming. Luckily, Lisp is so weird I am a beginner :slight_smile:

(Daniel Hollands) #3

Thing is, I’m not even doing it because I have any ambition to build android apps (and if I did, I’m far more likely to do it using Xamarin).

I guess I’m doing it more to get a peek at this beast I’ve heard so much about (Java), and see if I can pick up some tips on building real-time stuff (coming from a background of building Web apps, this is a whole new thing for me).

Maybe I should focus on C instead, seeing as I plan on doing more home electronics using the Arduino.

(Marc Cooper) #4

It’s a fascination of mine that I regularly work with folk who have been doing this stuff for ten and sometimes twenty years, yet still don’t really understand what they are doing.

They can make stuff work, of course, anyone can do that with a little persistence, but actually understanding how the pieces fit together and – much more importantly – why they do in the way they do, that’s much rarer.

Whenever I learn a new language, like everyone, I come up against variables, and operators, and integers, and structs, and conditionals, and so on. They all look the same, but the interesting thing is how they interconnect and interoperate in the new environment. That’s often far from obvious. It’s easy to think it’s obvious, because I can make stuff work like the next guy, but it rarely is.

For example, very few folk understand conditionals. You very rarely need them in OO or FP, yet you see them everywhere.

That’s what holds my interest with a new language. Language designers are often very smart folk (though not always). I like to find out why things are the way they are.

(Daniel Hollands) #5

I think this is why I’m resisting learning Python.

For better or worse, I’ve made the choice to adopt Ruby as my language of choice, and - in Rails at least - I’m currently am pretty much at the stage of being able to make shit work (just today on the WMRUG IRC channel I described myself as being able to make stuff work, but probably in really dumb ways).

But I want to get better, and improve upon my skills, specifically with the intricates of the whys - and not so much the hows - and that isn’t going to happen if I try learning more than one language…

…of course this is a post about learning a second or third language, so maybe I should just stop and the idea of Android, and focus wholly on Ruby?


100% vote for Python. It’s the language of choice for Google, Reddit, hacking and a whole lot more. Ruby is too open and vague for me.

Try codeacademy and Udacity. Udacity have really good nanodegrees.

I never really get to grips with the underlying philosophy with code (which is my largest downfall) I just “do it”

Also stick with Android and Java - mobile development is where it’s all going.

(Ben Paddock) #7

Some former colleagues of mine at BT ran a study group around the Seven Languages in Seven Weeks book. I haven’t read it (yet) but I think it’s aim is to get you to appreciate a few different programming paradigms. Might be worth a shot?

(Steve Jalim) #8

sounds the Elixir klaxon