My grandfather is a retired electrical engineer who used to plan out and record progression on all his projects. He has boxes filled with his old notebooks. Is this just an old school take on project management and source control? Or do people find benefit in actual note taking during their projects? I've worked with dozens of programmers through out the years and I don't think I've ever seen someone approach it this way. I (briefly) attended one of the top IT schools, and outside of scratching pseudo code down on a napkin I don't recall it being practiced there either.
Capturing ideas and visualizing your problems is something they don't teach you in IT school. Over my career I've leaned that an on-hand notebook is way more useful than carrying a laptop around. I can sketch out ideas, graph out signals, and do dozens of other things quickly and silently. It's a lot less intrusive in meetings. Plus, you can doodle.
I've used everything from pocket steno books to college spiral notebooks. Moleskines are nice, but way too expensive.
My current go-to notebook is a college notebook I picked up in Germany for a couple of Euro. It's the right size (not a toy steno book and not a massive 8x10 binder). Side-spiral bound is critical, you can fold it open on a desk without taking up twice the space. Grid paper is killer for mapping out things out. A nice touch is the microperfed edges.
Looks like they're on Amazon but in packs of 5. Still, not a bad deal:
https://www.amazon.co.uk/Landre-100050630-Wood-Free-Perforat...
Do you know if there are any US suppliers for yours?
This might a be a good compromise. I should go to my local Blick and check this one out:
http://www.dickblick.com/items/77825-1310/
The only thing I've ever had from the US that came close was a 5x7" JournalBooks 91340 that Freescale gave me as a promotional giveaway. It's a little larger, but had a durable plastic cover and a pen holder which was pretty sweet. It seems you can only order these in bulk as a custom-branded item. Perhaps someone enterprising could kickstart up 100 orders and do a foil-embossed HN-branded cover for people to purchase. I guess HN needs a logo, too. =)
https://www.journalbooks.com/products/24-hour/24-hour-journa...
I do translate my notes as I work through the problems and put them in a tool like OneNote or Evernote etc. But I always start off with sketches and notes in a notebook. My bet is if you looked at the pattern of those who use notebooks vs those who don't, you'd find those of us using notebooks still skew to an older average age. 40ish+ likely.
Personally, I also jot down pseudo code on paper to get my thoughts right before starting to code the problem. This lets me get my thoughts straight before coding it and I find I make fewer mistakes, plus I am faster when I do this. It is also one of the reasons I dislike coding interviews where someone wants you to just start writing code in the IDE. I don't do that well, because to me the process is, understand the problem, design the solution, engineer the solution, then start coding.
When I am trying to solve a problem, I write the problem down first, then move into breaking it down in a process. I define the actors involved, the expected input and the expected output and any error conditions that I identify. Then from there I generate a simple hand written flow chart (not fancy) that will serve as a happy path through the problem.
When I get to the engineering of the problem that is where I start identifying parameter limits, error conditions, output limits and then generally write down some pseudo code to give me something to look at, sometimes that means flushing out a more complete flow diagram first. And I generally use just natural language, as none of what I am writing down is real code, although I may use abbreviations or C syntax at times to express something if it is easier. For example, I use the conditional ? : quite often for simple flow control statements just because it is compact to write, even though in code I may not use that operator in that instance.
Step 1: get 3"x5" (~8cm x 12cm) index cards. They can be ruled, gridded, blank, colored, whatever. Step 2: Get a binder clip. Step 3: Clip the cards together.
It's pretty easy to get index card storage bins, and it's convenient to take around a little stack in your pocket. If you have a lot of cards, a rubber band works almost better than a clip, but it works better with fewer cards. There's a lot of templates you can print onto cards, but I usually just use gridded / blank cards for code ideas. An added bonus is, you can rearrange cards with different functions to help structure out code ideas. Or you can print out code, cut out relevant bits, and glue them onto cards.
I tend to manage task lists/todos, mind mapping, and pseudo-code on cards. Very handy on long bus rides.
I don't have boxes of notebooks, but I do have couple of small shelves filled with years of notebooks. From time to time I like to go through that stuff - it's actually very interesting to see your though process from years ago. Besides notebooks I have small binder filled with hundreds of post it notes for projects which I store.
Overall I vastly prefer handwritten notes for projects than some kind of digital notes. It's easy to open page for the recent feature, easy to see what you have in mind, how something should be done or what should be considered. ON the same page I could have multiple "data structures": reminders, lists, summaries and descriptions which easily show state of the progress for project/feature.
I very much like Moleskin-type notepads with dot-grids with around 100 pages. I have 2 notepads - one for work and one for personal projects.
My job is half hardware/firmware so I put a lot of meeting notes, specs, and calculations in it.
That's why I use blank gridded A4 paper sheet. Then I put together project related notes. If a project starts to be big enough, it will naturally lead to a pack of papers that I can carry along. Otherwise the project can kind of fade away be laying around or being mixed with other sheets.
I mainly draw application architecture and app screens. I also tend to note in natural language problem related to those. So this is design notes. For technical notes about deployment for example, I use One Note.
I've been going back and forth lately between keeping notes in a Markdown file on a shared drive and using my notebook. The Markdown file is much better for searching and ease of access (I'm on 4 or 5 different computers around the office during a week), but for some unknown reason I keep going back to pencil and paper to sketch things out. When I had to do some light mathematical derivations it was all on paper though.
http://lifehacker.com/five-best-paper-notebooks-1157038442
I usually keep notebooks, but I am ever more convinced of using one because of Rich hickey's talk: https://youtu.be/f84n5oFoZBc
and we have a better chance of remembering something if we write than type. http://lifehacker.com/5738093/why-you-learn-more-effectively....
I have previously read that people like Martin Gardner had an awesome system of keeping notes. I would love to know more about your tips.
How do keep your notes? How do you organize stuff, while retaining the freedom to doodle. How do you find stuff again(which is the killer feature for typed notes). Would love to learn from the masters - do you have any books to recommend?
Early in a project I use a pre-punched pad and file the pages into a ring binder, under categories, topics. Once the project is well underway, I tend to use those pages to write up the detailed documentation in files which are stored in the same directory hierarchy as the source and other files.
But about 3 years ago, I bought a Samsung Galaxy note 8.0. Because it has a pen.
I had the original iPad, and a stylus, but you either try to write with your finger (no good) or use a stylus (write holding someone else's finger) and it sucked big time.
But with the Note, and actually the stock S-Note app, I had everything I needed - nice size, pressure sensitive pen - plus extra benefits: I like to diagram out stuff, draw circles and squares and link between them, and the old version of S-Note has a great feature where I can draw a crappy circle, and it will automagically turn it into a perfect circle. Same deal with squares and lines.
So now I use it exclusively, have my ~200 notebooks backed up in various places, native form, image and pdf.
Shame though, it looks like it is going to be EOL'd. I am seriously considering buying a bunch of spare parts to mke sure that I can keep mine running for a while.
But to sum up: best of both worlds - like writing on paper, but with the convenience of all that is digital.
Discard pieces of paper when done, or file them (or scan/photo) when need to retain. Can discard in groups, creating small folders, clipped together with other bull-clips.
A never-ending, revolving notebook.
At home, I've always used large, letter-sized books of drawing paper. I have about 10 of these filled with diagrams and notes, mostly for 3D engines and games I've worked on in the last 15 years.
I couldn't imagine life without it.
Do you start off with a todo list for you projects? Or do you use something like trello for that?
For me, most of my projects aren't large projects. They're lots of little ones. Bug fixes, feature add-ons, website extensions... those kind of things. I can be juggling 20-30 "projects" through-out the year and only need 1-4 pages for each one. Whenever I tried to keep a notebook I quickly get un-organized and lose energy for keeping it up.
I'm starting to think a 3 ring binder might fit my needs better. Do you ever use one of those?
Notebook / Notepad: I've started transitioning away from notepads because loose sheets of paper aren't very good for long-term documentation. They are good for meetings and mocking something up, however, so I keep my notepad around for that, while I use a line-grid moleskine to document procedures / math that I am currently working through. This is mostly for long-form documentation, or working through ideas on paper first. I wouldn't suggest managing tasks via a notebook, it becomes too cumbersome and you may not always have your notebook on you when you need to check a todo (in an impromptu meeting, or if you think of something at the grocery store, etc).
Trello: This helps break down tasks and organizes which tasks / todos are left. Think of it more as project management, and don't try to document the world in Trello. Of course, whenever I do an expense claim I take pictures of the receipts and store them in trello in case I need to look them up again, but otherwise I don't store too much outside of basic tasks / todos. My only personal gripe is that Trello doesn't really offer Bitbucket integration (only Github), so referencing my Bitbucket issues on project boards can be somewhat tiresome. But specific features, issues, and tasks from Bitbucket projects do make it on Trello, and I move / archive / delete tasks based on how things end up getting implemented. Usually if I delete or archive a task, I leave a short comment (e.g. deleted in favour of doing X, or resolved via issue #Y on Bitbucket, with any specifics for that issue put into the issue tracker).
I've been trying my best to quantify things into tasks and just throw them on Trello, rather than have things scattered between my email inbox, Bitbucket issues, etc, that I'm currently working on. As for indices / an index, I don't really find it necessary. Most of the long-form stuff I care about is in my "current" notebook, and I can more or less figure out where other documentation is if I need to find it.
http://www.bookfactory.com/special_info/engr_notebook_guidel...
I used to always buy Moleskine notebooks but have switched to Forestry Suppliers #49352 field book. It is a combo of ruled and graph paper and intended for surveyors, but it is a nice mix for developing software as well.
I usually don't need to refer to those notes for more than a few days after I write them, so it's usually not much more than an archive of thoughts.
I try to digitize some of it, but I don't do that enough.
Any ideas about how to organize notes?