Hello World

 

A hundred years ago there were programs called ‘Girls Who Read’ and ‘Hour of Reading’ and today we recognize just how obviously important reading is. 

Computer science is the new literacy and its lessons can stretch far beyond actual programming. Those who learn to code learn to engineer in the abstract and these principles extend far beyond software. It can also influence how we build organizations and business models that ultimately shape society. Those who have learned these lessons will be the ones who are in a better position to be tomorrows leaders. 

It’s not a coincidence that 4/5 of the largest companies in the world were founded by programmers, as are many of the next generation billion dollar companies. Programming teaches you to engineer from the abstract and that can influence how you think about engineering companies and value creation. As more programmers start companies we’ve seen how they’ve taken principles from software engineering and have applied them to engineering startups, business models, and organizations.

Typically the first program you ever write is the ‘Hello World’ program. In its simplest form a ‘Hello World’ program simply types “Hello World” to your screen. Here’s a ‘Hello World’ program in for a HTML webpage:

<HTML>
<HEAD>
<TITLE>Hello World in HTML</TITLE>
</HEAD>
<BODY>
<CENTER><H1>Hello World!</H1></CENTER>
</BODY>
</HTML>

And here’s a ‘Hello World’ program for the Java programming language:

public class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}

Not all are this basic. Here’s one for the iPhone. As ‘Hello World’ programs are intended to be proof of concept programs, not all programs need to literally print ‘Hello World’: here’s one for Artificial Intelligence.

Despite their simplicity, ‘Hello World’ programs serve a few purposes: (1) They help you understand the structure and syntax of a language, stripped of extraneous complexity; (2) The program is so simple that it should work, which may not happen if there are other issues or assumptions that you haven’t accounted for; (3) The program is a proof of concept which gives you a basic running framework to build more complex programs.

The main idea of a ‘Hello World’ program is to start by solving a simple toy problem. If you can solve the simple problem, then this serves as the foundation to solve a harder problem and you build your programs up from there. As a first time programmer, you quickly discover that even toy problems can get complicated because it’s difficult to understand and appreciate all the challenges you’re going to face until you start to sink your teeth into the problem.

Silicon Valley wisdom like ‘Do things that don’t scale’, ‘Move fast and break things’ and ‘Minimally Viable Products’ all come from a programming culture of learn as you go. And you don’t have to be a programmer to use these principles. In the late 1970’s Deng Xiaoping communicated his reforms for China by saying that they’ll “cross the river by touching stones.” While China rapid development has it’s faults, this guiding principle lifted drove the fastest period of economic growth in the history of human kind.

Many programmers carry this ‘Hello World’ wisdom when they build and organize their companies. They start with a simple problem first knowing that they’ll learn from this experience and if they nail it, then they can use this to scale up to solve a more complex problem. This is fundamentally different than how big corporations typically attack a problem. This is why startups can run lean and fast. They favor function over form and backfill when necessary.

An important part of ‘Hello World’ is that it gives you a sanity check on your assumptions and lets you better understand the problem domain. A common pitfall of of programmers is to over engineer a solution, only to find that you were solving the wrong problem and none of the code you wrote will be used.

Writing code to solve a simple problem and then rewriting it later once you better understand the problem domain can be much more efficient than a top down approach that assumes complete understanding of the problem domain in the beginning.

This is why Girls Who Code and Hour of Code are so important. Learning to code can give you an important asset and it shouldn’t just be in the hands of a few. It’s the same with programming.

Orange Elephant is a pioneer in teaching coding for children. We are leading Hour of Code in Los Angeles. Please reach out to us at www.orangeelephant.org to find out how you can participate. Our mission - Teaching Coding. Once Child at a time. Check out our upcoming winter camps.

Kartik Sundram