A Little Out of My League

Hi Folks!

I have a student who really wants to develop mobile apps and wants to learn how to code. As a Design & Visual Communications teacher, I'm pretty comfortable with html and css and that is about it. I know that the best language for coding apps is Objective C, but that is pretty deep water for a kid learning to swim. He's a bright kid, but he's never programmed before I don't think he's ready to start at that level. What is the best building blocks for him? Should it be basic? Action script? Basic C? Something I've never heard of before?

Thanks, as usual, for all your help.


0 / 5 • No Ratings

Comments (1)

Write a reply...
or Join for free to view all comments and participate in the discussion.

Ben Forta

Posted on 9/18/13 1:13:46 PM Permalink

Hi Marcia,

I actually don't think Objective C is that deep water for a new swimmer, nor do I think that it's actually the best language for coding apps (it is, however, one of the few ways to write iOS apps). I do have kids who have gone that route, and I find that with mobile app development there is a lot to pay attention to, and inevitably kids will spend forever tweaking icons and making cool graphics and not enough time on the basics of coding.

And the truth is that coding fundamentals, the basics of conditions and loops, working with data, thinking about reuse, breaking problems into bite sized chunks, that type of knowledge is easily transferable between languages and platforms. Once a student understand those the rest is syntactical differences and nuances and those are easily mastered.

As such, I try to steer them away from mobile apps (Objective C for iOS or Java for Android) as step 1. I'd rather they focus on a simpler environment, one with instant gratification and without lots of specialized tooling and fussy configuration. In other words, fewer distractions (as close as possible to command prompt input / output that we all used to learn programming 20 years ago). I know that writing for desktops is so uncool these days, and coding for devices is sexy, so I like to start with in browser mobile experiences. If you are comfortable with HTML and CSS, then I'd compliment that with JavaScript. This will allow students to build in browser experiences on devices that are actual programs and which introduce them to if statements, loops, variables, functions, and so on. They can code in Edge Code which you have access to already (or Dreamweaver, or any editor). Debugging using alert() and using browser developer tools is a great way to actually understand what code is doing. And this is not a cop out, really, there are indeed many mobile apps built just this way, using web technologies. (If the student really wanted the app to run out of browser you could even package the HTML code as an app with PhoneGap, maybe).

With those basics covered, the move to Objective C or Java or anything else will be much easier. And you'd also be building on skills you already have which will make the whole process easier for you, too.

I hope this helps!

--- Ben