The software engineering notebook - <AUTHOR> http://winterflower.github.io/2017/08/17/software-engineering-notebook/ <comment><USER2> The commitment to taking good notes has been one of the best decisions of my life -- not just professionally. I use my standard text editor (Textmate 2), and have a "notes" project, with all manner of categories organized by folder. I take notes on articles I have read, take notes on any presentations I watch or educational courses I take, or books I read. Moreover, I now take much better in person notes -- I take them into "scratchpads" and then synthesize them later.

It's indispensable in meetings because I both take notes about the goals of meetings beforehand, take note of any important parts during them, and am able to succinctly review them afterwards as they relate to the original goals, and easily keep track of any action items.

I manage EVERYTHING this way now-- what I am currently working on, notes about what I've done in a day, notes about what I've done on the weekend, notes about books I want to read, movies I want to watch, have watched, fitness routines. It goes on.

At first it was a small but useful knowledge base, and a good plan for how to keep track of things better. Now it's a larger, and even more useful knowledge base, where due to review and organization the important concepts in it have mostly made its way into my long term memory. And the process of taking and using the notes has become a smooth and well-honed process. I keep the notes in dropbox so I have easy access to them on mobile also.

In short: I treat my personal knowledge base as if it were a coding project: using well organized text files. I am constantly adding to them and maintaining them. It is working very well for me.

<comment><USER3> On the other hand, based on my personal experience, maintaining a constantly growing archive of things, be it notes, bookmarks, emails, etc. turns out to be not very useful. Also, it gradually becomes something that you spend more time on than on other things. I now prefer to be more spontaneous, try to minimize the number of things that drag me into the past, start things as if from scratch, "reset" myself, dismiss the baggage that is often turns out to be nothing more than a dead weight. This "lightweight" approach seems to allow me to move forward faster, learn new things that I might have no plans to learn for a long time, because of a queue of other things on my "TODO list". But again, this may be personal.

<comment><USER4> I had the same problem as you, but my solution was separating "notes" from future actions.

My notes track knowledge, they are referenced as-needed so I store everything because there's low/no cost. I've also found that writing things down improves my recollection, so there's value even if I never reference the note again.

My calendar / omnifocus track future actions, I minimize these and keep them very well curated - no "todo", only "do". Externalizing some cognition takes time in exchange for efficiency... less overhead from context switching or remembering unrelated items.

The tradeoff is loosely analogous to scheduling in computing - inefficient for an isolated single thread of work, but beneficial when coordinating lots of concurrent work.

<comment><USER5> > _no "todo", only "do"_

I'm curious about what this means. What are "do" notes (as distinct from "todo" ones). If it means that don't calendar, and you just do that task immediately, how you plan and (more importantly) remember future tasks?

<comment><USER6> In practice, most people's "todo" list ends up being the garbage bin for low- priority items that they'll never actually do. It's worth separating the things you actually plan to do next week/month, from the ones in a "backlog".

Grep any large code repository for "TODO" comments.

<comment><USER5> As someone who's worked on multiple teams that used TODO comments and then had a regular type of sprint in which they were grepped and cleared (these weren't perfect projects, there were other organisational problems, but this particular thing was handled well), I was actually quite surprised to get into a discussion recently here on HN about projects where this doesn't happen and TODO comments end up being largely aspirational.

However, I think code and life are slightly different contexts here. I get what you mean about separating aspirations from near-term actual intents but I generally use the word "todo" to refer exclusively to the latter (which still doesn't help a whole lot with ensuring execution as the list still grows quite large).

</comment></comment></comment></comment></comment></comment><comment><USER7> I have adopted this practice over the last year and have found immense value in the practice. I believe this practice is one of the cheapest ways to help leverage your previous experience on the job as you keep yourself from having to repeat previous learnings over and over again as you try to remember what those compiler flags you used 6 months ago actually were :).

My system is quite simple. I have created a github repo called journal and an alias which opens vim to a markdown file for today's date. If I leave the file and come back later vim will drop me in at the end of the journal. I intend to add some vimscript in the future to automatically add a timestamp when I reopen the file but haven't gotten there yet.

This system has been quite helpful to me as it is resilient to data loss as I can push to multiple backup systems. Easily searchable (grep). And can support prettier documents if I want to open my Markdown formatted journals in tools like Macdown.

TL;DR I use vim to manage this. See alias below.

alias journal='vim + "/Users/username/journal/$(date +%Y)/$(date +%Y%m%d).md"'

<comment><USER8> A script might finesse things a little more, but you could get a naive implementation of the timestamp behavior with something like:

      alias journal='vim + "/Users/username/journal/$(date +%Y)/$(date +%Y%m%d).md" -c "execute \"normal! Go$(date +%T)\<CR></comment></comment><comment>==\<CR>\" | startinsert "'

<comment><USER9> This command (as presented) is giving me issues with saving the file on my machine, not sure if it's specific to only me but figured I'd give you a heads-up!

<comment><USER10> Here's a nice hacked up version, note the mkdir -p that makes the directory if it doesn't exist. Also I changed the time from 24hr to more provincial 12hr w/ AM/PM Please be careful adding aliases if you aren't sure what' they're doing!

alias journal='mkdir -p /Users/ __ __ __ _insert_your_username_here_on_mac_on_linux_change_Users_to_home_on_windows_good_luck_ __ __ __/ journal/$(date +%Y)/; vim + "/Users/ __ __ __ _insert_your_username_here_on_mac_on_linux_change_Users_to_home_on_windows_good_luck_ __ __ __/ journal/$(date +%Y)/$(date +%Y-%m-%d).md" -c "execute \"normal! Go$(date +%r)\<CR></comment></comment></comment><comment>==\<CR>\" | startinsert "'

</comment><comment><USER11> For engineers, I found this logbook guide which seems perfect[1]. I found this on the desk of my new job, about 1 month ago. Someone left it there and it intrigued me. I'm trying to abide to it, not religiously, but so far so good. Others might find it helpful.

