Experience Bias

Let’s just get this out of the way real quick, as this is an opinionated topic: The following is not meant to be a particularly objective overview of popular programming languages, nor a choose your own [ language] adventure. No, this is my gross overview of what makes a good starting point for people (of all interest levels) to start programming. From my years of teaching lower & higher-education students intro courses, I’m biased. I am experience biased.

What do you want to do?

The first question you should ask yourself is “what do I want to do with programming?” Personally, I wanted to make games. Others I’ve taught wanted to make Art. Some wanted to “do cool stuff with cameras.” All of us wanted a gentle onboarding.

Programming is hard, but it doesn’t have to be hard up front. Depending on what you want to do in the end with programming, you’ll need vastly different knowledge sets and experiences than the next person starting off. What you want to do affects what language, application program interfaces (APIs), and tools you’ll want to become proficient at.

You should work backward from your goal, and start to identify what coding skills are necessary for said task. Generally, whatever you want to code, you’ll need to learn a few basic constructs including Data Types, Operators, Statements, Loops, and even Object-Oriented Programming concepts, or perhaps Compiled / Interpreted language basics.

Did you click all of these links? Did your head explode? If so, keep reading. I’m here to help.

How to choose a Language

The question I’ve been asked time and time again is “What programming language should I learn?” Time and time again, I say “multiple languages… but start with Processing.” Let me tell you why.

Realistically, you will have to learn multiple languages if you want to have a career in programming, and that seems daunting -I know. Thankfully, most of the skills you learn the first time around apply to the next, so on and so forth. If you’re only interested in one (and only one) specific niche, you’ll still need a starting point. Whether it be games, websites, apps, databases, etc., all the skills transfer.

I’ve spent too many occasions debating the merits and limitations of Processing compared to Java, JavaScript, Assembly, C, C++, C#, Ruby, Python, Swift, Kotlin, etc. It’s a tired debate, and you can visit Stack Overflow to inform your own choice if you don’t like mine. Each has its own fantastic history; Processing has its own.

Processing was, and still is, designed to “teach programming fundamentals within a visual context.” You presumably like programs with visuals, and I think you’ll enjoy programming you can easily create apps for Windows, Mac, Linux, and even Android. You need to learn the fundamentals before you can reach your goal, and Processing makes that happen. Guaranteed.

Find a Community

Whether you use my suggestion or not, please don’t jump into learning a new language without locating a community of some sort. As stated earlier, “programming is hard”, but it doesn’t have to be done alone. There are countless communities out there for each specific language, interest, and goal. Stack Overflow is one of the most amazing resources you can tap to help with general questions, find groups, and even get responses to very specific programming issues. It’s amazing, check it out.

Between Stack Overflow’s Processing tagged entries, and Processing’s own Forum, you’ll have immediate access to a vast assortment of individuals, experiences, and even issue resolutions. Where Processing really shines, however, is its online Reference, Tutorials, and Examples sections. These pages lay out everything you’ll need to know to learn the basics -and then some.

But, before you deep dive into the aforementioned, start here with Hello Processing. Set aside one solid hour, and get an interactive, step by step introduction to the language. Start here. You can’t do better.

Play & Learn

After you’ve gotten your feet wet, it’s time ease yourself further into it. The best way for anyone to overcome their inhibitions regarding programming’s difficulty is to play. Set aside some time here and there, and just play with the language.

You’ll either need to download Processing or if you’re working from a Chromebook, weary about downloads, or just want to focus on ‘Processing for the web’, try the Processing P5.js Web Editor and see the Hello P5js pages. Either way, you’ll need to just sit and play. Take some time to do simple things, then slowly build from there.

I’ll revisit Processing in future blog posts, and even host a workshop (or two or three) in our Gateways and Hubs, so stay tuned & happy ‘hacking’!

About LIGHTS: Ohio University’s Innovation Center founded the LIGHTS (Leveraging Innovation Gateways and Hubs Toward Sustainability) program in 2016. LIGHTS’ Innovation Network catalyzes the creation of companies to create high-wage jobs, and attract greater private investment in the coal-impacted regions of Ohio, West Virginia, and Kentucky. The Appalachian Regional Commission generously funded the program because of its unique way of matching complex problems and opportunities facing corporations, communities, and individuals to a network of two strategically-placed Innovation Hubs and seven Gateways. New marketable products arise from these problems. The Gateways and Hubs are new business incubators and makerspaces serving a 28-county area.