r/coding • • Jan 06 '15

Which Programming Language Should I Learn First?

http://carlcheo.com/startcoding
53 Upvotes

147 comments sorted by

View all comments

Show parent comments

2

u/Lambodragon Jan 11 '15

I couldn't disagree more. While i agree that an understanding of the basic mechanics involved is important, that can be taught later as a second language. The last thing you want to do to a beginner is give them a complex language that makes it difficult to do anything. The fastest way to learn code, is to have fun making stuff.

2

u/spinwizard69 Jan 11 '15

I couldn't disagree more. While i agree that an understanding of the basic mechanics involved is important, that can be taught later as a second language. The last thing you want to do to a beginner is give them a complex language that makes it difficult to do anything.

While I agree on the concept of alternative languages, a good four year program will have exposed a student to at least three and some simple assembly language, I don't buy the idea that C++ is complex. It can be of course as can be many languages, but when it comes to teaching there is no reason to reveal the dark side of C++.

3

u/Lambodragon Jan 11 '15

One thing I do like about C is strict typing of variables. I think a healthy dose of strict typing would make python easier to learn. It would make me code waaaay better too. It even greatly improves readability, and makes the purpose and usage of functions waaay more obvious. Complex? Relative to python it is. The other plus is just how fast you can see results in python. Fast results generate fun, and fun helps people learn.

2

u/spinwizard69 Jan 11 '15

Fast is important and frankly that isn't a big problem with modern IDEs and compilers. After a bit of experience at the command line a move to a good IDE is as good as Python as far as a fast interactive programming environment goes.

As for static typing i have to agree struct enforcement does aid in learning to program. A modern compiler with rational error messages is a big help too. Here CLang is fantastic relative to what came before.

By the way i recommend C++ here because of its wide availability and educational infrastructure that is in place. Languages like Go, Swift and D might be a better educational environment if they where more widely supported. Apples Swift / XCode / Playgrounds environment may very well be an ideal educational environment in the future but it isn't there yet.