Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Text is linear. Would drawing be an easier method for you to explain something? It often is for me.


You waste your time managing visual presentation (more so than 1D text). Schematic entry used to be commonplace for FPGA and ASIC development in the 90s. The industry has mostly moved to HDLs for digital logic because it is more productive and you get side benefits like revision control, easier reusability, and tooling independence. Anyone promoting 2D visual development for programming is selling snake oil.


I've found the opposite. An approximate quick and dirty visual representation can transport almost instantly the knowledge that writing back and forth for half an hour could never achieve.

When I learn about and talk about a system a visual representation of the flows of data and function calls is playing in my head. I get an overview of the system and what it does. Think "mental model". I "see" that this service calls that service to get that piece of data, which it gets from that database table and it all flows over there to do that and suddenly it all makes sense. I recall those high level flows for a very long time too and I have no idea how I do it. It just happens. I hope my mind keeps doing this for a very long time still.

I can talk about it and it makes perfect sense to me. There are other people at the company usually that share the same knowledge and understanding and if we speak a similar enough language we can communicate well. And then there are people that do not seem to get this level of understanding, even after prolonged periods of working on the same code base. Ever. When you ask them to explain to you how the systems and modules interact, they can't.

And then you draw some simple graphs of this service and that service, and this database here etc. and it finally clicks for them. They could not synthesize this from code or written text. They only ever saw the local view of the module they worked in. Overall, more abstract flow of information and modules was lost to them. You have to actually visualize it for them.

Note that I am not talking about "visual programming" as in drawing UML like diagrams and such to actually program. It's purely about showing data flow and call stack and such. Usually I don't need to draw this for myself as my head does it for me and it works really well with statically typed languages without any magic going on where I can just have the IDE navigate to exactly the right places, find all the code references quickly and accurately etc. One time (a looong time ago) I actually threw together a quick script to generate a graphviz file for the call graph of some system based on some proprietary database's stored procedures that I had to quickly come up to speed with and that nobody was there to explain to me. I think it printed out to like 15 pages that I taped up on the wall next to me just to make sense of it. No IDE support to click through from one procedure to the other.


We're not talking about programming here but explaining a concept.


Indeed! And even then drawing can help with the programming!

Discussing code for linked lists for example, having the box and pointer notation for what happens and scenarios very helpful!

[1]<->[2]<->[3] to [1]<->[3] means changing [1]'s and [3]'s pointers and freeing [2]


I'd have said those are very, very similar things, if not I fact the same.

Granted, code requires far more details than many conceptual explanations, but it is still one.


Not really. But I’m glad you asked!

Google “crazy conspiracy board meme” and you’ll have a good analogy for what’s happening. If I start writing it down, things randomly disappear from board. Which requires me to look at the gaps and fill in the blanks.

You can imagine what this looks like from the outside. My dad has interrupted me so many times with “get to the point” and the only response I have is “working on it.”

The funny thing is… I’m an author and prefer to work with text.


Yeah, for mind map style note taking I use hierarchical bullet lists. It's the same topology (if there are no cycles) without having to worry about layouts, and you can have both hands on the keyboard. I go up and down a lot and move blocks around.


Yup. I'll break out my eink tablet, write bullet points, and make liberal use of the selection tool. (Text editing requires too many operations.)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: