
How to seem good at everything: Stop doing stupid shit - jinfiesto
http://jinfiesto.posterous.com/how-to-seem-good-at-everything-stop-doing-stu
======
Periodic
I see a lot of people do stupid shit because they don't seem to think it will
make a big difference. One mistake isn't a big deal, is it? The problem is
that it becomes habit, and then you're making plenty of these, and you think
it's okay, but in reality a lot of these mistakes have become normal.

I think the most profound thing about the post was that it showed a striking
difference between determined practice and directed practice. Just being
determined and putting in the hours will _not_ be sufficient to pass a plateau
of learning. Sometimes you need _directed_ learning to push you past that
plateau.

Applying that to code, I think this is the difference between just programming
a lot and thinking you'll get better, and actually reading texts, reading code
and talking to other programmers to see how other people do things better.

For example, you can start using more anonymous functions in your code because
all the cool kids are doing it, but unless you really understand how to deal
with high-order functions and what a map and fold are, you are just going to
be doing stupid shit that doesn't really help your code at all.

~~~
joe_the_user
_Applying that to code, I think this is the difference between just
programming a lot and thinking you'll get better, and actually reading texts,
reading code and talking to other programmers to see how other people do
things better._

I don't think this follows from the article. "Not doing stupid shit" in the
article's term is getting better at the basics. When you're describing is
directed study but I can't see how it is directed at "the basics of
programming", which would have to be something not off-by-one, not using
objects before their initialized or whatever is "really simple".

The problem of overcoming bad habits is a really tough one.

In a performance-based skill like Chess or music, you can drill simple stuff
to make them perfect. It's hard to see a simple equivalent in programming.

I'm also not sure if there is an equivalent to perfection in programming. All
the things that slow me down do look "stupid" on some level but they're
stupidity of different levels, from design to variable name to the creation of
functions to understanding and avoiding syntax errors.

If there is an awareness drill to educate oneself against bad programming
habits, I'd love to find it.

~~~
wisty
Have a look at the Joel test. It's outdated, and might be a little
controversial, but it's it list of ways to fix "stupid shit".

I don't have a copy of "Code Complete", but from what I've heard it's a
similar deal. XP _arguably_ eliminates a lot of stupid shit, but _arguably_
introduces a lot of stupid shit at the same time (as do many dogmatic
processes).

While "best practice" lists are always going to be controversial (in both
programming and music, but not chess), they do have a lot of value if you
don't overuse them, and take them with a grain of salt.

~~~
joe_the_user
I think you're also missing idea of "fundamentals" as essential thing that
article means by "stupid shit" - fundamentals meaning habits and not just
instructions.

Not all "bad stuff" is "stupid shit" in this approach. The "joel test" really
doesn't relate.

Just about all Chess players know to avoid hanging pieces - the article
described going _from there_ to making that understanding _habitual_.
Essentially, the article, if it was consistent, would be looking for some
equivalent to musical scales that a software engineer could do practice before
actually programming. It is not a matter of _knowing_ best practices but a way
of systematically developing the habits to put them into practice.

 _It is the difference someone telling you not to make a mistake and going
over and over doing things to actually get in the habit of not making
mistakes..._ A person can learn _theoretically_ how to play music in a week
and if producing keystrokes at the proper time didn't matter, people wouldn't
spend more than a week learning the skill. As it is, a lot more practice is
required.

But really, I'm pretty sure there isn't a software equivalent of musical scale
because software isn't as specific a skill as reading or performing music.
Software involves a large variety of logical skills which most adults already
have to some degree. It is so complicated on some levels that mistakes are
sort-of inevitable on other levels.

------
dschobel
Same thing applies in job interviews and dating. The people opposite the table
from you want you to succeed because no one likes giving interviews or going
on first dates. They just want to fill the vacancy.

All you have to do is not disqualify yourself by being stupid or obnoxious.

