Live data from Hacker News

Ask HN: Where are the hard programming challenges/jobs?

news.ycombinator.com

61–70 of 71 posts

Re: Ask HN: Where are the hard programming challenges/jobs?

#61
I used to feel this way too. My first job was writing a web app to replace a paper approval/overview process at an engineering firm. Aside from some email notifications, it was entirely CRUD and, to cap it off, I was forced to use classic ASP (in 2005 - asp .net 2.0 had come out by then, making classic ASP 3 generations old).

After 6 months of adding more and more approval flows, I had enough of the tedium, so I started writing libraries to make classic ASP easier to use, including a hash table library. Then I focused on how to write CRUD apps faster, with less code. Then I focused on making it more interactive and wrote an AJAX library. And if you want real difficulty, try making a classic ASP rest endpoint running on decade old hardware over a horribly designed MsSQL database performant.

I guess the point of that story is anything that bugs you on a daily basis can become an interesting and difficult problem to solve. Constraints make simple things more difficult, but you did say the harder the better. :)

Re: Ask HN: Where are the hard programming challenges/jobs?

#62
post #45

Your attitude is common, but mistaken. It's another version of "the grass is always greener". Whether you're working on a self-driving car or implementing Microsoft Word 2014, the fundamentally hard parts are actually the same. The self-driving car might sound sexier if you've never done something like that, but once you've learned the basics of how control loops work and the quirks of realtime operating systems, tha…

I think there is an exception to this for people that work on programming languages -- there the best programs written.

In my spare time I have never had more fun programming then writing interpreters for scheme, prolog, and smalltalk. It would be amazing to get paid to work on tomorrows languages!

Re: Ask HN: Where are the hard programming challenges/jobs?

#63
post #45

Your attitude is common, but mistaken. It's another version of "the grass is always greener". Whether you're working on a self-driving car or implementing Microsoft Word 2014, the fundamentally hard parts are actually the same. The self-driving car might sound sexier if you've never done something like that, but once you've learned the basics of how control loops work and the quirks of realtime operating systems, tha…

This is not really true.

Re: Ask HN: Where are the hard programming challenges/jobs?

#64

Earlier quoted context omitted.

If I had money and free time, then I'd love to do research on my own. Thing is, I need a job to pay the bills :( I'm thinking of getting into freelancing and using that to float me as I get to do more and more research.

This is the strategy I'm currently implementing. I've been doing freelance work while working on research with physiological sensors as computer input. You'll need two things to get started doing this sort of thing: standing out as a member of your community so people come to you, and an understanding of business needs. If you really want to make the switch, shoot me an email. I'll give you some tips on making the tr…

Tweeted at you. Please respond when you get the time. Thanks.

Re: Ask HN: Where are the hard programming challenges/jobs?

#65
post #32
post #28

This sounds like a variant of the meme "I could build stackoverflow in a weekend". If you think you can build 99% of the apps out there, go out and try to build a moderately complex app. Make it better. You'll see there are all types of challenges from the technical, to the social to the political in small and large companies. Being a software developer is about solving all sorts of challenges, and not all of them ar…

I don't think thats its a variant of the meme "I could build stackoverflow in a weekend." It doesn't have the in a weekend part. The OP seems to consider getting a PhD an acceptable route. He's asking for directions, not a shortcut.

Twitter, Facebook, Stackoverflow are all really just CRUD apps. They face social and scaling challenges everyday among other technical challenges. I don't think he's giving CRUD apps enough credit. There's also security challenges, etc.

Re: Ask HN: Where are the hard programming challenges/jobs?

#67
Unfortunately just learning ruby, rails or any other programming languages doesn't prepare you at all for type of challenges you are talking about. I've been working on search, machine learning, prediction models, computer vision and so on and these are absolute cream of the challenging problems out there that I highly enjoy. Other my favorite areas are compilers, kernels, audio and image processing but I'm not actively working in it currently. But to even understand current state of art in these areas, let alone contribute to it, you will need solid foundation build on math (especially linear algebra, probability & stats, calculus), machine learning, distributed computing, graph algorithms, probabilistic data strutures and other CS areas. It takes years to build this theory foundation and perhaps more if you are not already enrolled in to any degree programming. Programming is actually the most trivial part of working in these areas.

