Oddly enough, I find programming to move at a glacial pace. 10 years ago I thought it was a fast moving field, but I keep seeing the same ideas remixed over and over. If anything I think programmers should think like musicians at the beginning it seems like things are constantly changing. But, that's all superficial changes in style over time, after a while you focus on the ideas and it takes less time to keep up with trends because you have seen those ideas before.
PS: That and Google let's you leverage a lot of deep knowledge once you understand how to ask.
I think this author has confused "writing code" with "computer science". Ultimately, what I love about computer SCIENCE, is that it is just that, a science, a subset of maths. And maths are awesome. I would suggest he go back and read about Godel, Wittgenstein, Hilbert, Turing, and their compatriots, all of whose work influences computer science today. These giants were not "geeks" or "code monkeys". They were scientists. If one keeps in mind the august underpinnings of the field, one can remain inspired, even though surely the author is correct in that working for non-technical managers sucks. But if that is the case, then time to move to another job, or go into teaching, but do not abandon the field just because of one sucky work experience.
Also, I did not like the nativist, xenophobic remarks in the article. Literally half or more of the folks I work with on a daily basis are from India or various parts of Asia and they are all brilliant, hard-working, gracious people whom I consider it an honor and a priviledge to work for, and I am speaking as a white American. Nativism has no place in any serious discussion.
(1) Things have gotten much worse for law schoool graduates in the last 5 years, and
(2) I actually ~do~ like the intellectual property lawyers I know. As a class, they tend to be bright people who understand the intersection of technology and business in a broad way. I just wouldn't want to be getting a lawsuit from one of them. ;-)
Some programmers want to learn a language or technology and continuously repeat the same basic project over and over again. I have been at it for more than a decade and am not using the same skill set that I started with - although some (*nix and SQL) have been in heavy use for quite awhile.
I know programmers that started "back in the day" and tell horror stories of stacks of punch cards being knocked to the floor. They are now coding in a modern language or helping to port legacy applications. In programming - and many other professions, you need to stay current and adapt.
Not to mention, you generally learn a lesson or two by simply dealing with people, working through large scale projects, and seeing technologies come and go. Some employers value this. Others opt for the cheapest salary available - and have results that prove that this is their approach.
This guy should learn to program in C, and then find a job where software is a profit center and not a cost center, and his whole perspective will change.
My first two jobs out of college were in engineering, and I made the switch to software and have never looked back. Much better working conditions with much better pay.
I do spend a lot of time learning new technologies, but the time spent learning the old ones is not at all wasted, since the concepts are applicable and make learning the new stuff really easy.
This is so full of bullshit I don't even know where to begin. Has this person never worked an actual job that sucks? Dude needs to watch some episodes of Dirty Jobs.
His problem is he's comparing jobs in completely different categories
Law, Medicine, Business are high-status and high-competition jobs. Somewhere he got the delusion that computer programming is comparable in terms of social status and now he's sad that the rewards are inferior.
In the grand scheme, programming is pretty high status. There are many jobs that are lower status and only a handful that are higher status.
Basically, more students, more debt, less jobs. This is a couple of years old, but I don't think things have improved that much:
"In fact, “The Deep End” was conceived in 2007, that halcyon era of $160,000 starting salaries and full employment even for law grads who had scored in the 150s on their LSAT’s.
Those days are over. As the profession lurches through its worst slump in decades, with jobs and bonuses cut and internal pressures to perform rising, associates do not just feel as if they are diving into the deep end, but rather, drowning."
I don't necessarily agree with the author. I'm not sure about anyone else here, but after I learned a couple languages each additional language was "that" much easier to learn. While the syntax and general structure may vary from one to the next, the overall thought process is relatively the same.
In my opinion (and experience), a 60 year old with 30 years of programming experience across various languages would probably be a better programmer than a 27 year old of equal competence who only has, say, 5 years of professional experience.
Just because you're using a new language doesn't mean you can't draw from previous experiences. The same could be said for architects, animators or graphics designers. New software is constantly coming out but the style you've developed over the years is what can make or break you. Of course this isn't a perfect comparison to programming, but it's still a new set of tools to learn.
My advice to the author: Learn the fundamentals of computer science. Learn data structures and algorithms. Maybe he'll realize that there is a lot more to a career in computer programming than simply knowing the latest language hotness.
Instead of just claiming "these are all craps", why isn't someone addressing the things what he is actually said. Point by point. Here are the points he talked about.
Here are my first thoughts on these (and, admittedly, I skimmed through the post)
- This argument is only valid on a surface level. It is extremely valuable to have experience in any field not necessarily because the details of doing business don't change but because the overall conceptual challenges in doing the work require making mistakes and learning from this. This crops up in system architecture, class design, etc. on a day to day basis for programmers.
- Clearly the author has not paid attention to the startup community. There are plenty of small companies and a thriving community of other programmers. If this is a good argument, then the same could be said of nearly any other field but athlete and rockstar.
- Only time will tell if it is truly effective to outsource programming. I think things seem to be shifting away from this, especially in the wake of massive job losses in the U.S. (no company wants to be seen as the one outsourcing)
- Project management is difficult but this is less important as products become easier to build and platforms and languages evolve to make things easier on developers.
- The minute he mentioned his job in an IT department I just didn't bother reading further. The author has clearly never worked in a startup or even modern programming environment (many people I know who work in larger companies get great perks and work in good office environments). His argument that developers don't have the equipment to do their jobs has been totally disproven by every company I've ever talked to. They all are most interested in providing their employees the best tools possible.
It sounds to me like the author has had particularly poor experiences and doesn't have a good grasp on the industry as a whole. However, the opposite might be said about me. I may have had good experiences that were out of the norm. Either way, programming is clearly becoming an important part of our economy and I think that fact lends to the belief that the quality of a job in the field will improve.
I have to say that his argument that accounting is a better profession made me laugh out loud. 3 of my friends who are recent graduates entering the accounting field work extremely long hours and are unhappy with their work (two work for big firms). One of them is thinking of going back to school and getting a computer science degree.
1. The most important skills are system-level organization and data organization. For those who instead focus on tools and skills, there is always legacy software. People still make money programming COBOL.
2. The only part of this that might be true is that salaries seem to hit a ceiling, no matter how valuable a developer is. However, I've seen this circumvented time and again by rewarding equity instead and large bonuses. When I tell people I am a programmer I don't get scorn, I get awe as they know I make a good bit and they don't understand what I do.
It is true that in many business organizations IT is classified as a cost center, but that can be overcome either by playing politics or by working for a tech company. SalesForce is probably the best example of this.
3. Racist bullshit. Unemployment among computer programmers is ridiculously low and even those are driven up by all the terrible programmers no one wants to hire. It is almost impossible to hire experienced programmers because there are far fewer of them than their are programming jobs. This is what happens in a high-growth industry like ours, especially without a good educational pipeline. While it would be easier to hire if these companies got over this ridiculous aversion to spending more than $130k a year in salary, it remains that there is a huge shortage of coders. It is true that if you want a white-bread, old-school, Mad-Men-style profession this is not the one. On the other hand, if he thinks finance hasn't been internationalized he's full of it. We live in a global economy, and that is a good thing. Many of our tools are coming from around the world, and our tech companies make enormous amounts of money selling abroad. We are not the losers of the push towards automation and globalization.
4. The practical ceiling on salaries does tend to push good programmers towards management, both project and upper management. The best software companies I've worked for have all been run by ex-coders. There is lots of bad project management out there, much like there is a lot of bad code, but a good project manager makes a world of difference. Some of those people even use Microsoft Project ;-) Blaming the tool is as useful as blaming programming languages for people who write crappy code.
4. Do cubicles suck? Of course. But I believe they are mostly a problem of architecture, not industry. Used-to-be manufacturing spaces are cheap and easy to convert. Our companies don't have 30-year histories, much less 125-year-histories of the kinds of law firms he's talking about. And if he thinks being a developer sucks, he has clearly never practiced law. In both law and finance, offices are the purview of high-status manager-types who earned their way there through grueling hours of back-biting and office politics, destroying their bodies in the business: http://www.abajournal.com/news/article/investment_banker_stu... This, of course, after taking on significant student debt and managing to pass the bar (law) or get a highly-competitive entry-level job (finance). If, say, you happen to fail the bar, you get all the debt and none of the working conditions.
Also, he is massively generalizing. I have a 30" monitor at my job. Many companies instead provide two 27" monitors. Some companies are cheap, but it is not universal. I get free meals, gym memberships, classes, flex time, the ability to work from home, the ability to advance without working more than 40 hours a week, a good salary, equity, respect and I know that in the worse case where I was stuck at one of those crappy companies he describes I could successfully strike out on my own, consulting or founding my own company. I'm willing to accept cubes for those advantages.
Never have I seen people able to whine so much about getting paid three times the median wage as coders do. Wait, no, I take that back: both lawyers and investment bankers complain more than we do.
A friend passed me this article. Despite that it has some serious holes, it also has some serious truth to be reckoned with. Sure, if you learn the fundamentals you can keep your skills from going stale. But statistics indicate that it's probably more of a fantasy than true. I'm pretty young, and I can carry far more credibility with older colleagues than if I was in a different profession. I also can name numerous past colleagues that worked the programming field for decades and carry absolutely no credibility. Personal experience says that this link is not garbage.
PS: That and Google let's you leverage a lot of deep knowledge once you understand how to ask.