Blog of Rob Galanakis (@robgalanakis)

Through the eyes of a newbie

The wife is interested in learning programming so she has been doing the Code Academy JavaScript course. It’s incredible to observe a person learning programming from the ground up, and how their mind works. It’s almost impossible to remember those early weeks of learning how to code yourself.

It’s been fun to see the frustrations, problems, and questions she’s had:

  • For loops. So hideous. I don’t know who invented such the syntax “for (i=0; i<100;i++)”, but really I blame the people that continued the tradition into later languages where it is a truly stupid syntax.
  • Speaking of i++/i–. What are these things and why do they exist?
  • Curly braces. What a waste of space!
  • var. When do I use it and when do I not use it?
  • Why do I need to end my lines with semicolons?

They also have a python course, I’ll be interested to see how that one goes. I suspect it’ll make less sense since she’ll now expect all languages to work as poorly as Javascript :)

Also to preempt the comments about how this doesn’t mean anything about a language and we shouldn’t design languages for complete programming newbies- yes, I agree. Mostly I found this interesting because the grievances she’s had all have their roots in C-style languages yet they are found in JavaScript which was designed to be novice-friendly. Though admittedly the novice in 1995 and 2012 start with very different dispositions.

I’ll certainly have much more to say once she moves into the rest of JS, and then into Python.

Also, Code Academy is really awesome.

5 thoughts on “Through the eyes of a newbie

  1. Matt says:

    This makes me want to convince my wife to take the python course, then maybe she can teach my energetic 2-yr to get stuck in a while loop to spend some energy :D

  2. robert says:

    Javascript is novice friendly? That’s the first time I heard this ;) I still like good old Pascal a lot as beginner language because it’s verbose and doesn’t have all the newbie-confusing “wtf is this?” stuff Javascript took from C. Shame there isn’t really any decent Pascal implementation around though – Pascal is really mostly good for teaching though, which was the creator’s intention and that’s why it never really established itself.

  3. Peter says:

    To understand the for-loop syntax and the awkwardness that is pre- and post-decrement, one needs to study history a bit. In this case, the history of this part of Javascript comes from C, which comes from it being syntax sugar on top of assembly language, where you deal much more directly with hardware constructs and the fact that, for example, there are machine language pre- and post-decrement addressing modes. C was the way it was because it made more sense to those who knew assembly. Javascript is the way it is because it made more sense to those who knew C. Sadly, none of that helps it be more palatable to someone like your wife, but at least there are good reasons for it even if she’d much prefer a language without so much baggage.

  4. I’m sorta in the same situation at school right now, taking a course in basic programming in c++ that I have to do for my degree. And I must say, the teacher and I don’t agree in much when it comes to how you should go about teaching programming. There is a lot of things I consider (at time when you first learn to program) you shouldn’t need to worry about.
    And this is perhaps something you should tell your wife as well, in the beginning it’s easy to wonder and ask things as “why semicolons?”, but I believe the most important part in learning to program is to Think as a programmer: see a problem and say to yourself “how would i solve that in code?” and not “should I save this as a unsigned long it?”

    thought process first, syntax later.

  5. Felix says:

    Hi Rob,

    i just found this blog here… cool!

    i think for women – ‘natural language processing
    with python’ is something interesting to start.
    these are small snippet’s where you can feel
    the power of programming.


Leave a Reply