
I feel like a fraud and that’s a good thing - robin_reala
https://medium.com/@codepo8/i-feel-like-a-fraud-and-thats-a-good-thing-cc1fa338b902
======
delluminatus
I thought this was going to be a humblebrag -- and boy, it sure started out
that way -- but I was pleasantly surprised by the end.

It made me think about how some tools, libraries, or frameworks seem to prefer
to use buzzwords or neologisms to make simple things seem complicated. As
though by obfusticating the problem domain, they can make their solution seem
that much more magnificent. As though the docs should make you feel stupid.

And the reason they do this is because in our industry, it works. Things often
seem impressive to the degree that they seem complicated. People are
"advertising" their stuff by making it seem like a special snowflake instead
of a simple thing.

Far be it from me to blame people for doing something that works. But there is
a bit of an echo chamber, especially in this forum, where developers --
_developers_ , not marketers, not "suits" \-- prefer to use buzzwords over
plain language, and they would rather you think they did something complicated
than something simple or something solid.

~~~
analyst74
That is a natural problem in our industry. It requires far more skills to
write simple code to solve complicated problems than to write complicated code
to solve such problems. What makes it worse is once your head is fully
immersed in the problem space, the line between simple and complicated becomes
blurry, and what seems like simple solution at the time may seem overly
complicated to someone who has not gone through the same thought process.

~~~
nogridbag
I agree but I'd also like to add that most of the time the complexity for me
using some frameworks, libraries, or tools has nothing to do with code but
instead in the prerequisites for using them. The authors of some tools make
certain assumptions about your knowledge of the whole ecosystem around the
tool or supporting tools. Here's a few examples that have caused me pain:

Some time ago, an upgrade to Foundation framework required NodeJS and Ruby
1.9+, a version not preinstalled on my Mac. OK, at the time I knew nothing
about NodeJS and have never used Ruby, how hard could it be? 5-10 minutes max?

    
    
        - NodeJS installed fine, but I had to use "sudo" to install modules or I'd see errors
          - Googled... many people used "nvm". I installed nvm, had some issues, but in the end all worked fine
        - Next, Ruby. "rvm" is popular, I'll try that.
          - rvm installation failed with a cryptic error message, Googled message...
            - I need to install "command line tools" which come with Xcode
              - I don't have Xcode and apparently it's several GB, after an hour or more I finished downloading it.
                - I had to open Xcode, find some random preferences panel and click some button to install "command line tools"
            - rvm installation still did not work, Googled.... many people use Homebrew
              - installed Homebrew, ruby 2.x installed (with strange warnings) but showed 2.x in the console
                - Foundation tools did not work
              - Googled how to uninstall Homebrew, found some random "gist" script some guy made which does scary things on my system
          - Tried installing rvm again, and for a reason unknown to me, it was successful!
            - Foundation tools still did not work
            - Didn't notice, last two line of rvm installation required me to copy/paste two lines into the shell.
    

Great, now I can use Foundation in my Grails project that has nothing to do
with Ruby or NodeJS. This whole process took ~6 hours, half of the time I
spent just googling error messages.

More recently, I couldn't figure out how to properly package/bundle my React
app into a single minified JS file with browserify. The docs linked to a nice
simple template:

