Live data from Hacker News

Coding is boring, unless

blog.enki.com

31–40 of 158 posts

Re: Coding is boring, unless

#31
I've been programming professionally for 15 years. But I cannot say that I was ever bored programming.

My favorite story about this comes from my first job, in 2000. We were working in C++, and we were turning a program designed to run in one machine into a client-server system, because nobody made machines big enough to run what we needed. The plan to do that involved replacing the old function calls with code that serialized the data, sent it over a wire, deserialized it on the other side, and call the actual function. In essence, a small bit of smart code, surrounded by a lot of boilerplate, slightly different for each function. Months of boredom looming for a team of 5.

But I said: Why do all that serialization and deserialization manually? What If I can just read the headers for the function calls, and generate the code that would run it all? Way too hard, our dev lead said: It'll take us longer to write a code generator that read C++ header files than the months of boredom. I disagreed, and asked for two weeks of my time to show it could be done, with less bugs than if we did it by hand. And then when functions changed, all that we needed to do was add a step to a make file, to regenerate the whole thing. Ultimately he decided it was OK to let me try. After all, nobody expected any real output from the guy right out of school, and failure might teach him to respect his elders.

But it was all done in two weeks, by one person right out of school, because building a lexical analyzer,a parser, and a simple generator is easy. Instead of a team bored for months, we had fun work for two weeks, and then on to better things, without that dev lead.

So if you are doing something long, and slow, and boring, always wonder: Is there a way to just eliminate that entire set of boring tasks? You'll be surprised by how often, the answer is yes.

Re: Coding is boring, unless

#32

> Because 50% of my code (hyperbole intended!) was a direct copy/paste of Stack Overflow. And another 40% was a copy/paste from other scripts. Either my colleagues’ scripts or my own. It became repetitive. And there was little creativity or learning involved. How is this even possible? I've never had a job where copying and pasting code would have helped. It blows my mind every time I read this kind of claim, to the…

I would not be surprised to learn that a codebase is 20-50% made of stuff literally copied from SO (with occasional variable name change). Why? Because most work is not that unique. Rare are the jobs where you're building something new in software; usually it's solving slight variations of the same business problem.

In particular, people copy-paste a lot of JS from SO, and again, it's no surprise. Most of the web development isn't done by superstar sexy rocketship startups on the bleeding edge of Node.js ecosystem - it's done by small companies employing barely competent programmers, and it doesn't require any innovation. It's just taking the same components everybody uses, configuring them in the same way everyone configures, and wiring them together in the same way everyone does.

Re: Coding is boring, unless

#33

Earlier quoted context omitted.

It always amazes me that there are people out there willing to hire and pay full these type of workers who scour SO for answers without working hard on the problem and expanding their knowledge and expertise in the process. No wonder that our field and profession is suffering from bad image and quality problem when so-called pros copy and paste all the time on the job.

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.

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.

Re: Coding is boring, unless

#34
post #18

Earlier quoted context omitted.

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…

> 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.

Re: Coding is boring, unless

#35
post #23

Off topic: I don't know a single feature that would be as annoying as fucking toolbar/header/whatever showing up when you scroll upwards. Why everybody does this?

I agree, although, it’s not as bad in this case. I find it far more annoying on sites where the header is always there, as it breaks page down / spacebar functionality (when you page down, the header will cover some unread text).

Re: Coding is boring, unless

#36
post #23

Off topic: I don't know a single feature that would be as annoying as fucking toolbar/header/whatever showing up when you scroll upwards. Why everybody does this?

Makes sense in Facebook mobile app, where you often actually want to use the toolbar (it lets you create a new post). Elsewhere, I don't know. Probably people copying UX solutions from other people without thinking about whether they're needed.

Re: Coding is boring, unless

#37
> You can rewrite it from scratch, using a different language or technology. This way, you learn something new rather than patching legacy code. And if your architecture doesn’t allow this yet, you can take steps to improve it, and learn some devops skills in the process.

In a professional environment, we develop software not because it's fun, but because it supports the business and/or because it is the business. The primary purpose is to make money and to pay our salary. Now, that doesn't mean that coding can't be exciting or that you're not supposed to have fun. Not at all. But I feel that the author largely fails to see the business perspective. Rewriting things from scratch, adding another language to the overall architecture, using some fancy new technology, etc. are not wise business decisions in /most/ cases. Especially the comment about "using a different language or technology" will lead to a maintenance nightmare in the future ...

Re: Coding is boring, unless

#38

> You can rewrite it from scratch, using a different language or technology. This way, you learn something new rather than patching legacy code. And if your architecture doesn’t allow this yet, you can take steps to improve it, and learn some devops skills in the process. In a professional environment, we develop software not because it's fun, but because it supports the business and/or because it is the business. Th…

It's a wise decision if you care about engineers being engaged and liking their job.

Re: Coding is boring, unless

#39
post #9

I hope that's somebody's living quarters in the photo, and not their office! I've worked at a couple of offices that felt tightly packed, but they were nothing by comparison to that ;) As a long-term proposition, I'd say that table is suitable for no more than 3. (Not sure what official guidelines are, but I'd say you'd need around 150cm x 75cm, or 5' x 2'6", per person. That gives you enough room for keyboard-laptop…

>I hope that's somebody's living quarters in the photo, and not their office! I've worked at a couple of offices that felt tightly packed, but they were nothing by comparison to that ;) That looks like a typical university hackathon to me. Certainly not excusable if it is an office. Thankfully my only workspace (at an internship) had nicely sized desks for everyone, and the company was looking to expand by renting mo…

I've been to the offices that look like that - I always assumed it's a typical startup setup. Frankly, I probably wouldn't last more than a week in such conditions - I don't respond well to sharing personal space with other people for prolonged periods of time.

Re: Coding is boring, unless

#40
post #38

> You can rewrite it from scratch, using a different language or technology. This way, you learn something new rather than patching legacy code. And if your architecture doesn’t allow this yet, you can take steps to improve it, and learn some devops skills in the process. In a professional environment, we develop software not because it's fun, but because it supports the business and/or because it is the business. Th…

It's a wise decision if you care about engineers being engaged and liking their job.

I've seen these types of projects where a few developers just went overboard with all the new frameworks and languages. Two years or so later most of them have moved on and other devs are stuck with technologies that are now considered outdated. Especially in the JS world, that's a real scenario.

I am all for keeping your engineers happy. Heck I am one of them. "Exciting" can mean "better architecture" or "extensible", but I think that adding a new language is always a bad idea.

Post reply on HN