Hacker News new | past | comments | ask | show | jobs | submit login

"If you don’t actually enjoy what you are doing, leave the industry and go get a different job."

This is a statement I can stand behind. No enjoyment = no drive to get better (usually) = stagnation and eventual irrelevance/incompetence.

There's a difference between enjoying your job and becoming so obsessed with it or afraid of losing it that you become a doormat - in that sense I totally agree with you.




While I do enjoy programming, I don't think software development is a good industry to have a career in. The market is so fragmented right now with different choices of programming languages and different technology requirements. And you are expected to be the expert on those technologies.

I like what I do and it's good to be paid at what you do. But these days corporations want their people to work extra hard and dedicate themselves for the company. Once the company is done with you, they'll spit you out.

I've had my first-hand experience seeing someone who helped built the company, loved his job, work harder than anyone else in the company, was being let-go when the company didn't do well. Probably because he has a high salary than anyone else. The least the company could do is to negotiate his salary and let go someone else (still not ideal, but then..).

Long gone is the day of "employee growth", "personal advancement", or "continuous improvement". Enter the day of "you should already know that", "study this on your free time".

With the rise of Scrum and XP, developers are becoming interchangeable (outsource, offshore, or between colleagues).


"While I do enjoy programming, I don't think software development is a good industry to have a career in. The market is so fragmented right now with different choices of programming languages and different technology requirements. And you are expected to be the expert on those technologies."

Exactly, and I suspect that many of the developers being "purged" are not those who aren't passionate, but those who happen to be too much of a generalist.

Today's job listings often ask for experience with libraries A, B, C, D and E. (It's not even about languages anymore; the "Python" jobs are really mostly for Django, and "Ruby" already meant "Rails".) They get literally hundreds of replies, so the chances of getting applications from people who actually do know all those libraries are fairly high. You just pick one of those who seems competent (maybe you'll let them do some of those puzzle questions that seem to be in vogue nowadays) and they can bring value to your project right away.

A generalist, on the other hand, loses out here, because they do not know all of these libraries (yet). It does not matter if they are competent and can learn these new things quickly; they aren't even considered.

So, you just learn these libraries, and next time you will have a better chance of getting the job, right? Yeah, except that the market is so fragmented, that the next job listing will require F, G, H, I and J. There are just too many of them to learn them all.

I'm getting the strong impression that getting a job nowadays is a matter of (1) luck, or (2) knowing the right people. Many companies like to pretend it's about passion, but other filters are applied first.


I do a lot of Python and have even worked on my own web frameworks before. I've done web development with many different Python web frameworks. I also don't consider myself just a web developer.

I was recently interviewing for a Python/Django developer position and was instead offered a SDET position (with the possibility of becoming a developer) because I don't have experience with Django.

I turned them down because it felt like an insult.


I really hope you let these morons know why you turned them down.


I think the term 'generalist' here is a bit unknown.

If you're a developer working on web-based software, you are known as the web-developer guy (specialist).

If you're a developer working on transactional, security, concurrency, you are known as the back-end guy (specialist).

If you're a developer working on business-app, you are known as the enterprise developer (specialist).

If you're working on product-based company developing virtualization, you're specializing.

Developer who work at Google, while they might not used the varieties of framework out there, are specializing in Algorithms, Data Structure, Concurrency, and Large Scale development.

If you're looking for work as an internal business-app developer writing JEE components, your recruiter might not want to accept Algorithm geniuses who used to work at Google.

A Rails guy will look down on someone who has 7 years of Java experience whom tries to escape Java at the same time but wouldn't say something bad about his work experiences (not burning bridges).

These days people shaped their mind and view pretty quick.


You mention that job listings get hundreds of replies, yet just a few pages back we have an article [1] about the short supply of developers in Silicon Valley. What gives?

[1]: http://www.quora.com/Silicon-Valley/Why-is-there-such-a-stun...


Silicon Valley wants the best and brightest. This filter is opinionated based on the company.

If you're looking for work at VMWare, your Rails and MongoDB experience won't be needed. They want C/C++ guy who can hack Linux kernel or write device driver.

If you're looking for work at Facebook, they want someone who knows PHP and C/C++ and probably have provided patches to MySQL or memcached. Or they grab "idea" people like Lars (from Google).

You should also "own" that domain (compiler, AI, optimization, OS/Kernel, Networking, DB/Data-Mining, business-app, ERP/CRM/Enterprise).

This is scary because it forces you to: 1) Put your eggs in one basket: domain

2) And put more eggs in another basket: technology

3) Stay up with the latest in (1) and (2)

This left you no room to breathe. To break this cycle you probably have to get out there and do something on your own (meaning: your own business/company)


I don't know. One doesn't exclude the other, I suppose. I have heard about developers being in short supply as well. Notice that they are not saying "nobody replies to my job posting", so it's quite possible they get lots of replies, they just end up picking none of them, for whatever reason. Maybe it's hard to filter through all the replies effectively, maybe they are too picky, maybe the job is unattractive to competent developers, maybe it's something else. It's hard to say.

All I do know is that I have heard the other story as well, i.e. people who are hiring are inundated in replies.


I don't know besides my company, but as a generalist technical founder, I would be loathe to take someone with experience in x technology over a generalist who'd shown ability to learn new technologies. We work with Flash, clojure, and assembly, which is obviously the weirdest smorgasbord ever. I have yet to see a resume that mentions anything but flash, so I've tried to look for people who look smart and a little arrogant instead, while still being personable.


How many companies of your type out there?


Being an engineer, constantly learning is a given. Technologies change everyday. That happens from hardware all the way to the top. Don't bet on just one technology and think your career will end with it. Java, Python, Ruby, and many others are things people talk about, but I guarantee you, there will be more new languages, new technologies and new platforms pop up every now and then.


I think this is the biggest difference between programming language and OS/RBDMS. The changes happening around programming languages are much faster than that of the OS/RDBMS world.

People who know UNIX concepts are most likely employable whether the business is using HP-UX, Solaris, Linux, or BSD. You're a DBA? doesn't matter much how many years of experience you have between Oracle and SQL-Server (as long as each have at least 1 year).

Compare that to a developer who know OOP in Java and JEE is less likely employable in shops that use the equivalent technology in C#.NET (even if the concept and the language is the same).

My point here is that the changes in programming language/development tools are in a very unhealthy situation. People don't even have time to stabilize and learn other skills (communication, organization, networking, understanding business needs).




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

Search: