

I'm Doing It Wrong - quaz3l
http://sam.mycube.co/2013/04/17/im-doing-it-wrong/

======
ctide
I wonder what these requests for help look like. I idle in a handful of IRC
channels devoted to various frameworks and languages. There are a handful of
people who get berated, but it's nearly always people who come in and demand
answers and are unwilling to do any leg work to describe their problem.

If it's gotten to the point where every single time you ask for help you're
being bullied or berated, the common denominator is you. How are you going
about asking? What venues are you asking in? What do you do to properly
describe your problem? When people ask you to try things do you do it or argue
that whatever they're suggesting can't be related?

~~~
rtpg
Some communities can be pretty hostile to newcomers. Not necessarily
programming, but a lot of tech communities complain a lot about newbie
questions, basically saying that they're not here to write config files for
you, or things like that.

Some people revel in the 'secret clubhouse' mentality of being the only people
to understand how some program works or something.

~~~
drharris
I think the number of people who enjoy being siloed experts is many orders of
magnitude below what people think it is. I think in the tech community, most
hacker types love helping others along. After all, somebody influenced us.
I've met maybe one or two people my whole life who got sick enjoyment from
watching people stumble, and even they eventually grew out of it. The problem
is not that experts hate newbies, it's that they've already answered the exact
same question fifty times. Were one to type that question into google, it
would spit out hundreds of results saying the same things. The answer is
already out there. As hackers, we follow the DRY rule, especially when giving
help. If it's out there on the interweb, then please tell why we should
explain it yet one more time.

In the end, it's a balance of efforts. While it would take the expert 15
minutes to craft a good explanatory reply, it would take the asker a few
minutes to type it into Google and read the first few responses that pop up.
For any good question, the burden of time should be on the asker.

------
rtpg
I think a lot of people can relate to your experience (I spent a lot of time
in front of a QBasic window and Flash).

When I read this though, I think I started getting what was happening:

>despite me having implemented best coding practice, and having my plugin
include over 30 major original classes created by me.

It sounds like you might not really get what we mean by design patterns. I
don't think number of classes is ever an interesting metric to people, but the
fact that you mention it makes it sound like you might not 'get' what people
are complaining about.

But I think another problem you might have is the people you're talking to the
wrong crowd. Stack Overflow, for example, has a great community, and the
people there show the utmost patience. It's truly one of the best communities
on the internet(despite endless complaining here on HN about the proactive
moderation)

The flip side is that you might actually be fighting back a bit too hard, and
you might actually be the "annoying guy who doesn't want to understand".
Always difficult with one-sided stories.

~~~
quaz3l
I don't think of a large project by the number of classes it has, and I was
actually hesitant to place this in the post, but I needed something people
could to relate to for a size metric.

------
drharris
> I learned by copy and pasting novels of code, and did not read a single
> book, or take a single class

This is the problem. His story sounds familiar to mine at first, but a
generation apart. I was taught to self-learn, read books, and first figure out
the right question to ask. Then, and only then, ask the questions. Copy and
pasting doesn't have to be terrible. Copy, paste, and then figure out what the
heck it's doing, and then modify it to your own purposes. Iterate. Read books.
Google stuff. I only mention the generational thing because the lack of
opening a book seems to be just that. My generation did that, his does not. I
can easily see how he probably gets shut down a lot without understanding why.

So, advice from someone who started by copying and pasting... Read the book.
RTFM. Use google, and only ask questions when you're confident what the
question is. If someone makes fun of your classes, don't whine, just go read
about OO design and patterns and make them better. Above all, this is not
acceptable:

> which has the code almost unchanged since then at gamebrave.com

You should always be improving. This is the statement that clued me in to
wannabe syndrome. It's ok to want to be something. It's not ok to expect that
something to get handed to you. Read the books, take the classes (these days
with MOOCs there is no excuse). Put in the work, and soon you'll be the one
ignoring the noobs.

~~~
quaz3l
I think you found they two week points in my post, just to clarify, I did
modify the code I found, and I did write my own code. I just put that as a way
to show that I went out, and learned in a naïve way, searching Google for
almost everything I needed to know to do something.

Also, gamebrave was changed many times, and I improved it as much as I could,
the layout changed many times as I learned more effective ways to write code.
I just stopped working on it at one point because I wasn't getting anything
out of improving the website, I wanted to move on, and try a new project. It
wasn't going to ever be a really business, it was just a way for me to learn
how to write web code.

Also, this is my early story, and was fed mainly by curiosity, and not a
formal education plan. Based on a lot of advice I have received, I will be
reading books on programming topics that interest me.

~~~
drharris
Absolutely understand. I've been close to there. Definitely read books, and
take advantage of the fact you can get a 100% free CS education from MIT in
the comfort of your home. I hope I didn't come across too abrasive, I've just
seen a lot of symptoms lately in your generation of people who want to show up
to work and get paid for stealing time from the rest of the team instead of
doing some self-learning. Your learning track mirrors mine too much to let you
fall into this trap. Learn how to learn.

I will suggest the following advice; take it with whatever worth you might...
work on improving Gamebrave. A LOT of developers I hire and work with love to
constantly move to something new, something that will challenge them in a new
way, allow them to use their new abilities, new technologies, etc. Resist this
desire, and you will find success. Those developers come and go, and I
certainly spent my own time doing this. But starting new is easy. It's not
difficult to get through the hello world phase and get something started.
What's truly difficult is pushing something past that plateau feeling into
something even better or more effective.

And it's that skill (of resisting newness) that will get you hired full time,
and indeed what I look for. If someone says they get passionate about
debugging or refactoring, it's worth a thousand people who like starting from
scratch. So go and open up your old code, improve it, maybe figure out how to
turn that sucker into some passive income, figure out a way to get people
there. Trust me, learning this Zen of development will be much better for your
future career (assuming you want to do this full time). There's a reason that
old OS/2 and mainframe people get jobs worth twice what their peers get for
slinging javascript.

------
nwhitehead
If you love programming there's no reason to let unhelpful online responses
get you down. Keep looking for good people that can help you online, they do
exist. And keep trying to improve the way you learn and the way you get
information from others. Eric Raymond's "How To Ask Questions The Smart Way"
might be helpful [1].

[1] <http://www.catb.org/~esr/faqs/smart-questions.html>

~~~
hmbg
That one (and similar guides) really helps. When I started out programming and
went to IRC for help people frequently pointed me to those tutorials. When I
started to follow the gist of them, I got friendly answers all the time.

This goes both ways: If you're and expert annoyed by this moron who can't even
state his question properly, point him to this tutorial and leave it at that.

------
consz
What are you trying to say?

