Ask HN: My skills are aging. Where can I go to try to keep up?
I was humbled at a job interview yesterday almost to the point of a beat-down and realized that although I know what I know, my skills are getting old and I'm getting to where I don't know what I don't know, which for a tech guy is a bad thing.
I was wondering if there were any sorts of "top 100" book lists for programming, development, architecture, or really just technical stuff. I don't know if I can keep current just doing my day to day job, so I need to make sure I at least know what's out there.
And/or, are there well known blogs I should be keeping up with for software development? How about conferences? I am going to try to hit No Fluff this year, but is that something I need to be investing in every year? Java One? Anything else? I don't mind spending the time/money, but I want to know it's worth it.
13 comments
[ 2.8 ms ] story [ 41.9 ms ] threadI read books on the commute to work (on the train) so this time feels less wasted. I especially liked: - Implementing lean software development - Implementing scrum - Domain Driven Desing - Head first rails - The leaders guide to radical management - Presentation zen
This is not only technical stuff, but I think the non-technical books are important too - they give you context and perspective.
A)Large Enterprise Applications - .Net/Java(J2EE)
B)Web application
1)Server Side - Python+Django/Ruby+Rails/PHP+CodeIgnitor/node.js
2)Client Side - HTML5/CSS3/JavaScript/Ajax Libraries like jQuery, Yui, Closure/backbone.js
3)Database : MySQL and any noSQL database like mongodb
C)Mobile Application
1)For iPhone - Objective-C
2)For Android - Android SDK/Java
D)Web APIs - Facebook,Twitter,Google,Google+(when available) and Amazon Web Services
E)Desktop Application - Large companies like google, yahoo, etc still stick to C++/Visual C++ but in general C# is also a decent choice.
Keep checking sites like HN, Stack Overflow, Quora, Reddit etc and be genuinely interested about whats happening in technology and startup space. Who are the emerging startups and which technologies they are using..etc stuff.
Try to learn one technology per month in weekends.
I would also suggest you to read two books from 37signals - Getting Real and ReWork.
Years ago, you might have been able to remember every parameter to your favourite 20 shell or windows commands. Probably even the difference between the differing version of that operating system. However, if you're anything like me, one of your browser pages is permanently on stackoverflow or j2se docs or pydocs etc etc, as I just can't remember the fluff (heh).
But here's the good news. You don't have to keep up. You don't need to know the 200+ different ways of sorting a list. You just need to know that different ways exist. Then .. JFGI ! You don't need to know what version of java or python feature xyz was added or deprecated... JFGI !
My answer to any interview that has the question "what is the output of the following program?" is always "Well let's ask the computer - that's far better at this kind of thing than me and it will take a lot less time!". I remember someone asking me about self-modifying C-code and what the output would be. I said "one dead programmer - because if I ever met someone who wrote code like that I would shoot them dead for leaving such a mess".
Don't learn the fluff, the parameters, the options, the function names, the versions. Learn how to find them.
For some concrete info, I'm a java developer in an "enterprisey" shop, and I do a lot of unit testing. Two things I was grilled on and didn't really have first-hand knowledge of were patterns in the EAI Patterns book, or anyting out of the xUnit patterns book. Now it could be argued that this interviewer was a patterns freak, but regardless, I should have at least known what the formalisms were called, etc. So, I've ordered those 2 books to get some handle on those. And, having looked at the books, I realized I DID know a lot of what he was talking about, I just didn't know the names or that they'd even been given names, as such.
So I've come to realize that I don't really have (for example) 10 years of experience with Java; I have 3-4 years experience repeated 2-3 times. And I want to alleviate that.
So given that, where can I be exposed to "new stuff", either from reading or conferences or something else? I'm clearly not getting it at my job, so am looking to not have my personal line drawn in the sand be "2004", if that makes sense.
"pick an industry leader (ie facebook, google, apple etc), research as to what publicly available technologies they use, learn those as the rest of the tech world will follow".
Sounds like a workplace to avoid - either because it is part of the corporate culture or they didn't bother reading your CV (malice or incompetence take your pick).
* There were several interviews by teams of people. One of them was the "beat down" team, although I don't think by design; that guy was just hard. A later interview said that he's known for that, not to take it personally, that he actually thought I did pretty well, and he's known internally as the "Kobyashi Maru" interview (for you Trek fans).
* I have a lot of years experience on my resume. I think I've become someone not with "X" years experience, but "X/3 years experience, repeated 3 times." That was the humbling/humiliating part; to have that realization.
* The interviews were for a particular role, and by people who had OTHER roles that needed filled. So I was being interviewed by people with needs other than what was advertised; they interview in such a way that if I wasn't a fit for the particular role (I wasn't), that I might be good elsewhere. So there's still hope for me at that company. We'll see.
Instead, play leap-frog. Make an educated guess about where some portion of the industry is going to evolve and start learning those skills _before_ they becomes uber popular. Then after 4 or so years, do it again.
I did this recently (within the last 18 months) and jumped into mobile development. That decision now allows me to freelance from home making just as much money if I were in a cubicle.