Hacker News new | past | comments | ask | show | jobs | submit login
To Stay Relevant in a Career, Workers Train Nonstop (nytimes.com)
63 points by digisth on Sept 22, 2012 | hide | past | favorite | 38 comments



The need for continuous education is accelerating for a lot of careers. I have taken 4 online classes this year, I have bought at least 12 technical books (probably read about half of the pages in them) and I am working on writing a new book (actually a revised edition of my old Java AI book).

I probably spend 1 hour on these self learning activities for every 2 hours I spend making money on my business (consulting). I am comfortable with this investment for two reasons. First, I feel like this provides me with a secure long term business. Second, the learning time is fun and relaxing - not as much as my hobbies hiking, cooking, and music, but still, I count studying time as a form of recreation.


My dad went from helping out at my grandfather's high street shop to designing satellite test rigs, and ending up specialising in conveyer systems of all things.

My partner's dad went from painting ships in Chatham dockyards to helping design and build nuclear submarines, power stations & containment facilities, and ended up working in nuclear medicine.

Neither of 'em went to university.

Continual on-the-job learning doesn't seem like a terribly new thing...


There are two type of knowledge: timeless, and changing specifics.

API, libraries, and platform are specifics. It's something you learn and throw away (eventually).

Continuous deployment, unit testing, debugging, basic programming knowledge, are timeless.

One thing to keep in mind: Even timeless knowledge will be subjected to decay if you don't practice it.


I'd say there were 3 kinds: the timeless stuff is actual computer science, y'know, the hard stuff: maths. The long-lived knowledge is things that have stood the test of time, e.g. languages like SQL and C (and its toolchain) - but I wouldn't gamble on C being around as long as say, the quicksort algorithm. C++ and Perl and Python probably fall at the outer edge of this category, we'll know in 10 years. People who know these things well won't have any trouble finding work in the near future, even if they don't put any extra effort in (but show me this kind of programmer who doesn't anyway, just because it's fun).

Then there is stuff that you need to know right now which is really just the whims of fashion, the latest abstraction layer over Javascript (JQuery? Coffeescript? I lose track) or web framework and the latest fad methodology (Scrum, TDD or whatever). This is stuff that ages very quickly, in just a year's time your skills could be obsolete. I pick up just as much of these kinds of skills as I need, but there's no point investing serious time into them. These guys are running flat out just to keep up. It must be exhausting.

5 years mastering C is an investment in your future. 5 years mastering MongoDB probably isn't.


> 5 years mastering C is an investment in your future. 5 years mastering MongoDB probably isn't.

Replace C with COBOL and MongoDB with MySQL.

I've thought about this recently, and I think Java may replace C as the investment. There's so many companies now that depend on it, that knowing the JVM and it's... oddities is an investment.

I think MongoDB now is a bet. It may actually pan out, but we will not know until 10+ years out.


If you go to an interview at a hot new startup in 5 years saying I know MongoDB and Coffescript they'll just chuckle and say sorry old timer, we only use UmbongoDB and Congoscript here.


Hadoop will make Java more and more relevant.


Assuming something better than Hadoop doesn't come out. From what I've heard from folks who have used Hadoop and then used MapReduce, that's not really a safe bet.


"Continuous deployment, unit testing, debugging, basic programming knowledge, are timeless."

The first two are relative new, although they are likely to be seen as timeless after enough time has passed.

In fact in the early nineties I was chastised for practicing what has essentially become test driven development. I apparently didn't have enough confidence to write the whole thing at once and (maybe) test it later.


The two types are knowledge in depth vs. knowledge in breadth. The former grows slowly, the latter exponentially.


I've been coding for over 20 years, and I can't say I find it "exhausting" having to learn new languages, tools and techniques. On the contrary, learning new things keeps me from getting bored.

Also, constant learning is already a prerequisite for programmers, since coding to a large extent is a discovery process. You learn and discover more about the problem as you develop the solution.


The article implies that this is a new phenomenon brought on by the advent of computers. Computers have certainly accelerated this trend but certain occupations have had this problem since before computers were ubiquitous. For example doctors have to regularly submit proof of continuous learning or they lose their license to practice.


