IndustryThe Real Reason Why Everyone Should Learn to Code

Dave McFarland
writes on November 20, 2014

Share with your friends










Submit

Lots of people get into programming because they love the challenge, are excited by computers and want to build a career creating web sites, mobile apps or desktop programs. But even if you don’t want to become a programmer for a living, it’s still worth your time to learn how to program. I mean this in all seriousness: if computers are at all a part of your life, then learning to program is going to improve your life.

And I don’t mean in that sort of nebulous, “improve your mind,” “expand your thinking skills” and “make you a better person” sort-of-way. Learning to program can make you more productive, efficient and effective.

Here’s a real-world example: one of my colleagues at Treehouse is a video professional who films and edits courses for our site. In the process of preparing a course, Wade needs to deal with many different files — video, audio, motion graphics, and more. Because he’s very organized, he creates a set of folders to organize these materials by type, lesson and course. This requires dozens of new folders for each project.

wade-blogimage

He used to create each of those folders manually for each project. Then he took our Python Basics course, and with a little additional research created a simple script that creates all of the folders for him. This program asks where to create the folders, the name of the course and the number of lessons in the course. It then creates dozens of folders, all properly named for a specific project. What used to be a tedious chore, is now a simple three step process that takes just seconds to complete. He’s not a programming professional, but he’s using programming to make his work easier.

Many of the programs people use everyday can be programmed in some way. Excel, for example, lets you create simple macros to aid in creating and working with spreadsheets. Many Adobe products like Photoshop, Illustrator and After Effects can be automated using JavaScript programming. The Macintosh operating system also lets you automate some of the features of the computer using AppleScript and — starting with the Yosemite operating system — JavaScript. There’s probably some application you use daily that, if you learned to program, could help you do your work better and faster.

I program all sorts of small utilities that help me get my work done each day. For example,  one weekly report at work provides various data about my courses — it’s an HTML table full of data. I wanted to see that data in a different way, so I wrote a small bookmarklet (JavaScript code that you can run on any page in a web browser) that reads the data from the table, displays a new column of stats and color codes the results. This helps me to better see how my course is doing.

Here’s another example — one particularly annoying form that I have to fill out dozens of times a month requires that I click several buttons, one after the other, in order to complete a task. Another teacher here at Treehouse, created a bookmarklet that clicks all of the buttons with one command — saving me a lot of mousing around and clicking. An easy program to write, but a big productivity boost for me.

I have dozens of these types of programs that I’ve written. Some take less than an hour to write, but will probably end up saving me dozens of hours of frustration. I even wrote a program to solve one of our video production problems: teachers often use teleprompters which display text on a mirrored surface in front of a camera.They help teachers remember their scripts and deliver their presentations without errors.

JS Teleprompt

Teleprompter software written in JavaScript, HTML, and CSS

The problem is that most teleprompter software isn’t very good, and it isn’t free. So, using HTML, CSS and JavaScript I created my own teleprompter in less than a day’s worth of programming. I found an itch, and used my programming skills to scratch it.

But more than just solving daily work problems, programming is fun. It’s problem solving at its best. And, though creating something like Facebook might require a lot of programming experience, these simple programs I’ve talked about here don’t. In fact, it’s really fun to come up with a program — no matter how simple — to solve an every day problem.

In other words: you don’t need to dedicate your career to programming to add programming to your career. Start learning a language like Python, JavaScript, Ruby or Java today and you could very well be making your life easier, while having fun doing it.

What small programs or coding projects have you created to make your life easier? We’d love to hear about them. Maybe we need to use it here at Treehouse