~~~
westicle
This is such an important point but people just don't seem to grasp it.

The idea that you have to be the most dazzling job cantidate or the most
amazing romantic partner to succeed in these areas probably holds people back
a lot. In my experience if you don't do anything overtly stupid, the other
party will subconsciously fill in the blanks so that you match "what they were
looking for".

~~~
Evgeny
Wouldn't they have multiple candidates that satisfy the "did nothing stupid"
requirement most of the time?

~~~
jackpirate
Unfortunately, no.

------
SkyMarshal
This article echos one of Nassim Taleb's central themes, that what doesn't
happen (or that we don't do, or we actively avoid) is often as or more
valuable than what happens/what we do/etc. But we tend to discount the value
of things that we can't see or that didn't happen, thinking everything of
value must be 'actionable', and that's a mistake.

It's a pretty common idea among traders as well. One of the fundamental
teaching examples is why it's better to avoid a loss than make a gain:

Say you start with $100 and take a 50% loss down to $50. Now, what percentage
gain will it take to get you back to $100? Many people new to the game will
unthinkingly answer a symmetrical 50% gain, but of course that's wrong. To get
from $50 back to $100, you need a 100% gain.

For every loss, getting back to even requires asymmetrically more % gain. I
imagine poker players are very aware of this harsh fact as well.

There's even an old misquoted Japanese/Chinese proverb that hints at it - _If
you sit by the river long enough, you'll see the body of your enemy float by._
Implying the power of doing nothing and letting your adversary shoot
themselves in the foot. (<http://news.ycombinator.com/item?id=1225153>)

~~~
stcredzero
Another way to think of it: in most situations, there are more vectors
pointing away from optimality than towards.

------
arctangent
The possibility of making game-ending blunders is one of the main reasons I
don't play competitive chess any more.

Of course, it's very frustrating to make a "simple" error in a game of chess
that might have already taken up a couple of hours of time and which may lose
the match for your team, which represents a large geographic region.

But after a lot of reflection it became apparent to me that this kind of
frustration is very much an inherent property of the game of chess.

It turns out (once you play enough games and get pretty damn good at it) that
it's actually quite a limited and simple game. Once you're down half a pawn or
so there aren't many possibilities to generate a counterattack on another part
of the board to make it possible to win without relying on your opponent
making a subsequent simple mistake.

I did play quite a bit of Go at university and for a while I was confident
that I could get good. If I'd stuck at it I would certainly be a low-ranking
amateur dan by now but I decided to spend the majority of my spare time
learning more about IT.

One reason for my early enthusiasm in the game of Go was because it's such a
complex game it's not really clear when a "simple" strategic error has been
made. Perhaps more importantly, because both players experience much more
difficulty choosing moves than in chess, there's usually a reason to play on
when you've made a mistake even when playing a highly competent player.

This has been a long reply. I'm trying to illustrate that the secret to
seeming good at everything is to participate in activities which are
intrinsically difficult and where your intelligence will have the chance to
shine through rather than to participate in activities where one foolish
blunder can allow a person of much lesser ability to beat you.

~~~
dfan
"It turns out (once you play enough games and get pretty damn good at it) that
it's actually quite a limited and simple game. Once you're down half a pawn or
so there aren't many possibilities to generate a counterattack on another part
of the board to make it possible to win without relying on your opponent
making a subsequent simple mistake."

I do not find this to be the case. Even with games involving the top few
players in the world (rated 2700+ FIDE) you will often find that players come
back from a computer evaluation significantly below -0.50.

Also, you can be at a significant disadvantage and still be able to draw the
game. It is really rare that one mistake can decide the game. -0.50 is well
within the drawing range.

"One reason for my early enthusiasm in the game of Go was because it's such a
complex game it's not really clear when a "simple" strategic error has been
made. Perhaps more importantly, because both players experience much more
difficulty choosing moves than in chess, there's usually a reason to play on
when you've made a mistake even when playing a highly competent player."

On the other hand, chess endgames can often stay up in the air for a really
long time, with two or even three results possible. Go endgames (almost by
definition) consist of both players grubbing out a point or two here and a
point or two there, with all group life and death already decided, so it is
rare that the game is decided late.

(If it helps ground any of my assertions, my USCF chess rating is 1870 and my
AGA Go rating is 4 kyu. I don't know whether I would certainly be a low-
ranking amateur dan by now if I had stuck with it.)

By the way, I note that Josh Infiesto does not appear in the USCF rating list,
so either he did all his playing before 1991 when they started keeping
computerized records, or his games in which he wiped the floor with 1500-level
players were informal non-tournament games.

~~~
jinfiesto
dfan, you are correct. I've never played in any formal tournaments. However, I
do have lots of friends that do, and many are rated ~ 1500. I know that
beating people in informal games isn't really a great measurement of skill,
but it's enough to illustrate my point. Additionally, I was born in 1991. I
certainly wasn't playing chess before then.

 _edit_ For the record, I haven't engaged in any serious study of chess end
games. I'm not really qualified to comment on how end games might evolve.

~~~
dfan
Well, your main point is certainly right that a large part of playing chess
well is simply avoiding blunders; it is surprising how many games even at the
2000+ level are determined because one player blundered, rather than because
the other player made any spectacular moves. Of course, those "blunders" get a
bit more subtle as you improve. But it is true that the fastest way to improve
(below 2000 or so) is to learn how to stop making stupid mistakes rather than
learn new tricky moves.

------
imperialWicket
I have used a similar technique for teaching competitive croquet. Instead of
this one simple rule, I offered three. The first two rules pertain to strict
technique and croquet theory (similar to the specifics about not leaving
pieces hanging, and structuring your opening moves). The third rule is always:
don't F up your shot.

In the chess example, I reconfigured the 'don't do stupid shit', to something
like, a) Open with an intent, b) Don't lose pieces without purpose, and c) Do
everything for a purpose. I wanted to add this information to the thread,
because I think the 'don't F up your shot' croquet analog includes a more
explicit sense of limiting your actions based on your ability. In croquet, all
the theory and mental prowess in the world is sacrificed if you can't execute
the ideal shot under the circumstances. This is acknowledgement of your
current ability is what I think applies to much of programming (and life).

