News for hackers. Stuff that matters.
Re:Programmer's Dilemma by VexXtreme on Friday August 16, 2013 @12:39AM (#6222199)
When people tell me that I should "do projects in my own free time to keep my skills sharp", it throws me into a fit of rage and makes me want to tear them a new one. Do you see any other professions having to do that in order to stay employable? Can you imagine lawyers having to practice law in their free time to "keep their skills sharp"? Can you imagine civil engineers having to draft plans for bridges and buildings in order not to "destroy their ability to make a living"? Or doctors or any other high prestige professions doing anything like that?

If the answer is no, then WHY THE FUCK should I have to spend my free time maintaining a bunch of projects on Github just so I could keep providing for myself? Is what I do in my day job not good enough anymore? Now I can't even apply for a new job listing "backbone.js" as a requirement unless I have it listed in my resume or have a Github project utilizing it? Whatever happened to the notion of smart people being able to pick up and learn new technologies on the job? You think it's okay to try to offload the risk and the time necessary to pick up a new technology to an employee and their free time, vs. providing the time and the resources for learning on the job?

Tell you what OP, you can take that attitude elsewhere, I'm not buying it. I prefer spending my free time having great interactions with my friends and my girlfriend, enjoying traveling and getting new experiences and just making the most of this one life that I have. Now, If you believe that my system of values is incompatible with yours/your company's, then I don't want to work for you because you're an arrogant exploitative asshole with no respect for other people and their time/life.

This is the way you should do hiring, if you happen to have any semblance of fairness and intelligence:

If a senior person with a somewhat outdated skill set applies for a job, then you're not supposed to test them on the latest technologies, you are supposed to take a look at their track record and try to figure whether they are generally a smart person and whether they were able to get things done back in the day. If someone was a good programmer 20 years ago, then they will be just as good now, if not better, because it's ultimately a person's intelligence and attitude that determines how good a performer they are, not a list of buzzwords on their resume. If you don't get this, then I'm sorry to say, you probably aren't very bright.

Caveat: if you are moving extremely fast for some reason or need something done IMMEDIATELY, then it makes sense to hire someone who already has the skill set you're looking for. If it's a long term assignment/project, what technology they know/don't know has no bearing on how good they will ultimately perform.

PS. You have inadvertently confirmed everything another blogger wrote in a post about why a career in programming ultimately has low prestige:

http://www.halfsigma.com/2007/03/why_a_career_in.html

Re:Programmer's Dilemma by Fomite on Friday August 16, 2013 @05:32AM (#6223002)
"Do you see any other professions having to do that in order to stay employable? Can you imagine lawyers having to practice law in their free time to "keep their skills sharp"?"

This is a profoundly ignorant question to ask:

- Lawyers do essentially have to practice law in their free time. Many, many state bars require continuing legal education in order to remain barred. Can you imagine having to pay money for classes or be legally prohibited from programming?

- This is also true for doctors and nurses. Continuing medical education is mandatory for both to be allowed to practice.

- Most professional academics spend a huge amount of their "free time" thinking about their field, reading journal articles to stay current, and taking classes to stay current on new statistical software, programming skills, etc.

Re:Programmer's Dilemma by TimSAstro on Friday August 16, 2013 @06:46AM (#6223205)
I don't quite buy your argument - yes these professions may work long days, but generally the upkeep of skills falls into those allotted working hours. Programmers should do this too, when it is helpful to their work. But suggesting that someone should add a whole new project to their resume on the weekend is akin to saying a lawyer should take on a pro-bono case just to buff their CV. If they want to do that, more power to them, but it shouldn't be expected of everyone.

As to academia... don't get me started. That is a strange and unusual profession which lies somewhere between 'hobby as job' and 'slave until you're tenured'.

Re:Programmer's Dilemma by jiggy2011 on Friday August 16, 2013 @08:51AM (#6223637)
I don't know, most professionals I know spend at least some of their "free" time (or at least the time they spend at home) reading journals or publications.

The idea of a profession is that one is not generally paid by the hour for "work" even if one bills a client by the hour so time spent on professional development whenever it takes place is part of work and covered by a salary rather than a wage.

