What Will We Be Coding Tomorrow?
A New Year Means New Programmers
Resolution #1 = Get in shape
Resolution #2 = Learn to code
Resolution #3 = Hack Resolution #1
This year, many people will decide that it’s time to take the plunge: they are going to learn how to code.
These folks figure that is the decision that will put them squarely on the path to becoming one of the rich and famous computer programmers they’ve read about, one of an elusive and oft-desired-but-rarely-seen-and-poorly-understood group. While the reality of a coder’s life may be different than what many of these people are expecting, all of these budding developers need to start somewhere. They might begin learning the craft on their own by building a “Hello World” program following a quick online tutorial, or they might sign up for a bootcamp or a class at school. Either way, they will be following a long tradition of people using trial and error to build new, increasingly complex software and machines to solve problems or automate tasks previously performed by people or simpler machines.
100 Years of Silicon
To see how far the code-slingers of the world have come, let’s take a quick trip down memory lane:
- 100 years ago programmers were using mathematics and logic to create some of the first electronic devices.
- 75 years ago programmers were figuring out how to decrypt the Nazi’s Enigma code.
- 50 years ago programmers were finding new ways to store information digitally for companies that could afford computers and creating the first computer networks for the US military and educational institutions.
- 30 years ago programmers were developing virtual memory, kernels, and new protocols like HTTP.
- 10 years ago programmers were building the first social media websites and fine tuning search engines to bring more organization to the Internet.
One thing is for certain: programmers do not slow down after solving problems, they move on to the next ones. This is where the tech industry’s mantra of disruption comes from, and it’s been happening for a while. As each disruption occurs, such as a major technology invention or the release of a powerful new tool, device, or platform, it affects how developers work, adding new options to their toolkit and helping others find innovative ways to use the new (and old) machines to their greatest benefit.
Today, someone learning how to code might be planning to program robots, build mobile apps, or use APIs to tap into a wealth of existing data. In truth, what it truly means to be a developer (see coder, hacker, programmer, engineer, designer, architect) is changing, never more so than today. So even while people learn what it means to be one, the tools available and the tradecraft of being a developer are evolving. This constant state of change and uncertainty of what’s next is intimidating and challenging, but that’s also what makes the work so valuable.
Sometimes Programmers Get A Taste Of Their Own Medicine
Automation [aw-tuh-mey-shuh n] n. the technique, method, or system of operating or controlling a process by highly automatic means, as by electronic devices, reducing human intervention…
The use of automation in software development is an ongoing hot button topic, as well as a big area of innovation and development today. Some startups like Docker, Chef, and Ansible have brought automation to the data center with huge and overall positive impacts on business, and have been well-received by the developer community. But in truth, sometimes the things that get automated were previously done by developers themselves. As a result, it’s natural for some people to wonder if programmers have engineered their own replacements.
You can almost taste the schadenfreude in the snarky forecasts that developers are going to lose their jobs. These predictions don’t last long though. Successful programmers are diligent, creative, and work with machines to find new solutions to new problems. In Code Machines, designer Ruben Bos lays out several ways in which automation in software engineering will once again change what programmers do. We agree wholeheartedly with his analysis.
There are now services that can generate code automatically for certain projects. Services like Webflow have automated much of the web design process so that many web developers or non-developers no longer have to write their own code for websites. Our own platform, Dropsource, has automated the creation of editable source code for native mobile apps. Both of these powerful platforms were made by teams of programmers doing exactly what Bos suggested: first we “built the code machine” and now we’re “working with the code machine.” We agree that this is the best way for developers to move forward. Automated programming tools will be the latest, and very powerful, additions to the programmer’s toolkit, and all are better served if these tools are embraced, instead of ignored or dismissed.
What Are Programmers Going To Build Next?
As the tedious parts of what programmers do become automated, more room can be made to focus their engineering skills, diligence, and creativity on finding innovative solutions to use in new settings that were previously overlooked. Programming is innovating many aspects of modern society, changing how we catch criminals, how we get treated by doctors, and how we interact with our refrigerators — lots of us are working to change this last behavior with a new year ahead of us (see: past New Year’s resolutions).
Here are some of the most recent innovations in computer science (far, far from comprehensive) that are opening new fields for programmers and that will drive people in the future to learn how to code for themselves:
- Internet of Things — It’s here. On our wrists, on our walls, in our kitchen appliances, the Internet is expanding everywhere. It takes a lot of programming to make that happen.
- Crime Detection — MIT researchers developed an algorithm that can detect tax fraud by examining financial transactions among businesses. Algorithms are being created to detect money laundering, track drug and human trafficking, stop terrorism, and prevent securities fraud.
- Medical Diagnostics — New algorithms and apps are being developed to scan medical records and discover new correlations between symptoms, and to report these to doctors in the field. This could not only lead to the discovery of new diseases so researchers can begin looking for treatments, but also help a doctor better treat their current patients.
- Brain-Computer Interfaces — Researchers have made new progress developing technologies that will allow people to use their thoughts to communicate directly with their computers.
Developers Keep The World Moving Forward
We don’t know exactly what the future holds, but where there are problems to be solved, there are developers working on and working with the latest machines and technologies to solve them. The code may be a stack of punch cards, a short script, or a packaged application, but a programmer is directing the problem solving and architecting the solutions of tomorrow.
Not one to shy away from taking our own medicine, we’ve enjoyed using automated tools ourselves internally, like Webflow, for building our web presence. We found that it did make the process of building responsive websites easier, faster, and more enjoyable. In the same way, we think app developers will love adding Dropsource to their toolkit, as we have, and we’re excited to see how it continues to evolve. You can use these code machines to do whatever you can imagine; to build the next, great digital products of tomorrow. You can build apps and tools for use when starting a business, curing a disease, flying a drone, or finding more ways to get free Chipotle (build this and send us a link, please.) The possibilities are endless with the art of programming, and we’re all very excited to get building with you.
☞ Please tap or click “♥︎” to help to promote this piece to others.
Check out Dropsource for your next app development project. Our platform helps dev teams efficiently build & ship quality native apps by converting your team’s app designs into concise, extendable native source code.