Live data from Hacker News

Ask HN: With such fast changes in technology, how do you update your skillset?

news.ycombinator.com

81–90 of 90 posts

Re: Ask HN: With such fast changes in technology, how do you update your skillset?

#81

Earlier quoted context omitted.

I'm seeing a lot of mythic stereotypes here. I am a 52 year old full time coder, and have been actively developing since taking a college pascal class at age 11. > If you were a 50 year old coder 10 years ago, then your only hope of remaining in the tech industry would be to add "Manager" to your job title. People outside the startup bubble value delivering, regardless of age. Developers outside the startup bubble wo…

> start acting like a scientist. I started late (38, 41 this year) and I couldn't imagine jumping from Ruby to Rust to whatever new hotness arrives when it's clear that there are handful of technologies that go deep (enough) and that are being used to solve problems that require someone to be more than a coder or even a dev. I'm in the connected-car space and the only question I'm asking myself right now is: will my…

> will going down the path of C++ -only- allow me to grow as a "software scientist" (perhaps a third way...)?

I have no idea what higher level language in-vehicle AR will be written in, but C++ may be overkill, or a blind alley, or both.

You might be better off learning one or more of C, Go, Rust, Python, or Java (each has its own advantages and disadvantages) over C++.

Re: Ask HN: With such fast changes in technology, how do you update your skillset?

#82

Earlier quoted context omitted.

> Plan your exit into management, a related field, or some other job altogether. If you expect to be a coder at age 50 you're going to be disappointed. I'd like to simultaneously disagree and agree with you. If you were a 50 year old coder 10 years ago, then your only hope of remaining in the tech industry would be to add "Manager" to your job title. If you are a 50 year old coder today, that's still a sound directio…

I'm seeing a lot of mythic stereotypes here. I am a 52 year old full time coder, and have been actively developing since taking a college pascal class at age 11. > If you were a 50 year old coder 10 years ago, then your only hope of remaining in the tech industry would be to add "Manager" to your job title. People outside the startup bubble value delivering, regardless of age. Developers outside the startup bubble wo…

>If you like writing code, start acting like a scientist about it.

Could you elaborate more on this?

Re: Ask HN: With such fast changes in technology, how do you update your skillset?

#83

Earlier quoted context omitted.

> Plan your exit into management, a related field, or some other job altogether. If you expect to be a coder at age 50 you're going to be disappointed. I'd like to simultaneously disagree and agree with you. If you were a 50 year old coder 10 years ago, then your only hope of remaining in the tech industry would be to add "Manager" to your job title. If you are a 50 year old coder today, that's still a sound directio…

> As a coder it is important to understand that most problems in technology are not solved with more code, but less. That you will generate less code at 50 should be seen as a benefit. This is precisely my argument as a generalist. I may not write code as fast or even as elegantly as I once did, but I'm much, much better at "seeing around corners" to avoid problems, and I'm much more likely to "build the right thing"…

> However, I still think that Gannt charts and top-down planning have value.

Of course they do. What you're seeing is a backlash to the way GANTT charts have been misapplied to projects that are less well defined, and to managers that ask for estimates and then are unpleasantly surprised when an estimate isn't entirely accurate.

Anyway, if you want to provide the same sort of value but present it in a different format, consider using a network diagram or a user story map[1].

[0] https://www.quora.com/What-are-the-best-alternatives-to-usin...

[1] https://www.scrumalliance.org/community/articles/2013/august...

Re: Ask HN: With such fast changes in technology, how do you update your skillset?

#84
post #71

Earlier quoted context omitted.

I've wrestled with this question virtually since the day I began coding professionally: Should I become an expert at one language/domain, or, should I constantly learn new things and change roles? I've done the latter, and I don't know yet if it will have been worth while. I worry about being a "jack of all trades, master of none". Yet, as you point out, a master of one trade had better hope it doesn't become obsolet…

You say "or" but it can be "and". Best is to be an expert in one, "and" having a jack of all trades experience. I.e. you can specialize in front-end work with framework X, but doesn't mean you can't have experience with optimizing db queries. I think a big part of how to do that is just to stay curious and learn new things for the fun, while having a go to language to get things done efficiently.

> You say "or" but it can be "and". Best is to be an expert in one, "and" having a jack of all trades experience.

Whether that is possible depends on the definition of "mastery" that you use, and how broadly you construe "all".

TL/DR: Even generalists have become much more specialized over time.

Consider that "web design" circa 1996 used to include project management, end-to-end development, PR, search engine placement, graphic design, copy writing/editing, information architecture, browser testing, server administration, domain registration, email configuration, etcetera, etcetera.

