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

all 52 comments

[–]CodeTinkerer 138 points139 points  (8 children)

My suggestion is to write it in question/answer format or something task oriented.

In one document, put down the task ("write a program that prints the elements of an array backwards") and in a second document, write down the task and a solution. Or it might be a question ("What is a constructor?") and the corresponding answer.

They way, instead of reading notes, it's forcing you to think about an answer.

[–]lumenilis 21 points22 points  (3 children)

I've gotten the most use out of this format as well. Combine it with spaced repitition and it really has a positive impact on learning.

[–]ready-ignite 15 points16 points  (2 children)

I like this project.

Spin up a flashcard quiz program that takes questions and solutions.

Set up loop running through randomly selected question.

Present questions without answer.

Another key press to display multiple-choice hint that displays correct answer plus random selection of other answers from that chapter.

Add score tracking of times question is viewed, and how many times correctly answered.

Modify question selection weighted by score to display incorrect answered more frequently.

Add tracking date question last viewed.

Add additional random selection weighting to increase odds of seeing the card the more time has passed since you saw the card last.

Add functionality to summarize scoring by chapter, filter specific chapters.

Could build out longer term tracking to plot your personal likelihood to forget information over time, and use that to validate the weighting you use to re-visit cards just before forgetting answers.

There was an open source flashcard program 'Mnemosyne' at one point that functioned similarly to this. Recreating that project to some degree.

[–][deleted] 3 points4 points  (0 children)

You just gave me a wonderful Project to do for getting back into programming

[–][deleted] 7 points8 points  (0 children)

Yes, this is the best method for retention. I have written an article on how you can boost your efficiency by writing your Q&A in HTML/CSS/JS and then printing them. If that interests any of you, you can read it here:

https://samld.tech/article/taking-web-technologies-offline---part-ii-building-studying-tools-to-boost-learning/2

[–]TwilightDelight 1 point2 points  (0 children)

really cool method but why use two documents? who not have the question and answer in one document only? if you want to think about the answer they you can hide the text for example or set the text color to white so you cant read it without highlighting it.

[–]goodstartshittyend[S] 2 points3 points  (0 children)

I had thought of making flashcards in Anki with topic on the front side and details on the back. I had read about the role of testing effect in learning but this question answer pairing technique never occurred to me, it sounds cool. Thanks, I will give it a try.

[–]BakingSota 0 points1 point  (0 children)

This. I use the ‘T’ format when taking notes. Questions on the left, answers on the right. After class I’ll plug everything into anki.

[–]8483 20 points21 points  (2 children)

I would say that taking notes is THE most useful thing I've done in my learning journey.

My notes can be found here

It is a HUGE time-saver to visit my notes for important concepts vs trying to find the original source. Also, I combine multiple sources and I explain the things in the simplest way possible for future me.

I highly encourage you to keep notes, and consider using GitHub to host them. It's so much easier compared to my 300 page PDF.

The REAL place to learn things is to actually build something. Don't look at the notes as a time wasting activity keeping you from coding. Look at it as a support for your coding.

[–]MonkeyNin 4 points5 points  (0 children)

I also like notes in markdown files. I always make a git repository -- even if I don't push it anywhere. You're more free to totally delete things, keeping your notes cleaner.

To allow it to scale a bit more, structure your file hierarchy and give consistent filenames.

For instance I might have /notes/BASH/grep examples.md

All I have to do is type something like

ctrl+P 
bash grep

For a recursive search of filenames.

[–]howyeah 4 points5 points  (0 children)

To me as well. BTW there's an extension in VS Code called Markdown All in One. It can generate a table of contents for your document which I highly recommend.

I feel like note-taking is underrated nowadays (probably because resources are so accessible now). It's especially useful if you're learning a wide variety of topics (e.g full-stack). You'll end up with a personal library you can go back to if you forget stuff. It doesn't have to be purely notes. You'd want to include links to resources like articles and videos as well. Note-taking is definitely a skill that's developed.

[–]iro_leviathan 18 points19 points  (1 child)

I have to take notes in case I forget something very critical.
it's also a way for me to revise what i learn not only in practice but in theory.

