My mom used to be a banker. Once, while working at the bank, she discovered something fishy in the books and caught a thief who was cheating the system. On Friday nights, he would deposit the same check at three different banks. The banks were too slow to actually transfer the money, but all three pretended they had it over the weekend and gave him interest for it. Monday morning he would withdraw the checks (a few percent richer) before the banks knew what happened. My mom figured out what he was doing and tracked down all his fraudulent checks to turn him in to the bank officials.
While my mom did catch the thief in the end, if the banks had tried to transfer the money, they would have caught him immediately. But he knew the banks couldn’t keep up on Friday nights. At some point, employees have to go home even if all the work isn’t done.
Luckily for the banks, a solution was coming on the market around the same time. Computers. Unlike most employees on Friday nights, computers are both fast and accurate. They also don’t eat or sleep or take breaks, making them perfect for staying ahead of the thieves.
When my mom’s bank decided to purchase their first computer, they chose her to help the programmer create the software. Her task was to explain her work to the programmer; the programmer’s task was to translate that into instructions for the computer. She didn’t know anything about computers; he didn’t know anything about banking; and, together, they wrote software.
The programmer’s task was hard. There weren’t many rules at that time, either for computers or for programming. The engineers who designed the computers and the programmers writing software for them were just starting to learn the best ways to work together. There were very few standards, so software written for one computer was unlikely to work on another. The programmer had to start from scratch with every project.
Fast-forward a few decades to the present: I currently have the same job as that programmer who worked with my mom. I don’t work at a bank, but it’s a similar business. I don’t work with my mom (unfortunately), but I do work with a business expert. She doesn’t know anything about computers; I don’t know anything about the business; and, together, we write software.
The process hasn’t changed much, but computers have. Computers were just starting to gain a foothold in industry when my mom worked with that programmer, but now they are critical to most businesses. Computers have moved into our offices, schools, homes, and even pockets. They are now part of our daily lives.
Programming has also changed. Programmers and computer engineers recognized the problems they were facing and devoted time and energy to solve them. Standards were created so that we don’t have to think about the details of the computers running our code. Online forums were designed so that we can share and lookup solutions to common problems. Templates were developed so that we only have to fill in the details of our projects without thinking about all the basic pieces required for a program.
Programmers continue to make computers smarter and easier to use every day. But to truly take advantage of all that work, we have to take a big leap. We have to remove the programmer from the equation by giving everyone else the tools to work with the computer directly. Instead of having a programmer act as translator between the user and the computer, we need to encourage users to try it for themselves. We’ve come a long way from where we started, and we’re as ready as we will ever be for everyone to start trying it out.
This is my contribution to the effort. I want to give you two things: first, an introduction to computer science and programming; second, a guide to where you could go next. The basic knowledge you need to start programming is small, but it’s all you need. You can quit after that and go pursue other interests with at least some basic programming skills. Or you could continue on a little bit more if you expect to be programming regularly. If you find that you really enjoy this material, you can also continue on to more advanced topics.
No matter how long you stick around though, when you leave make sure to keep an eye out for places to use what you know. For one, you’ll be surprised by what you can do. But also, programmers would love to help if they knew you needed it. Members of the community regularly ask around to see what people are working on and if they can lend a hand. So don’t be shy, we’re always open to new ideas.