Over the past two decades, these tasks and many more besides have swollen to bursting, splitting into entire subdisciplines (some of which have endured, others not so much) and in some cases re-merging into new hybrids.

There is no way for anyone to maintain more than passing familiarity, much less competency, with every aspect of building and launching a non-trivial website (much less a web application). At best, we'll wing it on personal projects, or even skip major .

These days, what passes for a generalist is the "full-stack developer", which pretty much leaves off everything that doesn't have to do with code, or outsources tasks like design to 3rd-party services (eg. Netlify), libraries (eg. Bootstrap), themes, and so on.

I expect this trend to continue and even accelerate, so don't drive yourself nuts trying to keep up with the developments across everything you do today. I guarantee that whatever you consider to be the set of skills a generalist should understand now, it will get narrower over time (but not shorter), and we will have as many kinds of generalist as there are specialists today.

I am pretty sure that the "serverless" trend will lead to a new breed of "middleware developer" that works on various sorts of smart caching proxies, for example.

My advice is to try and be strategic in the things you drop and no longer keep up with, and keep the things that you do maintain competencies in adjacent to each other and to one or two main areas of expertise.

Re: Ask HN: With such fast changes in technology, how do you update your skillset?

#85

Earlier quoted context omitted.

> I never start anything from scratch, as I have about a dozen application skeletons ready for various specific purposes, plus similar libraries I wrote, plus a knowledge of several large commercial SDKs, and developer experience in several major FOSS applications I've had a project manager (very insightful guy) tell me something similar before. He said "as you get more experienced you'll (ideally) write less code an…

Git is not a library, it's a program. There are, of course, libraries in many languages for using git[0] from within many other kinds of applications. Another example of a library would be libjpeg[1] for reading and writing the jpeg image format and dealing with all the different ways the format can be adjusted, which gets incorporated into many applications, for example ImageMagick[2]. Basically, a library consists…

> It's astonishing how often this gets reinvented

Wow, I'd only heard of libgit2 before. I can't believe how many git-related python packages there are. Yes git isn't a library, it's a program like you said, good catch

Re: Ask HN: With such fast changes in technology, how do you update your skillset?

#86
post #33

It depends on what you already know, I think embedded development with systems level languages and hardware know-how is a very durable skill. On the other hand, some fields like web development have peaked a while ago, I would argue that 2012 was the high watermark. I think it's a very precarious choice of career right now. It has been steadily going downhill since the introduction of trendy front-end frameworks that…

> The culture stopped being about making usable and accessible interfaces for people, and more about "component architecture", "server-side rendering", "tree shaking", that solve problems created by the very tools they are using.

Speaking as a confirmed cynic, that seems overly cynical. ;-)

The problems being solved by the web framework hamster wheel are those of rising bars for usability and speed, with measurable in $$$ effects (ie. an extra 1s delay could increase shopping-cart abandonment rate by 1.5%). Which matters a lot more at web-scale.

So, these trendy frameworks are solving problems that most developers shouldn't worry about (it is premature optimization) but that matter a great deal to the companies that release them (Google: Angular and Polymer; Facebook: React and Flux; etc.). OTOH, it is tempting to tap into of all the engineering effort that goes into libraries like these. You just have to know where to stop before sinking into the HammerFactoryFactory mire. ;-)

Re: Ask HN: With such fast changes in technology, how do you update your skillset?

#87

Do not update it. Technology is actually painfully slow. Maybe you need to change technology once in ten years (such as moving from C++ to Java).

Whoa there, let's not go overboard. Implementing a decadal cadence for switching would require budgeting for about a year of reduced earnings while you build competency in the new platform/language/ecosystem (and the associated client base).

Re: Ask HN: With such fast changes in technology, how do you update your skillset?

#88

Earlier quoted context omitted.

I'm seeing a lot of mythic stereotypes here. I am a 52 year old full time coder, and have been actively developing since taking a college pascal class at age 11. > If you were a 50 year old coder 10 years ago, then your only hope of remaining in the tech industry would be to add "Manager" to your job title. People outside the startup bubble value delivering, regardless of age. Developers outside the startup bubble wo…

> I never start anything from scratch, as I have about a dozen application skeletons ready for various specific purposes, plus similar libraries I wrote, plus a knowledge of several large commercial SDKs, and developer experience in several major FOSS applications I've had a project manager (very insightful guy) tell me something similar before. He said "as you get more experienced you'll (ideally) write less code an…