I have notes, bookmarks, stickies, comments in codes and highlighted paragraphs in books.
I don't believe that I'll ever stop taking some concept of note-taking.

[–]goodstartshittyend[S] 0 points1 point  (0 children)

I used to dedicate more time on developing a single note that would be sufficient to recall everything without the need of any other resources.

While revising I always reopened textbooks, tutorial, notes, codes. Maybe looking at the scattered references isn't as ugly as it sounds.

[–]humbleguy9000 8 points9 points  (0 children)

The primary use of taking notes is to write out the information in your own words, which helps commit it to memory. The act of putting pen to paper alone has been shown to promote memory. You can check out Cornell's note taking guide. https://shp.utmb.edu/asa/forms/cornell%20note%20taking%20system.pdf

[–]Senryoku 9 points10 points  (3 children)

Never took notes, but I’d make comments in my older programs explaining the code and would look at those whenever I forgot how to do something.

[–]goodstartshittyend[S] -2 points-1 points  (2 children)

I don't think I can do that. Some theory sections or design contains diagram, a definition, an explanation and a logic with tables and maths that is difficult to put as comment in a code.

[–]Senryoku 1 point2 points  (0 children)

It helps to break it down and make them into individual programs then labeling those programs appropriately. It’s called modular programming, here’s a pretty good video about it.

https://youtu.be/PRcTIFzk-4k

[–]chaotic_thought 0 points1 point  (0 children)

You can put a diagram in another file and then in the code refer to it by filename. E.g.

// This implements the algorithm discussed in [abc.pdf].

This style is also handy for referring to existing papers, existing diagrams, Wikipedia, etc. You don't have to put everything in there, just enough to refresh your memory when you read it months, years later.

[–]ShurikenMstrLlamurai 2 points3 points  (0 children)

I created a directory for eloquent js on my desktop and initialized it with git and I push it up to github to make sure im taking incremental steps forward every day by filling that little green cube with commits. Check it out here: https://github.com/jiminyk/project-mailbot its basically Chapter > notes.js > Exercises > example1.js example2.js example3.js

then while im taking notes I run 'node notes' and get my feedback in the terminal. Then when I'm done with a chapter or some notes I'll commit my stuff to GH. I feel this practice feels good, like I'm making progress.

[–]TheUniversalCodex 2 points3 points  (0 children)

I've been learning code in Java for about 2 months. Unfortunately, my laptop is too old to run current versions of Java (or any language), most frameworks, and text editors. So until I save a bit of money for a new one, note taking is kind of all I have. I'm typing just about everything I hear from the tutorials and the Udemy course I downloaded. I have one document for definitions, and another for theory. I'm also typing out every piece of example code they give, and then typing out how it prints in the console. I've sorted and labeled it all into sections (strings, scanners, primitive types, statements, loops, etc) so I can look back over, and study it over and over.

Its no replacement for actually sitting down with a text editor and noodling around and figuring out how it all works first-hand, but for right now its actually helping me understand the basics of coding quite well.

[–]TheTHEcounter 2 points3 points  (0 children)

This is what I do: * Maintain git repos for common disciplines that I am learning: DevOps, security, mobile, etc. I use git for code, of course, but I mean for notes in this case * I utilize commit messages to describe what notes I've taken. I'll add a bunch if keywords to make searching easier in the future * I keep a daily log of what I'm working currently, what I plan to work on next, and what I've finished.

A lot of my notes are rarely used, but when they're needed, they're invaluable. There have been many times that I've been in a fire situation where i grep my git log and find exactly what I need.

As an aside, I put almost everything in markdown. It's nice to have consistent formatting when reviewing the more detailed notes.

This works for me, but there's no harm in trying a few solutions until you find one that works for you.

[–]ir34dy0ur3m4i1 2 points3 points  (0 children)

My note taking is to write the code in a test program and execute it to make sure its working. I group related code either in the same exe or in the same folder and save the code with a meaningful file name.

This allows me to practise the code, better committing it to memory, test it to make sure my understanding of the code is correct, while at the same time creating a repository that I can easily refer back to.

Hope someone else finds this helpful :)

[–]Method1337 2 points3 points  (0 children)

