You need to work long hours to be productive or to succeed in your career. Long hours reduce your output (due to tiredness and lack of focus), and even worse, they encourage the exact wrong attitude for a programmer.
Software is all about automation, so an attitude that encourages long hours is self-sabotage. Productivity is all about solving problems with minimal wasted effort, and trying to reduce your work hours can force you to learn the skills that will make you more productive.
You need to know a specific set of technologies to get a particular job. It certainly helps a lot, but it's definitely not necessary - I've gotten jobs in languages I don't know, and ended up working on things I didn't know how to (image processing, most recently). If you want to get a job with technology you don't know, here's some ideas.
Doing your a job is the same as finding a job. Finding a job is a very different set of skills: marketing yourself, interviewing, writing a resume. Lots of people would make great employees but aren't good at selling themselves. But if you realize they're different skills you can start learning them.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.