Everything you build becomes your code library that you carry forward.

Smart devs know this and cultivate their personal repetoire.

For example in the veeeery first days of .NET I had the opportunity to build a nice internal application for a client. Of course I didn't have a .NET library - the tech was just coming out of beta - but Microsoft was nice enough to provide a bunch of "example code" and "starter sites" to give all us noobs some patterns we could work from - at least most of the skeleton of a working, database back-ended website with a working security model.

From this .NET project it was easy to find another, and now I had a complete .NET library with solutions to all kinds of problems - how to do doc management, how to solve image resizing problems in .NET, how to talk to all kinds of heterogeneous systems using .NET, how to implement webservices, etc. because I'd built these once. With that toolbox I could easily solve all kinds of other problems with only a little creative remodelling of the skeleton app.

Then in 2007 when I jumped into OSS I got to start an all-new library building solutions on the LAMP stack. By 2009 I had a nice little library built up again.

The pattern is amenable to any software tech. Every project builds from the last one, if you do it right.

Re: Ask HN: With such fast changes in technology, how do you update your skillset?

#89

Earlier quoted context omitted.

> As a coder it is important to understand that most problems in technology are not solved with more code, but less. That you will generate less code at 50 should be seen as a benefit. This is precisely my argument as a generalist. I may not write code as fast or even as elegantly as I once did, but I'm much, much better at "seeing around corners" to avoid problems, and I'm much more likely to "build the right thing"…

> However, I still think that Gannt charts and top-down planning have value. Of course they do. What you're seeing is a backlash to the way GANTT charts have been misapplied to projects that are less well defined, and to managers that ask for estimates and then are unpleasantly surprised when an estimate isn't entirely accurate. Anyway, if you want to provide the same sort of value but present it in a different forma…

> What you're seeing is a backlash to the way GANTT charts have been misapplied to projects that are less well defined, and to managers that ask for estimates and then are unpleasantly surprised when an estimate isn't entirely accurate.

You think I don't know this?

I think you missed the point :(

(As an aside, in my experience, network diagrams and user-story maps pale in comparison to Gantt charts, as they do not effectively communicate timeline expectations IMO.)

Re: Ask HN: With such fast changes in technology, how do you update your skillset?

#90

Earlier quoted context omitted.

> However, I still think that Gannt charts and top-down planning have value. Of course they do. What you're seeing is a backlash to the way GANTT charts have been misapplied to projects that are less well defined, and to managers that ask for estimates and then are unpleasantly surprised when an estimate isn't entirely accurate. Anyway, if you want to provide the same sort of value but present it in a different forma…

> What you're seeing is a backlash to the way GANTT charts have been misapplied to projects that are less well defined, and to managers that ask for estimates and then are unpleasantly surprised when an estimate isn't entirely accurate. You think I don't know this? I think you missed the point :( (As an aside, in my experience, network diagrams and user-story maps pale in comparison to Gantt charts, as they do not ef…

> they do not effectively communicate timeline expectations

Of course, that is in part by design.

If you are delivering solution X that is just an instance of iteration Y of system Z with a few customer-specific tweaks, Agile methods will work just fine in combination with GANTT charts, and teams that are engaged regularly in that sort of work aren't too likely to object.

However, as soon as a task is a known unknown (that is, a well characterized problem with an understood though as-yet nonexistent solution) requiring new code that isn't just a variation on familar themes (ie. whatever is the equivalent of a CRUD web application for your industry), you start having to deal with uncertainty and risk (which humans are very bad at reasoning about). GANTT charts can make things worse because they foster a false sense of control (padding time estimates by x% for example feels like it helps, for example). And if anything in your critical path is a known unknown, your timeline expectations, however consensus-driven and reasonable as they may be, are likely to get smashed to smithereens, and all a GANTT chart is going to do is tell you when your carefully constructed schedule is starting to slip.

Throw unknown unkowns into the mix (from "we haven't yet figured out how to solve this" all the way to "are we even solving the right problem"), and timelines become entirely fictional.

I am not aware of any chart format that incorporates this sort of risk and uncertainty well (FogBugz for example, which incorporates probability and risk based on an estimator's past track record, basically just sticks that data into a chart's tooltips)

Now, if you are willing to mitigate these risks by basing your timeline around deadlines for handoffs with the understanding that what gets handed off is "best effort working system in available time" (in which case continuous integration/delivery is your best friend) that's a different matter, but that just isn't how most projects are concieved or managed. Yet.

BTW, related to all this is the conflict between feature-based and time-based approaches to software releases.

Post reply on HN