14 Responses to “The Real Reason Why Everyone Should Learn to Code”

  1. made my stupid blog more helpful by adding a checkbook log for my mom: http://whenyouknow.uno/sandbox/checkbook

  2. Often there are other programmers out there who have encountered the same types of problem that you have. With the proper understanding, you can easily adapt what they have already accomplished with their open source code to your current problem. The problem can be solved by assembling the proper pieces of code together, almost like assembling a puzzle is how I think of it. I am still very new to programming but already have several ideas about problems to solve using code!

  3. Great Article! I have recently built a simple IOS App for my math class. The app it self is very simple, but the it is a extreme time saver, It calculates the answers of quadratic equations and can also find ac and b when factorising. You can check it out on Github

    https://github.com/kirkbyo/OKMethods

  4. I totally agree, coding improves the way your brain works, for me coding helped me become a detail oriented person, helped think of the consequences before i think about the benefits, i just love coding 🙂

  5. As a full time web developer I have a small part inside that is screaming NO, not everyone should learn to code, but reading through this article (which is very well written) it has opened my eyes a little more.

    The main thing I took away from it is that whilst everyone may learn basic programming they are not going to all run with it and become programmers.

    There is so so so much more to programming than knowing how to read and write in a programming language. Learning programming is all about learning how to problem solve and then implementing that using a language suitable for the task at hand.

    By learning how to do basic programming people will be learning effective ways to solve problems that they come up against like the article says. This is why I fully believe that we should be teaching all children how to write computer programs and really wish that when I was in school I had gotten the exposure to programming that is available to children today.

  6. All of this is very true. Some years ago, I’ve adapted a personal policy to create little utilities for any computer action that I find myself doing more than two times (of course, this also has a downside — I have a bunch of programs that I’ve made that I can’t remember what they’re for or even how they’re used).

    I don’t have any recent personal examples, but we had a situation at work just last week. My colleague needed to produce a bunch of personalised websites, PDF documents and e-mail texts that all had to be linked together. Search and replace could’ve worked for ten of these, but we needed over 50 and that would get tedious quickly. Instead, I had him put all the data that needed to change into an Excel table. Thirty minutes of node.js magic later, I had a console utility which parsed the worksheet, generated all the websites and uploaded them to the server. It also created the e-mail texts and PDFs, all neat and tidy.

    After that, I spent another hour on that same program, and now we have a tool capable of generating any type of official documents, based on templates (HTML) and simple input documents (markdown, csv). By the end of the next week, it’ll probably end up linked to a database, so we can use it for billing, reports and everything else we need.

    Writing small programs can sometimes lead to much larger programs, but that’s not a bad thing. 🙂

  7. I’m kind of torn between how I feel about the whole “Everyone should code” philosophy. I think that everyone should dabble in just about anything that could be of interest to them, but I don’t think that it is as imperative that everyone learn to code as it is made out to be. Sure everyone uses computers, but we also all use cars/bikes/live in houses etc where components break. I’m a HUGE DIY person so obviously I am all for everyone learning how to be self sufficient but I think that this huge push for everyone to code is just posturing by politicians to make it sound like there is more of a problem than there really is.

    I think it is great though that so many people are starting to reach out to those less privileged to try and get them interested, and I think that matters more than “everyone” learning to code.

    • Dave McFarland on November 20, 2014 at 12:45 pm said:

      Hi Luke,

      Thanks for the comment. I didn’t mean to imply that everyone HAS to learn to code, or that if you don’t learn to code that you’re deficient in some way. I’m just saying that IF you use computers learning to code can help you out in lots of different ways that you might not have realized; and, that even if you don’t become the next greatest programmer, you can still learn enough code to make your life easier.

  8. Love your reasoning’s; however, if everyone knew code, I wouldn’t have a job nor any talent. Haha, though I really can’t stand WYSIWYG Editors, when people edit their site, the code becomes very crazy. Thanks for the recommendation, I do agree that knowing code would make everyone’s life way easier.

    • I think, learning to code is like learning writing or math. People cant actually make complex stuff or write the best novel, but they know how it works. Understanding a matter doesnt take ones job away, it makes it easier for developers to communicate with their customer!

Leave a Reply

Want to learn more about Javascript?

Learn how to use JavaScript to add interactivity to websites.

Learn more