jonny b
Geek thoughts, dreams, opinions and sharing of lessons learned
  • Blog
  • About
  • Contact

Note Taking Should Not Be That Stinking Hard

6/12/2018

0 Comments

 
My name is Jon, and I'm a learn-o-holic. I am learning right this very second, and so help me, I will never stop.

[Chorus of voices circling me]:  Hi, Jon.​

While an avid learner, my brain has a habit of being somewhat teflon-like:  Nothing sticks. This is quite undesirable. I want at least some of the things I hear/read/watch to stick around for future use. Therefor note-taking is exceptionally important to me. Over the years, as a computer fan-boy (regardless of OS), I became much faster at typing than at writing, so I started taking notes on a laptop. Initially, I just used Microsoft Word documents, and it was beyond glorious.

Where others had scribble on paper, I had neatly organized outlines with images and links dragged in for details and clarification. Classmates who knew my note-taking style would always ask for a copy if they missed a class. One classmate tried to buy the whole set after attending almost zero classes. My years of frantically flipping through my own horrific handwriting searching for some specific concept were over, and replaced with beautiful and nearly instantaneous search functionality. Even better, by using a search, I find ALL the information about a topic... Not just what I learned on one particular day. No more notes muddied up or destroyed by spilled coffee. No more panic attacks while looking for my lost notebook, that somehow made it's way into the recycle bin. I was in love.

Since my early days of using MS Word for note taking, I have tried out numerous solutions, and my requirements for a note-taking solution have grown as well. Here's what I think is important at present:
  • It needs to support all my devices:  Mac, Windows, iPhone, Android, and preferably Linux.
  • The notes need to be accessible from anywhere (and thereby backed up to the cloud).
  • Ideally there should be a web UI, so I can get to my notes from any computer with an internet connection, without installing software on said computer.
  • I need lists and basic formatting for the text, at least. The richer the better, but at least things like a few different font sizes, bold, and italics. Plain text will not do.
  • If I can't add pictures and links, that's a deal breaker in a huge way.
  • The ability to mark up images is gravy, but like real gravy, it's the absolute bomb.
  • It should be free... And if not, it better be better than the free options available in a significant way.

What have I tried, and why were they insufficient? I'm glad you asked. What didn't work for me might fit your own needs just perfectly!
  • The original:  MS Word docs on my local computer. This was a great start, but it required software, wasn't free, wasn't available on the web at the time (and today I find word online to be clunky at best), and more. You're responsible for backing things up. You're responsible for making sure your notes are available on other computers in some way. Sharing notes with others is difficult.
  • Circus Ponies Notebook:  In my Mac-centric years, I didn't care about running on Windows. This too was great software, but single-platform, and, well, the company has since gone under.
  • Personal Brain:  Super awesome software that runs on lots of platforms (more and more over the years) with a beautiful UI and mind-mapping sauce for organization. I absolutely LOVE this software, but the bugs were frustrating, and it made me nervous putting so much data in software that felt like it was barely hanging on to its own complexity. Also... Super expensive, and new versions require more expensive upgrades. After a while, I just couldn't trust the software, and the cost for such a feeling was too great.
  • EverNote:  Loved it, but then they wanted money. I totally sympathize... I code for a living, and I don't really understand why there is so much free software out there. That being said, given finite amounts of cash, I always search for the free tools before bumping up to a paid tool.
  • Microsoft OneNote:  Mega-loved-it for the past few years, but in the past month(s), the Mac version seems to be suffering greatly. This will almost certainly be fixed in time, but right now, the app will hang... Frequently indefinitely... And I'm at a conference trying to take notes, rendering the situation untenable. This has driven the current personal report and exploration of new options... And I've found a new winner! Stay tuned.
Picture
Simply pasting a URL copied from my browser's address bar often causes OneNote to hang.
  • Google Docs:  I gave this a brief look over the past couple of days, and it probably would work well. However, I wanted to keep my notebooks separate from my documents in Google Drive. This might be a mistake... Time will tell.
  • Google Keep:  The interface was just too minimal for me. Seems great for little notes, but not full on notebooks chock-full of kick-ass content.

My New Note-Taking Love:  Dropbox Paper
​
​​I only met you yesterday, Dropbox Paper... But I had never even heard of you, and I'm a notes-loving-nerd! I'm a little embarrassed to have been caught by surprise by this bad-boy, but now I'm making up for lost time. I've copied all the notes I've taken for the past couple of days, and pasted them into a Dropbox Paper notebook, and now used it to take notes at a couple of new talks I've just attended. I'm learning the tips and tricks as I go, and the functionality is suiting my needs quite well. I really love the little keyboard-shortcut cheat-sheet you can have open on the right margin of the web app. Here's why I'm loving "Paper" so far:
  • It's simple, lightweight, and fast
  • Simple, clean interface
  • Text formatting is limited, but it's got the things I need most:
    • A few different font sizes, bold, italics, and a great bonus:  horizontal lines to separate sections
    • Ordered and unordered lists
    • Links
    • Images
    • Videos
  • Web UI, and the data is stored in Dropbox so I never worry about backups, and I can access my notes from anywhere and everywhere, on any platform
  • Apps for iOS and Android
  • Link to documents
  • Work collaboratively with others
  • Super-awesome, auto-generated document outline based on the text you format as a header (H1 or H2). It stays out of sight on the left until you mouse-over the area, but it's super handy for navigation when a notebook gets large!