Of course it might be true that other professions do less non-billable practical work though this is probably more due to the fact that programming doesn't require a significant budget.

The issue I think is one that many companies want programmers to work more like wage laborers and take care of the professional side for themselves.

For example a law firm is probably more likely to allocate budget for associates to use for professional development than an IT contracting company.

Re:Programmer's Dilemma by vonmoltke on Friday August 16, 2013 @09:08AM (#6223730)
CEUs required for licensure are not nearly the same as what the OP or GP are talking about. For Texas:

- Medical professionals require 48 hours of continuing education per two years, of which 24 may be informal self study or hospital lectures - Legal professionals require 15 hours of continuing education per year - Professional engineers require 17 hours of continuing education per year

CEUs are obtained either through classroom instruction or attendance at recognized conferences or seminars. This is not the same as doing your day job after hours for fun or because you feel you must in order to actually get a new job. It certainly does not keep your skills sharp.

Doctors, lawyers, and PEs also have professional societies and often employers to facilitate obtaining CEUs in the most efficient manner.

Re:Programmer's Dilemma by Fomite on Friday August 16, 2013 @12:07PM (#6224877)
Almost every doctor or lawyer I know would likely gladly trade CE for "programmer-style" self study - and CEUs can keep your skills sharp if you do them right.
Re:Programmer's Dilemma by vonmoltke on Friday August 16, 2013 @12:53PM (#6225186)
They can, and are supposed to, but they have morphed into a box-checking exercise used to keep politicians and professional guilds happy and management asses covered. Hence the reason most of these professionals see the requirement as a burden. I felt the same way back when I was actually working as an electrical engineer.

That said, self-study is a different animal from the side project nonsense that the thread root is referring to. I personally engage in a significant amount of self-study. Some of it a roll back into my day job, some I experiment with in my free time, the rest is purely academic knowledge acquisition. I don't have anything tangible to show off, though, because most everything I have done off hours is the software equivalent of a carver or welder practicing with scraps.

Maybe that isn't the right attitude for a programmer, but in that case a programmer is a different animal than any of the professions listed previously.

Re:Programmer's Dilemma by tocomment on Friday August 16, 2013 @09:20AM (#6223797)
I think plumbers would be a better example than lawyers. Do you expect them to unclog toilets in their free time?
Re:Programmer's Dilemma by meapix on Friday August 16, 2013 @01:39PM (#6225517)
toilets in europe are not the same as in north america. a north american plumber will say screw europe, I will never work there. What if you need to move to europe?
Re:Programmer's Dilemma by tocomment on Saturday August 17, 2013 @02:53PM (#6229927)
Exactly
Re:Programmer's Dilemma by zhemao on Friday August 16, 2013 @01:02AM (#6222254)
He was asking them to implement an LRU cache in C, hardly newfangled stuff. Plus they were kernel engineers, so it was supposedly their domain of expertise. I don't think he was suggesting that programmers have to keep always up to date with the latest trends. I think the main issue he was pointing out was programmers finding their skills being dulled because they were spending all their time maintaining old code instead of seeking new challenges. So it's like if a doctor was treating the same patient, and only that patient, for the same disease for years. But then again, you never know, they may not have been very good engineers to begin with. But also, people in high-prestige professions do pursue professional development every now and then by attending conferences and training courses. The only difference is that it's on company time and their companies pay them to do it.
Re:Programmer's Dilemma by gizmo686 on Friday August 16, 2013 @12:54AM (#6222231)
>Do you see any other professions having to do that in order to stay employable?

Yes. My dad is a critical care doctor. He regularly spends some of his free time reading medical journals, or studying for the re-certification exam.

Re:Programmer's Dilemma by hvidgaard on Friday August 16, 2013 @03:36AM (#6222665)
That is the difference between a good and a great professional, in any profession.
Re:Programmer's Dilemma by kamaal on Friday August 16, 2013 @03:59AM (#6222729)
Doctors have to do that as a routine. Because those are the only non biased sources of knowing about a new medicine, or a treatment procedure.

Not doing that may make them bad, but doing it will not necessarily make them good.

Re:Programmer's Dilemma by batguano on Friday August 16, 2013 @12:53AM (#6222227)
> Do you see any other professions having to do that in order to stay employable?

