Hacker News new | ask | show | jobs
by mynameisjody 3691 days ago
Some real world rites of passage... * have your project cancelled * get outsourced * build the same thing twice (billing system, e-commerce, etc) * underestimate a project * get promoted to management....realize you hate it * hire a net-negative * implement a cms

We could totally make career bingo outnof this...

7 comments

- Stick long enough at a job that the product becomes a social network.

- Attend the same convention twice in a row for different jobs.

- Work with an ivy league MBA.

- Eventually settle on a Java or C# job.

- Build a wonderful product that people won't use. For whatever reason...

- Burnout and dream of working in construction...

> - Eventually settle on a Java or C# job.

why is Java considered "settling"? relatively inexperienced here

It's not a jab at Java or C#. It's a comment on the fight between ideals and money. Our ideal language will probably not make us money. Thats why we "settle" for one that does. :)
They've got the reputation as being kind of boring, corporate languages, among some people. Neither one is usually in the list of things that people would get very excited about using.
I don't think Java or C# are boring at all! Java is incorporating some interesting new features and its ecosystem is absorbing/evolving some of the newer styles of thought from other languages. C# is maturing into an all platform language that is backed by amazing tooling.
what's an "exciting" language in your opinion?
What I posted doesn't represent my own opinion, it's my perception of what developers in general might think, based on what I've heard people say in the past.

I don't have a big problem with Java (it was the first language that I learned object-oriented programming in), and I like C#'s increasingly cross-platform focus. I like the things I've read about C++17 and the features planned for it, and I'd be interested in seeing Rust pick up some steam.

Other people get really excited about various functional languages, new+shiny Javascript frameworks, and Node.js. Anything that's new, related to web technologies, and solves a perceived problem.

I know the answer was not meant for me, but I'm very excited about Verilog. It allows me to build my own chips with FPGAs (not that I'm doing any at the moment). Plus that means I can build my own language around a custom chip architecture.
I've considered that. At the very least, it would be cool to have an OS-less piece of hardware with known performance characteristics that I could program as a custom coprocessor. I feel like I've got so many projects on my hands that I don't have time to learn hardware design on top of the software stuff I'm already working on, though.
> Burnout and dream of working in construction...

Is this a thing? Working in construction is usually my first day dream when I'm feeling fed up with work or a little burned out.

I've noticed this being a thing. Actually, its my #1 dream after doing ASIMUV full time (which will hopefully will become a reality). Also, its a comment easter egg because Im referring to the movie office space. The protagonist quit his job at a software company to go and work in construction. :)
I thought it was a reference to Office Space.
Seems to be. Funny though how I've never watched it and construction is my #1 mental escape for burn out. #2 is military.
Should add, *write a quick temporary / proof of concept application, then need to support it indefinitely.
yuuup... I built one of these for a friends company. 10 years later that is still the default home page for the internal staff...
To me, those aren't really signs of growth, other than being able to take a punch.

1. Writing a professional product, from scratch to completion, by yourself or as a team lead, while doing every aspect of the project: BA, PM, design, architecture, server install, data model (if applicable), code, comments, documentation, QA, deployment, support.

2. Pick up a complete mess that someone else wrote, who is no longer available. Read it, really understand it, and be able to refactor it into something worth while.

As stated, most of the things the OP listed are really just academic and he should have done those in school, as they have been done as nausium. Rarely do you need to do those anymore.

To your last paragraph, I work with people with MS degrees in comp-sci who come to me, a drop-out, to ask questions about that stuff (data structures, algorithms, etc.). Sadly, not every school is up to the task of teaching these fundamentals. It seems that they're mostly teaching web development and Java Beans these days.
That's unsettling. When I earned my MIS degree (with a bunch of CS courses) in 1997, you had the opportunity to get a great education, but you also had an opportunity to coast by. Back then, everything was done in "teams." You had people who took the bull by the horns, and you had people who were trying not to drown. C's get degrees, as we used to say.

Now, learning people with MS in CS have the same issues is what's really jarring. There were so many weed-out courses in BS CS, I couldn't imagine someone getting as far as a MS CS without knowing the basics.

Having said that, I earned most of my chops on "the street," with a great mentor many years ago. We really challenged each other want wanted to show each other how smart we were. Good times.

Do you know where they got their degree? ITT Tech or something?

I don't know, but I wouldn't be surprised if it were a fly-by-night sort of organisation like that.

In any case, the best developers I've worked with are the ones that practice the fundamentals on their own, regardless of whether they're degreed or not.

Pretty much this lol. Can also add things like:

- coding while fighting the scope creep

- coding while trying to figure out the overall project architecture on the fly in endless whiteboard meetings with other devs because the high level architecture Solution Architect put together ain't worth a sh*t.

- stepping out of your comfort zone on the daily basis having to deal with the tech you have 'some' but not 'good' let alone 'expert' knowledge of because you can't possibly hire an expert for every tech

etc etc... but still delivering on time with low defect count :)

* Have your company liquidated around you while being told "everything is fine", right up until the day you arrive at work and the office locks have been changed.
Haha, yeah, these are probably more realistic. I was writing my list from the perspective of the ivory tower of perfect computer science
+1 amazing post, you got me.