# Note taking applications when learning about programming?

When I am learning about programming I use:

• XMind to create concise mind maps of the concepts I am learning
• Evernote to take notes in the form of bullet lists
• Brackets to save important code snippets

Is there one tool that does all of these things?

I don't have a budget, but would prefer a simple Web app or Windows program.

For a 2+ out of 3 answer I would suggest using ipython/jupyter notebooks.

• Free Gratis & Open Source
• Cross Platform - You can use it on Windows/OS-X/Linux and a large number of other platforms.
• Web browser interface
• Note taking: Yes - Github flavoured markdown This includes:
• Lists
• Code Fragments with syntax highlighting for multiple programming languages
• Tables, etc.
• Mathematical Formulas Yes - using MathJax $e^{i\pi} + 1 = 0$ is shown correctly
• Scripts written in several languages that you have installed can be embedded and executed with the results captured.
• Code written in python, or any of several other kernels, (currently over 50 available), that you have installed, can be executed within the notebook and the results displayed. Kernels available include: Julia, Haskell, F#, Ruby, R, Go, Scala, Lua, Erlan, FOrth, Perl, PHP, Javascript, C#/Mono, C++/Cling, Bash, etc
• Charts & Diagrams generated programmatically using embedded plotting
• Embedded Images including jpeg exported from XMind or even video
• Notebooks may be exported to a range of static formats, including HTML (for example, for blog posts), reStructuredText, LaTeX, PDF, and slide shows, via the nbconvert command.
• Since notebooks are plain text json files they can be version controlled, (github even renders them for you).
• I haven't found a mind mapping plug in yet but that doesn't mean that there isn't one out there or under development.

For a nice example of using multiple languages see here. Note that for an all in one installer there is Python(x,y

• What is the interaction between ipython and jupyter? It seems to me like jupyter is the latest release of ipython. Have I understood it correctly? Jupyter looks sweet. The ipython website looks very technical. – user1283776 Oct 29 '15 at 14:20
• Jupyter is the language agnostic portion of the ipython framework branched off and made language independent - ipython - if you have a recent python - is a kernel & installation tool for Jupyter - if you have an older python you need to use just ipython. – Steve Barnes Oct 29 '15 at 17:28
• I think that Jupyter does not fulfill all my wants, but it looks interesting and I'll try it out. It looks like at least it should be able to replace Evernote and text files. – user1283776 Oct 30 '15 at 15:22
• Have fun - I am sure that you will! – Steve Barnes Oct 30 '15 at 17:59

You should must try out GNU Emacs coupled with Org mode.

In this setup, you can take notes in form of bullet list, and save important code snippets. I have not tried drawing mindmaps, but answers to this Superuser question suggests that this is possible.

Try medleytext.net, it's a note taking freeware designed for devs.

You can insert multiple syntax highlighted code blocks and edit them live.

Useful for jotting down code snippets

• Does it support math/latex? – becko Apr 20 '18 at 20:12