[ art / civ / cult / cyb / diy / drg / feels / layer / lit / λ / q / r / sci / sec / tech / w / zzz ] archive provided by lainchan.jp

lainchan archive - /λ/ - 16121



File: 1462328612922.png (393.84 KB, 202x300, 1449707431259.png)

No.16121

Do you guys suffer from perfectionism?

Is it a bad or good thing in the programming world?

Of course, a perfectionist programmer will learn much more about programming than an average, not-so-much motivated programmer. But, sometimes I think I spend too much time doing something that could be done in 1 or 2 hours. In the last university project, we had to make a simple Web application with API use. It would not take more than 2 hours to get everything done - you only had to get the json, and format it in css/html. I end up messing around with javascript, angularjs, and did look around about some design patterns for web applications. I spent my whole day on it. As I feel good spending hours in projects(since i hardly start them), I also get fucked up in the other classes that I should study.

Do you guys relate to it too?

related reading and discussions:

https://www.quora.com/Should-software-companies-avoid-perfectionist-programmers
https://mlafeldt.github.io/blog/perfectionism-and-programming/
http://programmers.stackexchange.com/questions/170731/is-perfectionism-a-newbies-friend-or-enemy

  No.16122

>>16121
I've suffered from this feeling a lot, and there's pretty much no way I'd say this is advantageous. All it has done for me is discourage me from starting projects, obsess over irrelevant things and spend unnecessary amounts of time obsessing over pieces of code.

If I could take it away, I definitely would. So much times I've walked away from certain projects because the API/Library wasn't up to my standard. Shitty feeling.

  No.16125

This is a good trait.

It is better to write nothing than to write garbage. I read and think about programming more than I program.

There are plenty of people content to write garbage with a poor understanding of what they're doing.

I can understand web development making someone think they're crazy.

  No.16126

I can't seem to contribute to projects because I end up wanting to rewrite the entire damn project because its not up to my perfectionist standard. I'd say its a huge hinderance.

  No.16128

>>16121
that's not perfectionism, that's just autism. A perfectionist would strive to achieve a program that gets the results desired, as efficiently as possible in as little time as possible. Focusing on optimizing your projects at the expense of studying is the exact opposite of what a perfectionist would do.

  No.16129

>>16121
There's a thin line between self-proclaimed perfectionist and procrastinator.

There's a difference between asking "Did I solve this problem in the best possible way?" and spending the whole day googling design patterns and looking up frameworks that you know you won't need.

  No.16138

I feel that it's better to write a bad program that can be improved if you're a beginner that's starting. Don't start out thinking you should try to make a perfect program every time, it will just make you confused and worry.

  No.16145

It probably depends on the scope of the project.
If you're building a tool to help you archive your reaction images, overengineering it would be pretty damn dumb.
On the other hand, if what you're building is something that's reasonably big and will probably expand in the future, starting out with a good quality is key to making it strong enough to stand the test of time.

  No.16146

>>16145
I've found that larger projects typically need to meet somewhere in the middle. It doesn't make sense to sweat every detail but making a poor design choice in the wrong area can come back to bite you.

In my experience it really pays off to hit the whiteboard before coding up objects, algorithms, templates, etc because once other sections of code are relying on them they aren't easy to modify; if you think through their use cases ahead of time, you can often build them with complete functionality. This is a good place for perfectionism.

On the other hand, when making drivers, interfaces, derived classes, and similar things, you won't do yourself any favors by being meticulous. You'll probably be refactoring it in the future if it's important and if it isn't nothing really suffers. Decide what you think is reasonable and do that.

  No.17249

The field would probably be better if there were more perfectionists than people simply trying to get something done.

  No.17253

>>16121
I'm a total perfectionist with my personal projects, which is probably why I abandon them at such a high rate. In an industry setting I might be a bit sloppier though.

  No.19731

>>16121
>Do you guys suffer from perfectionism?

Yes. I can't even begin to tell you how many times I've trashed thousands of lines
of (working) code because I learned about some better approach to a problem.

I use writing the perfect program as an excuse not to study, too.

  No.19738

Yes. It's a blessing and a curse. Blessing because I've learned a lot through that drive, but a curse because I'm obsessively focused on the perfect approach, and I often spend far too much time thinking about it that would be better spent just jumping into the project: I'm relatively new to programming, I need the experience. Thinking is good, but if you think too much, you'll never get anything done.

Also, you can't actually discover what the perfect approach is until you start to implement. All too often, that "perfect approach" turns out to be a load of soykaf and cat piss, and I have to redesign anyways.

  No.19739

>you only had to get the json, and format it in css/html. I end up messing around with javascript, angularjs, and did look around about some design patterns for web applications. I spent my whole day on it.
There is a huge difference between perfectionism and overengineering, which I think some people in this thread may be missing. If the requirements are fixed and will not change during development (which is the case during most university assessments), then what the OP described is overengineering.

  No.19744

>>19739
Indeed. Thankfully, this has a much easier solution: develop your taste in design further. You will soon be disgusted by any degree of unneeded complexity: Problem solved.

As for how to develop a taste for simplicity, I would recommend reading good code.

Or just, you know, research all the systemd subsystems, and count up all effort that was duplicated, and could have been better used improving presently used systems, or things that didn't need daemons but got one anyways. You'll understand why overengineering is bad pretty fast.

  No.19751

perfection = poverty

this is true in any field, especially in programming

Im a victim of trying to learn programming to fully understand it before I use it...which is impossible, the only way to learn it is to do it

  No.20168

File: 1479126695670.png (418.89 KB, 200x113, fallout-contraptions-5.jpg)

In the last months I've scourged myself with making the perfect factory in Fallout 4: Contraptions according to these premises:

1) Use the foundation from the demolished house in Sanctuary Hills who is to the south-east and make a split-level factory.

2) Use whole glass windows as walls.

3) It should be as automated as possible. No dicking around with loading the machines individually.

One false premise was that the sorters could be turned on and off. If it's off, the goods just pass trough it. But it doesn't. It's mandatory sorting. So I had to rethink everything and I'm happy about it, because the factory won't be as elegant as it in (false) theory could be. But it will be good enough.

  No.20169

>>20168
>split-level factory
Of course I could expand it down the slope and over the river, making it look like a nightmare from M.C. Escher. But I stopped at the walkway by the river. The only thing in the cellar is the reactor hall. Good enough.

  No.20684

>>16121
I also tend to get prematurely caught up in design, which is a bad thing, but on the other hand I am obsessed with handling all errors in a tolerant way, which is a good thing.

  No.20686

"Perfectionism is based on the obsessive belief that if you run carefully enough, hitting each stepping-stone just right, you won't have to die.
The truth is you will die anyway and that a lot of people who aren't even looking at their feet are going to do a whole lot better than you, and have a lot more fun while they're doing it." Anne Lamott

I have the same issue and an earlier anon was right that it is more closely linked with procrastination. A healthier and more productive approach is to let the first attempt come out naturally no matter its flaws. Find out what your work is and isn't. Take some time, gather yourself again and make the next attempt closer to that idea you have in your head.

  No.20706

>>20686
I think taking time is the important part. I've found sometimes I dive in and do a bad job, and spend extra time redoing the entire thing, but this is better than procrastinating on trying to come up with how to do it perfectly the first time, which usually ends up wasting even more time.

  No.20717

>>16125
How do you learn and get better as a perfectionist in this field if you cant start writing at all when starting off? Its good as an experienced person but when starting off as >>16122 said it can really demotivate you.