DEV Community

Cover image for I Bet You Don't Keep A Developer Journal: 3 Reasons You Should

I Bet You Don't Keep A Developer Journal: 3 Reasons You Should

Simon Barker on August 25, 2021

"Do you know how to get rid of this weird primodials issue?" I was asked across the office once. Something about it sounded familiar so I did a qu...
Collapse
 
omril321 profile image
Omri Lavi

Hey Simon, thanks for the interesting article! Usually what I do is keeping a note on notion with various useful things I learn. In addition, I maintain a "scripts.sh" file with aliases of all the commands I see myself using in the future. It's a major time saver!
I have a question about your notes thought - how do you organize/format them? Is there an example of a note you can share?

Collapse
 
davidsgbr profile image
David SG • Edited

Hi @omril321 , your scripts.sh called my attention. I’ve built a CLI generator that might be very useful for you, it can simplify your scripts and document them to make easier to share with other people.
Please consider having a look on that: aux4.io
Feel free to reach me out if you have any questions.

Collapse
 
omril321 profile image
Omri Lavi

Hey David, that's some cool project! How does it treat environmental variables? I didn't find a reference to it at aux4.io/learn

Thread Thread
 
davidsgbr profile image
David SG

@omril321 , thank you for checking that out. You can use environment variables like you are using in the command line. I've added a section providing more details at aux4.io/learn. Please check that out once you have a chance.
I am pretty sure aux4 can be a game-changer for your scripts. It would mean the world to me if you could let me know in case there is something else stopping you from starting using that. Please feel free to DM me at any time. I will be glad to help and have your feedback.

Thread Thread
 
omril321 profile image
Omri Lavi

Thanks David! If I'll speak frankly, I'm yet to find the advantages over well organized shell scripts, and using aux4 does seem to require some learning. Tell me please, on which cases would you recommend someone to start using aux4? What problems will it solve after which amount of effort?

Thread Thread
 
davidsgbr profile image
David SG

Sure, I understand your point, you have something that is already working. So let me try to point some benefits.

The aux4 learning curve is low if you are already familiar with JSON. I know it's not your case, but for another person who is not familiar with bash scripts, they can easily write their scripts but just following the structure.
You also can organize in whatever structure makes more sense to you use that. e.g:

aux4 my-project-a delete-kafka-topics /* it can delete all the kafka topics related to your project */

aux4 my-project-b s3 upload-configuration /* copy a file from your local to a specific bucket/path related to your project */
Enter fullscreen mode Exit fullscreen mode

You can share the script with your co-workers, you can create a package for each project, for example, and they can install it. It's great because it's common to have people in the team not familiar with bash, so they can just become users from what you created.

aux4 aux4 install my-project-a.json
Enter fullscreen mode Exit fullscreen mode

Instead of adding a lot of comments to your scripts to remember what are they doing, aux4 structure already allows you to document the parameters and commands, and it generates documentation in runtime, listing the sub-commands in each section, and also describing the parameters.
When you share it, you don't need to explain to the other people how to use that, they will know by just typing aux4.

I would challenge you to migrate two or three commands you have in your script to aux4 and see how you like, I am pretty sure you will end up migrating everything there in the end. It's addictive :)

Thread Thread
 
omril321 profile image
Omri Lavi

Thanks for the explanation! I understand it better now. Next time I'll need to write many scripts to a shared project, I'll remember aux4. Well done David! :)

Thread Thread
 
davidsgbr profile image
David SG

Thank you!

Collapse
 
allthecode profile image
Simon Barker

Hi David, this is a cool idea - well done

Thread Thread
 
davidsgbr profile image
David SG

Thank you Simon!

Collapse
 
allthecode profile image
Simon Barker

Hi Omri,

Your scripts.sh sounds good as well! Yeh, here is a note that comes up when "Ionic audio" in the search field. It deal with an issue I had with ducking audio with a Cordova plugin. Not all that structured, just enough that I can find it again and give me context.
note

Collapse
 
omril321 profile image
Omri Lavi

Hey Simon, thanks for the example! It sounds like a good practice writing such notes.
It's really awesome that you find the time to organize the note each time. Do you write a summary at the end of your day? Or straight ahead when you have something to write?

Thread Thread
 
allthecode profile image
Simon Barker

Depends how engrossed I am I guess. If it's an obvious "this will be useful" then I pop in a note ASAP. Otherwise I tend to take a short note when task switching or a summary at the end of the day. I try to make it as easy as possible to take a note so that it's just part of my natural flow.

Collapse
 
ishaan001 profile image
Ishaan

Rtr morshed rrr FF ttr f rre

Collapse
 
yoursunny profile image
Junxiao Shi

I have a bunch of text files for how I setup each server and deploy applications.
When I need to setup another server that runs the same software, I search existing files for the commands.
Files about cancelled servers are kept in an old folder for future reference.

Not for coding, but similar.

Collapse
 
thumbone profile image
Bernd Wechner

I used to do that. But Joplin (among many other options) supports markdown (hugely nice for lists and links and even screenshots) and syncs across platforms (desktops and my phone) so has proved fare more useful over time than the text files I used to keep.

Collapse
 
allthecode profile image
Simon Barker

Sounds like a great system, also by popping them in old you know that they aren't active but may still give value in the future.

Collapse
 
thumbone profile image
Bernd Wechner

