I first began "programming" in 2002 during my senior year in High School. I chose Python as the language of choice, mainly because it was the easiest to set up on my 128MB of RAM desktop PC. A few installs later and I was up and running. The command line was where programming happened pretty much. You could do all of your coding in a fancy editor like VIM or simply jump on notepad to do your work or just type on the command line like I did.
While there were a few IDE's out during that time, they did little in terms of really helping you code. Intellisense wasn't invented yet and source control was mainly for corporate use as it wasn't free at this time. Jump forward to today, where IDE's can color code and autocomplete hundreds of languages in the blink of an eye, thanks in part to better hardware and to the increased demand for better coding methodologies. But a big part of that does have to do with the hardware and increased performance. I have seen a vast difference in speed in autocomplete features in IDE's during the past decade.
Alot more has changed during the past 15 years however. I've been lucky to witness it, and not so lucky in some regards as coding wasn't the colorful IDE and fancy landing pages that we see today. It was a cold and rustic place where errors were unknown you couldn't just Google things.
And much of the growth has been largely in part due to the improvements in hardware manufacturing. Companies, such as ProEx, have taken manufacturing that was once expensive and restrictive to the public sector and have made it much more attainable for smaller to mid-level companies.
It has gotten harder
Similar to how cars are now vastly more complex than they were decades to, so to has programming become more challenging in many ways. And that's mainly because there's just too many ways to go about doing it. While we once had 2 or 3 max programming languages that were dominant in the corporate and the academic world, we now have dozens and dozens to choose from. And they're all pretty good actually. I can't sell you one over the other. Most of them get the job done relatively well once you figure them out.
And this is why it's difficult. Because our minds like novelty and we want to try each and every flavor. So we mix a little bit of this, and a little bit of that and we end up with new frameworks. Frameworks that can talk to other frameworks, and are cross-platform compatible. We've created package managers in order to ensure our libraries are up to date and functional. Except now we have to learn how to manage these package managers and how to deal with their intricacies.
And the hardware has vastly grown in terms of performance, which means we can do more complex things. We now have cloud computing for example. Brand new concepts nested on top of older programming methodologies. Not only do we have to learn the language, but we also have to learn how to work with and integrate into the cloud. This requires learning new libraries and new configurations and in general just learning more and more.
With the latest frameworks and innovations in machine learning and quantum computing we are definitely headed to wards a more challenging time and we will need to step our game up in order to survive.
It's also gotten easier in some respects
I can encounter the most hidden errors in almost any programming language these days and know that someone has figured it out and has written a well thought out answer for me to view online, along with arguments and counter-arguments. When I first started out professionally programming, before the advent of StackOverflow, solutions to problems were found in online forums. For those not familiar with forums, they were kind of like StackOverflow, except less organized and full of bright and flashing profile pictures and signatures. SEO wasn't yet a thing, so finding gems of information took some due diligence.
And answers to complex questions were not yet created. This made college much more challenging because no real answers to most questions existed yet. Which is both a fantastic opportunity to really challenge yourself, but also a stressful endevour. This is probably why the number of students enrolled in engineering wasn't overly too high back then, at least compared to what it is now. In fact, the engineering department might have been one of the least popular in the entire college.
The entry way into coding these days is pretty minimal. There's more than enough free and paid content online these days that most people can learn a fair bit about coding on their own. And for those with the finance and the time, they can still go the traditional college route in order to get a different level of understanding, which is important for certain technical fields.
The internet was an ugly place
At least relatively speaking as there was nothing else like it to compare it too. But needless to say, things were tiny, blocky and photography hadn't caught up with the world yet, so most photos were pretty low resolution. This did just one thing. It shifted the attention away from the looks of things and more towards the business logic. Which thinking back on it now, is probably what gave rise to most of the large corporations that we have today that we can't live without. Take a look at Amazon for example in 2004.
There are very few images and the eyes don't know where to look exactly. Which made sense, because there is probably no way that Amazon could have handled the volume that it handles now with the limited technology that they produced back then.
HTML and CSS development was also very limited in terms of just what you could do. A blue box here a red box there. We take rounded corners for granted these days and use them to build fancy little effects, but back in the day we didn't have rounded anything. We had to make 4 images that looked like corners and position them accordingly in a rectangle in order to look like rounded corners. And we loved it. Compare that to today's newest standards and hardware that can render a million particles in real time right from your browser, and you can really get a feel for what I mean.
The internet is a virtual canvas of expression these days. You can draw whatever it is that you wish. You can take the most spectacular photos in super high resolution on your smartphone, and then have a device that can display that resolution without any issue. It's a far place from where we once were, and definitely not something that I myself would have predicted we would be focusing on in 2018.
It's become more important
And the biggest change that has occurred in the past 15 years, is just how important programming is to our current daily standard of living right now. What was once taught in college, that we thought would be incredibly important today, is no longer so. Things like shortest path algorithms and mathematical functions that would help us with electrical grids and sewer lines (or so we thought) have taken a backseat to things like responsive design and marketing campaigns.
It has moved away from a strong utilitarian use, to more social-economic and communication based use. The biggest companies in the world right now are essentially building human relationships. We can talk to friends, relatives and strangers with a tap of a button. We can document our lives on a digital canvas and share it with the world. We can write blog posts and teach people important things that we have learned on our journeys. And more importantly, we've build our entire economy around this. While once tangible items had value to them, we now have a society where virtual goods and ideas contain much more value.
People purchase e-books and online courses. They shop online, and through a vast network of warehouses and delivery personnel, of which we have little knowledge, we get our items within 24 hrs. And there is no sign of it slowing down or of stopping. And I for one couldn't be more excited to see where this whole thing is going and I hope more and more people learn to become a part of this new paradigm.
Walter Guevara is a software engineer, startup founder and currently teaches programming for a coding bootcamp. He is currently building things that don't yet exist.