[https://github.com/petehunt/react-browserify-
template](https://github.com/petehunt/react-browserify-template)

The package.json has a few useful commands in the "scripts" section:

    
    
      "scripts": {
        "start": ...
        "build": ...
      }
    

"npm start" works fine, so why isn't "npm build" working!?!? I posted on
stackoverflow and got no answers. Ten days later I figured it out. Knowing
very little about npm I had no idea "npm start" was a shortcut for "npm run-
script start" and thus I needed to do "npm run-script build".

~~~
johnchristopher
> most of the time the complexity for me using some frameworks, libraries, or
> tools has nothing to do with code but instead in the prerequisites for using
> them. The authors of some tools make certain assumptions about your
> knowledge of the whole ecosystem around the tool or supporting tools.

Somehow I feel better knowing there's at least one another person on the
planet losing 6 hours at time for `just installing X piece of tech`.

Worst thing I had to figure out was that the node package on raspbian is
originally related to some radio thing and I had to symlink node-js to node to
make it work.

It just goes to show the utter most importance of good documentation. Good as
in `human readable` not `logically correct sentences à la man GIT`.

~~~
mark_integerdsv
I'll chuck my hat in the ring here too... got a new MBA recently and it came
with Yosemite which introduced one or two curveballs when setting up for web
development.

~~~
daphneokeefe
You got an MBA or a Mac?

~~~
mark_integerdsv
MacBook Air

------
nogridbag
This article really resonates with me. Most of my coworkers seem perfectly
happy to simply show up, do their work and go home and have no desire to seek
to improve their craft.

Sometimes I wish I could be like them. I have this thirst for knowledge and to
improve my skills, which is why I'm here reading HN. But it is really
overwhelming at times trying to keep up with everything here and at times I
can't help but feel inferior to others at times.

I spent several years using GWT and now I'm getting compensated very nicely to
work on an multiple ExtJS products. To keep from getting left behind I've
toyed with Angular, React, Mithril, mercury, Redis, etc. and my queue of
things to learn keeps getting larger and larger (Docker, Vagrant, Sandstorm,
most of AWS stack, ...). At this point I probably have at least 200 bookmarks
tagged with a generic "Programming" label.

When I'm responsible for the architecture for real systems, I sometimes feel
like a fraud. Domain driven design, TDD, CQRS, anemic vs rich domain models,
functional vs OO, agile... do I really know what I'm doing? Does anyone know
what they're doing?

I recently looked back at some code from some senior level architects I worked
with when I was still relatively junior - guys I really respected. Some of
those projects had truly awful architecture and I must admit I felt a bit
better about myself after seeing that code.

~~~
jhildings
Not much to add, but I feel quite the same. There is a list of neverending
things that one is supposed to learn ;P

~~~
marktangotango
The secret is to learn what you need to know when you need to know it. I
recently had to use some new js framework hotness; spend a couple days reading
blogs, tutorials, and the docs, learn what you need to be productive and move
on. Then dump it all, and jack in the next big thing for the next project.
Rinse repeat.

No one knows it all, no one expects you too. You are expected to learn, get up
to speed, semi independently and with little direction. It gets easier after
you've done it a few times, then it get really old.

------
vijayboyapati
This article felt very validating for me. I've always done well at school (4.0
in college), on various tests and at work, but it never registered and I've
always felt like a bit of an impostor. When I was an engineer at Google I
particularly had this feeling because I couldn't really build anything. Well,
strictly speaking that wasn't true; what I mean was that my job was so pigeon
holed that I only knew how to do specific things really well. I couldn't, for
example, setup a basic web business with a database backend (horror!). After I
joined YC I had to go through the process of learning about all the tools that
were available that would help me piece together a product without having
Google's giant infrastructure behind me, and without the help of internal
technical mailing lists where any question could be quickly and expertly
answered. This was quite daunting, but also enormously gratifying. I finally
learned that I can build entire products on my own and have a sense for a full
development stack and how to e.g., inter-operate a crawler and an indexer and
a frontend, and how to host the whole thing. But even after doing this, I
still feel like an impostor! I think this feeling will probably never leave
me, but as the author says it can be beneficial. But I think I (and others who
suffer from this) need to be mindful of the downsides of this syndrome: the
reluctance to ask questions for fear of seeming incompetent. The difficulty in
approaching new problems for fear the new knowledge involved might be
insurmountable. And of course the general sense of self doubt that afflicts
those with impostor syndrome.

~~~
Animats
_I finally learned that I can build entire products on my own and have a sense
for a full development stack and how to e.g., inter-operate a crawler and an
indexer and a frontend, and how to host the whole thing._

I've done that. Now all the technologies I'm using are obsolete. I have Python
2.7 code using FCGI and a MySQL database running on dedicated servers, pushed
to the server with Dreamweaver.

Works fine. Needs very little attention. But it's totally obsolete. I need to
learn a bunch of new technologies to do the same thing. And they're boring.

~~~
task_queue
Congratulations, you have a low maintenance system built on solid technology.

New isn't better, especially when it's rehashing the same problem that was
solved decades ago.

------
rudolf0
It's a lot easier to handle feeling like a fraud when you receive no negative
feedback with overwhelming positive feedback, and are very confident regarding
a certain domain. If someone feels like a fraud even in their "core
competency", that can create a lot of unneeded stress and anxiety in their
life.

But I agree that intellectual humility is very important to self-growth.

~~~
JimboOmega
Honestly - this is part of why looking for jobs is so very hard, which is what
the author mentions right at the beginning. There are lists of requirements
you know you don't meet, and often times you apply, and for reasons that may
have nothing to do with how skilled you are, you don't get the job. Maybe you
have a few rounds of interviews that seem to go great, but there's no offer.

You start to wonder if your language/skillset is over the hill, if you really
aren't so good at code, heck, maybe YOU are too old in SV years.