Note that I am NOT suggesting that you avoid moving your abilities forward.
However, focus a lot of effort on knowing what you know, and learn how to use
it well. The more you use it, the more you learn and expand on that skill set.
The more carefully you use what is within the realms of that skill set, the
fewer mistakes (and the more successes) you will have.

~~~
lotharbot
> _"a) Open with an intent, b) Don't lose pieces without purpose, and c) Do
> everything for a purpose."_

I use similar rules when investing, playing poker, and in competitive video
games. I'd phrase them as:

\- begin with a goal in mind

\- take deliberate actions (that you are capable of) that advance you toward
your goal

\- don't give up resources (money, chips, pieces, hitpoints, etc.) unless that
advances you toward your goal

------
rubergly
Not doing stupid shit is important, but what about not being afraid to make
mistakes? Making mistakes is healthy and arguably one of the best ways to
learn; if your motto is 'don't do stupid shit', then I fear that you'll miss
out on a lot of opportunities.

Also, your definition of 'stupid' is going to change throughout the years. You
shouldn't be afraid of trying something new now because you might realize in a
couple years that what you were trying to do was stupid; doing it is what
helped you become a smarter and more experienced person.

I know this wasn't actually the point of the article, but it seems like the
'don't do stupid shit' motto could easily be taken too literally into this
interpretation.

~~~
jacques_chester
A better phrase would be: "Don't do stupid shit _twice_ ".

Still better, in my opinion, is: "work on your weakness".

My hobby is Olympic weightlifting. In Oly lifting brute strength can take you
only so far, to succeed and progress you need to constantly work on
_technique_.

