How do you even know this crap?
This post won't be well organized so lower your expectations first. When Rob Conery first wrote "The Imposter's Handbook" I was LOVING IT. It's a fantastic book written for imposters by an imposter. Remember, I'm the original phony.
Now he's working on The Imposter's Handbook: Season 2 and I'm helping. The book is currently in Presale and we're releasing PDFs every 2 to 3 weeks. Some of the ideas from the book will come from blog posts like or similar to this one. Since we are using Continuous Delivery and an Iterative Process to ship the book, some of the blog posts (like this one) won't be fully baked until they show up in the book (or not). See how I equivocated there? ;)
The next "Season" of The Imposter's Handbook is all about the flow of information. Information flowing through encoding, encryption, and transmission over a network. I'm also interested in the flow of information through one's brain as they move through the various phases of being a developer. Bear with me (and help me in the comments!).
I was recently on a call with two other developers, and it would be fair that we were of varied skill levels. We were doing some HTML and CSS work that I would say I'm competent at, but by no means an expert. Since our skill levels didn't fall on a single axis, we'd really we'd need some Dungeons & Dragon's Cards to express our competencies.
I might be HTML 8, CSS 6, Computer Science 9, Obscure Trivia 11, for example.
We were asked to make a little banner with some text that could be later closed with some iconography that would represent close/dismiss/go away.
- One engineer suggested "Here's some text + ICON.PNG"
- The next offered a more scalable option with "Here's some text + ICON.SVG"
Both are fine ideas that would work, while perhaps later having DPI or maintenance issues, but truly, perfectly cromulent ideas.
I have never been given this task, I am not a designer, and I am a mediocre front-end person. I asked what they wanted it to look like and they said "maybe a square with an X or a circle with an X or a circle with a line."
I offered, you know, there MUST be a Unicode Glyph for that. I mean, there's one for poop." Apparently I say poop in business meetings more than any other middle manager at the company, but that's fodder for another blog post.
We searched and lo and behold we found ☒ and ⊝ and simply added them to the end of the string. They scale visibly, require no downloads or extra dependencies, and can be colored and styled nicely because they are text.
One of the engineers said "how do you even know this crap?" I smiled and shrugged and we moved on to the doing.
To be clear, this post isn't self-congratulatory. Perhaps you had the same idea. This interaction was all of 10 minutes long. But I'm interested in the HOW did I know this? Note that I didn't actually KNOW that these glyphs existed. I knew only that they SHOULD exist. They MUST.
How many times have you been coding and said "You know, there really must be a function/site/tool that does x/y/z?" All the time, right? You don't know the answers but you know someone must have AND must have solved it in a specific way such that you could find it. A new developer doesn't have this intuition - this sense of technical smell - yet.
How is technical gut and intuition and smell developed? Certainly by doing, by osmosis, by time, by sleeping, and waking, and doing it again.
I think it's exposure. It's exposure to a diverse set of technical problems that all build on a solid base of fundamentals.
Rob and I are going to try to expand on how this technical confidence gets developed in The Imposter's Handbook: Season 2 as topics like Logic, Binary and Logical Circuits, Compression and Encoding, Encryption and Cryptanalysis, and Networking and Protocols are discussed. But I want to also understand how/if/when these topics and examples excite the reader...and most importantly do they provide the reader with that missing Tetris Piece of Knowledge that moves you from a journeyperson developer to someone who can more confidently wear the label Computer Science 9, Obscure Trivia 11.
What do you think? Sound off in the comments and help me and Rob understand!
Sponsor: Preview the latest JetBrains Rider with its built-in spell checking, initial Blazor support, partial C# 7.3 support, enhanced debugger, C# Interactive, and a redesigned Solution Explorer.
About Scott
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
About Newsletter
In essence: "how do i know that?" The combination of curiosity and laziness.
And this over the years has given me a good base to solve problems from experience.
In the case of ☒, it is called "Ballot Box with X" and may look like this in Samsung: https://emojipedia.org/ballot-box-with-x/ . I found it hard to believe, so here's another source for this image. 😐
Font-based icons or SVG work better, and allow setting the color.
I have thought about situations like you described and what happened to me recently, and I don't think there is anything overly magical or extraordinary involved. I think we just need to break out of the molds our jobs and society try to cast us in. Rarely (never?) does a job description fully capture our breadth and depth of skills - typically they desire a narrow set of requirements to meet well-defined tasks. Our potential goes way beyond that.
Case in point: I am speaking at Pluralsight LIVE next week on Quantum Computing. Looking at the list of speakers and their qualifications and experience I am easily - or at least feel like - the biggest Imposter there. It certainly wasn't my employment that directed me to learn about this topic. Perhaps it was my interests in physics, math, and computer science that led me down this path... but really I don't think I would have taken it without the healthy dose of natural curiosity that I have always had. In the same way I couldn't talk to a soccer pitch demo without understanding the background, I needed to dive deep and research how Quantum Computing is starting to pop out of academia and into the mainstream.
As always thanks for your thought provoking words!
I’m not quite sure how to express it, but I think there is also an important dimension around ensuring that exposure includes a diversity of perspectives on the broad set of technical topics.
If you get really good at that, the language doesn't matter and you unlock your developer superpowers. The language is the easy part. Google (with Bing) the specifics of the language you're working on to find out how to do it there. But you'll look like you're a genius if you can explain the underlying WHEN.
You knew that unicode glyphs exist. You knew that they could be used as an alternative to icons because you've seen it before. When presented with a problem of needing an icon, your mind went to this instead of the much more common, and therefore widely taught, approach of using an image.
Another aspect of it is the propensity for formerly taught well, anything really, to over-complicate a problem. An anecdote I like sharing that shows the difference between a self taught and formerly trained person is one of mine from when I was in the Air Force, literally my first day on station. I saw one of the other teams in my squadron working on a server all day. When the day ended, they were still working on it, so I decided to hang around to see if I could learn something since I had nothing else to do that night. I watched as, after replacing some internal component, they turned the server on. There was a BEEEEEEP BEEP BEEP BEEP and a 2 character hex code on the screen. They all sighed with frustration. From building my own computers as a kid, I knew immediately that it was a POST error. The next time they started up the server, I watched for the code and the BIOS brand. I then went to my desk to look it up. It was a keyboard controller failure. I checked multiple sites thinking there was no way they could've spent all day working on a server because of a bad keyboard, but every site said the same. I went back and told them to replace the keyboard. They dismissed my suggestion as stupid and told me to stay out of their way. About 30 minutes later, I asked them again to just replace the keyboard. They agreed to do it if it would get me to leave them alone. They replaced it, and the server booted up fine. These formerly trained techs assumed it was something more severe because the USAF tech school didn't bother teaching them basic PC troubleshooting.
Such as: the concepts of using message queues and message brokers, resiliency of a system, trade-offs (for example, between microservices and monoliths)
2. Hard lessons learnt which bring better designs for more experienced developers: idempotency, correlation, dangers in (and mitigation of) multi-threaded programming, distributed and local cache.
And i think here is the root of the imposter feeling, the more you use your "giant" the more you feel like a "dwarf" !
By the way thx for being one of my "Giant" :)
Another is the number of hard won known points you can extrapolate from.
But I think a significant factor is your internal mental model of how you phrase questions to yourself. Sometimes people have internally jumped to the first answer that's popped into their head, so they unconciously don't consider alternatives and already have decieded "Need to add a png" and don't consider other possibilities of what might exist. If you have a habit of a considering more possibilities then you tend to have more mental hooks to believe certain things "MUST" exist because it seems likely and you have a habit of going through the cycle of believing certain things exist and then finding them.
طراحی سایت در کرج
Instead of exposure, I'd use the term enlightenment - in the sense of the aggregate result of multiple meaningful experiences. The catalyst to getting better at creative problem solving is the delight of discovery when experiencing eye-opening revelations that challenge our assumptions or broaden our horizons. Curiosity, passion, and fearlessness are the key ingredients IMO.
The number of times I've been able to apply simple stuff I learnt in Perl to modern day scripting languages like Powershell to get a quick solutions is based on curiosity (Just how do I do this in RegEx?) and experience (know when not to use RegEx).
People think you're some sort of guru because you can work out when they have accidentally changed their keyboard to UK English, and can fix it in 2 clicks...but it's just the experience of doing this yourself some time long ago and the ability to remember the easy fixes.
But the curiosity factor is key.
Comments are closed.