Same thing for me as a CPA. Even though I'm not specialized in actually putting an entry into the books or doing taxes, I still have to keep up with forty formal hours of training a year. Courses have to be approved by state societies before they'll even count for continuing education.


What is your specialization? At my firm and position level CPE is just a paid day of learning which is great.


IT internal controls and audit support.

Also, I don't just work for a CPA firm, I am a CPA. Subject to all the CPE requirements set by the state society if I want to maintain my title. For me this year, my requirements were satisfied by six paid days of learning but I could have done it through a series of one-hour online courses if I hated myself.


I think the more recent trend is that we need to be competing globally more, so you have to maintain your game. You can't sit around and do the same thing anymore, especially in computers.


This is an especially important point for coders. In my 23 year professional life I've had 4 very different careers, involving 7 major platform changes, at least a dozen different languages and more SDK documentation that I can remember.

It's not like technology or the rate of change will be slowing down in the future either.

So, learning how to learn efficiently is an important tech skill.


I do this constantly, even if my explorations never get beyond surface exploration of new things. My career has moved from electrical engineer->(non-IT) systems engineer->real-time algorithms software engineer (C)->non-real-time algorithms software engineer (Java). Over this course (so far) I have worked in a dozen languages, and may have a dozen more in the next decade. I also try to keep myself astride the hardware-software boundary as best I can.

My most frustrating professional experience so far was working in a sequestered program in my prior company where almost everyone in engineering leadership positions had been doing the same damn thing for 20+ years and could not understand why anyone would want to keep learning and trying out new technologies. In fact, showing too much interest in technologies unrelated to the program could be interpreted negatively.[1] I'm both amazed and horrified that such an attitude could persist in this day and age in such a company, but I guess that comes from the program's somewhat unique situation.

[1] The old guard on this program had the attitude that you could spend your entire career on it and its derivatives, so there was no reason to want to leave unless you were unhappy, in which case there must be something wrong with you.


Just out of interest, were the old guard who refused to learn the (non-IT) systems engineers? I've had similar experiences with senior engineers and am trying to work out how (or whether) the field should be saved


They were by-and-large the systems engineers. Most had math or physics degrees (BS->PhD), and the rest had various engineering degrees. The bigger problem in this case, though, is the isolation of this project from everything else. Its hard for me to explain properly without the details I can't provide, but in short this group had a really hard problem to solve, and did so. Some people built their entire careers on this, and they developed this destructive attitude that is part Not Invented Here and part superiority complex. The result was that whatever a handful of the senior engineers though was the best approach was the direction "development"[1] went, no matter the evidence to the contrary.

I don't think this is indicative of the discipline as a whole. The discipline is necessary in many market segments. Even software companies have systems engineers; they just call them software architects. I'm not sure what could be done about a situation like I described above, though.

If you want to discuss this more offline, you can get my contact info from my profile.

[1] "Development" in this case was taking obsolete algorithm code, hacking in new functionality as quickly as possible, and forcing it to work with minimal perceived effort in the top-level system where all the software was being written from scratch.


This just seems obvious to me. Granted, I'm only 16 and have had but one foray into the world of corporate employment, but the notion that someone can learn a skill early in their life and practice it indefinitely without expanding or improving upon it literally makes me want to laugh. The world simply moves at too rapid a pace not to constantly be learning.

The need to improve yourself as an employee doesn't exactly count as news. Intellectual stasis is career death.


You seem to be mocking a claim that no one is making, namely, that it's reasonable to expect salary increases throughout one's career while relying exclusively on some limited initial training. The claim actually being made is that in any career, of the self-improvement necessary for advancement, some fraction can be realized during normal, paid work hours, and that the size of this fraction is trending downward.


As society speeds up, Eric Hoffers great quote becomes increasingly relevant:

"In a time of drastic change it is the learners who inherit the future. The learned usually find themselves equipped to live in a world that no longer exists."


As a developer, in addition to retraining yourself, you also may need to change jobs fairly often. Often it's the only way to utilize and develop newly acquired skills if you want to stay relevant and make the skill acquisition worth it.

However, I think it's easy to get caught into the rat race and overlook what it means to be "irrelevant". If I look back at my coworkers who stayed behind (in terms of training and advancement), most of them have very fulfilling lives with more work/life balance and stability. They just made certain compromises in terms of having jobs thrown at them all the time or in having higher salaries.