And the only way to improve technique is to identify something you're doing
wrong at the moment and to break that habit. It takes time, effort and buckets
of hard, horrible work; but at the end your performance has been consistently
improved for good.

If on the other hand you stick only to what you're good at, you will
inevitably peak. I am very good at back squats. If I'm not consciously trying
to work my weaknesses, I will do buckets of back squats and get strong at
them.

But what I _ought_ to do instead is work on getting under the bar faster, or
work on my second pull, or work on foot placement during the jerk, and so on.
If I put the bulk of my effort into _these_ , I will progress much faster and
further overall than any amount of squatting will grant me.

------
coryl
I'm fortunate to have a brilliant Muay Thai teacher and accomplished fighter
who preaches this kind of philosophy every class. No matter what you do, you
should do it mindfully and in the case of fighting, be aware of trade-offs and
price you pay for technical inadequacy. Far too many people have the
misconception that fighting or training is about hitting hard, when it's
really more about hitting correctly. Parallel to the chess example: if you're
getting hit and you don't know why or how, you're not training correctly.
You're not studying and identifying your mistakes and then improving on them.

Having an excellent teacher to see and explain those things puts you at such
an advantage over someone stuck with a less experienced or educated teacher. I
like to think that theses lessons can help carry over into the startup world.
That is (in sum), technical execution and winning are the only things that
matter.

~~~
jinfiesto
Oh absolutely. Having a great teacher really accelerates the process. I've
been lucky enough to have studied with many great teachers over the years, and
this is a common thread I've noticed. I've also noticed that really high-level
skills tend to run in "family lines." For instance, my piano teacher can trace
her own lineage through Artur Schnabel (one of the greatest pianists of all
time), Theodor Lechitizky, and all the way back to Bach.

It's unfortunate (or perhaps a blessing in disguise) that there's no real
"Teacher/Student" analogue for CS. On the other hand, the Programming/CS
community is far more open about sharing information than some of the other
communities I've been in. The piano community for instance is in general
somewhat secretive. Ideas about piano playing seem to be passed down from
generation to generation. Near the top, the techniques for obtaining
"excellent playing" seem to be well agreed upon. As we get closer to the
bottom, lots of misconceptions and disagreements seem to surface.

In the programming community, while there are obvious camps, since information
is available so much more freely it's vastly easier to make informed decisions
about what's stupid and what's not.

~~~
Stwerner
There may not be a strict "Teacher/Student" analogue for CS, but it is such a
young discipline that I would imagine it would be pretty easy to trace a
"lineage" for everyone back to certain branching events or influencers.

------
DamagedProperty
What you are really talking is about making a decision to raise your
standards. The human mind does not process negatives very well so telling
someone to stop doing stupid shit is a hit or miss message. Really the title
of this post should have been, "How to be good at everything: Raise your
standards." But that isn't as catchy or sticky as "Stop doing stupid shit."
Raising your standards means setting a new bar of what you are going to expect
from yourself in a given task or skill. It comes with the presupposition that
you can meet the standard thus the added confidence. Many people do "stupid
shit" but don't know why. And frankly the 'why' doesn't matter. You have to
believe that you can improve and setting standards is concrete way of telling
your mind you won't accept certain behavior anymore.

Of course this sounds easy but it's not.

Making the decision is the hardest thing anyone can do. It comes with
consequences, both good and bad. Consequences in potentially eliminating the
fulfillment of needs you may have or possible coping mechanisms you have grown
into. When you make a true decision you cut off possibilities.

Raising your standards necessitates making a 'real" decision and cutting off
options. Sometimes doing stupid shit is the only way some people know how to
wrap their head around the f*cked up things they have come to understand.

------
sequoia
Scumbag article: Highly provocative title; zero practical information.

