How did your Code Year go? I hope well. But if you have unsubscribed from that mailing list or haven’t caught up to the lessons, I would like to share an idea I have for people who want to learn how to create things.

A lot of engineers have spent decades coding and building foundations for generations of engineers who follow them. Those new engineers stand upon the shoulders of those giants and build tools and frameworks for people who will follow them.

But because the tools have gotten so comparatively good to previous tools, especially for web and game development, many people have become interested in making applications themselves. And truthfully I think you can. I think anyone can, really. It’s not that hard. You just have to invest a lot of time learning how to hook one thing up to another, how services should work in the backend, and what design patterns you should follow to save time and complexity.

(Real serious computer science is something a bit different. I think when people use the word “coding” they mean “scripting.” But that‘s another blog post.)

Much to the chagrin of engineers it is as if they have been working for years to build flying cars and when they are finally here everyone is like: “Great! I want to build a flying car too!”

I think there’s an alternative and I would hope that you give this a chance. Instead of learning how to code, learn how to create with code. Learn how to make things with the abundance of tools out there available to you.

Twine is a desktop application (Windows or OS X) that gives you the ability to write interactive fiction. You can construct a story and lead a reader down a path based on their decisions.

If you want to get deeper into interactive fiction, with more coding concepts like variables and control flow, you can move on to Inform. Inform is the “Microsoft Word” for interactive fiction, giving you an array of tools to tell complex stories and bring in much more game-like interaction with your readers and players.

Maybe you don’t really want to tell a story, but are interested in making games for people to play. The first thing people do when presented with this is dive into a gaming framework like Unity3d or Corona.

Here is a better idea: there are a few iOS games out there that include level editors. Here’s one called King Rupert.

Making a game is more than just writing graphics handlers, it’s also working on the thing that makes something fun and enjoyable to keep playing. Level editors are a great way to immediately dive in and produce something other people can play with and give you feedback on. Here’s a massive list of them on Wikipedia.

And if you really want to build web sites, I say think about what it is you want to build and accept that there are a plethora of services that have worked out the hard parts and can probably provide all the work for you. Squarespace for portfolios or weblogs, Shopify for an online store, and for the more adventurous: If This Then That for any sort of “I wish x did y when z happened.”

Knowing how to program has been one of the most fulfilling skills I have acquired in my life, but I believe having the ability to ship something into the world for people to use is much more important.