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

Digital Writing Ideas

Online composition and participation are always a requirement in the courses I teach. When I began teaching at Fresno State as a graduate student in 2004, I was one of the few instructors who required students use Blackboard on a weekly basis. I believe there are several reasons to use tools like Blackboard / WebVista: Students can read and respond to the thoughts of their classmates. I have a record of how writing (and thinking) improve during a semester Peer editing can occur online, in small groups. Students less vocal in class discussions tend to participate more online. Normally, I post a " Weekly Response Question/Topic " based on class discussions during the week. Students can then extend the in-class discussion online. Those who were unable to speak up during the class have time to reflect and post their thoughts, too. By requiring every student to post at least 50 to 100 words a week, they soon engage each other in discussion. I always use threaded discussions...

More Than a Typewriter: The Power of Word

Visalia Direct: Virtual Valley March 3, 2014 Deadline April 2014 Issue More Than a Typewriter: The Power of Word Typewriters still amaze me, especially the antique mechanical models. There’s something wonderful about the feel of levers, gears, springs and rollers working together to transmit thoughts into words. Typewriters possess a romance computer keyboards and touch screens lack. But, please, stop using your word processor like a typewriter. Word processor abuse mars many otherwise good documents. Bad habits people develop over time lead to documents that are ugly and difficult to edit and revise. The numerous excuses for improper word processing deserve dismissal. It does not take days or even hours to learn to use tabs effectively. Paragraph styles take minutes to understand and appreciate. Even a complex looking table of contents takes only a few mouse clicks to create if you construct a document properly. When you know more about your software tools, you also kno...

Word Macro for Word Abusers

I overuse some words and phrases in my writing. Most writers have some problem words. It isn't that the words should never be used, or that we use them incorrectly. We simply use them too frequently. The following Microsoft Word VBA macro marks words I should check for overuse. Also included are words and phrases I should avoid. Feel free to copy and modify this macro. I encourage my students to try this macro, too. Once you have the macro in Word, you can alter the word list to reflect your preferences and habits. Sub macWordsToAvoid() Dim vFindText As Variant Dim txtWord As Variant 'list the exceptions to look for in an array vFindText = Array("about", "all", "almost", "a lot", "already", "always", "along with", _ "anxiously", "absolutely", "as well", "believe", "certainly", "clearly", "definitely", _ "eagerly",...