I believe there are big benefits to knowing how to code (programing, software development). What is possible for your organization is often significantly impacted by understanding how to properly use software (and create it, coding, when needed). The lack of understanding of software is a significant problem not just for those wanting a job coding (that are available for those with the right skills) but also for those making decisions about what the organization should do.
The profound ignorance (meant not in a pejorative way but in the descriptive way) of software is a significant problem for managers today. The critical role of software in our organizations is only growing. And the importance of understanding software (which coding provides in a way no other learning does) is only increasing. My guess is a decade or two or three from now a understanding of coding will not be nearly as critical for managers. I am just guessing the nature of coding will be significantly changed and not understanding the details needed to code will not be as critical as it is today. Maybe I am wrong about the importance of understanding coding fading over time (it is more a feeling than a chain of logic I can clearly explain easily).
There are many indirect benefits of learning to code. In the same way that those with an education in engineering do very well in their careers overall, even if they take a path where they are no longer engineers a background in coding prepares you well for your career. Actually, similar to engineering, part of this effect may well be those that can graduate with an engineering degree and those that can be employed for several years as a software developer have skills and abilities that would have made them successful even if they didn’t pass through those experiences (still I think, those experiences to add to their success).
Good programmers have a strong tendency to think in ways that those interested in management improvement need (and, sadly, often lack): systems thinking, customer focus, efficiency focused [good coders often hate wasting their time and naturally despise non-value added steps], a willingness to speak up about things that need to be improved, a desire to make a difference, passion for what they do…
If you work along side good programmers these traits will be reinforced every day (this was my favorite part of my last job – working with great programmers that pursued these principles and re-enforced my doing so also). Yes there are also things you might have to temper in dealings with non-coders (being a bit kinder/less-direct about perceived failures, for example). Also some coders can be so engaged they expect an unsustainable commitment from peers (this is one of the great benefits of a good agile software development system – a focus on creating an environment for sustainable development [not expecting unreasonable effort/hours on the part of coders]).
For a few people coding may come fairly easily. For most though it is very challenging to learn to code. It also will require accepting that your peers are going to expect performance much more than almost any other group of peers will (outside of maybe professional sports and similar careers). If you are lucky you can learn a bit and then get a job where you can learn from some really good coders. And then have built a marketable and valuable skill. I would say it would take at least 2 year for many people. Yes a few superstars will get there amazingly quickly but for more 2 years is good estimate (and if anything a bit too optimistic) and it could easily be longer (4 years is not unreasonable at all).
You also have to understand that most good coders like coding a great deal. They will learn outside of their work for their entire career. It isn’t a career choice if you want to slide-by doing the least work. Also some people believe things are biased toward young coders. In my opinion, this is partially a systemic fault that isn’t really about youngness but instead is about salaries increasing based on experience more than value increases. This is a problem of expecting too much pay later in careers.
A few people do become extremely valuable with more and more experience. Many people I think do not, they reach a peak and expect their salary to keep going up after their value stops going up. They gain some advantages over time but also take on baggage that isn’t helpful (get stuck in old ways of thinking, are not as willing to learn new ideas, expect to have it easier because they put in their hard work earlier, have been so beaten down by phb’s they are cantankerous and difficult to manage…). But the end result of the current system is older coders do report trouble getting work and they believe it is because of their age not their ability, attitude or work ethic. This is just something to consider if you pursue a career focused on coding. You can aim to move out into software development program management or similar related jobs (or something completely different) if you are concerned.
Related: IT Talent Shortage, or Management Failure? – Why Johnny can’t program – Understanding How to Manage Geeks – Involve IT Staff in Business Process Improvement – Joy in Software Development – The Software Developer Labor Market – Hiring the Right People – Programmers at Work
Like many mainstream news media articles this article greatly over-simplifies the idea of learning to code. But the idea that learning to code is good for your career, I agree with.
One of the great banes of my online activity is running into content that is presented in a way that seems like a MBA that barely can use spreadsheets or post something on a facebook wall is making requirements for internet applications. They do silly things like fail to let you browse their web content if you use an iPad. Or they force you to change your password (for some feeling that is good for security though the studies show it is bad for security) but that isn’t the really bad part – then they limit the size of the password to 10 characters with only letters and numbers, idiotic. They fail to use human readable urls (though Google is about the worst company at this and form them it isn’t failing to have technical people, I can’t imagine what their excuse for such a widespread failing is). They want to treat the web as though it were a paper magazine with exact sizing of fonts and the fantasy that colors will render exactly as they see them (to some extent people have realized the web is not going to have paper layout – but still an enormous number of websites set specific font sizes and break usability for people that have set fonts to display larger for them). They fail to intelligently manage your user session so you have to renter information that they should be reused.
If we had technical competent people they would stop many of the extremely bad usability decisions that are made by people that don’t understand basic technology ideas. Now you will still have plenty of room for technically competent people to have disagreements about the best usability practices but at the least I can avoid lots of the technically ignorant decisions I have to deal with now.