I'm still trying to find my own personal balance here, especially as I've grown older and had my family responsibilities increase.


> As a developer, in addition to retraining yourself, you also may need to change jobs fairly often. Often it's the only way to utilize and develop newly acquired skills if you want to stay relevant and make the skill acquisition worth it.

This is a good point. It is very easy to pigeonholed on a big company project to work for five years, but only get "one year of experience, five times."


A less aggressive method is to attempt to achieve things that you're not sure how to do you. Learning is built in to every project, then.


But isn't this the way it is in tech? No one cares if you have a solid grasp of the fundamentals that rarely (if ever) change. Its all about knowing the trendy platform/language du jour. Which, I'd think, is a bad thing-it encourages people to hop onto fads to learn in order to get jobs, but I'm not sure if it really encourages people to learn fundamentals.


Depends greatly on the domain. While certainly true for areas in which products are created within months if not weeks and new technologies come and go every few months, it's very different for areas in which product development stage lasts for years and active product maintenance lasts for a decade or two.

It seems that further the domain is away from the fundamental concepts, the more it relies on ad-hoc stuff. I guess that's what abstraction layers and exposure to "general public" does, lots of leaky abstractions going to all directions imaginable. Perhaps someone finds this progress fascinating, I certainly don't.


Communist Manifesto, 1848.

Take some time to read it - even if you don't agree with the ideas - and indulge in that 19th century prescience.


For those who don't have spare time, care to relate the manifesto to the parent article ?


The most widely read political tract of all time, at less than 50 pages. I think you owe it to yourself to see what the fuss is all about.

My understanding is that Marx, and op, sees this constant training as a negative. Workers sell their skills and time; constant obselesence of works' skills to keep up with the Capitalists' automation of the job, in persuit of higher efficiency and lower costs (i.e. salary), is, in my understanding of Marx's ideas, a Bad Thing(TM).

This is not because Marx is a luddite and the workers anti-intellectuals, but because constant training weakens the labor guilds and unions. Workers cannot form any sort of long-term professional union if their skills are being obseleted constantly. This destruction of independent labor renders us all subservient to Capital and Capitalists, who are the only ones afforded the luxury of being in charge of their future and destiny.


So innovation is a capitalist plot. Got it.


What a cheap way to oversimplify what I wrote.

Do you seriously think Socialist societies are not capable of technological advances?

Marxism is an economic framework, and there is no way avoiding technological advances in an economy. It's just that in Marxism, innovation comes from workers and joint stakeholders of the means of production. Not owners of Capital.

The software market is MUCH closer to the Marxist ideal than a Capitalist free market, specially in Free Software. But I don't expect to get an intelligent conversation here,so, alas ..


"Do you seriously think Socialist societies are not capable of technological advances?"

Construct one and we'll see. Previous attempts basically turned into murderous oligarchies. To me, that places Marxism outside the realm of practical consideration, since it seems impossible to actually implement.

Less flippantly, it's always been engineers and inventors rather than investors (capitalists) who are responsible for innovation.


Pedantically:

Marx never called himself a Marxist. When he co-wrote (with Engels) the Manifesto, it was to consolidate the contemporary Communist thought into a distributable, available pamphlet.

It would help if more people read the Manifesto, as you obviously have, but other commenters avoided.


I was just referring to the pamphlet, not taking sides :)


Thanks! You got me interested.


Some minor training might be needed to stay relevant - that's true in any job.

But if you find yourself in need of almost continuous training, like the guy described in the article, you have a problem

Leaving aside the medical problems (memory problems, attention issues):

1) Maybe you have badly invested your time, ie. in knowledge with a negative interest rate (ie a fad - the technology du-jour which will be outdated tomorrow) - then you need to keep pumping knowledge. Your problem is not in the learning, but in the choice of the topic - i.e. learn something else!

2) Maybe also you are not specializing enough, i.e. carving your niche in a domain where you knowledge would create a significant barrier of entry? But that'd be another way of saying your topic has a positive interest rate and that you are just compounding interest!

In both cases, it seems to me to be a problem of a wrong choice (leaving aside the fact that you shouldn't resent what you are doing, if you really love it)

So do something else, find your where your competitive advantage is or where your passions leads you.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: