Hacker News new | ask | show | jobs
by sohcahtoa 3859 days ago
I think there are two ways to view what the job most programmers do is. IMO it isn't to write code, it's to solve business problems. Code just happens to be the tool that you use to do that, most of the time.

Anyone who tries to solve a problem by staring hard at a blank piece of paper instead of just googling the answer is not making effective use of their time.

7 comments

Exactly, and most business problems are not all that unique. User input from form X goes to storage Y, output in report Z. There, I bet I've described, in a very high level summary, at least 50% of programming projects out there in one sentence. SO is a valuable resource because all these wheels need to get re-invented over and over everywhere. Unless you're lucky enough to be working on an inventive project at an inventive company, programming tends to be like plumbing: run this pipe from the source here, through that wall, to the sink there.
100% of programming projects involve transforming inputs into outputs ;)
You are missing the forest for the trees. Reaching for Google and SO as your first impulse when confronted with a problem will deteriorate your ability to find your own solutions in the long run. Use it or lose it, as they say. And besides, any non-trivial problem can't be solved by copying code from SO alone.
Most companies don't solve non-trivial problems. For instance, 90% of web development is regurgitating the same CRUD for different customers. Most of the work consists of wiring standard components together in a standard way, and slapping some CSS on top of it. If you're trying to think too much and reinvent too much, you'll waste a lot of time.

Source: did too much webdev in my life already, and wasted way too much time doing things by myself.

> For instance, 90% of web development is regurgitating the same CRUD for different customers.

Maybe on the face of it, it looks like this to you but in reality it's bit complicated esp if you're aiming for more differentiation from your competition but if you're looking for just cookie-cutter, run-of-the-mill, copycat solutions, then all the products on the market definitely look the same.

You are both right. 90% of the websites on the Internet do look the same. You only have 10% (probably even less) products that are special and noteworthy.
I do webdev and I solve real and unique business problems. The web is just a convenient frontend for our users. Our backend has complicated data processing and solves unique problems. I know you said most and not all but just giving a counter example.
It's not really a counter example because TeMPOraL's claim applied to the majority. Following the resulting advice of using whatever gets the job done quickly (eg copy/paste) will pay off for the vast majority of developers in that space. Your example is a red herring here as the comment just wasn't about the minority doing original stuff.

Good for you that you ended up in one of those positions, though. Probably enjoy your job more. :)

I don't think its the majority outside of Silicon Valley though. I am very far removed from the Valley so the examples given look nothing like I've personally seen anywhere but I can see how that can be the case in the Valley from what I hear/see in the "news."

I've personally never seen anything that can be described as "regurgitating the same CRUD for different customers" in my career as a webdev and certainly not 90%. There is of course wiring standard components together but that's surface level stuff, the guts are not standard components.

That's just my experiences for what it's worth.

And, yes, I'm very blessed to enjoy my job and believe me I don't take that for granted.

Going back in the thread I honestly don't think that reaching for Google and SO as your first impulse will deteriorate your ability to find your own solutions in the long run. Not by itself anyways. If the problem is standard then those are not problems you should be implementing your own solutions for anyways and Google/SO are great for finding answers to standard problems. Copy-pasta is great for syntax and boilerplate code.

If the problem is not standard I learn from Google, I don't just copy-pasta, I look at how other people have solved similar problems and use that as a basis of creating a new solution.

I can see how people who don't want (or can't) think for themselves can fall into the copy-pasta whatever they happen find without truly understanding. In that case Google/SO isn't the problem - it just makes the problem more visible. These people will never be good engineers.

"I don't think its the majority outside of Silicon Valley though. I am very far removed from the Valley so the examples given look nothing like I've personally seen anywhere but I can see how that can be the case in the Valley from what I hear/see in the "news.""

Whereas I hadn't heard of the problem in the Valley as they're always riding one wave or fad after another. The people that report the issues I described are almost exclusively outside the Valley or startup scene mostly working for mid-sized to large companies without much IT innovation. Reading comments on many programming and job sites makes me think they're the majority (or just vocal majority).

Might be different in your area or the types of companies you work for. Most I know in banking, retail, logistics, manufacturing, hospitality, and services firms... a huge chunk of job market... do CRUD style apps and have lots of legacy systems they expand on rather than replace. Lots of boring work.

Does vary by industry, area, and technology stack, though. Interesting to see yours is mostly interesting, custom code instead of throw-together apps many get stuck with. Honestly, though, I think the SO use is less about CRUD than the information overload of various libraries and frameworks where people constantly run into issues due to lack of understanding/experience.

Grabbing quick and easy answers from the Google and SO leaves me more time for the really interesting problems in my experience so far. And it's the really interesting problems that make writing bespoke C/GPU kernels worth the time involved in their creation so double-good, no?

To be fair, sometimes I try to solve problems for an hour or so before going to the Google or SO, and when I find I derived roughly the same approach, I consider it a done-deal that it's probably the right way to solve the problem at hand.

I would love to see a coding interview where the interviewee has access to Google/SO. It's a far more realistic portrayal of their on the job capabilities IMO. It would also force interviewers to come up with more interesting questions.

Disagree. My time is valuable, and I already have enough difficult problems to solve that I'm not interested in creating extra work for myself. If a quick 2-second Google/StackOverflow search reveals the solution to my problem, I'll happily take it and move on.

I don't understand why anyone wouldn't start with that. Pride?

> Use it or lose it

No pain, no gain.

Indeed. Some would call it lazy - I prefer "leveraging the combined knowledge and experience of all humanity".
It depends on the problems you're solving - SO does not help with problems of architecture. For code structuring, staring hard at a sheet of paper or nothingness can absolutely be more effective.
Can't argue with that. Although I do think architecture is where patterns start to be useful - again, relying on pre-existing solutions rather than creating your own.
Of course, but anyone who tries to solve a problem by copying the first piece of code they find on SO without even trying to understand the problem is likely to be similarly ineffective in the long term.
If a business problem can be solved by copy-pasta, then it's a common business problem and copy-pasta hasn't really solved it.
Technical workers solve technical problems not business problems. Upper management folks instead solve business problems. Our job as techies is to model/define the business problem in technical terms and then work on it. That's why they pay us and if some are not competent or proficient enough with their tech tools, that will reflect poorly on the quality of their finished product and copying and pasting won't always save the day for them. Also and this is very important, if they would like to grow professionally, they ought to work on their own and develop their skills organically or fear that they'll be stuck forever in the "apprentice" level for their whole career.
Sorry you are totally wrong here