Programming is not the same as it was ten years ago, says Edd Dumbill of OReilly.com. He has laid out some changes that new programmers need to be aware of in order to take advantage of the constantly-evolving development job market.
First, he notes that coding no longer happens just with a PC and an Internet connection. It’s bigger than that. Web applications, mobile and big data have changed the way we code. There are pressures, such as locking, asynchroncity, network communication, protocols, and concurrency that must be dealt with.
Cloud computing makes keeping more than one computer and network up and running simpler, and frameworks take away the necessity to rewrite patterns, and languages like Go or Scala make concurrency and network computing easier.
Additionally, devices abound today with processors and programming in them. It’s not just mobile phone apps, either. Developers will need to learn coding for cars, glasses, drones, and many other types of devices.
Dumbill notes that “[l]anguages and programmers must respond to issues previously the domain of specialists, such as low memory and CPU speeds, power consumption, radio communication, hard and soft real-time requirements.”
Furthermore, data is becoming king in the computing world. As a result, statistical languages like R or more general languages like Python or Clojure that make it simpler to access and move data around are becoming more popular.
There may also be a need in the future for sites that provide programmable environments to provide better frameworks for casual developers who aren’t interested in software development on a deeper level. These accidental developers often create tangles and issues that are hard to unravel as they try to solve problems through untraditional, pieced-together methods and tools.
Dumbill also points out that there are significant security risks with the way that software development is laid out today. He says that the brain can only hold so much information, and it’s hard to make a problem space small enough to fit inside our minds. When the problem space is too large to handle, he says we create frameworks that make it easy to work again.
So we have operating systems on top of CPUs, and user interfaces on top of that. Throw in application frameworks and web browsers, then JavaScript on top of all that, and it makes the creation of security holes a real concern. Future programmers will need to perhaps think of a new way to look at software and its development as a whole.