Sameer Siruguri

My Blog

Learning Programming From the Ground Up

How do you learn programming, if you don’t know anything about programming at all? I’ve been very curious about this problem, especially in recent months, as I hear stories of  the digital divide, and the growing gap between STEM graduates and jobs in the US. There is also the question of digital equity – if someone has already gone past school and college without exposure to the basics of programming, what are their options for catching up?

I spent about six years and change studying for two degrees in Computer Science. I learned how to program before I joined college. But a lot has changed since I went to college, and while it might have been expensive and difficult to introduce oneself to these concepts back then, today there are a host of services and tools that make it much easier and faster to come up to speed on how programming works.

This blog post is the first in a series that focus on these services and tools, to teach someone who isn’t a programmer, to learn how to teach themselves the skills. These posts will assume not that you are a programmer, but that you’re willing to follow the exercises, search for answers on the Internet, and be creative in attempting to find the answers.

Even if you haven’t done what you might think of as programming, you probably have had some exposure to computers. In a sense, all interaction with computers is “programming” – you are telling the computer, or a specific program on the computer what to do, and the computer responds per a set of instructions. All programming is the process of writing a set of instructions that take inputs and use them to decide on what output to produce.

Most of the applications we use on a computer – browsing, playing games, even sending emails – hide a very complex set of instructions behind very simple interfaces. It’s hard to see oneself as “programming” in these interfaces, because these interfaces don’t let you change the ways in which the inputs are manipulated. There’s only one way to send an email – click the “Send” button, usually – and you can’t create a button of your own that says “Send tomorrow.”

There is, however, one application that’s fairly common, and that does let you experiment with changing its behavior – spreadsheets. You could use Microsoft Excel or Google Spreadsheets – the former has richer functionality, but for the purposes of learning how to program, the latter is a fine place to start.

Spreadsheets allow you to write instructions on how to manipulate the data in the spreadsheet. These instructions are essentially “programs” or “code,” and they help you learn many of the concepts you are going to use when programming much more complex applications.

There are two key programming concepts that a spreadsheet helps you understand:

  1. Taking data inputs, by using variables
  2. Displaying outputs by calling a function

Let’s perform a simple computation – addition: Suppose we start with a spreadsheet with two values:
[simple_table]

7 15

[/simple_table]

To add these two numbers, let’s write the following into a third cell: =sum(A1, B1)

Your spreadsheet will now look like this (assuming that you wrote the above formula into the third column of the first row:

[simple_table]

7 15 22

[/simple_table]

The simple formula is our first program, and it helps illustrate some ideas that you will use in pretty much every program you use:

  1. Functions
  2. Inputs
  3. Syntax
  4. Outputs, or return values

Let’s look at these one by one, starting with functions in our next post.

Single Post Navigation

One thought on “Learning Programming From the Ground Up

  1. Hi Sameer,

    I noticed you are a Ruby on Rails developer. I am the co-founder of HackHands.com, a marketplace for on demand programmer experts. I wanted to explain five reasons why HackHands is a great platform for you and suggest you apply to become an expert.

    1. No back and forth requirements or high maintenance clients
    2. Get paid to teach others how to solve their code issues
    3. Set your own rate and get paid per minute
    4. Work at your own convenience and get notified when there is an open issue to solve
    5. Build your reputation as a programming expert and get featured as a leading expert

    I am looking for Ruby on Rails Ambassadors. As an Ambassador, you will earn 100% of each transaction (we will not take the normal 20% fee) and you will be featured as a RoR expert showcasing how much you have helped others code.

    Please let me know if you have any questions. I am available to demonstrate the product if you would like additional information about HackHands.com.

    In the meantime feel free to use our free code collaboration tool at HackHands.io. Just create a room, enable the video/audio popup and share the link to collaborate with a partner remotely (Chrome/Firefox browsers supported only for now). Enjoy and talk to you soon.

    Thank you for your interest and looking forward to having you as part of the HackHands expert network.

    Best,

    Forest Good
    Co-founder of HackHands.com

Leave a Reply

Your email address will not be published. Required fields are marked *