.. ( and some pretty crappy advice probably)
My ex-G/F’s son recently called me, asking if I could suggest a first language to learn. He’s 13 and he’s pretty sure this is the field he wants to enter.
The conversation went mostly something like this.
Me: I think that applications more and more are going to be web-based applications. Have you heard of Ruby?
Andy: <started to say something>
Me: <Interrupting him> It’s object oriented, but I’m not sure if you want to just start with something that is just strictly procedural so that you can learn basic concepts.
Andy: Yeah, I’ve written something in Perl and I’ve already looked at Ruby.
Me: <realizing that I shouldn’t have interrupted>. Oh, okay, I think Ruby is a great language to learn then. More and more hosting providers are supporting this, and many corporations are adopting it <then realizing, why the hell would he care about hosting providers, and the business case for it, he’s 13 for gdssake, and do i know the facts on this?>
<continuing..> However, have you heard of C?
Andy:
Me: <not even waiting for the answer, unfortunately> It might be a good idea to learn a lower level language such as this, so that you could learn the concepts of memory management, pointers, etc.
< Really? Will this be a necessary requirement for him to just have fun, enjoy his career and provide value later? How do I know that he won’t be another Jason Fried (37Signals founder), but skip the college. I think I should shut up and just change the subject. I think, though, that he’ll probably go to college and take these classes anyway, on data structures and memory management, and architecture. >
Andy: Are you there?
Me: Have you heard of Python?
Andy: <silence …> No
Me: Okay, well I saw a book at the store and the title was Learn How To Program with Python, and since I’ve written in Python before, I could see why this particular language could be a good starting point. It has even been ported to the .NET Framework, with the name of IronPython, and Python was written originally as an OO language.
Andy:Is C# a good language?
Me:Yes, definitely. I’d recommend it as a good language to learn, since you can use to write WinForms applications …
<tempting to mention “WPF” which transcends WinForms, but this kid is just asking for a simple opinion, not information on some new future GUI technology from MS!>
.. as well as ASP Web Pages.
For the rest of the phone call, I think I steered away from languages, and just simply suggested that he think about a program he wants to write, and that he would actually use.
And then recommended that he use a language that he thinks might be the best one for this particular program that he would write. Though I obviously like PHP myself, I think I steered away from it in indirect ways, because I don’t know how valuable it would be in the learning stages.
Then I mentioned that he find an Internet Discussion Forum, and even suggested Sitepoint and Devshed, where he could search for “first language to learn”, etc.. to get better, much better insights from others, including those of his age.
I also made it a point to seek someone who I could actually give valuable advice to, so that I could reverse the negative “advice-karma” I set in motion with this call, before something happens.
But what language do you start with, anyway, these days?