Something about the job search process really amplifies this feeling. You
never know why they think it isn't a fit - but it's only in searching for a
job that you are actually getting some external feedback.

And it's tough.

Even if your skillset is in demand and recruiters are crawling all over each
other to make you offers, if the companies you really love aren't among them,
it makes you wonder.

It's tough. And it's easier to play the games and engage the behavior the
author talks about to get "likes", hacker news upvotes, reddit upvotes,
whatever, to let you know your views, your languages, your skills are valid.

It's tough out there.

~~~
emsy
I've recently tried to get some projects. The required skills are almost
always ridiculously specific. It's not unusual that the projects descriptions
want you to be an expert in the whole software stack and the project domain.
This is a grave problem because people who feel like impostors lose projects
to intentional impostors. There are some ways to tackle this problem, but I
think it hurts companies and honest developers more than it needs to.

------
placebo
The article touches some of the core things I ponder when trying to keep on
top of the latest and greatest in the tech world and deciding how to
distribute my finite time and energy, and many issues resonated with my
feelings on some of the high tech trends.

I disagree however that feeling like a fraud is a good thing (unless you are
one) and strongly believe there are much better motivators for studying and
being great at something than the fear of others being better than you. I
think it is exactly this fear which is at the heart of what enables the
emperor's new clothes syndrome to flourish.

Of course, in addition to the hype and buzz there are also a growing amount of
authentic great new technologies, but you can't hope to learn them all. The
best you can do is know _about_ them so that you'll be able to retrieve them
and dive deeper if and when they become relevant to something you need to
implement.

------
getdavidhiggins
I've been following Chris' work for years, and I think he articulates this
'trying too hard' nonsense you see everywhere on Github. Like we can make a 3D
cube in HTML and make it spin, but people can't buy a ticket to fly to another
country without what feels like a case study in dark patterns, usability
issues, and horrific a11y issues.

All code is energy, and if it's squandered in the wrong places, you get an
imbalance. The net effect of engineers getting carried away in a lab is ― you
get kids learning how to make their first website thinking that code is some
dark art, and some black magic. It's not.

    
    
        <b>Look ma, no GruntJS</b>
    

It's rather simple stuff. That said, any time I read the words "Impostor
Syndrome", I think of agony aunt sections in newspapers, and open teen
diaries, not learning how to style a bullet point with CSS, or improving my
craft.

------
mproud
I’m in the exact opposite spot. For me it’s becoming a bad thing.

• Lack of confidence

• Lack of self-esteem

• Lack of aggressiveness

• Lack of fearlessness

I’m much too humble and too honest. Although these are great personal
qualities, and can help when working in groups, in the end they do not get you
very far, nor quickly, in business.

------
FLUX-YOU
>Feeling like a fraud keeps you humble, it keeps you sane, it keeps you on
your toes.

Or it just erodes your self confidence until you're committing fixes that miss
obvious details which then goes to production and breaks things. Now I'm just
stuck in a positive feedback loop and frankly I don't think I'll be able to
justify my pay in 6 months.

~~~
nitrogen
Sounds like you need a vacation. Pick one of the next three weekends, reserve
a hotel, pack a bag (and family, if appropriate) and just drive off.

When you get back, start writing integration tests for your project's "happy
path" to catch those kinds of mistakes.

~~~
FLUX-YOU
Honestly, if I need a vacation after 6 months, I don't think I'm cut out for
this work/this company.

~~~
tinco
Is six months a short time? Maybe it's because I'm European but six months
sounds like a really long time to go without even a short vacation.

~~~
larrymcp
Haven't taken a vacation in about three years. It hasn't occurred to me to do
so! Love my job so much.

------
heywire
> What you do is compare your secret blooper reel with the post-production
> highlight reel of other people. You know more about yourself than anyone
> else.

What a great quote.

~~~
Terr_
Variations on "bloopers vs highlights" have been around for a while, I'm not
sure who (if anybody) was the original source.

~~~
tricolon
Here's something in the same vein that I use to cheer myself up every now and
then:
[http://www.viruscomix.com/page528.html](http://www.viruscomix.com/page528.html)

------
gjcourt
This guy literally "wrote the book" that taught me javascript. One of the best
resources that I've ever used to this day. Kudos on the new job.

~~~
jhildings
Which book ? :)

~~~
gjcourt
Beginning Javascript with DOM scripting

------
Animats
That's the human side of "meet the new technology, same as the old
technology". There are a vast number of levels of cruft to master to do
anything now. They're constantly changing. This used to be the issue with GUI
toolkits, most of which do roughly the same thing. Now it's more server-side.
Lately, it seems that the complexity is not in the code that actually does the
work, but in the packaging systems. The amount of packaging seems to increase
over time.