Employers who do have these kind of challenging work are never looking for just Ruby or Java guy who knows all syntax, framework and how to code. They would need your experience and academic background to convince them that you do have necessary math and CS foundation to tackle their challenges. The best way to start out for "plain vanilla" programmers is to get in to open competitions like at http://www.kaggle.com/competitions. Also keep an eye out for any companies sponsoring such competitions like Netflix did years ago. The reason this is good way to start is because here would typically be discussion groups around this where experts discuss their approaches for real problem and real solutions and you can learn a lot from this. Once you select such a challenge to work on, give it all to it. Devour every piece of research, CS and math that comes in your way to understand what's going on. If you keep at it for 2-3 years, you would be in might be in good position to demonstrate future employers your work and worth to work on these challenging problems.

Re: Ask HN: Where are the hard programming challenges/jobs?

#68

It's not the only way but a PhD will certainly open a lot more doors at the "high end" research end of things. That said, even Microsoft Research will hire "Research Software Development Engineers" who work with researchers to implement cutting edge stuff as well as migrate it into regular Microsoft products, and only a bachelor's is required: http://research.microsoft.com/en-us/jobs/fulltime/technical.... .. these s…

If I had money and free time, then I'd love to do research on my own. Thing is, I need a job to pay the bills :( I'm thinking of getting into freelancing and using that to float me as I get to do more and more research.

This is confusing to me, what is taking up your time?

The way I see it people choose what they want to spend their time doing. Sometimes they choose research, sometimes they choose game playing, sometimes they choose reading Hacker News :-) but there is generally enough time for folks to do what they want to do.

Research is especially easy if you know what you want to research. But it's not a simple matter of "Hey I'm in research, lets blue sky something!" People in research have some passion that they are following, like parsers, or graph theory, or AI, or network coherence, or something. Some area where they have lots of questions and no answers.

Keep a notebook. One for each topic if you want, they can be the cheap composition ones that go on sale during 'back to school week' or really nice lab notebooks. But they are like pitons and rope to a climber, they anchor where you have been and where you are going. Write the questions you investigating into the first few pages after the index. Start writing down what you know, what you can prove, and what you don't know. Invent experiments or ways to discover the answers to the questions you don't know.

I've got a notebook with a couple hundred pages devoted to making carbon nanotubes. I know lots of ways you can't make them and several ways you can. Sometimes you can scrounge equipment for stuff, sometimes you have to invent (did you know that you could use a bottle of propane and a chunk of copper pipe as a way to do vapor deposition of carbon? You can! And if that copper tube rolls off the stand onto your wooden deck when its hot it leaves a big black mark? :-)

"Research" doesn't need a government funded lab, it needs good laboratory technique. Careful note taking, documentation, exposition and analysis. Software research is even easier these days because of how cheap computers have become.

In general, having a job doesn't prevent you from asking questions or doing experiments (aka "research") but if you're tired after working all day and just don't want to think any more, that is a different problem. Some folks I know get under demanding jobs just so they can do it easily without straining too hard during the 'day.'

One of the things I did as a kid that drove my Mom nuts was read every scientist biography I could, I tried to re-create their experiments because anything an adult could build in the 1800's I figured I could build as a kid in the 1900's. But what it really taught me was how these people pursued the questions they had.

Bottom line, "money and free time" isn't an excuse, its a rationalization. Why are you denying yourself your own research?

Re: Ask HN: Where are the hard programming challenges/jobs?

#69
post #53
post #43

Earlier quoted context omitted.

I work in this industry, and have spent a number of years in R&D. In my experience, the vast majority of software R&D projects are not weapons/military related, and include things such as cyber security, healthcare, big data, cloud computing, etc. A lot of it is aimed at developing innovative approaches to reduce costs in various government/military processes both through automation and doing things more smartly and…

Sorry, but I don't think there's a distinction to be made, other than one of degree unless the implication is that improving government/military processes is not aligned with the long term goals of the military.

Good point, but I think the average person who has reservations about some military functions isn't necessarily wholesale opposed to all functions of the military.

Re: Ask HN: Where are the hard programming challenges/jobs?

#70
If you want to work on hard problems, strive not to have to solve the same problem twice, to try a new approach or a new tool every time you get a "CRUD" task (however you define it). You'll find that if you continuously push yourself, you'll keep growing and will never feel that the task at hand is boring or too familiar. You'll need to take risks, but without risk there's no reward. Regard every programming task, however simple, as a chance to learn something new.

Corollary: if you find that your job doesn't let you learn (e.g. your boss just wants you to churn out as many web apps in as little time as possible), leave immediately (or better, try talking to the boss first :) ).

However, as ef4 and others have pointed out, the real question for you might be "what are the problems I'd want to spend my life on?" Not all important problems are hard - some may even seem too unsexy to be worth working on, but the impact can be huge.

Post reply on HN