News for hackers. Stuff that matters.
Re:Kim Jung Gi has died by thevagrant on Thursday October 06, 2022 @06:35AM (#33106615)
It reminds me of Nikola Tesla, "Before I put a sketch on paper, the whole idea is worked out mentally. In my mind I change the construction, make improvements, and even operate the device. Without ever having drawn a sketch I can give the measurements of all parts to workmen, and when completed all these parts will fit, just as certainly as though I had made the actual drawings. It is immaterial to me whether I run my machine in my mind or test it in my shop."
Re:Kim Jung Gi has died by jhugo on Thursday October 06, 2022 @08:03AM (#33107144)
Huh. This is the first time I read this quote, but it resonates so well. Does anyone else program this way? I usually sit for a while thinking about the problem, write the program mentally, try out edge cases, sometimes rework the program a few times, then once I feel it's correct I type out all the code, with that phase taking much less time than the "mental work". I'd estimate my usual process is about 90% thought, 10% typing. Anecdotally, from some teams I've worked in, people often find this process quite strange.
Re:Kim Jung Gi has died by bovermyer on Thursday October 06, 2022 @08:36AM (#33107469)
I'm the complete opposite. I'll think about the issue a little, but I'll just hack on it until it looks (and performs) right. Lots and lots of trial and error.

I draw the same way. My sketches are tons and tons of lines in the wrong places that somehow end up looking right, because the majority of the lines are near to or in the right places.

Re:Kim Jung Gi has died by roflyear on Thursday October 06, 2022 @09:01AM (#33107677)
I have coded with a lot of people like this, and I think it is absolutely a fine way to approach things, and can even be good, but one piece of advice I always tell them:

The job has only started when it is working. That doesn't mean you're done! :)

Re:Kim Jung Gi has died by ryukafalz on Thursday October 06, 2022 @10:21AM (#33108516)
This is how I often program as well. I’ve realized that when you do this it’s crucial to have lots of tests to validate the program’s behavior, because it can easily look right and mostly run right without actually being correct.
Re:Kim Jung Gi has died by lioeters on Thursday October 06, 2022 @01:19PM (#33111105)
Yeah, I'm the same way. I never sit and think a long time - I prefer to think by doing, to externalize my thoughts so I can move it around, change things, see the thinking process in front of me as code and observable bahevior. Then I just keep shaping it until it becomes what I envisioned at the start. But then, where did that "vision" come from? Thinking over a long time, usually days and weeks, sometimes years.
Re:Kim Jung Gi has died by mromanuk on Thursday October 06, 2022 @02:23PM (#33112008)
Yes, knowing every detail of what I'm doing would bore me to death. I would rather "not know" and be amazed when the finished product, whether it be a loaf of bread, an application, or a sketch, emerge.
Re:Kim Jung Gi has died by Vaslo on Thursday October 06, 2022 @04:42PM (#33113825)
Same - I can see the beginning and a partial end, but I find most of my ideas and inspiration occur once I get into it, and i can never see the final process to get there - it happens as I go.
Re:Kim Jung Gi has died by thevagrant on Thursday October 06, 2022 @08:27AM (#33107369)
The quote from Kim Jong Gi reminded me of the quote from Tesla (as well as other notes I've read) because it seems to indicate that they can visualize at extremely high detail and do this at very high speed... while also accurately retaining the information for use later.
Re:Kim Jung Gi has died by roflyear on Thursday October 06, 2022 @09:00AM (#33107671)
It isn't strange, but I've found that writing code as I'm thinking helps me think about the problem.

Also, the domain is so large in programming, it is impossible for me to contextualize the entire set of edge cases. From remembering what exceptions to handle to library interactions, types, etc.. returned from various methods, it is just not really possible to think about even a small system this way (as in a system with 4-5 methods that perform real logic beyond "format this"

But, yeah - definitely large picture before I start to code. "Huh, yeah that calls that... ok.." but once I need to solve a problem "oh, this queue needs to be maintained this way... I need to compare these values against these values, oh, I need a second queue... I need to take this lock... oh this returns this type, which needs to be serialized so I need to figure that out..." - all of that stuff needs to be hashed out in a combination of paper & code. No way I can hold that in my head.

Re:Kim Jung Gi has died by eduction on Thursday October 06, 2022 @09:47AM (#33108109)
I find this the most effective way to do things as well, although at times I lack energy to do it properly, and end up banging away on the keyboard before I’ve properly thought things through (spending more net energy than if I’d done it properly, by the time I’m done).

Reminds me of Rich Hickey’s Hammock Driven Development https://github.com/matthiasn/talk-transcripts/blob/master/Hi...

Re:Kim Jung Gi has died by spookybones on Thursday October 06, 2022 @10:04AM (#33108283)
Some writers work this way, mostly famously George Simenon, who was possibly the most prolific writer ever.
Re:Kim Jung Gi has died by zimpenfish on Thursday October 06, 2022 @10:21AM (#33108514)
Corin Tellado's 4000 romance novels[1] would like a word. For reference, Simenon would be between Asimov and Stine on this list, I think.

[1] https://thebookslist.com/most-prolific-authors/

Re:Kim Jung Gi has died by dzamo_norton on Friday October 07, 2022 @03:50PM (#33126104)
It's hard not to think that's a team writing secretly under an individual name.
Re:Kim Jung Gi has died by zimpenfish on Friday October 07, 2022 @05:01PM (#33126799)
Going off [1] and [2], it seems like she was definitely a lone writer but it also sounds like a lot of them were 75-100 pages - "[in 1962, Bruguera] offered her a contract to deliver a 76-page novel every week. This she did until Bruguera's collapse in 1985" which makes 23 years of 52 novels or about 1200.

[1] https://www.theguardian.com/books/2009/may/04/obituary-corin... [2] https://en.wikipedia.org/wiki/Cor%C3%ADn_Tellado

Re:Kim Jung Gi has died by qikInNdOutReply on Thursday October 06, 2022 @10:49AM (#33108912)
Well, its a comfy way to make water tight state machines? Is that the question?
Re:Kim Jung Gi has died by sjostrom7 on Thursday October 06, 2022 @11:55AM (#33109888)
It depends. If it's an interesting problem I have to work on, but I can't right away, I think about it as I'm going about my day. Driving, cooking dinner, rotting in a meeting. Then by the time I get to finally do it, it's close to a fully-formed solution.

If it's a problem that I have to address right now, it's more like prototyping the first idea that comes to mind and then debugging and refining and being more critical.

Re:Kim Jung Gi has died by soogwoog on Thursday October 06, 2022 @03:59PM (#33113267)
Takes way too much RAM for my ADHD brain. If I work like that, solid concepts slip out of my grasp and I have to work them out all over again. Without writing things down, I miss obvious and important problems. Very envious of people who can maintain a large system in their head.
Re:Kim Jung Gi has died by echelon on Thursday October 06, 2022 @05:45PM (#33114497)
ADHD forces depth first search ("hyper focus") with a time penalty to avoid sinking too much into one effort. It's just a different search algorithm that will explore the problem landscape differently.
Re:Kim Jung Gi has died by extragood on Thursday October 06, 2022 @06:02PM (#33114673)
Kinda along those lines. What works best for me is to start with high level comments in plain English after thinking about what I'm trying to achieve for a bit. Then I make a skeleton of all the methods and classes that that will require. Then I'll comment each method (if not trivial) in plain English and only then actually begin development. The development phase seems to go by pretty quickly that way.

And as another plus, that makes my code very readable for others. I leave the comments in.

Re:Kim Jung Gi has died by stefs on Friday October 07, 2022 @06:17AM (#33119383)
> UTF-8 was designed, in front of my eyes, on a placemat in a New Jersey diner one night in September or so 1992.

https://www.cl.cam.ac.uk/~mgk25/ucs/utf-8-history.txt

Re:Kim Jung Gi has died by MonkeyClub on Friday October 07, 2022 @09:59AM (#33121407)
Couple of nights ago I just sat and wrote out a small addition to a personal project.

Must have been less than 150 lines of C, but it was written in one go, compiled without warnings, and ran as expected.

Not even a forgotten comma, or an off-by-one.

I just sat there for five minutes enjoying the feeling of raw rarity.

Re:Kim Jung Gi has died by logicalmonster on Thursday October 06, 2022 @09:59AM (#33108226)
I've read anecdotes about genius programmers who just sit around playing videogames or watching movies for a bit while they work out the details of complicated problems in their heads and then just finish up and start typing out the right solution in one shot.
Re:Kim Jung Gi has died by lloeki on Thursday October 06, 2022 @12:32PM (#33110428)
Also reminds me of Feynman, who Fixes Radio By Thinking!
Re:Kim Jung Gi has died by hbosch on Thursday October 06, 2022 @12:58PM (#33110849)
I often operate this way, that I design and build and run or use constructions in my mind before I feel comfortable committing to sitting down at the computer and making it, or sketching it. I've been made aware, recently, that some people can't picture things in their mind, rotate them, apply physics to them, etc.

One thing about working this way is it's very frustrating to people who operate by documenting in real time, in something like org or Notion. I am not a note taker and I never really have been. I actually find my thinking gets cloudier when I try to document something I personally find "intuitive".

One example of this clash of styles was recently with a manager where he asked me, directly, how could I know how to design something if I hadn't written out the structure yet? How would I know to build space for a feature if I hadn't documented all the features that were required? I told him the requirements should be known, already, by anyone who was thinking about this problem... that for instance anyone who bothers to even imagine a "Create" action would automatically, symmetrically, imagine a "Delete" action and budget for that. He didn't agree and made me write it out anyway.

Re:Kim Jung Gi has died by groby_b on Thursday October 06, 2022 @01:11PM (#33110993)
Good on your manager. Beliefs of personal infallibility are vastly overrated.

Sure, some things come in pairs. Some requirements are immutable and obvious. That's not the interesting part of a design, and if that's all it lists, then yes, you can probably skip writing a ton of detail. (Although current and future team mates are usually appreciative of knowing how something was designed, instead of just having to read the code - it makes it easier to distinguish mistake from intent)

But the meat of a design is in the trade-offs you made, in the choices that could reasonably go several ways. And no, for any reasonably complex system, you can't hold all of those in your head. And worse, if it's a trade-off, your weights may be wrong - your work is part of a larger effort, and you might miss constraints that seem "outside your area" but play into it.