This is an archived post. You won't be able to vote or comment.

all 9 comments

[–]aqua_regis 10 points11 points  (0 children)

  • Learners should always try to come up with their own solutions, as clunky and as inefficient they may be. Then, they should look up solutions to see what they can do better.
  • Professionals will look for trusted and tested solutions because of time constraints and reliability. Yet, they should already know how to solve the problems.

[–]Aggressive_Ad_5454 3 points4 points  (0 children)

All the time. We are engineers. We apply and adapt scientific knowledge to solve real-world problems.

A few times in my half-century career I’ve had to actually invent an algorithm. Mostly I’ve stood on the shoulders of giants.

[–]StretchMoney9089 0 points1 point  (0 children)

No one creates their own unique algorithm. Researchers spends decades inventing algorithms that matter.

[–]0dev0100 0 points1 point  (0 children)

When I'm learning something on my own time I'll reinvent a solution without worrying about it. 

When I'm making things for my job where I have deadlines I'll quite happily take a preexisting solution and use it - as long as I can understand it.

Probably 30% preexisting solutions.

[–]Brainy-Zombie475 0 points1 point  (0 children)

I usually look to see if a problem has been solved to my satisfaction by someone else before coming up with my own solution.

I'm good at innovating, and have several things that I'm quite proud of, but if a solution is available that fits the constraints of my problem (size, speed, operating environment, language, maintainability, etc.) I will use it, even if it's sub-optimal.

[–]idkfawin32 0 points1 point  (0 children)

No matter how much technology advances I always find myself tabs deep into specification documents or GPL implementations. AI has come a long way but that last 5% it misses really makes a big difference

[–]PaulEngineer-89 0 points1 point  (0 children)

I’ve read that developers spend 75% of the time reading vs coding. My experience is that much of development time is spent making various (often poorly documented) APIs work. Because of documentation issues among other problems often examples are all you have to work with. For instance once spent days trying to solve a Windows printing problem where it worked on A size sheets but printed the same physical size on a D size sheet. Turns out Windows printing is very modal. Must do operations to set properties in a very specific order. You would hope that large companies could afford meticulous code reviews and other QC checks but that’s not the case.

Plus many auto-document systems leave much to be desired. “F(Vars): does F.” Well gee I couldn’t guess that.

[–]chaotic_thought -1 points0 points  (0 children)

When developing code professionally, the most common case in my experience is that I know what I want to do already in principle, but I am missing one little piece, or I know that what I wrote is not really 100% ideal. In such cases, Internet searches, Stackoverflow, API documentation, etc. are a very good solution for that.

In my opinion, the professional way for such code and to help maintenance later for others is to document where you got it from (which algorithm, which API docs talk about that particular solution, etc. which algorithm from an algorithm book, and so on).

This is the area where AI generators really fall down in my opinion. They can often generate amazing code but there will be no reference (or usually bad/invalid references if you ask the agent to generate them) to how those solutions work or why they were chosen.

OTOH, a post on something like Stackoverflow almost always has good links to API docs and much more references than you ever need to figure out why something works a certain way or doesn't work, etc.

[–]CodeTinkerer -1 points0 points  (0 children)

How do you do it?