Skip to main content

Learning to Code: Selecting a Language

If you decide that learning computer programming offers students much needed critical thinking (and job) skills, then the next question is which language(s) should be taught to which students.

Computer programming changes, so any opinion I offer will be bad advice in a few years. What I offer below are my views at this moment, and they reflect my biases as a programmer.

Suggestion One: C

It's not flashy, it's not trendy, and it isn't the first choice of most programming courses. Yet, C is the language of operating systems, programmable controllers, and a lot of portable logic. When you learn C, it's easy to transport those skills to almost any modern language.

C compilers are free, there are many integrated development environments (IDEs), and lots of resources are available for learning. You can code C in any text editor, too, and compile from a command line.

For OS X and Windows, I suggest using the tools from Apple and Microsoft to learn C, C++, and either Objective-C or C#. Microsoft offers VisualStudio Express for free, as does Apple.


The LLVM Project offers great C/C++ tools, but they do require some skill to install and configure. The GNU Compiler Collection is older and better known than LLVM, serving as the foundation for many open source projects.


If you do opt for open source tools, the two most popular IDEs are Eclipse and Netbeans. Originally intended for Java development, both IDEs offer good C/C++ programming experiences. And, if you feel the need to learn Java, these are the tools professional Java developers prefer.


Suggestion Two: JavaScript

This won't be a popular suggestion among many programmers, but JavaScript remains an important language on the World Wide Web and its basic syntax teaches skills that transfer. With Apple's recent announcement that JavaScript will replace AppleScript as its primary operating system "scripting" language, there's one more reason to learn the language.

JavaScript (officially ECMAScript) has the benefit of working in all major browsers, on all major computing platforms. If you have a text editor and a browser, you can learn to code JavaScript. It's free and it is everywhere.

Why would I suggest JavaScript, an interpreted language with some annoyances? Because if you want to develop modern Web apps, you will end up using JavaScript.

There are many tutorials on the Web for learning JavaScript, and dozens of good free books.


Other Possibilities

I still like BASIC dialects for teaching programming to young students.


Visual Basic for Applications (VBA) in Microsoft Office is still valuable, but falling out of favor as more companies disable macros. I understand the security concerns, but VBA makes Excel and Access what they are. Complex Word macros in VBA are also part of my life.

For younger students, MIT still offers versions of LOGO that are fun.


Apple's Swift looks promising. It's still not finished, but there are free books and guides online from Apple.

Java is fine, and as mentioned above the tools are free.

What about Ruby, Python, or PHP? Scripting languages offer instant satisfaction, a lot like BASIC did in the dark ages of home computing. If you have to choose one, I'd be torn between Python and Ruby. Most of my students learn Python and use it with R for statistical analyses.

I still believe Pascal was great for learning. And my wife and I both learned Fortran in the 1980s.

There are hundreds of computer programming languages out there, but in the end the tools provided by Microsoft and Apple tend to dominate the industry.

Comments

Popular posts from this blog

Practical Technology Skills

This blog is a revision to a column I wrote for Direct Media publications. Normally, I wouldn't repost something I wrote for hire, and I certainly don't wish to anger one of my publishers. However, since this blog is primarily accessed by one of my graduate seminars, I think the publisher will appreciate that I am extending my thoughts for educational purposes. I'm also more than willing to encourage businesses to visit the Direct Media home page . Page numbers seemed to be a half-inch lower on each successive page. I stared at the mid-term paper, handed in to me by a junior at the university, and thought back to my fights with dot-matrix printers. When I was an undergrad, my Epson FX/80 printer jammed often and would sometimes rip pages after the sprockets slipped out of alignment with the punched holes of the perforated paper. Surely the undergraduate author of this paper suffered the curse of a similarly possessed printer, I told myself. “I guess when I changed the ma...

Robots for Home: Not Yet the Jetsons

NXT Robot (Photo credit: Wikipedia ) Visalia Direct: Virtual Valley November  3, 2014 Deadline December 2014 Issue Robots for Home: Not Yet the Jetsons Rosie the robot maintained the Jetson household more than 50 years ago. To the disappoint of many of us who still enjoy the classic 1960s cartoon, Rosie remains science fiction. The only robots in our houses are round bumper cars that vacuum floors. The iRobot Roomba offers no witty banter and no sighs of exasperation. Growing up, I expected Twiki, the android that followed Buck Rogers about for no apparent reason, to become a reality. After all, Twiki didn’t do anything except carry a much smarter talking computer about his neck. Sadly, Rogers was stuck in the twenty-fifth century. All the good androids and robots seem to be way off in the future or in other galaxies. Although we have no Rosie, robots are on the rise. They build our cars, deliver medications, defuse bombs, explore planets and even perform surgeries. M...

Human Readers for Tests

As readers of my blogs know, I'm never opposed to using technology when it is an effective tool. I am opposed to the blind embrace of the latest trends without critical examination of the potential side effects. Computer-assisted grading, I can endorse to some extent because I use software to help me analyze student papers — and my own writings. But, I cannot and will not endorse any system that gives weight to the computer-based scoring. If you're a teacher, consider this petition: http://humanreaders.org/petition/index.php Now, I also want to add a critical comment on human graders. If the graders of standardized tests are using rigid scoring rubrics, they are little better than software algorithms. Bad grading is bad grading. Inflexible = bad. Again, I am not opposed to using a computer for fact checking, some plagiarism verification, and as formatting aids. Computers can and do help many of us write more effectively. But, I don't use computers to grade pape...