
How to Worry Less About Being a Bad Programmer - shioyama
http://www.stilldrinking.org/how-to-worry-less-about-being-a-bad-programmer
======
zippergz
I've found my career to be a continuous ebb and flow of feeling incompetent.

Very early on, I started out by learning Perl programming on the job, writing
CGI scripts for basic interactive websites. I had no clue what I was doing
when I started, but after a while I was pretty good at it (and felt relatively
competent). Then I got a job where most of the code was C, which I had done
only a little of. After a few years of that, I think I was pretty solid, but
then it was time to start learning about Java and its ecosystem. Later, I
wanted to do some iOS work, so I had to dive head first into Objective-C and
Cocoa - I was pretty lost to begin with, but eventually I got the hang of it.
Somewhere along the lines I picked up Python. I struggled for a while (and it
took me longer than I'd like to admit to get comfortable with significant
whitespace), but I got there.

Now I'm working on updating my web dev skills by learning about React and all
of the surrounding technologies. Once again, nearly 20 years into my career,
I'm feeling pretty lost and incompetent. I've been through this enough times
to know that I'll figure it out, but it can still be pretty frustrating and
demoralizing to struggle to even get something basic working.

I think this is just a fundamental part of software development, and of
continuing to learn and expand your skillset. It's good to remind ourselves
that no one out there knows everything, everyone struggles from time to time,
and if we're hitting speedbumps it means we're learning and improving.

------
somethingsimple
Currently what's making me worry about being a bad programmer is a coworker. I
have no idea what I did to him but the guy clearly has some kind of grudge
against me. He questions my competence (sometimes subtly, sometimes outright)
and doesn't want me changing the code even if I submit a 1-line code review
removing an unused variable. He's a lot more lenient with other people and
sometimes it's me who catches errors in code changes he's already put a "lgtm"
on.

Going to work and having to sit next to someone like that every day is quickly
making me think of jumping ship.

~~~
trustfundbaby
Bring it up to your boss, and make sure you're clear that you need it to stop.
These are the kind of jerks that can do a lot of harm to your confidence and
your career as a programmer, especially if you're a minority in programming
already (by making question if it wouldn't be better if you just went and did
something else, which is already something that the world is telling you from
the get go).

Don't let it slide, raise the issue to HR if you need to.

If it doesn't end, go find another job where you can grow and just leave.
Don't look back. Working with people like this is very poisonous in lots of
insidious ways, and ultimately never worth the stress

~~~
HillaryBriss
It's interesting that a lot of companies complain about a shortage of
programmers and applicants, but, at the same time, allow this sort of toxic
environment to persist.

~~~
BurningFrog
Of course, since there is such a shortage of programmers, people are reluctant
to fire the jerks.

It's also hard for outsiders to tell who is the jerk when two programmers
don't get along. It's often both of them.

This profession attracts a lot of people with low social skills, on or off the
spectrum, so this stuff is hard...

~~~
karmajunkie
There's no shortage of programmers. There's a shortage of employers willing to
pay programmers more than a rounding error on the success of the company.

------
jrowley
This is great. I just started my first real full time programming job and was
feeling a tad incompetent. It definitely resonates. I'm having issues with
really identifying as a programmer and what expectations if any come with it.
I'm starting to come to the agreement that improvement at my own pace and in
my own direction is going to be vital to not burning out.

~~~
goldfeld
Always keep learning in your own pace, pick up technical books, learn a weird
language, get acquainted with vim or emacs, bash, awk.. it might take a
handful of years but eventually you'll feel in the know, have a strong opinion
about most mainstream tech and scoff at rehashes and things that won't die
from 5 years ago.

~~~
rpgmaker
> get acquainted with vim or emacs, bash, awk..

Erm, totally irrelevant to this.

~~~
kkirsche
I would disagree. Understanding different tools helps me to understand how co
workers may approach a problem or teach me about why they use specific tools.
VI mode in sublime may not make sense to a developer who doesn't know what vim
is and why someone may choose to use it.

~~~
tigershark
I prefer to invest my time in learning a new programming language, if I have
to use my time to learn a new text editor (with a very steep learning curve)
than it is absolutely wasted time. Modern IDEs do wonder and, honestly, the
important thing in programming is not to minimise the amount of time that it
takes you to write code, but to minimise the time that other people need to
spend to _read_ it.

~~~
elbear
Bash and awk are programming languages, although they're not something I'm
keen on using.

------
ljw1001
"My favorite job of all time was washing dishes. I was good at it, and I could
do it on autopilot, and it left my brain free to go braining."

I felt the same way for years about working as a landscape laborer. At the
time, my 'information worker' gigs required me to think constantly about the
most mundane things. Being a software engineer is a lot better than that, but
having the freedom to think about anything you want is a very beautiful thing.

------
rpgmaker
Probably the best writeup on the subject of programmers and impostor syndrome
I've seen posted here.

------
HillaryBriss
> Exactly no one knows what's going on anymore, but a lot of people are
> drawing paychecks and clicks by maintaining the illusion that they do. Some
> of them will interview you, and there's nothing you can do about it.

and

>You will walk into any given interview with what you think of as a cornucopia
of arcane knowledge all but forcing its way out of your tear ducts to raise
property values in a half mile radius. Much of the time, you will walk out of
that interview wanting to give up and raise guinea pigs for a living.

------
chronolitus
How I Learned to Stop Worrying and Love Building Software

------
tmahle
Building software is actually one if the times I've felt least like an
impostor (bordering on not at all?). It certainly is much better than science
grad school in this respect, which is likely due to fast feedback from the
compiler, your tests, and your peers. Seeking out feedback at all levels that
you can find it is vital not just for happiness but also for growth, and it
doesn't always come in the form of a paycheck.

~~~
erubin
I definitely agree with this. It's very cool to see something you've built
actually work more-or-less correctly. In science all I get are maybes.

------
praetorian84
Thanks for posting. Haven't laughed out loud that much in a while.

------
sebringj
i would go as far to say if you dont use the tools/tech at your disposal to
get the job done as effeciently as possible then you are suboptimal as a
programmer. the entire concept of technology is building or gluing others'
efforts before you to create something new. there are rare exceptions to this
and these are the very ones you stand on.