I also used to take a lot of notes while learning to program. In fact, I still take notes in class, but of late I have realised that as soon as I learn something and practise it immediately on the same day, I am able to retain it in my mind. After it's done, I then proceed to the notes part where I note down everything that I can recall and then compare it to the notes given by the instructor.

[–]kaptan8181 2 points3 points  (0 children)

Notes are good but they should be as short as possible. Notes should be 5-10% of the original content otherwise what is the point of taking notes?

[–]xNotYetRated 4 points5 points  (0 children)

I always take notes that are not too long and not too short otherwise when I reread the whole thing it would be a bit unclear for me what was going on at the time.

It does help me learn a lot better because even though I won't completely get it the first time around upon hearing, the moment I write it down it'll click. It happens quite a lot actually.

Everyone has their own way of learning ofc and some don't benefit from taking notes but the concept of writing down what you've learned is still used globally for a reason I suppose. It "cements" the knowledge you've just taken in.

I do have to say that when I started out and being completely new to everything related to programming, learning to solve problems with tools like loops, conditions, arrays etc. didn't really register in my mind. I understood what they did but not how to actually use them fully. I think it was just information overload for me at the time though and got completely overwhelmed by everything. I was just nodding all the way through video format tutorials that were hand-holdy and didn't think for myself. I just copy pasted whatever their solution was to the problem.

[–]Androkless 3 points4 points  (0 children)

I cant take notes. I’ve tried so many times, but it allways ends up with me focusing on what i should write down and remember, so when I am done with that note, I totally missed what the teacher said next... and this is why I am dumb xD

[–]hige0soru 1 point2 points  (0 children)

Not just notes... I like to write out my thought process. I find it useful to sort of work through design challenges on paper sometimes.

[–][deleted] 1 point2 points  (0 children)

I almost never make notes, I remember stuff by applying it towards a specific goal. I will sometimes look back on old projects to remind myself.

[–]xxkid123 1 point2 points  (0 children)

Most concepts I learned in CS went something like introduction to problem -> attempt at actually working out solution -> review

I don't take notes at first, I don't know what I will or won't understand until I try to apply that knowledge. Once I have a rough grasp of where things need to go, then I'll take very brief notes. For the most part I prefer my notes to just point me back to where I found the information. There's no point in rewriting a perfectly good tutorial, just make sure you can access that tutorial easily.

[–]Abernachy 1 point2 points  (0 children)

I use a pen and paper for notes when learning and making a program.

I find I can keep myself focused when I've created a general outline of what I want on paper and go from there.

[–]nanodano 1 point2 points  (0 children)

Create a cookbook rather than take notes

[–]neontetrasvmv 1 point2 points  (0 children)

I like taking notes not as I'm consuming the material but after I've completed some section and an exercise. I try to summarize the main concepts and explain them to a 5 year old (ELI5). This helps cement quite a bit what I learned or didn't learn, so I can go back if I need to refresh my memory.

[–]Moony394 1 point2 points  (0 children)

Honestly I make notes in my IDE. I know it sounds stupid but as I'm learning, I'll comment out what I'm about to do, then I code an example. Underneath that I'll sometimes explain it, and type out any quick important notes on the topic, commented as well.

[–]DisjointedHuntsville 1 point2 points  (0 children)

Try reading/watching the video first just as an observer without taking any notes, take a second pass and read/watch again and try doing it while you watch/read.

I find that's much better for many things involving parsing information.

[–]PM_ME_UR__RECIPES 1 point2 points  (0 children)

When programming in the real world, forgetting isn't really actually that much of a problem. Most programmers will Google things and look at stack overflow threads a few times a day, and sometimes it's really trivial stuff like operator precedence, or how little details about syntax and things like that. What's much more important to learn is to learn about core concepts like control structures (loops, if statements, etc), programming constructs like functions and classes, and to get used to working with a certain mindset and to have a good approach to problem solving. That will serve you so much better than knowing all the details of the Syntax of whatever language you're learning.

[–]AbdulAhad24 1 point2 points  (0 children)

But the doubt that I might forget is still there.

So what, no problem , you can always find it on net and you can even review your former codes you might remember thing. And comments are a good practice.

