DEV Community

Discussion on: How I organize my knowledge as a Software Engineer

debone profile image
Victor Debone

Thank you Bruno for sharing these tips!

I'm on a very similar quest of creating my own knowledge base and I relate a lot with your post :)

In my experience, I have really trouble with the snippets and cheatsheets parts. I never remember about which ones I have or store, and when I was using more than two or three softwares to keep different parts of knowledge, I lost track of where I keep what, and eventually give up. Can you talk a bit more how does it look like when you use your Snippets or Cheatsheets? And how does it look like to use so many different softwares?

brpaz profile image
Bruno Paz Author

Hello. Thank you for your comment.

Yes, Snippets and Cheatsheets is the most difficult part also for me and I am still trying to figure out the perfect workflow.

Right now I am trying to think like this:

  • For code snippets that I use regularly and are deep integrated with my coding sessions, like creating a function skeleton in some language, or a template of a file I create often, I use my IDE / Editor snippets function.

I am very bad at memorizing shortcuts so I try to give clear abbreviations and make use of the editor autocomplete function to help me found what I want.

A tip, create your own snippets with sane abbreviations and avoid using third party snippets. You can take inspiration of course but I cant stand with some 3 or 4 letters abbreviations that most snippet packages you can find for popular editors like VSCode or Sublime use.

I use most VSCode and PHPStorm / Intelij but mostly in different contexts, so right now I dont feel the need to have snippets in sync between the two, but would be nice to have some kind of tool to do that.

  • For a more kind of reference cheat sheets that behaves like a resume of some language documentation, DevHints is working great so far. I like that its just Markdown, which make it kinda portable to other systems.
    Same tip as before. Build your own, based on your needs.

  • For code that I might want to reference later, like interesting scripts or algorithms implementation I found on the internet, then it goes to SnippetStore.

There are some overlap in this for sure.
For example, I constantly search on Google the syntax for "create table" in MySQL. should I make it a snippet in my IDE or adding to the "MySQL" reference in DevHints? In the IDE works great if I am creating a database migration for example, but what if I want to run the query directly in the database? God, organizing snippets is hard!

Its a matter of trying and thinking well about how you want your workflow to be. Maybe you need to build your own tools. Who knows.

About the use of different softwares, I think its ok, If you are clear about the use of each one. It should be a no brainer to know when to use each of them and where to search for a specific piece of information.

In my case, besides snippets that like I said, still have some doubts, its very clear. Found an interesting article, archive to Pocket. All kinds of personal notes, NotionHQ.

Of course, the less software you have to use the better. For example I was using Evernote together with Pocket, and I completely ditched it now as Pocket can do everything I want.

I hope I answered your questions.

Btw, if you want inspiration about building a personal knowledge base take a look at this. Its simply amazing and an inspiration to me!

debone profile image
Victor Debone

Thank you for the detailed explanation :)

Yes, we are on the same page about snippets and cheatsheet, it's plain hard. I will try to give a second chance with DevHints though... And yes, that knowledge base is the master of them all.