I use Joplin. And yes keep all manner of notes in it. Not least pretty much what you'd call a devop journal (as I devlop and operate servers full schemozzle - which is my word for full stack - Linux and up - to include routers, LAN and gateway as well).

Collapse
 
allthecode profile image
Simon Barker

Joplin looks great - sounds like you are using it just like I describe 😀

Collapse
 
brandoncharest profile image
Brandon Charest

Great article and I couldnt agree more. Personal Knowledge Management (PKM) does seem to be getting a of talk around it recently. I personally use Obsidian, and while I am relatively new to the whole taking notes, writing down ideas, and documenting things I have learned and done, I am already beginning to see the benefits.

I agree taking notes and having quick access to them is great, I would also suggest looking into some of the note taking/storing methods out there and try to gain further benefits.

There are things like Linking Your Thinking, P.A.R.A Method, or even the Zettelkasten Method. Some of these might have paid courses to try and teach you how to use the given method, but there are plenty of free online resources out there that you can learn from. Just need to find the one that works best for you.

Collapse
 
allthecode profile image
Simon Barker

These are all great resource - thanks for taking the time.

Obsidian is installed on my system, I've just not had the time to play around with it yet sadly.

Collapse
 
dsebastien profile image
Sébastien D.

Totally agree with you. Actually, Personal Knowledge Management (PKM) is super interesting for all knowledge workers.

I've just created a new community focused on this very subject, in the hope to regroup people interested in the subject and/or willing to share their experience, knowledge, tools, and workflows.

You can join over here: join.slack.com/t/personalknowl-bwm...

Collapse
 
allthecode profile image
Simon Barker

Sounds awesome, I imaging the listeners of the Cortex podcast would love that slack 😀

Collapse
 
dgloriaweb profile image
dgloriaweb

I keep my notebooks always. I keep one for the standup, with dates, that lists the summarized tasks for that day and what I told the team to finish by EOD, and one for doodles and planning. Like a whiteboard that's not erased.

Collapse
 
allthecode profile image
Simon Barker

Nice, almost like a bullet journal?

Collapse
 
stutteringp0et profile image
Michael Richey

It's a good idea... I had an application that I wanted to build for a hobby project. I had planned for months, and left it sitting on the back burner until I decided - today is the day.

So, long story short, I went into my development server to create the project folder....and it was already there. So I opened it up, and the project was already done. Apparently, 3 months ago I had some wild hair and wrote the code and didn't remember doing it.... To be honest, I had been really busy and the idea of working on my own stuff was just a distraction....but apparently it was a distraction I had already taken.

So I found something else to do. Had I kept a journal, I might have.....i don't know....written something down about it,

It's a good idea, but journaling is a hard habit to start....maybe it's worth putting some effort into.

Collapse
 
dvddpl profile image
Davide de Paolis • Edited

I looked like a super hero for remembering, when in fact all I did was look back through my external store of knowledge where I jot things down every day and regurgitate it.

Happened to me yesterday. Perfectly describes it.
thanks for sharing.

Collapse
 
allthecode profile image
Simon Barker

It's nice when the system helps more than just yourself right 😀

Collapse
 
brpaz profile image
Bruno Paz

Nice article.

If you are familiar with VS Code, you might want to try Dendron. I found it the way they structure the content using hierarchies really good, and it´s similar to the concept of packages/namespaces in coding. And can use the entire feature set of Code like search or extensions.

Collapse
 
allthecode profile image
Simon Barker

Thank you - will check it out

Collapse
 
ntlyaraujo profile image
Nataly Araujo

Great insights about a functional journal! I've been trying to nail down a Notion template that I'd actually stick to every day, but it's been a bit of a struggle. Not having a structure sounds more workable.

Collapse
 
irratzo profile image
Johannes Wasmer

I use emacs org-mode since ten years for that (helm for search). Now adding org-roam to make a graph out of it.

Collapse
 
allthecode profile image
Simon Barker

I have heard that emacs is a whole world in and to itself, I've never taken a look though sadly - never found the time.

Collapse
 
ahmedsaka profile image
Saka Ahmed

Whao what a great way improve yourself as developer

Collapse
 
ddeocampo1 profile image
Dennis V DeOcampo

Hi Simon,
Great read! I use to keep notes and code snippets on notepad and little sticky notes but found that way too disorganized. Several years ago, I decided to create a little database for myself that would allow me to jot down notes that I can query. It's been extremely helpful. Below is a snippet of my web app. I know its not aesthetically pleasing but it was quickly put together using Bootstrap and PHP. I had to block out some of the sensitive info on my notes.
Alt text of image

Anyway, when you click on a topic, it displays all the notes I've added to a specific topic.
Alt text of image

Lately, I've been learning about Python and some other technologies so I've been utilizing Microsoft OneNote, to create virtual notebooks on things I learn, as I go through various tutorials. Keeping a journal and notes have been very helpful for me!
Thank You,
Dennis D.

Collapse
 
allthecode profile image
Simon Barker

This looks brilliant - nice one 😀

Collapse
 
vmohir profile image
Vahid Mohammadi

I use Ticktick.com for both managing my todos and nots. Also I use it for tracking my habits. I think it's a life saver for your work life.

Collapse
 
jlrxt profile image
Jose Luis Ramos T.

Excelente artículo. Gran consejo. Gracias por compartir.