[1] [http://www.webpages.uidaho.edu/mindworks/Capstone%20Design/P...](http://www.webpages.uidaho.edu/mindworks/Capstone%20Design/Project%20Guides/Logbook_Handout.pdf)

</comment><comment><USER12> I have a "notes" directory in dropbox. I use .md files, with a text editor that does some highlighting based upon the markdown.

95% of them go into what I call my "dev diary". Each day gets a new file. Any questions, answers, thoughts, etc. while programming or designing go in there. For searchability, I also add any reference Jira/Trello/etc ids.

Beyond that, I have cheatsheets and checklists. Cheatsheets are short, useful things (e.g. commands, undocumented gotchas, etc.) for a given piece of tech. E.g. I have a git.txt, mysql.txt, etc.

Checklists are things I should go over whenever I do X. Am I about to commit something? Well, there's a list of things I tend to forget to do. So I have a checklist for this.

Each project also gets a file (or folder if it grows large enough) in my notes directory.

I previously used Evernote. Then Onenote because it was nicer on the surface pro. But I had to abandon Onenote because they don't have a good Linux client. I decided I was going to stop throwing my notes away and just switched to regular files.

<comment><USER13> What do you with screenshots or other graphics?

</comment></comment><comment><USER14> [http://tiddlywiki.com/](http://tiddlywiki.com/)

Sits in a browser tab, insanely quick to use which is the most important thing.

Consider it perfect for taking notes.

I use seperate systems for todo and project management (the project management one I wrote myself)

<comment><USER15> Cool, I've never heard of this before. Completely blew my mind when I saw it's a single html file that I can use offline! I love it and definitely will start using it.

<comment><USER14> I think you do need to install a plugin for your browser to save changes to disk, but beyond that it's pain free.

</comment></comment></comment><comment><USER16> My first notebook entry is a file called 2011-01-20.txt. I just opened it and had a look what I was doing on that day - really interesting!

These files have useful commands, todo lists, debugging notes, stack traces, useful links.

Don't overcomplicate things - just make a text file each day and dump everything in. Don't bother too much with structure or tidiness. If you need info from the previous day, just copy it across.

Once you've got enough stuff in your notebooks to be valuable do remember to get an automated backup going.

</comment><comment><USER17> [https://gist.github.com](https://gist.github.com) is my notebook which has 800+ collections of my own samples and notes along with 800+ stared notes from other developers.

It's one thing to keep notes. It's another to have a social network around notes.

<comment><USER18> that link is a generic one, to an account's own gists. it is not a link to your gists, _except_ for you.

</comment></comment><comment><USER19> Back in college, going for my BSEE degree, the professor or lab assistant were constantly stressing the need to record everything done at the bench in a log book with pages dated and signed. Part of this was to keep a history of lab experiments and remind you of what you did and/or learned. Really, however, it was to develop the habit to carry over into your professional career. There are many examples of this but the most important one I remember is the notebook kept by John Bardeen of Bell Labs wherein he recorded the path taken to invent the transistor along with Shockley and Brattain. Not only did it win credit and and patent for its invention, it also won him the Nobel Prize. All because they could conclusively prove their invention along with the when of its discovery.

<comment><USER20> > dated and signed

What's the signature for?

<comment><USER21> Establish legal link from the contents of the page to the author. At least an attempt to create a record that can be traced afterwards if there are IP/patent or manipulation claims. Some of the rules at least some places have: bound book used page by page, so pages can't easily be inserted afterwards. Numbered pages so they can't be removed. Corrections have to be dated and signed as well, old entry is only thinly crossed out so it's still legible. Empty spaces crossed out.

</comment></comment></comment><comment><USER22> I knew what I wanted in a digital notebook, so I spent an afternoon writing one. This:

* no explicit saving or loading, everything automatically persisted as plain text

* infinite persistent undo / replay of text entry, for retracing steps; can double as work logging; this uses a log file alongside the plain text; this also lets text be deleted without being lost, which helps with clutter

* "most recently edited first" page order, so you can forget about those old pages

* minimal ceremony to create a new page; use the first line as the title

* quick searching and navigation in time and space, using keyboard

[https://github.com/barrkel/scratch](https://github.com/barrkel/scratch)

<comment><USER23> Nice! This is basically Notes on MacOS, which seems to basically do this (minus infinite undo/redo). I use Notes extensively and it works really well.

<comment><USER24> Except Apple does not provide a clean way to export notes for archival. I literally stopped using Apple Notes because of the no-export 'feature.'

</comment></comment></comment><comment><USER25> When I started my first 'engineering' job at a chip startup over a decade ago, I remember being given a leather blue notebook with gold lettering titled 'ENGINEERING NOTEBOOK'. It was great for focusing on a single project and especially made sense for areas beyond code like drawing electrical schematics, but over time I've become addicted to digital approaches.

These days? I rely heavily on Trello for personal projects - organize things by keeping a separate Done board (list for every month) for the project for times I want to flip back through older work done. Also keep paper notebooks around for times when I want to sketch ideas out.

Additionally there's a 'rhizomatic frankenstack' of nvAlt+simplenote / pinboard / markdown files in project folders etc. I keep wanting to set up something where it's all searchable and ideally dream of something like federated wiki with a lot more UI polish.

[1]: term from Venkat Rao's post [http://mailchi.mp/ribbonfarm/frankenstacks- and-rhizomes?e=96...](http://mailchi.mp/ribbonfarm/frankenstacks-and- rhizomes?e=9621d0c003)

</comment><comment><USER26> I keep a notebook partially to help myself but also to protect myself James Comey style. It really comes in handy when non-coding managers ask what I do all day or when they try to gaslight me on my commitments.

And yes, I am looking for a new job.

</comment><comment><USER27> This might seem like over-kill at first, but I've been running the Enterprise version of [http://www.xwiki.org](http://www.xwiki.org) on my laptop, and couldn't be happier. Its served up using Jetty, and starts up automatically when I login. I like using tools that I know will scale well in the future, should the need arise (no reason why you couldn't run it on a free Heroku instance, if it handles the load, and it should, as it just idles along most of the time).

It has a Code Macro plugin that supports Pygments syntax highlighting. It all comes down to how you structure the wiki (I often turn to Wikipedia for help with that). I've been an Engineer for 20 years, and the info-flood doesn't really end, unless you dial back your enthusiasm. I like to document the tools and services I discover so that I know what's valuable, and what's out there, should I ever need them.

Once installed, its very easy to create new pages and edit them. Plus there are hundreds of plugins.

<comment><USER28> TiddlyWiki is a lightweight, portable wiki option. (I wish it had Vim keybindings, though.) [http://tiddlywiki.com/](http://tiddlywiki.com/)

</comment></comment><comment><USER29> Quiver is the closest thing I've found to what I consider my perfect note- taking software. I think getting any closer would involve writing my own at this point, and that's simply not going to happen.

<comment><USER30> Same here. It's perhaps a slight shame that development has been so slow over the last year or two. But OTOH to be honest it's good enough as it is to be far more useful to me than any other note taking app I've used.

</comment></comment><comment><USER31> Maybe this is just changing fashion, but a lot of developers keep blogs for this reason, and 10 years ago everyone would have simply called this idea a "blog". Among the ones I read:

[http://intertwingly.net/blog/](http://intertwingly.net/blog/)

[https://burningbird.net/](https://burningbird.net/)

[https://kottke.org/](https://kottke.org/)

[https://www.tbray.org/ongoing/](https://www.tbray.org/ongoing/)

I keep my own blog entirely for my own benefit, and the tech section is simply things I've read recently, or things I've learned recently:

[http://www.smashcompany.com/technology](http://www.smashcompany.com/technology)

</comment><comment><USER32> Usually they're work specific notes for my coworkers, its always nice to share a line by line account of your build process when you're using some arcane systems that require being built from source with really complex configuration issues to handle.

<comment><USER32> The only tool I use are markdown files and gitlab to do this, I've found the .md markdown format to be extremely useful compared to the bad old days of emailing word docs.

</comment></comment><comment><USER33> While I don't keep a software development notebook as a rigorous practice I note down interesting or useful insights, findings and patterns in Evernote. I sometimes keep code snippets as GitHub Gists but usually I find source code to be too transient and dynamic to keep it anywhere else than in the actual project it's needed in.

More importantly though I use my blog for keeping more polished, more elaborate versions of my more relevant notes. Sharing your thoughts with others not only benefits others but it also makes you think over and refine your original ideas.

Distilling your thoughts for the benefit of others will help you better understand the matter as well. While we teach, we learn.

</comment><comment><USER34> I've been actively looking for a good tool for personal note taking, and finding lots of things that seem not-quite-right.

Plain Text:

Pros > Simplest, works everywhere/on everything, scales well (append forever!)

Cons > Least automated, no images, no math, no code, hyperlinks depend on editor, no embedded files

WYSIWYG Doc Editor (Word, Writer, etc):

Pros > As easy as plain text, can do images/math/hyperlinks/embedded files, somewhat portable

Cons > Bad at code, not many automated features, unwieldy once file gets large

Markup language tool (Org-Mode, Wikis, etc):

Pros > Powerful, portable, good at code/links, scales well, highly configurable, highly scaleable

Cons > Have to learn the markup language, mostly bad at math, high up-front costs (e.g. needing to set up a server or learn alien keyboard shortcuts), non-wysiwyg feels less like a "quick note" and more like a professional document, image/doc embedding can be hit or miss

Note-taking app (Onenote, Evernote, etc):

Pros > Automates lots of note-taking tasks (e.g. time stamping/tagging), can do images/math*/hyperlinks/embedded files, scales... fairly well

Cons > Least portable (dependent on app-specific sync features which may change), less simple (best use of notebook features are non-obvious), still bad at code

Electronic lab notebooks (ELNs) (labfolder, benchling, etc):

Pros > Good for organizing/presenting data, embedding files, scale very well, have collaboration features

Cons > Very not-simple (most require either require server config, or you don't own your data), most are somehow still bad at math/code, frequently expensive and not portable

Task Managers / To-do lists (Trello, Asana, etc):

Pros > Very intuitive to use, can sort of embed documents/images, have collab features

Cons > Not good for longer-form notes, bad at math, not meant for note-taking, you mostly don't own your data

Others:

Jupyter/Mathematica can do WYSIWYG text, code, math, data, and images all in one document. However, Mathematica is expensive, and Jupyter is non-trivial to get up and running. These tools are primarily geared towards creating a polished document, and are less good at documenting the evolution of ideas inherent in note-taking.

Personal Diary/Journal software is mostly underwhelming, most of these seem like cut-down note-taking apps sold to the non-tech-savvy

<comment><USER35> Jupyter is trivial to get up and running. I did it just a couple weeks ago and it took under 5 minutes. There is a docker image but I think I just did "pip install jupyter" and "jupyter notebook".

<comment><USER36> I'm thinking perhaps GP is referring to the fact that you can't just quickly use Jupyter; the server has to be running, with your desired kernel, and you need to know what port it's on and get a browser tab open on it.

</comment></comment></comment><comment><USER37> Someone should make a database of every HN comment on the best ways to manage notes and/or tasks. I might even buy a subscription.

Edit: My current stack, to show good faith: paper for log and tasks, Org and Git for memoranda.

</comment><comment><USER38> I have a small website in the wild. Every page is a markdown file with notes and ideas about a subject. The entire website is git versioned. I keep a copy of the git repo on Dropbox to easily edit articles and push to upstream (that is the place where the website is hosted). Ah... there is an sqlite file with a single table with the following cols: article-name, file-path, creation- date, tags (for search by argument). Article last edit time is taken directly by the file. Every meta-info is shown on top of the html rendered markdown file (i use Parsedown)

</comment><comment><USER39> I like these types of discussions.

For me, note-taking is something which helps me digest complex ideas. It's a valuable thing and something you can improve at with time.

Then I read the reasoning behind why others don't take notes and I stop to think. Hmm, maybe there is such a thing as too much. Maybe note-taking has a fine balance. Breaking up complexity and summarizing it with notes can be very helpful with getting something finished. Writing journals of everything you do daily probably detracts time from actually performing the tasks required.

There's some science out there on how dopamine gets released when we TALK about performing an action with desirable results. (I'm going to create this project, I'm going to workout this summer and lose weight, I'm going to read 12 books this year). Basically, you're being rewarded for not doing but just saying. If you spend too much time note-taking on a plan or project, you might be getting the dopamine fix, which might make it harder to execute.

Similar comparisons are with startups and large companies. Startups work fast and can ship products quicker, at the cost of maintainability. Large companies have to take their time documenting, grabbing requirements, assigning the team, and following internal processes. The process kills productivity, in favor of predictability and maintainability.

</comment><comment><USER40> In Dropbox, I keep an annual logbook file for both work and home, just a text file (well, rtf). As I do things that I want to remember I did, I write a note, paste a command line or link, etc, under a line with the date on which I did/wrote/pasted. Over time I've built up a record of my activities, and a handy notebook for remembering how to do complicated things I seldom do. It also makes it easy to write up status reports when those are necessary.

</comment><comment><USER41> I've noticed that discussing and chatting are way more productive forms of writing for me, and I've realized that it's exactly because they discourage excessive editing.

So after thinking about it for a while, I realized that the best way for me to take notes is just to have a chat room with myself, where I write things down as I do stuff or think about stuff.

The common pattern is that I start the day by writing something about what I want to do, how I plan to spend the day, maybe some reflections on how I feel about the project's direction... Then during the day I'll put some brief notes, including random ideas that I just want to get out of me... And then at the end of my workday I'll go and reflect what I did and the current status.

Then I also have a setup of Org mode documents. One is a general project management file for all the projects in my life (housing, volunteering, work, recipes, etc) and then there are notes files that are more like sprawling personal wikis or (more pretentiously) like very disorganized book drafts where I flesh out my thoughts in a more long term way or in depth way.

(About the self-chat, I also use that for writing things like blog posts; I make a first draft just by chatting, and then I spend hours reorganizing and editing.)

</comment><comment><USER42> I'm using LiveComment structured notes for everything. I developed a methodology how to use it across multiple operation systems & technologies. LiveComment extend my memory & speedup developing source code. It has powerful server/client plugins system for add any function in runtime with live reload. I'm using paper & board for brainstorm too.

[https://www.npmjs.com/package/livecomment](https://www.npmjs.com/package/livecomment)

Samples here:

[http://acpul.org/livecomment-src](http://acpul.org/livecomment-src) \- livecomment js sources (it's quine, that developed using self documented code)

[http://acpul.org/pool](http://acpul.org/pool) \- common memory pool: active info, some processed bookmarks from HN, reddit, etc.

[http://acpul.org/pica](http://acpul.org/pica) \- livecomment in real project. here is collected info when i was develop gpu optimizations for popular nodejs image resizing library [https://www.npmjs.com/package/pica](https://www.npmjs.com/package/pica)

</comment><comment><USER24> When I got my first full time job as a programmer in the 1970s, my boss handed me a new square deal grid bound notebook and told me to write down everything I did. It was my secret weapon: years after working on something, I could do a quick refresh if questions arose.

I still keep copious notes every workday of everything; e.g., hyper parameters for modeling, server info, URIs to useful documentation, etc.

</comment><comment><USER43> For several years I've been using RedNotebook - [http://rednotebook.sourceforge.net](http://rednotebook.sourceforge.net). I use it mostly to journal what I worked on so that when I need to report it I don't have to struggle to remember anything. Since RedNotebook's text input is directly tied to the date, it works best in my opinion for daily log entries. However, there are shortcuts to jump to the previous/next entry to easily skip days with no log entry. Basic text formatting (txt2tags) is supported along with the ability to export to HTML, Latex, or PDF. It's created in GTK (if that matters), but is supported on Linux, Windows, and Mac.

</comment><comment><USER44> Professionally - I took over the monthly payment system at my current job. There was a fair amount of technical debt and tribal knowledge about the thing - the first few months, I took extensive notes about everything from basic usage to problems encountered. As I paid off the technical debt, however, I was able to gradually turn the notes into code; now, it's almost at the point where there's nothing to write down each month (although there's usually new code to write).

Outside of that, a friend of mine has made his own semi-public wiki, and tied that into his email client; he can now easily link to pages from within the email, allowing him to communicate A LOT with very few new words. It's pretty neat.

</comment><comment><USER45> Here is my software engineering notebook (still a work in progress): [https://baron816.gitbooks.io/good-stuff-to- know/content/](https://baron816.gitbooks.io/good-stuff-to-know/content/)

Working on this has definitely helped me learn these concepts much better and deeper, plus it's easy to go back and find things when I need them. Just reading something is not a good way to absorb information. Actually having to regurgitate something in your own words makes a huge difference.

Gitbook is not the best place for all my notes. Will be using Evernote going forward.

</comment><comment><USER46> I have a "things learned" section in Notes.app, mostly to avoid repeated fuckups and to become a better person. Some earlier example entries:

* Leave the office once you're _really_ sure that deployment was successful

* Have timestamps in logs

* Before making your opinion public, make sure what you think is a mistake is in fact a mistake

* When you struggle with an issue, make sure the fix isn't right in front of you

* Make sure everything's set up for remote work; you don't want to hotfix some production issue at 2 AM, only to find out you can't access Git from home

* Other people's time is worth twice yours

</comment><comment><USER47> For me, celerity of access makes my note taking possible. Mouse over a hot zone and the editor slides out. Mouse away, and it hides.

I used to use SideNote, but that was abandoned. I'm currently using SideWriter, but it's a little flaky.

I hope to start learning swift soon so I can develop my own with some extra features, mainly markdown and either tabs/multiple hot zones.

My memory is horrible, so I need to write down what I did/thought before it vanishes. Mostly comes in handy when I have to justify to HR why they need to give me a raise.

</comment><comment><USER48> I currently use Boost and I like it, but I miss the old PIMs of the early 00s. I keep wanting to make my own old school pim as a pet project but that always stays in the back. It would be ncurses based :)

I started with old wikis and then a Russian PIM that I can't remember and then Google Notebook. Evernote was always a hit o miss the sync never was good for me.

</comment><comment><USER36> I keep all bash history, automatically appending it to a file that's backed up in google drive. That deals very effectively with remembering how I did something from the command line in the past, which is being mentioned in this thread. However it doesn't work for commands issued on a machine which isn't your main personal machine.

</comment><comment><USER49> Is there any opensource things that can be a software engineering notebook or journal that is easy to use and painless?

<comment><USER50> A plain paper notebook. I've tried everything and nothing works as well.

<comment><USER51> This is true and somewhat infuriating.

I have a $700 computer in my pocket and the best way to write a grocery list is on a post-it found in the kitchen drawer.

I think it comes down to the human interface of a touch screen being slow, frustrating, and generally inefficient.

<comment><USER28> It's amazing that we have accepted this user interface for as long as we have. Imagine if touching your paper notebook the wrong way could accidentally erase it or share it with your mom.

<comment><USER3> > _share it with your mom_

O horror!

</comment></comment></comment></comment></comment><comment><USER52> Used vimwiki for a while until I accidentally deleted few top level file with lots of file links and now it is almost impossible to get it all organized again without going through very file. Tried some DIY versions with markdown files in directory structure, but the solution isn't too good.

</comment><comment><USER53> On the topic of tools, I'm wondering if QOwnNotes would work for this time of journal/notetaking.

I recently moved off Basket and after an extensive search, found QOwnNotes seemed to fit my brain the best.

[http://www.qownnotes.org/](http://www.qownnotes.org/)

</comment><comment><USER54> I think jotting down very important points we realized while developing is worth noting down. May be in a gitbook. But having an actual paper or notepad journal and noting down everyday things is too much data and we rarely, and i mean like very rarely look at that a second time !

</comment><comment><USER55> Despite being primarily a computational scientist, I still keep a proper "dead tree" lab notebook. It's been invaluable, both in keeping my thoughts ordered, and also referencing decisions toward old projects.

</comment><comment><USER56> If you're on a Mac, I highly recommend Quiver - "The Programmer's Notebook" ([http://happenapps.com](http://happenapps.com))

No affiliation, just like and use it :)

</comment><comment><USER57> I find it hilarious that in science and engineering using a lab or engineers notebook is common practice and VC is rare, but in software engineering VC is common and keeping a notebook is rare.

<comment><USER57> Electronic Lab Notebooks are a growing sector e.g. Findings - Lab Notebook by Findings Software SAS [https://itunes.apple.com/gb/app/findings-lab- notebook/id9228...](https://itunes.apple.com/gb/app/findings-lab- notebook/id922844272?mt=8)

</comment></comment><comment><USER58> I use Github for digital notes: [https://github.com/azer/notebook](https://github.com/azer/notebook)

And physical notebook for other things.

<comment><USER59> Nice notes man. You've inspired me to make my own on github.

</comment></comment><comment><USER60> I use Evernote for this since it also backs as a web clipping tool.

Any article I like on the web which I might want to come back to in future, Evernote makes it easy to clip web pages as is.

</comment><comment><USER61> > do you keep a notebook (digital or plain dead-tree version) to record things > you learn

What's the point? After some time, that would the list of things you forgot... :)

</comment><comment><USER62> yep i do and i've carried the habit from the lab into the workforce. it's mostly a write-many, read-few kind of thing but i've got a very loose system for capturing Action Items and i find having doodle space helps me keep track of the discussions other people are hafving. but then, i'm an ex-chemist too so biased sample... ;-)

</comment><comment><USER63> I take A LOT of notes of everything. Mostly because I like writing things down. I NEVER find myself coming back to those, ever.</comment>


Ted Nelson on What Modern Programmers Can Learn from the Past [video] - <AUTHOR> https://spectrum.ieee.org/video/geek-life/profiles/ted-nelson-on-what-modern-programmers-can-learn-from-the-past <comment><USER2> Anyone know where to find the full length interview? This is just a clip.

"We thought computing would be _artisanal_. We did not imagine great monopolies."

In a sense, it still is, and always will be. I feel that the core of programming, just making the computer do things other people want it to for money, will always lead us back to a highly individualized workflow, where a single programmer has complete mastery over the system. It's just that the programmer-artisan must find work in the context of these great, monopolistic organizations, which inevitably apply pressure to reduce the amount of skilled labor required to perform a given business function, and thereby increase the organization's leverage in salary negotiations, leading to hyper-specialized assembly line processes that eventually just stop working because no one has the broad systems-level knowledge required to trace a bug to its source anymore. It would be great if these monopolies could just accept the artisanal nature of software development and pay people what they're worth.

<comment><USER3> People writing software are generally in the top 5% income level. Why do you feel that they are not being paid what they are worth?

<comment><USER4> I'm not sure that is generally true. The median software developer salary in the US is $102,280[1]. An income of $100,000 puts you in the top 9.15%[1]. A top 5% income writing software isn't completely unheard of, but it does not seem to be represented by any kind of majority. There are always outliers.

[1] [https://www.bls.gov/ooh/computer-and-information- technology/...](https://www.bls.gov/ooh/computer-and-information- technology/software-developers.htm)

[2] [https://en.wikipedia.org/wiki/Personal_income_in_the_United_...](https://en.wikipedia.org/wiki/Personal_income_in_the_United_States)

<comment><USER3> Thanks for fact checking me, I should have done my homework first.

I still think that the 9.15% stat supports my claim though. I hang out with mostly non-engineers so its a bit comical to be shamed by hacker newsians for proposing that we get paid enough. Most studies on the matter have demonstrated that any income over 75k has no correlation on happiness, so for me I guess I feel more concerned about finding meaningful work than a higher salary.

On another note, I am not sure why all of these people claiming to providing value equal to 10x their salary don't simply work for themselves and see if they can really rake in that much without the support of their company.

<comment><USER4> I understand where they're coming from. Pay, of course, is a function of supply and demand. Nothing more, nothing less. The greater the demand, relative to the supply, the higher the price. We're constantly told that developers in high demand and that companies cannot find anyone to hire, to the point that the government has even pushed 'learn to code' programs to try and bring more people into this 'future industry', so price should be rising rapidly to close that gap... but it's not happening for the most part.

So we have this disparity where the market is not reflecting what the media (et. al.) are reporting. I can see how that is leading to much confusion for those in the industry.

In 2014, the median income for software developer, applications was $103,054.85[1] (in 2017 dollars). Today, the median income for software developer, applications is $102,212.06[2] (again, in 2017 dollars). Developer incomes are on the decline.

It appears that we're reached equilibrium. If the industry was honest and said "go away, the industry is full" people would have less belief that they're worth more, but that's not the message we continue to hear.

[1] [https://www.bls.gov/oes/2014/may/oes151132.htm](https://www.bls.gov/oes/2014/may/oes151132.htm)

[2] [https://www.bls.gov/ooh/computer-and-information- technology/...](https://www.bls.gov/ooh/computer-and-information- technology/software-developers.htm)

</comment></comment></comment></comment></comment><comment><USER5> "All I can say is: close your eyes and think what it might be. My first software designs were largely done with my eyes closed. Thinking if I hit that key what should happen if I hit that key..."

In my experience, this is a common characteristic of the 10x programmer. It is not about frameworks, it is not about patterns; both things help, but it is really about to be able to run the system in your head.

<comment><USER6> Current real-world systems are too complex to simulate accurately in your head. I've learned to assume that I don't really understand a system until I've collected sufficient trace output from the real thing.

<comment><USER7> Are they? I "run" systems in my head all the time. I'm familiar with the code base, from that I'll know roughly where the bug is. I can tell you which function a bug will probably be in and how it's probably happening, just from having the symptoms described to me.

Hell, even when I'm not familiar I can guess what's happening based on past experience.

It's some sort of spatial ability, like navigating a map (though I recently found out I'm terrible at visualizing and almost completely lack a 'mind's eye'). I also find I rarely get lost in computer games and very rapidly learn FPS maps.

Maybe's it's one of those weird skills you don't even realise some of the population lack.

Personally I've always thought using traces are a massive crutch that are too expensive in cost vs benefit ratio, I don't get the point. Far too many extra lines of code for too little gain.

<comment><USER8> We are literally weeks into Meltdown/Spectre. The code you write runs on a complex programming language you didn't write, that may be running on a VM, that is running on an OS, that is running on a multicore CISC processor with 100s of _publicly known_ instructions, that can only be built due to modern developments in quantum mechanics.

You run _idealized_ versions of systems in your head.

<comment><USER9> "You run idealized versions of systems in your head."

Definitely true but running idealized approximations of systems [1] are also sufficient, at least in my experience, to get a rough idea of where a bug might be a majority of the time.

[1] We're basically describing [https://en.wikipedia.org/wiki/Systems_modeling](https://en.wikipedia.org/wiki/Systems_modeling)

<comment><USER8> Certainly. I guess my main objection was to the parent questioning whether modern systems are "too complex to simulate _accurately_ in your head". Effective programming, as you note, requires acknowledging that you are approximating, and understanding the scopes and ramifications of those approximations.

</comment></comment></comment></comment></comment></comment><comment><USER10> I wish IEEE would put up the whole interview. After all, I own the copyright on those words. I am making inquiries about it.

Rather than reply individually to the misimpressions of my work on this Reddit page, let me refer anyone who wants the true picture of my software deliveries, design variations and former ambitions, to hyperland.com/HTbrew-D11

Or you might look directly at two of my productions, Cosmicbook (2003, with Ian Heath) xanadu.com/cosmicbook with visible links between pages-- you can make them too-- and OpenXanadu (2014, with Nicholas Levin). xanadu.com/xanademos/MoeJusteOrigins.html showing transclusions (origins) only, no links. See above paper for further explanation.

I am not a programmer, but a designer-director of software (like Doug Engelbart and Steve Jobs, but with far fewer resources). Every delivery is a negotiated reduction of a vision against resources, technical restrictions, and time. (Not to mention misunderstandings and disagreements.) It's like directing movies, but with more options, more gotchas and less fun.

I am proud of the working stuff I've delivered and grateful to those collaborators, and I haven't given up yet.

</comment><comment><USER11> "How to see the possibilities when there are so many things around you that are a certain way".

So much this, and this is something where trawling the old papers really, really helps. So much there that we have either (a) forgotten or (b) discarded, but forgot why we discarded it.

Now spending a lot of time trying to tell (a) from (b). Fun!

<comment><USER12> I am constantly amazed by the productivity of top computing experts in the 60s and 70s. They managed to accomplish so much in such a short time, while working in small teams, on ridiculously slow hardware and having next to no libraries or tooling.

In the corporate world today it often takes a dozen people and a few years to create what's effectively a website that records user inputs to a database and occasionally sends emails.

I understand that I'm comparing top programmers of the past to average programmers today, but I think modern tooling and accidental complexity of our computing environments plays a large part here as well.

<comment><USER13> The email was invented in 72. There you go!

</comment></comment></comment><comment><USER14> My favorite Ted Nelson interview: [https://youtu.be/RVU62CQTXFI](https://youtu.be/RVU62CQTXFI)

It gives a great perspective on Ted's prophetic vision for computers as well as the intense skepticism it raised in many.

<comment><USER15> Incredible. I agree with the top comment on that video, the interviewer was being pessimistic and not open minded but it served to make Ted Nelson expand and give very comprehensive answers.

</comment></comment><comment><USER16> Hi Folks -- you asked, we answered! Here's an 11-minute cut

[https://spectrum.ieee.org/video/geek- life/profiles/extended-...](https://spectrum.ieee.org/video/geek- life/profiles/extended-directors-cut-ted-nelson-on-what-modern-programmers- can-learn-from-the-past)

</comment><comment><USER17> Where are the modern-day Ted Nelson, Tim Berners-Lee, Douglas Engelbart, Alan Kay?

It seems like all the great minds are building gimmicky apps and starting ICOs.

<comment><USER18> I wouldn't put Ted Nelson on the same page like the other ones. The other three actually build stuff that is now everywhere. Ted never got anywhere is now bitching all the time on how much better his ideas were than what we actually got.

<comment><USER19> I think his biggest problem is that he refuses to collaborate with other people, or build on top of current technology.

He's had a lot of great important inspirational ideas, but his implementation of those ideas didn't go anywhere, he's angry and bitter, and he hasn't bothered re-implementing them with any of the "inferior technologies" that he rejects.

Back in 1999, project Xanadu released their source code as open source. It was a classic example of "open sourcing" something that was never going to ship otherwise, and that nobody could actually use or improve, just to get some attention ("open source" was a huge fad at the time).

[http://www.theregister.co.uk/1999/08/27/web_precursor_xanadu...](http://www.theregister.co.uk/1999/08/27/web_precursor_xanadu_project_goes/)

>Register believe it or not factoid: Nelson's book Computer Lib was at one point published by Microsoft Press. Oh yes. ®

They originally wrote Xanadu in Smalltalk, then implemented a Smalltalk to C++ compiler, and finally they released the machine generated output of that compiler, which was unreadable and practically useless. It completely missed the point and purpose of "open source software".

I looked at the code when it was released in 1999 and wrote up some initial reactions that Dave Winer asked me to post to his UserLand Frontier discussion group:

[http://static.userland.com/userlanddiscussarchive/msg010163....](http://static.userland.com/userlanddiscussarchive/msg010163.html)

[http://static.userland.com/userlanddiscussarchive/msg010164....](http://static.userland.com/userlanddiscussarchive/msg010164.html)

[http://static.userland.com/userlanddiscussarchive/msg010165....](http://static.userland.com/userlanddiscussarchive/msg010165.html)

[http://static.userland.com/userlanddiscussarchive/msg010166....](http://static.userland.com/userlanddiscussarchive/msg010166.html)

[http://static.userland.com/userlanddiscussarchive/msg010167....](http://static.userland.com/userlanddiscussarchive/msg010167.html)

A few excerpts (remember I wrote this in 1999 so some of the examples are dated):

>Sheez. You don't actually believe anybody will be able to do anything useful with all that source code, do you? Take a look at the code. It's mostly uncommented glue gluing glue to glue. Nothing reusable there.

>Have you gotten it running? The documentation included was not very helpful. Is there a web page that tells me how to run Xanadu? Did you have to install Python, and run it in a tty window?

>What would be much more useful, would be some well written design documents and port-mortems, comparisons with current technologies like DHTML, XML, XLink, XPath, HyTime, XSL, etc, and proposals for extending current technologies and using them to capture the good ideas of Xanadu.

>Has Xanadu been used to document its own source code? How does it compare to, say, the browseable cross-referenced mozilla source code? Or Knuth's classic Literate Programming work with TeX?

>Last time I saw Ted Nelson talk (a few years ago at Ted Selker's NPUC workshop at IBM Almaden), he was quite bitter, but he didn't have anything positive to contribute. He talked about how he invented everything before anyone else, but everyone thought he was crazy, and how the world wide web totally sucks, but it's not his fault, if only they would have listened to him. And he verbally attacked a nice guy from Netscape (Martin Haeberli -- Paul's brother) for lame reasons, when there were plenty of other perfectly valid things to rag the poor guy about.

>Don't get me wrong -- I've got my own old worn-out copy of the double sided Dream Machines / Computer Lib, as well as Literary Machines, which I enjoyed and found very inspiring. I first met the Xanadu guys some time ago in the 80's, when they were showing off Xanadu at the MIT AI lab.

>I was a "random turist" high school kid visiting the AI lab on a pilgrimage. That was when I first met Hugh Daniel: this energetic excited big hairy hippie guy in a Xanadu baseball cap with wings, who I worked with later, hacking NeWS. Hugh and I worked together for two different companies porting NeWS to the Mac.

>I "got" the hypertext demo they were showing (presumably the same code they've finally released -- that they were running on an Ann Arbor Ambassador, of course). I thought Xanadu was neat and important, but an obvious idea that had been around in many forms, that a lot of people were working on. It reminded me of the "info" documentation browser in emacs (but it wasn't programmable).

>The fact that Xanadu didn't have a built-in extension language was a disappointment, since extensibility was an essential ingredient to the success of Emacs, HyperCard, Director, and the World Wide Web.

>I would be much more interested in reading about why Xanadu failed, and how it was found to be inadequate, than how great it would have been if only it had taken over the world.

>Anyway, my take on all this hyper-crap is that it's useless without a good scripting language. I think that's why Emacs was so successful, why HyperCard was so important, what made NeWS so interesting, why HyperLook was so powerful, why Director has been so successful, how it's possible for you to read this discussion board served by Frontier, and what made the World Wide Web what it is today: they all had extension languages built into them.

>So what's Xanadu's scripting language story? Later on, in the second version, they obviously recognized the need for an interactive programming language like Smalltalk, for development.

>But a real-world system like the World Wide Web is CONSTANTLY in development (witness all the stupid "under construction" icons), so the Xanadu back and front end developers aren't the only people who need the flexibility that only an extension language can provide. As JavaScript and the World Wide Web have proven, authors (the many people writing web pages) need extension languages at least as much as developers (the few people writing browsers and servers).

>Ideally, an extension language should be designed into the system from day one. JavaScript kind of fits the bill, but was really just nailed onto the side of HTML as an afterthought, and is pretty kludgey compared to how it could have been.

>That's Xanadu's problem too -- it tries to explain the entire universe from creation to collapse in terms of one grand unified theory, when all we need now are some practical techniques for rubbing sticks together to make fire, building shelters over our heads to keep the rain out, and convincing people to be nice and stop killing each other. The grandiose theories of Xanadu were certainly ahead of their time.

>It's the same old story of gross practicality winning out over pure idealism.

>Anyway, my point, as it relates to Xanadu, and is illustrated by COM (which has its own, more down-to-earth set of ideals), is that it's the interfaces, and the ideas and protocols behind them, that are important. Not the implementation. Code is (and should be) throw-away.

>There's nothing wrong with publishing old code for educational purposes, to learn from its successes and mistakes, but don't waste your time trying to make it into something it's not.

<comment><USER20> > _Anyway, my take on all this hyper-crap is that it 's useless without a good > scripting language. I think that's why Emacs was so successful, why > HyperCard was so important, what made NeWS so interesting, why HyperLook was > so powerful, why Director has been so successful, how it's possible for you > to read this discussion board served by Frontier, and what made the World > Wide Web what it is today: they all had extension languages built into > them._

I'm wondering what your wiser, older self has to say about this 20 years on. Isn't it useful that documents you wrote 20 years ago can still be read?

From my memories, the Web craze started well before JavaScript, and JavaScript really only jumped on the bandwagon; so how could it be the critical success factor for the Web?

The success of the Web and JavaScript in the last two decades speaks for itself; but in 2018, JavaScript and the procedural Web could very well be its undoing when considering the original goals of the Web, couldn't it?

<comment><USER21> I don't think Don meant that JS was the critical success factor for the Web. But that extensible scripting is crucial to the kind of Web Ted Nelson wanted in the first place.

From my lived experience, the Web craze would be better termed the Modem craze. And the critical success factor that turned it into the Web, was NSF removing the restrictions on commerce in 1995.

JavaScript is just what got HTML closer to some ideals of Xanadu. Not close enough for Ted's vision, but that is a broad sociopolitical vision.

<comment><USER19> Server side scripting languages were critical to the success of the web, before browser side JavaScript was available and matured.

Simple stateless perl cgi scripts forked from apache that talk to text databases or mysql were the first simplest step, but things got much more interesting with long running stateful application servers like Zope (Python), Java, Radio UserLand, HyperCard, node, etc.

My favorite thing about node is that it lets you use the same language and libraries and data on both the client and server side. That's an enormous advantage that far outweighs JavaScript's disadvantages. But some people just can't see or believe that, for whatever reason, and they're fine with flipping and flopping back and forth between different languages, and hiring different people to write multiple subtly divergent versions of everything in different languages.

Face it: for all its faults, JavaScript won. I will always have a place in my heart for FORTH, PostScript, MockLisp, ScriptX, TCL, Python, HyperTalk, UserTalk, CFML, Java, and all those other weird obsolete scripting languages, but it's soooo much easier to program in one language without switching context all the time, even if it's not the best language in the universe. And TypeScript is a pretty darn good way of writing JavaScript.

You're right, the web was held back until it was finally considered "ok" to use it for commercial activity!

I'd say JavaScript is just what got HTML closer to implementing any ideal you want, and there's no reason Xanadu couldn't be implemented on top of current web technologies (except that Ted doesn't want to). But I don't think extensibility and scripting itself was part of Ted's original vision or implementation.

Just as so much has happened since MVC was invented (yet it's still religiously applied by cargo-cult programmers), also so much has happened since Xanadu was invented (like distributed source code control, for example), which requires a total rethinking from basic principles. We also have the benefit of a lot of really terrible examples and disasterous experiments to learn from (wikipedia markup language, wordpress, etc). Many of Ted's principles should be among those basic principles considered, but they're not the only ones.

<comment><USER21> Hmm, HyperCard in the same list as Zope and node? Interesting. :-)

The idea that JavaScript "won" is a little controversial to me. I think it's huge and important, but the world is still changing. Embedded Python goes places that Node still can't. I absolutely see the value you describe in sticking to one ecosystem, but I don't think JavaScript/TypeScript/Node is the only way to get those benefits. (See also: Transcrypt) I really enjoyed the PyCon 2014 talk on the general subject: [https://www.destroyallsoftware.com/talks/the-birth-and- death...](https://www.destroyallsoftware.com/talks/the-birth-and-death-of- javascript)

The most recent conversation I had with Ted was after someone had just demonstrated the HoloLens for him and a few others. Ted had some feedback for the UI developer, and it didn't have anything to do with JavaScript or that level of implementation detail at all. It was all about the user experience. I don't want to put words into his mouth, but like he says in this recent interview, this is all hard to talk about because it really has changed so quickly.

I do think you're right that a lot of what Ted wanted to see could be implemented today in JavaScript and Git. But I think about the _technical_ meat of that vision to be about data-driven interfaces. I am simply not old enough to _really_ understand how notions of "scripting" changed between the 60s and the 80s. But the fact that Xanadu was started in SmallTalk suggests to me that scripting was part of the vision, even if a notion like "browser extensions" might not have been in mind.

Completely agree that there are other voices to learn from, and other important mistakes that have been made since Xanadu! (I think Ted would agree, too.)

</comment></comment></comment></comment></comment></comment></comment><comment><USER22> Something about how ideas in an era end up being distorded in the next one. It seems like any important new thing shifts the gravity of society and thus society itself. A cool idea in the 60s will become the root of a bad one in the 70s. It's not linear</comment>


$23.3 Million invested in 11 Twitter-Based Startups - <AUTHOR> http://www.chubbybrain.com/blog/2009/06/233-million-has-flown-to-twitter-based-startups-%E2%80%93-is-this-just-the-beginning/

<comment><USER2> Aren't they afraid that if Twitter fails their investments will fail as well? I mean Twitted is enough of a risk as it is but something based on it is already starting as a multiple of that risk.

<comment><USER3> It's a risk, but it's pretty easy to diversify. For Tipjoy and I'm sure for others, it isn't about betting on Twitter -it's just organicly pursuing what is working better than other things.

</comment></comment><comment><USER4> Twitter bubble!

<comment><USER5> It's not just Twitter, it's Bubble 2.0 TM. Everyone seems to think if you have the words 'cloud' and 'social' in your business description then money just magically appears. I can't wait for investors to wise up so we can get back to some form of reality.

<comment><USER6> How long until we see SocialCloud.com LLC?

<http://whois.domaintools.com/socialcloud.com>

</comment></comment></comment><comment><USER7> It still lists summize as an independent company. I'm pretty sure Twitter bought them.

</comment><comment><USER8> Hm. Does Tipjoy qualify as a startup with Twitter at the core of the business?

Also, I thought they ignored startups that had already been acquired, but then they list Summize? Shoddy analysis.

<comment><USER9> Aditya - Thanks for the comment. You're right that we did not include acquisitions in the numbers as we were primarily interested in investment into these startups.

If there any specific startups based on Twitter that you can point us to, do let us know? We'd like to ensure that the list is complete.

Appreciate it.

Anand <http://www.chubbybrain.com>

<comment><USER10> To further clarify, we included companies that have been funded by Angels and VCs in the analysis, not acquisitions. Summize received funding from VCs before it was purchased by Twitter. Thus, Summize's VC funding was included but its acquisition was excluded. I hope this eliminated confusion.

Stephen <http://www.chubbybrain.com>

</comment></comment></comment><comment><USER11> They didn't list YC among the Tipjoy investors.</comment>


Bridging the gap between Python and Jupyter - <AUTHOR> https://fmind.me/posts/bridge-python-jupyter.html <comment><USER2> Nice. Coincidentally, I saw a talk about Jupyter @ FOSDEM earlier this year, this time with Perl 6 ([https://www.youtube.com/watch?v=tSZV8IXIsM4](https://www.youtube.com/watch?v=tSZV8IXIsM4)). I had no knowledge of it prior to that point, and I really should come up with a good reason to use it.</comment>


Elliot Gant, Marketer of the Button-Down Shirt, Dies at 89 - <AUTHOR> http://www.nytimes.com/2016/03/19/business/elliot-gant-marketer-of-the-button-down-shirt-dies-at-89.html <comment><USER2> There is one and only one true button-down. It is the Brooks Brothers OCBD.</comment>


Interesting Pay-as-you-go hosting company (With Lisp etc. on CGI) - <AUTHOR> http://www.nearlyfreespeech.net/services/hosting.php#pricing <comment><AUTHOR> How does $1/GB compare with other hosts?

<comment><USER2> I pay $20 a month for DreamHost and they allow me 4TB a month. However this place looks like a great web host if you're not building YouTube. Now I know where to host any lisp projects; unfortunately, they don't handle RoR very well.

<comment><USER3> Heh, well if you are building YouTube, Dreamhost isn't going to do much good either. :)

<comment><USER2> Hehe. I just put DH up there an an example. I chose it to host some small personal projects because it didn't seem too bad a deal... I don't use a fraction of what I'm allotted.

<comment><USER4> What's the most bandwidth you've ever used with DH? Every shared host place I've talked to has CPU limits and would shut the site down or force an upgrade long before you would get near 4 TB.</comment></comment></comment></comment></comment>


Ask HN: How to shift focus at work to study+work rather than work only - <AUTHOR> I tend to focus on doing tasks. I feel like when I'm learning stuff at work (watching a video or reading a book - all tech) then internally no matter what my manager would say I feel like it's not what I need to do at work.  Do you also have that feeling how can you shift the focus to this and feel great? PS it's not only the feeling it's also the attitude difficult to focus on this stuff while focusing at work tasks is much easier as it involves immediate action result satisfaction, more tests pass, more functionality, better performance, new design document, new wiki page, new refactor, new idea about design improved architecture all those have the trigger response satisfaction rather than just watching a video or reading.<p>It's like the context switching of to learning is just never in the mood at work (at home it is) if anyone has succeeded and has tips to be able to make this change would be happy to learn. <comment><USER2> I've found that repeated practice and building the habit was very helpful for longer term goals like learning.

One thing I've done is explicitly blocked time to work on learning. For example, when I jumped in to learn some UX/Sketch work for a previous company (very small, no designated designers), I would block off an hour that would be specifically for that work. No email, no slack, no code review, just two 25-minute chunks of learning with a break in-between. I would also usually come in a little early and knock it out first thing in the morning, since a) that was the time when there were the fewest distractions and b) then I could check it off my TODO list and not have to worry about it for the rest of the day.

More recently, at a larger company with more meetings, I've found that explicitly blocking time/space to work on something can be really helpful for heads-down learning.

Side note: I've also found that having the goal of sharing with my team (via informal tech talks) is a tremendous way to learn and to stay diligent.

</comment><comment><USER3> I have worked in small companies where we were given time to study to gain specific certifications. Other than that, as a professional it is focus on work at work and study to extend my knowledge in my own time at home.

Unless you are at the early stages of your career, I don't see how you can justify learning during work time. Aren't you paid to complete your assigned tasks?

<comment><USER4> Are you paid by the hour?

<comment><AUTHOR> globally

</comment></comment></comment><comment><USER5> If it's applicable to your role at your company, then it's just a question of does the learning topic apply to your current priorities. If yes, then totally justified.

If _you_ don't feel like it's real work, try taking notes or writing a primer on the topic. Now it's "legit" and potentially a new resource for your team.

</comment><comment><USER4> Are the things you're learning applicable in your current job?

<comment><AUTHOR> Yeah, I just have a problem changing focus at work from "work" mode to "study" mode, In work mode, the pace is fast and I get gratification, and interruptions are acceptable. In study mode I don't see any immediate results, and interruptions and noise are much more difficult, also I feel like in work mode I have all the surrounding ready for that, IDE, task manager, commits, design documents, meetings, everything is tuned for fast pace. But in study mode nothing is practically tuned for that. So only at home where I have larger bulks of time, in more rare cases am I interrupted from work than I can really focus and study.

I really wondered if more people have this issue. and if anyone managed to resolve this.</comment></comment>