I know negative comments are frowned upon but I just wish these knock-off
quasi-zen bullshit articles didn't bubble up to the HN twitter bot so often.
I'm irritated because I took the time to read this assuming that the author
was going to deliver something useful and that wasn't the case, it was just a
bunch of hot air. "Succeed by not failing." Very good.

I'd like to give the author full marks for marketing. Provocative title, slick
design, little substance... he ought to get a job at Wired!

------
bambax
In the foreword to a book called "In search of stupidity", Joel Spolsky makes
the case that the success of Microsoft owes much to the fact that each of
their competitors did a lot of stupid shit while M$, mostly, didn't.

The article is a bit dated today, but I think he's still got a point:

<http://www.joelonsoftware.com/articles/Stupidity.html>

 _For every other software company that once had market leadership and saw it
go down the drain, you can point to one or two giant blunders that steered the
boat into an iceberg. Micropro fiddled around rewriting the printer
architecture instead of upgrading their flagship product, WordStar. Lotus
wasted a year and a half shoehorning 123 to run on 640KB machines; by the time
they were done Excel was shipping and 640KB machines were a dim memory._

------
geekfactor
I liked this post but am not quite sure where to start in applying this to
software development. I created a follow-up "Ask HN: What are the stupid
things Rails developers do?" here:

<http://news.ycombinator.com/item?id=2848169>

