Coding Is Over… Not even close
I just got through reading a wonderful article about why I should not have switched from nursing to “coding” https://medium.com/@loorinm/coding-is-over-6d653abe8da8#.sves4beqg. I would like to rebuttal.
First and foremost the article is very dangerous. The industry is hungry for young eager learner and seasoned vets and cannot seem to get enough of either (fyi I am like slightly to the left of that).
To clear things up coder, developer and software engineers are no where near the same thing nor do those titles cover all the ones out there. Yes, companies do a very bad job distinguishing these most will slap Software Engineer on anyone’s cube and call it a day. I would agree with the author there. It is deflating the meaning of the specialty. The same thing happened to me and I actually had a conversation with my manager asking to be called a Junior Developer but they said “It would be too much work to create that position”.
Enjoy the rest.
Being an engineer is about solving new problems, and about deep thinking. It’s intellectual work.
Ask almost any engineer and that not the case. They too are resolving the same old problems over an over. But each time they, like we, find something new, something novel or something out of place and fix it. It is constant iteration that makes things better. We did not just stop when we made it to the moon did we? Are somethings easier now? Yeah sure. Is laying out a responsive grid system as easy as pouring a bowl of cereal? Yup (thank Foundation and Boostrap). Are their bugs in those frameworks? Yup 330 in Foundation and 408 in Bootstrap as of this moment. Who is going to fix those?
Intellectual work is for academics building a site or an app or the infrastructure that is an engineer.
Thousands of CRUD apps have already been built. We’ve already solved that problem. But for some reason, we’re still building more of the same apps, mostly from scratch.
There are probably millions and will be more. Facebook is CRUD. So is Medium and your online banking and Wikipedia. Every site you visit is probably some kind of CRUD machine. It is an umbrella term. The data is different in size, format and need for all of them. The problem is not solved for everyone. You cannot go to www.thecrudineed.com (don’t steal that internet I want it now) and have your site there.
Also, I think you would be hard pressed too to find some going at it from scratch except some noob coder. Everyone has their stack for their language. Java is JAX-RS and Hibernate and PHP is liking Slim and Doctrine right now. But yes fortunately there is some engineer out there that is not satisfied with the current options and will make something new, hopefully better and probably happily used.
…We don’t tell each worker in a car factory to design a new car from scratch
Nor do we well developing. Every language is a bit different and each has their own best practices for the task at hand. There is also a pretty decent book, Design Patterns: Elements of Reusable Object-Oriented Software, about what to use for what situations. Not to mention if you know what you want you can use sites like WordPress or Drupal if you fall in that use case. The level of coding is up to you.
It is a proven fact (probably) that the more “original” your UI design, the less people will understand how to use it.
Sure get a new phone recently? Try a Mac from PC or vice versa? Facebook catches fire every time they change that precious news feed or messenger or whatever. However, people adapt and learn to navigate. Through the constant UI changes and a lot of trial and error (err AB testing) the industry as a whole comes to consensus (where is the hamburger menu). Trying new things is never bad; not learning is.
Coding allows for typos. More than that, it allows for infinite “creativity”
So does typing a blog or creating a YouTube video. You are usually not creative with the code but with what you are making. When you need to get creative with the code you either have not done enough Google-fu or are onto something new and fun. Then again when has being creative ever been a negative?
We’re already there
Summing this section up the author give two services that will basically do all you need. I am truly at a lack for words in this section. There are infinite problems to solve and two services are not even close to hitting them. One of the solution was to use Machine Learning (ML) to manage all of our data. An industry that is still only in an early infancy. Giants of tech like Google, Apple and Twitter are throwing piles of cash at it in the hopes we can make it work better yet it will just do it all for us? The cash strapped startup and mid-sized company can just do the same right?
Product Managers should be able to just make the app do what it’s supposed to do, without knowing how to code at all. The only thing a company should be creating are the things that make their product unique. Everything else has already been built in other apps and should be re-used.
Ever work in a business setting? If so then you should know what getting a business to settle on specs is like. It never happens. If it was up to them it would need to ship now but still need the ability to read users’ minds and transmit in future-time. I once had an argument with a clinical user about dividing by 0 where they asked me “why can’t you make it work”. That is real life. So for this poor Product Manager trying to pump all that into a WordPress site… good luck I don’t care what fancy ML powered database you have.
For all the fervor and allegiance around open source, most of the projects suck, aren’t maintained, and aren’t used at the enterprise level.
Ever hear of Java or Apache? I know all these web developer out there love them their JS right now but really you want enterprise pick up Java and visit Apache Foundation. Also, yes in the design meetings you have and when doing all the System Architectures you do this better be part of it. But really anything can live or die. It happens people love to get to the next hotness (react or angular) but you have to fight the urge to be bleeding edge at an enterprise level.
Companies have an economic interest in lowering the barrier to entry for software engineering jobs
Sure as hell do. Good companies even get people young mentor them and really strive to make an investment. That does not mean get rid of them though. You need good engineers that ask the hard question and can give quality answers. You need amazing business people too that know how to question them. FYI management cost a hella lot more.
Coding is alive an thriving. We have a lot of problems to solve and more data then we know what to do with. We need great Engineers, Architects, DBAs and Designers to forge our digital world (dev-ops, full stack engineers and whatever else). There are great services out there to do a lot for you but those systems are maintained by people. People that can code and adapt and flow with the market. People that love to be creative and find new solutions for novel problems. Problems like Machine Learning which has huge implication and if the genius’ working on it can make it a consumer product the limitations we have in this day and age will be belittled to extents no one would imagine. Coding is not over because people always want more.