The Thing Is: On Awesomeness and Motivation
Tags: webdev, motivation, javascript
Published: 2021-10-12 12:37:18

Have you ever gone [down a rabbit hole](https://www.dictionary.com/e/slang/rabbit-hole/) of research and development trying to solve one small little, seemingly insignificant problem, that just [gets your goat ](https://www.phrases.org.uk/meanings/get-your-goat.html)? And while chasing it down this rabbit hole you, you look furtively over your shoulder wondering if anyone is noticing, because if they do, you know they will question you priorities if not your sanity? And yet, it rewards you immensely with learning and adventure which is like  a trail of breadcrumbs that drew you down that hole, to the end ...?
![Down the Rabbit Hole](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mjtivqdw2dzqvuxmdhg3.jpg)

Well I certainly did last month, and it took me on a journey of learning and development way out of proportion to the magnitude of the problem I set out out solve. And of course as I noted on [Simon Barker](https://dev.to/allthecode)'s recent post [*I Bet You Don't Keep A Developer Journal: 3 Reasons You Should*](https://dev.to/allthecode/i-bet-you-don-t-keep-a-developer-journal-3-reasons-you-should-4kn3) I keep a journal of what I've learned mostly using the awesome note-keeping tool [Joplin](https://joplinapp.org/) and this one blew out to over 10,000 words and touched on a good many Javascript themes. So I thought it worth sharing - why keep those 10,000 words to myself :blush:.
![Joplin Notetaking App](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wtx05bw4i83jbf0gqte8.png)

## On Awesomeness

The experience reminded me of [Jeniffer Carvalho](https://dev.to/jenicarvalho)'s recent post [*Am I a good dev?*](https://dev.to/jenicarvalho/am-i-a-good-dev-ai8) in which she discusses awesomeness from a distinctly bleak anxiety-coloured perspective. Her premise there was apparently that *awesome* is measured somehow (just) by skills, experience, talent, creativity, achievements etc. etc. all the things that someone else, perforce (unless we are at the top of a particular heap) does better. From which she concludes that we are (probably) not awesome, and that is OK. 

My [response to that](https://dev.to/thumbone/comment/1h7k5) was essentially that awesomeness can of course be measured that way but also by another ... one that I find far more useful not least when I am recruiting or conversely pitching myself in an interview. And from it I conclude much rather that it is not OK to settle for less than awesome, but that awesome is within our reach, mine, hers, and yours. That  is of course contingent upon what we consider awesome.
![Everything is Awesome](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ua0chrjs57yaakf5l286.jpg)

And *awesome* to me has never been (just, or even necessarily) over-achieving productivity, performance and skill. Much rather, awesome, to me, and I suggest more usefully to you and anyone else, is related to self awareness and a desire to grow. Awesome is not someone who knows lots and lots, but who knows what they know and what the don't; someone who is self aware, and not hubris laden and arrogant, but radiantly comfortable with their current skill set and not overselling it or underselling it, not afraid of its paucity and not smug in its abundance. Awesome is someone who exhibits a desire to grow, to learn, curiosity and drive to gather skills, who is self driven, is motivated to and knows how, to learn what they need to learn. Not least in an age where learning has never been more accessible and within reach nor more consistently required as the world around us changes more rapidly than ever before.

Which touches on the theme of motivation and drive. 

## On Motivation

To me, "awesome" relates to a driven motivation to learn, to grow and to perform, and to do good, to contribute and to add, however little to the welfare of others and the betterment of ones community, and society.

Which takes us back to that rabbit hole I described and that furtive, guilty glance over the shoulder, the desire for some quiet time, alone time away from the judging eyes of reason, and prudence for example. They eyes that a boss, a project manager, or a business manager cast upon us. That will argue, you are way over-investing in this little problem, let it rest, we don't need that fixed, we have much [bigger fish to fry](https://idioms.thefreedictionary.com/bigger+fish+to+fry), [drop that bone](https://upload.wikimedia.org/wikipedia/commons/4/48/Drop_that_bone_and_get_the_ham_You_are_just_working_dogs.png)!.
![Dog with bone](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/trxtj9acc5dqz330cuva.jpg)

The bait of self development, of learning more for future projects, is strong and if no-one's there to chide us, the hours disappear and after too many days, a small little problem is fixed - but so much was learned on the way.

I had just such a problem this month. It was to do with a  copy button on a website that copies an HTML element to the clipboard, which wasn't working perfectly and then a small change to CSS triggered a break and I wanted it fixed. 
![Copy to Clipboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lorkpjkzayl46rudvtoq.jpg)

The fix touched on many themes, not least this one (of motivation and a desire to do good, to be awesome and sheepish concern that my time was actually much better used on more important problems) but also at least these:

1. How to copy an HTML element to the clipboard
2. How to package styles with that copy
3. How to inline styles client side
4. Scheduling expensive operations
5. Maintaining a responsive web page during expensive operations
6. Monitoring expensive operations
7. Cancelling expensive operations
8. Restarting expensive operations
9. Triggering expensive operations
10. Inspecting the system clipboard
11. Encapsulating code in a class
12. Losing `this` and finding it again
13. Asynchronous JavaScript and Promises
14. The JavaScript event loop, micro and macro!
15. Diagnosing strange failures

## On the power of story

Precisely because such a small little job, took me on a tour of so many themes, and offers so much learning scope, I can't help but feel that this small problem provides an excellent entry theme for a series that walks through these learnings ... a tutorial if you will, not on a given tool or technology, but on a group of related tools and technologies and over-archingly the process of self driven learning to solve a small problem.
![How storytelling affects the brain](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r41tuwmrchbmsen4yoqz.png)

That is reinforced by my passion for story. For most of our evolution as a species the primary mode of teaching and learning was through story, and it remains a very powerful feature of our lives. In fact [modern research](https://bigthink.com/experts-corner/decisions-are-emotional-not-logical-the-neuroscience-behind-decision-making) is clear that we are not as rational as we like to think, that most of our decisions, and for that matter retention of information is tied to our emotional nature, with post-hoc rationalisation lending a comforting illusion of reasonableness. We rationalise, as it happens, mostly to justify our positions rather than to derive them. 

To wit, I will tell a story ... from my abundant notes. Paraphrased, I will transcribe, piece by piece in a series to follow.

The result is a JavaScript class `Copy_With_Style` with under 1000 lines, that can manage a copy button that copies any HTML element of your choosing to the clipboard, in a way that can be pasted into any other application (and retain its styles truly and completely if desired, or statically in a form that can be emailed). 

```js
class Copy_With_Style {
      // Lots of goodness herein
}
```

It will be introduced in this series (and duly on Github). I hope I can get one chapter every week at least if not more. 

**Footnote:** Of course we can and do reason. And we can find solutions to problems and create wonderful things through reasoning as well. But our reasoning is best supported by structure, records, and feedback - to wrest control from our emotions. And this story is one precisely of the blend, of an emotional drive to fix this niggling little problem and learn what I can, against a structured approach to discover, learning and testing.
![I learned a lot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zuu97a7nn48jscvk84tk.gif)