~~~
greenyoda
If you want lots of examples of really stupid shit that software developers
(and other IT people) do, go read The Daily WTF (<http://thedailywtf.com>).

~~~
pavel_lishin
Or get a job at any software shop that does a lot of work with abandoned
projects (e.g., "Help, my previous developer left me in a lurch, can you
finish up this PHP e-commerce store customer management system database driven
enterprise solution?")

------
jdietrich
Poker players understand this implicitly. They refer to marginal but
cumulatively significant errors as "leaks" and good players invest enormous
effort in identifying and plugging their leaks. While at the highest level
poker requires some very sophisticated skills, the journey from novice to
competent professional is mainly one of diligently plugging leaks.

Poker is unusual in being so strongly a game of incomplete information. A top
professional may only have a few percent advantage over a complete novice, so
skill is rarely evident in the short term. Identifying leaks is painstaking in
poker because even in hindsight you are rarely sure of the right way to play a
hand. Even over a long session at the tables, a player can do everything right
but lose, or play terribly but walk away with bulging pockets.

I think that poker theory has a great deal of relevance to entrepreneurs. The
mental fortitude required to invest money in an uncertain outcome based on
partial knowledge is an overwhelmingly important skill in both.

~~~
joe_the_user
But isn't this also a statement that the skill of a poker player and the skill
of a programmer are utterly different.

Two skill types:

A. Doing something fairly simple _perfectly_ , plugging even the smallest
mistakes.

B. Doing something that is _very, very difficult_ as well as you can - ie,
doing it at all. Doing your best to simplify situations that have a potential
to become even more complex while still managing great complexity and
accepting that you will make mistakes (and guarding against and finding those
mistakes).

Notice, the difference between a very good programmer and very bad programmer
is absolutely not a few percentage points. Poke and music are each more like
skill A whereas programming is more like skill B (though these classifications
are of course quite rough).

It seems like if we aren't distinguishing the skill type here, we will wind-up
just tossing out vague cliches. "Don't mistakes, dude".

------
mkrecny
This is BS. If you don't allow yourself to do stupid shit you're not being
creative or explorative enough in the pursuit. You may be a technical master
but you will never be a game-changing luminary.

~~~
jinfiesto
In my opinion, in this context, the appropriate time to "do stupid shit" is
after you've become a technical master and have the ability to "do stupid
shit" with a high level of artistry.

~~~
regularfry
Indeed. I heard it expressed as "Become a craftsman first. It won't stop you
being a genius." Only I can't remember who said it.

------
bfe
This great post should be really encouraging: you can achieve a terrific
competitive advantage right off the bat just by launching a business that
manages to avoid doing stupid shit.

------
stcredzero
A music analogy. I know a woman who is a wonderful harpist. She's a freaking
musical genius who comes up with awesome and highly imaginative stuff, and has
the guts and skill to execute it. However, she often does this thing where she
accelerates near the end of the number. I think she's just being sheepishly
modest, but it makes the end feel like a cartoony little apology. Really,
instead of speeding up, she might just as well segué into "Shave and a
Haircut...Two Bits!"

There's an analogy here for both authors and software developers.

------
cdelahousse
I think by stop doing 'stupid shit', you mean learn the fundamentals properly.

That's what your piano teacher beat into you (not out of you). That's what
those chess drills taught you.

Fundamentals.

Fundamentals are never taught properly for anything.

I say this a programmer, a former music student (university level) and someone
who's learned alot of shit.

------
jamesbkel
I agree with the overall point here, but isn't this just the same as saying
"practice" and/or "keep practicing, especially with those that are better than
you"?

~~~
rikthevik
Mindful practice.

~~~
cgs
This. You want to be consciously practicing things that are hard. Once you
find yourself getting comfortable, get uncomfortable.

------
mr_november
I'm currently obsessed with golf (and for those who write it off as a
ridiculous waste of time, I encourage you to give it a go; I used to be of the
same mindset as you and I was pleasantly surprised to be very wrong. It's a
great thinking man's/woman's game, gives you lots of time with quality
friends, and puts you in some of the most beautiful environments you can
find).

The post speaks to me as 9 out of 10 amateurs are out there doing stupid shit
almost every swing - trying to hit the crap out of the ball at the expense of
basic fundamentals (primarily balance), attempting miraculous shots when in
trouble only to put themselves in more trouble etc. I was one of those dudes
not too long ago (and still am sometimes), but recently tried to 'stop doing
stupid shit'. It is unbelievable how quickly your scores can drop (that's a
good thing for those who don't play) by accepting the predicament you have put
yourself in and playing the next shot with intent, focus, and generally being
smart about it.

I never thought of consciously applying this thinking to startups/programming
but it's completely doable and probably effective.

------
kayoone
I think for many people the hard part is identifying the stupid shit they do
in the first place.

~~~
rwmj
Playing chess for one ...

------
SolarUpNote
I heard a tennis coach say something similar:

If you don't try to hit the ball too hard, just get it back in-play -- you'll
beat everyone who's worse than you, everyone who's as good as you, and half
the guys that are better than you.

------
kgroll
Alternatively, I'd encourage you do to "stupid shit." Lots of it. Isn't that
what learning is all about?

~~~
mechanical_fish
There's nothing wrong with doing stupid shit _once_. But it becomes habit
quickly without constant vigilance. See Periodic's response in this thread.

~~~
pavel_lishin
I think the difference is between trying stupid shit and doing stupid shit.

------
zitterbewegung
I'm fortunate to have <http://www.math.uic.edu/~kauffman/> (louis kauffman) as
my math professor. Instead of taking regular classes I just kept on taking
independent study with him to get rid of all the stupid things I did in
mathematics. I asked him for a research paper within my abilities and I am
going to write on in the Fall. I am reading up on the research before hand.

~~~
rednum
Could you elaborate on what kind of stupid things can you do when doing math?
What to avoid, etc.?

------
mailanay
I recently read Ray Dalio's (founder of Bridgewater) principles -
[http://www.bwater.com/Uploads/FileManager/Principles/Bridgew...](http://www.bwater.com/Uploads/FileManager/Principles/Bridgewater-
Associates-Ray-Dalio-Principles.pdf)

It is very interesting in how he is focusing on "reaching goals" instead of
"looking good" or "looking stupid" etc...

I think a must read for everyone

------
uladzislau
I wrote the whole book about stopping doing stupid shit. Check it out
<http://whyprojectsfailbook.com> It's about project management but the
principles could be applied to startups, business, software, etc. Avoiding
most common pitfalls and not doing stupid mistakes will get you really far.

------
pkulak
The point he seems to make is that one failing is worse than many successes,
and, sadly, he's probably right. It reminds me of college football. The team
that schedules a third of its games against patsies and goes undefeated will
go to the championship game. The team that plays 12 equals, but has one loss,
will usually not be in the top 5.

------
koof
I wish this were satire.

~~~
jinfiesto
Me too. Sadly, it's not. It's amazing how pervasive incompetence is and how
low that sets the bar.

~~~
zackattack
Why is this sad. You should be glad because it makes life easy. Once you reach
a critical threshold of skill there are diminishing marginal returns for
investing time in deliberate practice. If you want to pursue some esoteric
arbitrary skill in pursuit of personal excellence because you find it
rewarding then good for you.

------
dnewms
This also seems relevant to a general takeaway from the "Zen and Art of
Motorcycle Maintenance": 'embrace quality'. Always strive for the best you can
do in the situation you are given - whether it is chess, piano, coding, or
mowing the lawn.

------
dustinupdyke
I read this as don't follow the convention if there be a better way to do
things, don't follow the party line if the party line is wrong, and always
push for the right thing, because it is better to aim high than to concede to
a lesser solution.

I think about how much this applies to middle management sometimes. Are you
doing to do stupid shit that others ask you to do even when it is wrong, or
are you going to demand the right approach and build a reputation for at least
trying to always do the right thing.

E.g. saying yes to a ridiculous deadline that you know your development team
can't possibly hit is stupid shit. Say no.

------
benbeltran
I think the hard part about not doing stupid shit is knowing what the stupid
shit is. This advice is great for people with intermediate-to-advanced
knowledge of the field they want to "stop doing stupid shit".

Though it is mentioned in the article, I think it doesn't get as much
attention, the most important part to this little piece of advice for someone
learning something new: Learn what you should not be doing as well as what you
should. (People usually focus on the later and not the former) ... A great tip
for educators too.

------
astrofinch
"We tend to seek easy, single-factor explanations of success. For most
important things, though, success actually requires avoiding many separate
causes of failure." -- Jared Diamond

------
tathagatadg
Do you think finding mentor(s) is the quickest way to identify the stupid
things? I recently started going to Chicago Python users group meetups, and
just listening to people talk around me and noting down stuff to google later,
has inspired me more than anything (& also the mailing list)... finding stupid
things "alone" is more like doing your own proof-reading ... its pretty
difficult to find your own non-obvious bugs.

------
blackman
i think really what he wants to say is to drill the fundamentals. getting the
basics right is important.

don't do stupid shit means nothing. why would anyone want to do stupid shit?
This kind of the same meaningless wording that everyone thinks applies to them
in horoscopes how many times have you read "doesn't suffer fools gladly"?

~~~
pjmurray
Completely agree - when it comes to software you will avoid doing 'stupid
stuff' if you actually UNDERSTAND what you are doing.

------
smackfu
"Stop doing stupid shit." It would have been a lot easier to just stop playing
the chess prodigy.

------
iradik
Corollary: "Ninety percent of life is just showing up." -- Woody Allen

It's stupid to be absent, either physically or mentally, from your own life.
Whether this be not being "awake" or late during a meeting/class/work/date or
not preparing places to show up to.

------
adharmad
"Looking back on some piano competitions, it seems like the vast majority of
the time, winners were chosen simply because they didn't do anything that was
stupid enough to be easily criticised."

The recent presidential election comes to mind.

------
pshapiro
"If you don't act what makes you fail it doesn't happen." \- Tathagata
<http://www.members.tripod.com/tathagata2000/teaching_6.htm>

------
dimmuborgir
What the author is trying to say is _Dunning-Kruger effect_ :
<http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect>

------
HiroshiSan
What would that mean in terms of programming or say investing? I want to learn
both...with 0 knowledge of either but I'm not sure how to go about it, if I
were to use this method of learning how would I do it?

~~~
fexl
With respect to investing it means "Stop losing money." One big mistake is to
risk too much of your capital on any one position. To avoid that, you might
check out the Kelley criterion for optimal bet sizing:
[https://secure.wikimedia.org/wikipedia/en/wiki/Kelly_criteri...](https://secure.wikimedia.org/wikipedia/en/wiki/Kelly_criterion)
.

Another mistake is to put on a position and then watch it drop without limit,
insisting that you're "right" all along and the market just hasn't seen it
yet. Better to have a stop-loss and bug out of the position the minute the
market judges you wrong. You can always put on the trade again later.

I really didn't even have to mention that second point, since it's already
implied by the Kelley criterion. If you're trading without a stop loss, then
quite simply you're risking the entire amount of that position and you can
calculate Kelley accordingly.

"Stop losing money" is rule number one. Remember, if you lose 50% of your
capital, you have to double your money just to break even again. Better to
lose only a percent here and a percent there, and occasionally hit a 10% gain.

You can also consider trailing stop losses, which also fit under the Kelly
criterion if you count unrealized gains as part of your overall capital.

~~~
HiroshiSan
Hey thank you so much for the detailed post. Losing money is certainly a
stupid mistake, I'm thinking of using The Intelligent Investor as a base.

~~~
fexl
Thanks, I should read that classic myself!

------
achompas
Sure, this sounds like good advice. But I'm relatively new at developing
software, and I cant really identify "stupid shit" just yet. So what are some
dumb things developers constantly do?

~~~
Deestan
> So what are some dumb things developers constantly do?

People will give tons of various anecdotes on this, but they apply to _them_ ,
not _you_. The stories they tell are just the scorched remains of a unique
learning experience that can rarely be communicated verbally.

Keep doing things that seem interesting and hard. _Don't be afraid to do
stupid things._ Everyone has to do a stupid thing at least once to learn from
it. Identifying and eliminating _your own_ stupidity afterwards is what will
make you good.

Whether you identify the stupidity yourself, or has it pointed out by some
helpful master is up to you. Both work.

TL;DR: <http://ed-thelen.org/comp-hist/samp-IBM-think-sign.jpg>

------
jsmcgd
I've often thought the key to winning a (conventional) war is simply to make
less strategic blunders than your opponent.

------
nazgulnarsil
the way I like to think of this is stop failing in obvious ways. Failing in
novel ways is fine as you learn things, all you learn from failing in an
obvious way is something you could have learned by some other poor sap's
example.

------
vvpan
To me this all sounds like rhetoric.

------
georgieporgie
How to stop doing stupid shit: minimize your unknown unknowns. How to minimize
your unknown unknowns: learn the correct way to do things. Without guidance
and mentorship, which is largely non-existent in software, you're stuck
flailing around until you attain enlightenment (either by discovery or
invention) on each thing you do. When you start the next task, you start the
process all over again. Over time, you gain wisdom, at the cost of neurotic
self-doubt.

~~~
Swannie
Brilliant

There's a reason StackOverflow is so popular - it makes it easier to find the
'well trodden paths' ("correct way") along with someone pointing out caveats.

------
zackattack
By taking the leap forward to being fully transparent with your skill
execution, by being courageous and taking the risk to let yourself be
vulnerable, you can see massive improvements

I recommend video taping yourself during skill execution and then asking an
expert to review it for you. You will be amazed at how many mistakes you are
making and also how easy and straightforward they are to correct once you are
aware of them.

This is helpful for everything from sports to dating to programming.

And because I'm always scheming, many savvy internet marketers are allowing
people to upload videos of themselves practicing niche skill X and then hiring
a coach to review them. Some cool HTML5/Flex software on a CRUD database could
be a big hit here.