Picture
Just click on any of the auto-generated section headers!
​By tomorrow, I may have found the fatal flaw that makes me move on from my Dropbox Paper affair, but for now, I'm in total puppy-love with the thing, and I'm going to try to rock it throughout my week-long conference. What's your favorite note-taking tool? I'd love to know what it is and why.
0 Comments

What's Your Goal When Giving a Technical Talk?

6/11/2018

0 Comments

 
I do everything I can to see as many talks as I can as often as I can in the field of software development. Yup... That's an opening sentence with a whopping three "cans" in there. That's how important I think these talks are. The field of software development is difficult, frequently changing, it's relatively young, and I would argue that there are few if any types of schools or training programs you can go through that will really make you anywhere near being an expert. There is no graduate school that will make you a rock-star developer. If you know of one, please let me know!

​The experts of software development are made through hard work and passion, frequently at night and on weekends. We code all day to make a living, but we don't always get to spend the time researching the very best way to do something, sacrificing that level of quality for a faster time-to-market. We see workarounds and hacks throughout production code because of this very problem. Some developers commit this code shamefully, others don't yet know enough to be ashamed. A select few have the depth of understanding and knowledge (both technical and domain) required to architect and code an application or service that is, for lack of a better term, "as good as it can get". I wish I was one of them, and it is my eternal "lofty goal" to become one.

What is a "lofty goal"? It is an ideal. A dream. It is an unrealistically high-standard to which we strive, knowing full well that we will almost certainly never complete the journey. The beauty of it is that you will likely find yourself on the path of continuous improvement as you reach for your goals. "Shoot for the moon. Even if you miss, you'll land among the stars." (Norman Vincent Peale)

Side-note:  Yes, yes, yes... I can already here some of you cursing my name, pointing out how Peale's famous quote about shooting for the moon makes no sense when examined literally, and so on. Have fun cursing me, because I'm using the quote anyway.

Now that I've run off on a couple tangents, let me get back to discussing technical talks. There may be several motivations for giving a talk. Money, exposure, notoriety, forcing yourself to learn something better, etc. For me, the number one motivation is to level-up your audience. My goal is to have attendees leave my talk with at least a nugget or two of information that helps them improve as a developer. Wrapped up in that goal is a desire to make you, the developer, feel better about yourself, your career, and your future. Therefor, anything I do or say as a speaker that makes you feel worse is directly antithetical to my intent.

In consideration of the above, here are some things I avoid saying in my talks:
  1. If you're doing <insert horrible practice here />, please stop writing code.
  2. If you're doing <insert ludicrous anti-pattern here />, you should not be a developer.
  3. Does everyone know about <whatever technology/technique/tool />? If you don't, I really wonder why and indeed how you can possibly be a developer.

These are just a few examples I just saw happen in a few different talks recently. The egos of software developers ranges across the board:  We have the over-confident know-it-alls, who probably do not actually know it all, down to the frightened developer who suffers from a massive case of imposter syndrome. As usual, the truth lies somewhere in the middle. Those who berate themselves about how little they know are likely not giving themselves credit for the things they know quite well. The ones who think of themselves as superstars, virtuosos, or technical saviors are quite likely turning a blind eye to the multitude of things they don't know.
Picture
Credit: @aliciatweets
​If I've taken the time to come to your talk, it's because I want to level-up and improve my skills. I want to learn something new. It is my goal to learn about what I am not doing so well, so that I can do it a little better next time. I don't want to be told that I'm so bad that I should leave the field. My inner-voice says that to me plenty... I don't need yours added to the choir. Thanks, though.

I have made a metric shit-ton of mistakes and errors throughout my software career, and I'm quite sure I will continue to do so until I kick the proverbial bucket. I celebrate failure, and I try to fail as quickly as possible to move through bad ideas and come up with that good one that gets the job done, and does that job particularly well. I have broken builds. I have broken unit and integration tests. I have corrupted databases. I have created race conditions. I have unintentionally created infinite loops. I have attempted to implement design patterns, and not realized for months or even years that what I did was insanely flawed. I have checked in non-compiling code and incurred the wrath of a team full of more experienced developers (it was my first time using version control... ever). 

I'm willing to bet most speakers have made some fairly epic mistakes as well, some more incredible and costly than others. What I believe best serves our audiences is to help them realize they are not the only ones making mistakes. They should be more aware that they are not at all alone, and we all struggle with things when they are new to us. Don't lambaste us for our mistakes or even our ignorance. We've come to your talk to try to make fewer mistakes and be ever less ignorant. 

Let's go out there and write some code. Let's make that code the very best we possibly can, and as we learn about things we've done in a not-so-great way, let's refactor it to better patterns and practices. I am a huge believer in assuming positive intent:  Every single line of code I write is done to the very best of my current skill level, using the best tools I have available. Assume that every single face in your audience does the same. They are there to improve... So let's help them do just that.

Go give a talk, and help another dev learn something you struggled through!
0 Comments

    Author

    Jon Bachelor:  This geek goes all the way to 11.

    Archives

    March 2019
    July 2018
    June 2018
    May 2018
    June 2017
    July 2016
    June 2016
    December 2014
    November 2014
    September 2014
    March 2013
    January 2013
    December 2012
    November 2012
    October 2012

    Categories

    All
    Coding
    Education
    JavaScript
    Mac
    Not Geeky
    Presentations
    Reviews
    Shoutouts
    Tools
    Tutorial
    Xamarin

    RSS Feed

Powered by Create your own unique website with customizable templates.