Here's a presentation comparing four build systems for Javascript:
[http://jbavari.github.io/JavascriptBuildSystemShowdown](http://jbavari.github.io/JavascriptBuildSystemShowdown)

This is for a language that is deployed as source code. What's wrong with this
picture?

There's lots of new, exciting stuff that actually does something, like machine
learning or vision processing. That's worth learning. Having to learn another
build and deployment system, or worse, being expected to know it to get a job,
is just wearing.

------
fndrplayer13
I think the sphere of technology where he's focused (frontend) is particularly
fast moving right now. It is extremely humbling to read about somebody like
this feeling this way. I know many developers, myself included, experience
these pangs of inadequacy on a frequent basis. It would be hard not to, things
move fast and everyone around us is talented and smart. But, just like anyone
else, I think this article reminds us that we're all human, no matter how
talented, and open to feeling inadequate. There's always more to know, more to
achieve. But its good to pause and focus on the skills we have sometimes to be
grateful for what we've done.

------
Bahamut
I am fortunate to have already experienced the "Do I belong here?" feeling
from graduate school. The thing to remember is this - there are always people
who are going to be ahead of you just by virtue of having more experience. How
you carry yourself is the most important thing though.

In this context, if you see someone who is better than you at the moment, do
some work trying to improve yourself and your abilities. The best don't become
the best instantaneously - they do it through hard work & maybe a little
talent.

My own experience probably has helped me take on the correct perspective in my
own career as a developer - I do things purely because I want to do it or
improve myself. I don't care about being the most popular/well-known developer
or anything like that - it is a job that I happen to like is all.
Stars/likes/etc. on GitHub, those don't matter. I create stuff for fun, and if
it becomes popular, so be it - I work on open source stuff in the hopes it
helps people and to improve my own abilities.

~~~
delluminatus
I remember that feeling in my upper-division math classes in college -- PDEs,
abstract algebra, etc. It seemed to me like I was struggling (which was a new
experience for me in math class) and to make it worse, I sat next to this guy
who always seemed to know it cold. I would score in the 80s on almost
everything, and I would look over there and this guy would have perfect scores
all the time. It definitely bothered me.

About halfway through the semester I ended up spending more time with this guy
and I realized that he really lived and breathed mathematics. I mean, he did
all the exercises in every chapter. (Who does that?) He would study for hours
and hours before tests. Anyway, it kind of taught me a lesson. If you want to
belong, you have to work for it. Nobody's just going to move over to make a
space for you. You have to carve a space for yourself.

------
jbrooksuk
I missed Christians post about moving to Microsoft, so this was a nice read,
especially seeing how worried he seems about it.

I did a talk back in November which included a section on "Imposter Syndrome".
The video can be found here; [https://james-brooks.uk/staffs-web-meetup-
video/](https://james-brooks.uk/staffs-web-meetup-video/)

------
drawkbox
Very good article on some of the more _plastic_ or marketed aspects of tech,
over what really building good systems and products is about.

------
ryan-allen
I'm not entirely sure that programmers should be advising us on psychological
issues based on personal anecdotes.

------
johansch
Another self promoting "evangelist". Please save us from their spam. The way
to get your stuff noticed (and hence the approval of your manager) _should_ be
posting stuff with actual valuable content. Not tabloid meta teasers like this
one.

------
Mz
FWIW to the author of this piece: I don't know who you are and googling did
not turn up a Wikipedia page. So that makes me think you aren't really FAMOUS,
no matter how many people online or in tech might know of you.

The song "Thank you" by Alanis Morissette comes to mind. She hit it big at a
young age. She wisely did not want to suffer the fate that stars like Meatloaf
suffered when he hit it big young and then crashed and burned. Overwhelmed by
her fame and success, she took a sabbatical and stopped singing. She found her
voice again while visiting India, where she was surrounded by throngs of
people, none of whom knew here. It was a good antidote to the ills of fame.

It's a big wide world.

~~~
sprkyco
Without googling around I found this link at the end of the story that
validates, in my opinion, your misplaced concerns.
[http://icant.co.uk/](http://icant.co.uk/) [http://developer-
evangelism.com/](http://developer-evangelism.com/)

~~~
Mz
_validates, in my opinion, your misplaced concerns_

I apologize, but I cannot parse that. Are you saying that the links validate
my point of view? Or validates your opinion that I am in error? I just can't
make heads nor tails of what that phrasing is supposed to convey.

thx