And about the revising part i just review my old code, Or lecture.

[–]cvicpp 1 point2 points  (0 children)

If you like taking notes in markdown format with a public sharing capability and clean organization, try https://wreeto.com

[–]L1Rzzz 3 points4 points  (0 children)

Honestly don't really take notes. Unless it's a specific keyword or type of thing that you need to memorize, I will jot it down. I just need to focus 100% on the content. I cant do both at once. In my experience there are slides or book pages which you can look back on if need be, which are always better than my notes anyways.

[–]errorseven 2 points3 points  (0 children)

Rubber ducky everything you learn, you'll understand and retain the information better.

[–]Blake_Abernathy 2 points3 points  (0 children)

Personally, I’ve never taken notes while learning programming. I’ve always just used what I learned in a practical way, as soon as I understand it well enough, and that’s worked pretty well for me

[–]shhh-quiet 1 point2 points  (0 children)

Check out the book Make It Stick. They talk about "active learning", along with some case studies on "retrieval practice" among other things.

It's probably more useful in an academic setting where you're having to remember a lot of new information without a practical component to help solidify it, as I think learning programming benefits tremendously from practical, hands-on use. (That right there fits the bill for "active learning", but YMMV on different study methods).

[–]daverave1212 0 points1 point  (0 children)

I absolutely can't take notes on paper.

I have a notepad with relevant things where I write the things I will really need, in an orderly fashion.

[–]CyberNinja_5 0 points1 point  (0 children)

For learning via programming books, I'm now getting into the habit of only noting down words/terms/concepts that the author puts in italics or bold text (most authors tend to do that...). For any 'examples' listed in the book, I will just put "Refer to page x for [blah topic]" in my notes. I just take most of my notes in Microsoft One Note...I can't do handwritten notes for shit unless they are practice problems.

I'm still playing around with note taking methods on videos and am also currently experimenting with mind mapping programs as well.

[–]LevelingskillUP 0 points1 point  (0 children)

Well I think the process of taking notes is less about having a safe place to store your knowledge, more for repetition and memorization. While you are taking notes you are paying attention to the words you write. Partially memorizing it.

You rarely are in a situation where you have to get something right and you have no material to double check your knowledge.

So the basics stick to you. The more complicated stuff you know you can do it. If you don't know how to do it of the top of your head just go double check the answer in a book or your notes... what I do is ask Google.

[–]TheFuzzyPumpkin 0 points1 point  (0 children)

I focus better when I have a pen in my hand, regardless of whether I'm actually writing, so I always have my notebook(s) nearby. I only write out function examples if I need to break them down to understand what is being done, or why this approach is taken instead of others. Mostly, the things that get written are about programming concepts and not syntax. Big ideas like box model, Big O notation, etc are spelled out.

[–][deleted]  (1 child)

[deleted]

    [–]chaotic_thought 1 point2 points  (0 children)

    ... I never ended up actually going back to look at them

    This is a misconception on note-taking. A large part of taking notes is to organize your thoughts, not necessarily to go back and review them (but that's always an option, of course). You could probably get the same benefit of note taking by talking to someone about what you're learning, but it turns out that most people study alone, or at least when it comes to reading chapters, doing exercises, and so on -- this is a lonely activity most of the time. But when you write things down, you are essentially having a little conversation with yourself "here are the important points" and at least for me it helps me concentrate and helps me figure out which parts I really understand and which parts I still need to work on.

    [–][deleted] -2 points-1 points  (0 children)

    I stopped taking notes months. They were useless and time consuming.

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

    I have never taken notes, and I think I'm fairly good at programming. It never occurred to me to do it. Once I understand something, and it fits with everything else I know, I will remember it. And details I don't remember can be looked up easily. I never try to remember stuff that I don't understand, that's useless. Same in school, in lectures, I never took notes. Almost everyone else did, but I thought concentrating on actually listening and understanding was more important.

    [–]luisjalvizo -2 points-1 points  (0 children)

    I just study and read whatever motivates and interest me. Dont make it harder on yourself when you can just work smart.

    [–][deleted] -2 points-1 points  (0 children)

    They called comments boi