4 ms·
Currently I'm learning C taking notes using Numbers (iWork) alongside OminiGraffle. I like to create visual diagrams of complicated things, and then dump them i
by dgallagher 16y ago
Currently I'm learning C taking notes using Numbers (iWork) alongside OminiGraffle. I like to create visual diagrams of complicated things, and then dump them into Numbers alongside text. Actually making the diagrams is the best part, because it helps imprint the info into my brain, and it's more fun than simply taking notes all the time. Here are a few diagrams I made recently:
http://www.dave-gallagher.net/coding/CDoublyLinkedList.jpg http://www.dave-gallagher.net/coding/CDoublyLinkedList.jpg
http://www.dave-gallagher.net/coding/CSwitchStatement.jpg http://www.dave-gallagher.net/coding/CSwitchStatement.jpg
http://www.dave-gallagher.net/coding/CTypeAbbreviation.jpg http://www.dave-gallagher.net/coding/CTypeAbbreviation.jpg
My goal currently is to create a single Numbers document (like a cheat sheet you could take into exams during college), detailing everything that I need to know in C, and/or things that tend to confuse me. It's a living document, being iterated constantly.
- mahmud 16y agoWith programming, it might be best to pause for a minute and "convince" yourself by writing your own examples. If the text book says "array elements are stored in contiguous memory", pause for a second and write a snippet that iterates over an array and prints out their memory addresses. Now, was that a static or dynamic array? if it was static, how do the pointer addresses change if you created the array in the body of a function vs as a global variable? how do the pointers change if you change the array type from int to long to character? This is the same "convince yourself" techniques that one uses to teach themselves mathematics. Math books are usually terse and require a lot of active participation in one's mind.
- jules 16y agoThese diagrams look very good. So good in fact that it would take more time to make them than to completely memorize their content?
- adbge 16y agoFor some (myself included), visualizing something is part of memorization. I find constructing diagrams of a system really helps me just get how it works. So, the OP is probably memorizing the content of the diagram through creating it.
- dgallagher 16y agoExactly. The actual creation process helps with memorization considerably. If someone just handed the diagram to me, I'd have a much harder time understanding it. An untested theory of mine is that this would not be the case if the diagram was more entertaining. If walking through it told a story, possibly in comic-form, maybe with animation, you might have a better chance of grasping it. TV networks do this all the time with animations, most recently with the BP oil spill, showing how it was going to be capped. FYI you can do the same with pencil/paper. There's no real need to use OmniGraffle/Visio/Photoshop/Whatever (asides from the advantages of having it on a computer).
- AustinBlues 16y agoIMHO, note taking is effective because it incorporates 2 or 3 of the common learning modes: seeing (visual), doing (kinesthetic), and if from a talk, hearing (aural). Generally this is enough to get something in my brain. I rarely need to look at the notes unless they are meeting notes and there is disagreement. For skills, e.g. differential calculus and programming, doing sample problems is especially important.
- AdamGibbins 16y agoThey are indeed very nice. Does anyone know an application for Linux or Windows (via VM) that is able to create such nice diagrams? I could really benefit from a tool like this but Linux seems to be lacking in this department unfortunately.
- maguay 16y agoVisio is one of the most common apps for Windows that makes similar diagrams, but I really like http://www.gliffy.com http://www.gliffy.com and http://www.mindmeister.com http://www.mindmeister.com. Both are webapps and would work equally good on Windows, Mac OS, or Linux.