Yes, most professionals do. Licensed professionals--doctors, lawyers, veterinarians, civil engineers, teachers, etc.--are usually required to get a certain number of Continuing Education Units every year to retain their professional license. The specific requirements differ from state to state.

Re:Programmer's Dilemma by VexXtreme on Friday August 16, 2013 @01:02AM (#6222256)
Many professions enjoy employer paid continuing education. A totally different ballgame. Staying up every night committing to Github in hopes of landing a job is a terrible terrible thing. I know because I used to do it when I was young and stupid.

The only reason why I was able to land my first dev job fresh out of college is because I had an open source project that I built in my own free time. If it hadn't been for that, it's unlikely I would've got the job and that's why I loath the practice so much.

16+ years of formal education down the drain (or 30+ years of work, if you're older), unless you adhere to some arbitrary standards by IT blogosphere keyboard jockeys.

Re:Programmer's Dilemma by SomeCallMeTim on Friday August 16, 2013 @03:30AM (#6222646)
>Many professions enjoy employer paid continuing education.

Lawyers who work for a firm? Maybe. If they work for themselves, they're stuck paying the bills; continuing education is required in many fields, and yet it's not always reimbursed.

>Staying up every night committing to Github in hopes of landing a job is a terrible terrible thing.

That's never the "right" thing to do. The right thing to do is to commit to Github because you want to.

>16+ years of formal education down the drain (or 30+ years of work, if you're older), unless you adhere to some arbitrary standards by IT blogosphere keyboard jockeys.

OP wasn't talking about arbitrary keyword standards. You're tearing down a strawman of your own creation. OP was just talking about whether a developer actually could code, not filtering based on exact keywords.

To your comment: Some domains DO take way more work to learn than I would be happy hiring someone with no experience in them. I'm not talking about the fancy JavaScript framework du jour, or experience using a particular database, but actually different domains. Like kernel programming. I wouldn't touch a Java developer with 10 years of experience at enterprise Java for a project that involved kernel-level code. Or game programming. Or Android app programming, even; most Java developers would still take months to get up to speed on Android, if they ever managed adapt to the Android way of thinking at all.

Re:Programmer's Dilemma by nicolethenerd on Friday August 16, 2013 @11:11AM (#6224435)
Err, what? Months? It's just an API. I was once given two weeks to write a prototype of a small Android app, w/ no prior Android experience (years of Java, though) - granted, just being a prototype, it didn't need to be production-quality code (and I'm sure it wasn't), but I got the job done. I would feel perfectly comfortable putting an experienced Java dev w/ no Android experience in an Android role, provided they were working under the mentorship of an experienced Android dev.

ETA - I do agree w/ your main point, though - I wouldn't put a Java dev w/ no kernel experience on a kernel project either.

Re:Programmer's Dilemma by SomeCallMeTim on Sunday August 18, 2013 @08:49PM (#6234989)
A demo is very different that production code, especially on Android.

Android is NOT just an API. You need to really grok the Activity Lifecycle [1], or your app won't behave correctly. I don't mean just skim it; I mean really get that you need to save state at the right places, or you'll break the behaviors.

You need to understand how to support multiple devices correctly [2], including how to best design the app to scale to multiple screen sizes. Ideally you'll support both phone-sized and tablet-sized devices, and so you'll probably need to understand how the Fragments API works [3]

You need to understand Intents and how they function. [4] You need to know whether you'll need a Service [5].

This is just the stuff off the top of my head that you need a clear understanding of before you write the first line of code. Most of these things are not easy to just "use when you need them;" you need to know how they all interact before you start, or you'll be throwing out a lot of your code.

Android is a really alien API, even to people who've done GUI work before: I think it's very poorly designed from a "Principle of Least Astonishment" point of view. They created a lot of new concepts, and I don't really think all of them are superior to the standard way of doing things in a GUI. But they are what they are.

I've TRIED to work with an experienced Android developer who didn't know all of these in advance, and he tried to charge me for 30+ hours of work for something that should have taken 2-3 hours -- just because he'd lied about KNOWING how to use Fragments. I can't imagine a Java developer with no experience diving in and getting all this right the first time.

[1] http://developer.android.com/training/basics/activity-lifecy...

[2] http://developer.android.com/training/basics/supporting-devi...

[3] http://developer.android.com/training/basics/fragments/index...

[4] http://developer.android.com/training/basics/intents/index.h...

[5] http://developer.android.com/reference/android/app/Service.h...

Re:Programmer's Dilemma by VexXtreme on Saturday August 17, 2013 @12:25AM (#6228151)
> Or Android app programming, even; most Java developers would still take months to get up to speed on Android, if they ever managed adapt to the Android way of thinking at all.

So you doubt they would be able to adapt to an environment that uses the exact same language they've been using for 10 years, simply because they don't know the API? Do you think that someone who is smart enough to do Java development for 10 years isn't smart enough to pick up a new Java-based environment in days/weeks?

Your attitude reeks or arrogance, elitism and lack of empathy. I'd never want to work with people like you in any capacity.

Re:Programmer's Dilemma by SomeCallMeTim on Sunday August 18, 2013 @08:37PM (#6234956)
>So you doubt they would be able to adapt to an environment that uses the exact same language they've been using for 10 years, simply because they don't know the API?

Not exactly. Probably 95% of "Java Developers" have never touched a GUI, or an event based OS, or graphics code, or an end-user app, for that matter. They'd have plenty of ways to fail besides not knowing how to read a manual.

>Do you think that someone who is smart enough to do Java development for 10 years isn't smart enough to pick up a new Java-based environment in days/weeks?

Weeks, maybe. Days: It depends on what you mean. Start tweaking Java code in an existing app? Sure, why not. Architect a non-trivial app from scratch? Extremely unlikely. Again, talking statistically.

95% of Java developers are NOT as sophisticated as probably half of C++ developers. There's a higher minimum threshold of skill to work on the problems that C++ developers work on than the ones that MOST Java developers work on.

You can be a 100% competent Java developer, and yet not have the right skills to do most of what I do on a regular basis.

And this isn't about YOU; I'm only talking statistically. Most Java developers work on server code, enterprise code, private company apps, and other things in very different domains that thinks that I work on. These things are important, skilled work; and they're VERY DIFFERENT than Android development. Or game development. Or low-level C development.

>Your attitude reeks or arrogance, elitism and lack of empathy. I'd never want to work with people like you in any capacity.

I do believe I'm a better developer than most. I feel like that's based on objective facts, but it certainly can come across as arrogance or elitism. Truth is I'm happy to work with developers of any skill level, as long as they have the skills to do the tasks they're assigned to do. I spent years working as developer tech support for a popular API, and I helped hundreds of developers to use it correctly, and to find the bugs in their apps -- by the end I had a nontrivial fan club, and a lot of people contacted me later to see if they could work with me. But have it your way.

I don't know how you glean lack of empathy from my post. I empathize with people just fine; if I'm hiring someone, though, I have to make a business decision that makes sense, and I'd have to be stupid to hire someone who can't get the job done, as much as I'd love to give everyone work. Too often I've not been ruthless enough; someone with years of experience in Android AND Java and tons of great references must be good enough to get my project done, right? Wrong. See: Mythical Man Month, some programmers are 10-20x better than others.

If you tell me who you are, though, I'll be sure that we don't accidentally work with each other in any capacity. Though since your comment sparked this thread with hatred at people who hire based on (among other things) GitHub commits, I suspect that isn't a danger to begin with.

Re:Programmer's Dilemma by nemetroid on Friday August 16, 2013 @10:04AM (#6224019)
>That's never the "right" thing to do. The right thing to do is to commit to Github because you want to.

The article presents doing your own projects as a thing you should do.

>Or Android app programming, even; most Java developers would still take months to get up to speed on Android, if they ever managed adapt to the Android way of thinking at all.

Are you suggesting that it would take an experienced Java programmer several hundred working hours to get up to speed on Android? And that you expect new hires to have worked several hundred hours on Android in their free time instead?

Re:Programmer's Dilemma by SomeCallMeTim on Sunday August 18, 2013 @09:01PM (#6235020)
>The article presents doing your own projects as a thing you should do.

Well, if you don't want to, and you don't have real experience elsewhere in a domain close enough to what I need, then you won't likely be a developer that I work with, no.

>Are you suggesting that it would take an experienced Java programmer several hundred working hours to get up to speed on Android? And that you expect new hires to have worked several hundred hours on Android in their free time instead?

Most Android developers work solo, at least the ones I know. If you can find a team to work on somewhere -- some big company that has 4+ people working on an Android project, then maybe they can hire a Java developer and train them on Android. I have no desire to pay a developer for more than 20 hours to learn to do something that shouldn't take more than 4 if he already knew how Android worked (this happened to me, when someone lied and told me they DID know how the Fragments API worked, for instance -- after 20 hours he had a mess of garbage that I threw out).

But a solo Android developer probably needs at least two to three months of Android coding experience to really "get" the relatively more obscure parts of Android, yes. Can a Java dev write code on day one? Sure. Can a Java dev start writing production code from day one? Day 14? Not anything I'd want to use.

Major exception: Java is Java, and so having someone contribute to an existing, already working app, but staying in the "data mangling" domain, could be done from day one. I'm really talking about knowing how an app should be designed, not whether someone can write code to talk to a database on Android after 10 years of experience writing Java that talked with databases on servers.

Re:Programmer's Dilemma by Agathos on Friday August 16, 2013 @10:37AM (#6224230)
Doctors in the US get paid per procedure. I sincerely doubt there is an insurance billing code for time spent reading journal articles.
Re:Programmer's Dilemma by benjaminwootton on Friday August 16, 2013 @12:59AM (#6222246)
The world of software development moves faster than almost all other fields at the moment, particularly with regards to the tools that we use.

All other things being equal, the person with experience in the specific tools the organisation uses will get the job.

Its just an unfortunate consequence of the industry we are in.

You are of course free to not chase the bleeding edge tools in your spare time, and youll probably stay employed just fine. But there is a risk you can be left behind or miss opportunities.

The people who were hacking on early IOS, Rails, Scala etc are todays experts enjoying niche markets. The people who didnt are working on VB or PHP for a Sausage factory somewhere.

Re:Programmer's Dilemma by SomeCallMeTim on Friday August 16, 2013 @03:23AM (#6222616)
Side note: The people who chose to hack on the less-sexy Android OS are also extremely employable right now. I've had to turn down enough work this year that I could have employed three other Android programmers full-time, if I'd had them on call.

I learned Android on my own time, because I liked the idea of a Linux-based phone OS. Most of the jobs I've gotten have been EXACTLY because I've been playing with the right technology on my own time. OP is right on, and VexXtreme is making noises like a mediocre developer who has a chip on his shoulder.

Re:Programmer's Dilemma by greendata on Friday August 16, 2013 @04:06AM (#6222746)
Agreed. It can be very frustrating to see technology change so, so rapidly. What we worked hard to learn is worth a bit less each year.

But The fundamental data structures/algorithms don't change and the problem solving skills don't change. For example, get an Oculus Rift dev kit, fool around on that for a few months when the consumer version comes out you'll probably have more work than you can imagine. It's the same pattern.

Re:Programmer's Dilemma by zhemao on Friday August 16, 2013 @12:28PM (#6225001)
Yeah, that is rather annoying isn't it. It's like, do we really need yet another way to build a web application? Most of these frameworks don't seem to offer anything novel but rather re-implement the same MVC pattern over and over again. But I'm not a web programmer, so I wouldn't know.

On the other hand, Linux kernel programming, which is what the author mentions, hasn't changed that much over the years. What the author seems to bemoan is that the developers are letting those core skills slide because they become dependent on the tools they use in their day-to-day jobs. But actually, I'm not convinced that the mediocrity of the candidates was due to decaying skills. They may not have been particularly skilled to begin with. Experience doesn't necessarily correlate to competence, after all.

Re:Programmer's Dilemma by quinnchr on Friday August 16, 2013 @04:02AM (#6222738)
I don't think that's true at all. According to this paper: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2909426/ The number of new medicine journal publications significantly outpaces the number of new computers science journal articles per year.

Doctors are expected to keep up to date with the most recent research as part of their jobs, and they are payed to do so by going to conferences etc... I don't think the same can be said for software development.

Re:Programmer's Dilemma by wes-exp on Friday August 16, 2013 @09:38AM (#6223898)
Academic CS research has practically nothing to do with professional programming. Professional programmers constantly learn new tools and technologies... for the most part these aren't academically novel. (Much to the field's detriment)
Re:Programmer's Dilemma by IanCal on Friday August 16, 2013 @04:21AM (#6222781)
Does your employer not send you to conferences and training? Any hack-days, "20% time" or whatever percentage or encouraging people to set up lunch & learn equivalent meetings?
Re:Programmer's Dilemma by tel on Friday August 16, 2013 @09:54AM (#6223964)
That's because medicine is much more of a science than software. Software changes like fad diets, not like surgery.
Re:Programmer's Dilemma by parasight on Friday August 16, 2013 @12:45AM (#6222212)
> Do you see any other professions having to do that in order to stay employable? Can you imagine lawyers having to practice law in their free time to "keep their skills sharp"?

I see your point but I don't think it is specific only to IT. Lawyers for example (at least in Germany) have to read a lot to keep up. So much that most of them can't do that at work.

Re:Programmer's Dilemma by noloqy on Friday August 16, 2013 @12:57AM (#6222240)
This was a badly chosen example indeed: in many countries lawyers are obliged to continue studying and completing tests throughout the career. In fact, one of Holland's most prominent lawyers got suspended for not obtaining enough study points for an extended period of time.

Anyway, in a sense I agree with the author. To stay sharp programmers need to get out of their comfort zone. There's multiple ways to do that; side projects is one of them. If you don't get out of your comfort zone, you run the risk of becoming like a pilot who forgot how to land or take off, because you have only been flying mid air for so such a long period of time.

Re:Programmer's Dilemma by kabouseng on Friday August 16, 2013 @08:08AM (#6223462)
Its called Continuous Professional Development (http://en.wikipedia.org/wiki/Continuing_professional_develop...) and is indeed a requirement in a great many professions.
Re:Programmer's Dilemma by greendata on Friday August 16, 2013 @03:57AM (#6222721)
You certainly don't have to do this. But let's face it programmers have a higher wages, in part, b/c the technology is constantly changing and the supply of those who keep up is small. Since the structural barriers to most developers jobs are almost nothing (if you're good someone will give you a job and you can even work remotely for an NYC company from Bangladesh) the shifting sand of technology is what drives our wages up.

Now here's where you can win. The hiring manager or business owner wants to minimize risk. If you have 20 years experience working on mainframes in cobol, chances are you're going to be an a passable programmer with good fundamentals. Now say the hiring managers company is using rails or node.js. You know you can learn it quickly. But The manager might be nervous that you that you don't like to adjust and you won't be productive for 2-3 months while you learn. Maybe he/she thinks you're going to be complaining the whole time about how node.js sucks (while you forget how much cobol suck). You can alleviate this worry by having a few simply projects up in node.js or whatever the latest craze is + you have good fundamental experience.

So enjoy you're travels but maybe put a minimal side project up every year or so. That's my plan and I'd like to keep doing this developer thing for a while. I'd like to think, as someone who will eventually get old and have lots of experience on outdated stacks, these are some of the tactics we can use to combat ageism in engineering.

Re:Programmer's Dilemma by kb19 on Friday August 16, 2013 @12:57AM (#6222244)
Teachers / doctors / dentists all need to take courses to keep their skills up to date. Programming is no different. I don't think there is one profession where you aren't required to keep your skills up to date / put in extra time.
Re:Programmer's Dilemma by VexXtreme on Friday August 16, 2013 @01:08AM (#6222271)
As I've mentioned before, in a lot of professions it is paid and considered part of the job. If not, then at least it's regulated. We enjoy none of those benefits.

Software is a career requiring a much higher level of personal commitment than many other careers, while often not necessarily being better compensated.

Re:Programmer's Dilemma by kb19 on Friday August 16, 2013 @01:57AM (#6222407)
In which professions is it paid? Teachers / dentists I know have had to pay for their own education.

Isn't the level of personal commitment subjective though? What would your solution be?

I think it's hard for programming because there's such a diverse array of programmers (university educated based on data structures / algorithms vs self-taught that might not know those things). My recent interviews with Amazon tested my core CS knowledge but nothing like frameworks or anything. I suspect those things would matter more at startups / web shops (where I used to work).

Re:Programmer's Dilemma by dagw on Friday August 16, 2013 @07:18AM (#6223283)
Software is a career requiring a much higher level of personal commitment

Except it really doesn't. Most of us chose to put in the personal commitment because we love it and then convince ourselves it's because we have to.

I know several people who code 9-5 Monday to Friday on whatever their boss tells them to code on and that is it. Sure non of them will ever be offered a top job at Google, Facebook or awesome SV startup of the week, and sure most of what they do sounds frightfully dull, but they still have a successful if unassuming career in software.

Re:Programmer's Dilemma by mailshanx on Friday August 16, 2013 @04:10AM (#6222755)
>> http://www.halfsigma.com/2007/03/why_a_career_in.html

I read that article, and while i don't fully agree with it, there seems to be at least a grain of truth in there. He talks about how VB programmers are no longer wanted because VB.net is hot stuff now (the article was written in 2007.) He also talks about how one's professional knowledge counts for lesser and lesser as a programmer, and how a lack of any barrier to entry has resulted in a field flooded with cheap workers with no job security or general social prestige.

I consoled myself thinking this won't apply to the more sophisticated programmer, who is well trained in algorithmic and mathematical thinking. For example, writing machine learning systems, advanced statistical analysis or kernel development etc. DO have at least some barrier to entry, and these are not things that a random script kiddie can learn in a "x for dummies" book. Can a more senior engineer comment?

Re:Programmer's Dilemma by kamaal on Friday August 16, 2013 @04:40AM (#6222841)
I don't think the guy mentioned it that sense either.

The areas that you mention only have a high barrier to entry because there is no bulk job market in those areas, plus no one has yet decided to write a 'x for dummies' book in it for the exact very same reasons.

There are more websites written everyday than kernels.

Web development isn't particularly easy, but has been made easier because there is demand for it that way!!

Let say you have a markup language. The language implements every kernel feature known to mankind. Now all you need to do to get your very personalized kernel is specify the interplay of the features though the markup. Lets say such language also keeps updated with all latest developments in Kernel development field. Over time you see, even the most noob guy producing their own framework to do a range of kernel work.

Kernel development will look pretty much like producing a HTML page. And you will have a dummies book for it.

This is kernel development would look if there were millions of jobs worldwide for it.

You could apply the same analogy for anything.

Re:Programmer's Dilemma by mailshanx on Friday August 16, 2013 @05:07AM (#6222937)
You make an interesting point about abstractions and the march of technology. As technology progresses, difficult and complicated tasks of yesterday become abstracted away and become more accessible to lesser trained people. C followed by Java allows MOST programmers to not bother with understanding assembly, same with web frameworks, and i can see how it would be possible to implement a markup language that generates custom kernels. I can also see how within the next few years, we will certainly have easy to use machine learning libraries (there are already many good ones today) that bring the power of ML systems to programmers not trained in statistics and linear algebra.

That makes me wonder what kind of technical skills have long lifetimes, valuable in the real world (as opposed to merely being technically interesting), and are difficult enough to acquire that one doesn't have to worry about competition against a low-paid worker army....

Re:Programmer's Dilemma by Lambdanaut on Friday August 16, 2013 @10:13AM (#6224075)
> I prefer spending my free time having great interactions with my friends and my girlfriend, enjoying traveling and getting new experiences and just making the most of this one life that I have.

For me, software development and picking up new technologies and abstractions IS "making the most of this one life that I have." If you truly love what you do, then there shouldn't be some dividing line between what you do for fun, and what you do for money.

You shouldn't program on your spare time in order to pick up new high-demand skills, indeed that's just a pleasant side effect. You should program because it is fucking radical.

Re:Programmer's Dilemma by nawitus on Friday August 16, 2013 @11:08AM (#6224411)
Programming can be fun even if it's unfun after 8 hours of programming.