

Ask HN: Hacker wannabe demotivated & depressed in need of help - throwaway122011

Hello HN,<p>I have been stuck in the Java enterprise world for the past 5 years and I believe I have lost my passion and the ability to learn new things.<p>I dream of working at a startup and contributing to open source working with cool technologies like rails, python, clojure, node, android...etc having a github repo full of interesting projects and being part of a community of passionate coders, however whenever I try to teach myself any of these technologies I keep failing and getting frustrated as soon as I hit a wall, I didn't used to be like this but now everything seems too hard! I keep looking at people's githubs and seeing thousands of hackers around the world with so much projects and technologies and I feel like an idiot, I feel like I will never be like them, I feel like I am stuck being a worthless developer for the rest of my life, this has made me depressed and demotivated, I really feel like a failure and I just don't know what else to do...<p>Maybe I'm just not cut out to be a hacker, maybe I lack or lost the hacker mentality...maybe I should just switch careers and become something else...I feel worthless and stupid but for the past few years my dream has been to become a top notch developer,I have tried "building things" but I never know what to build and as soon as I get an idea everything seems too hard to implement and I loose motivation, this has been building up for the past few years and now I feel depressed and hopeless...<p>What should I do HN? Sometimes I feel what I really need is a mentor but I keep thinking if I can't help myself then who can?
I am desperate HN I am willing to do anything to get out of this hole I have put myself in...but I really need some advice to help me get up again.
======
newobj
My first program was

10 PRINT HELLO

20 GOTO 10

My second program was

10 INPUT $A

20 PRINT "HELLO, "$A

30 GOTO 10

And so on and so forth.

I worked in total isolation (this was well pre-Internet, the early 80's, and
none of my friends had computers), so I was oblivious to how big the hill to
climb was. Because every step was interesting as I discovered it, and all I
was concerned with was taking the next step.

Don't look at the finish line and don't look around, look down at your feet
and be satisfied with each stride. Eventually you will have gone a great
distance.

------
srl
> I have tried "building things" but I never know what to build and as soon as
> I get an idea everything seems too hard to implement and I loose motivation

Heh. You know all those developers who have all those github repos? _So many_
github repos! Quite frequently, half or more are abandoned projects that never
came to anything, that [s]he didn't have the guts to delete. (I am no
exception.) So don't feel too bad about that.

I'm not in a position to offer any career advice (being still stuck in the
Java college world), but I'll say this with regards to trying to find
something to build: don't look at it that way. I spent years going from
project to project, never really caring, just trying to get involved in some
open source project for the sake of getting involved. It doesn't work.

The adage that "the best hacks come from scratching an itch" is quite true,
and important. If you want to make software that others will find useful, you
have to put yourself in a position to need that same software yourself. That
happened to me when I resolved (for other, more RMS-like reasons) to use only
open-source software. All of a sudden, every time something irked my, I
thought, "I can fix that!" And about 5% of the time, I actually could :P

You'll have to find what works for you, but basically, I'd advise this: focus
on your own computer and what you want to do. Switch to an open-source,
hackable OS and use, as much as possible, open-source, hackable software. Then
try to get your computer to respond quickly, not use much RAM, be fancy -
whatever you want to optimize for. That desire to have "the perfect setup", at
least in my case, motivated further endeavors.

Best of luck.

(Edit: and feel free to contact me - I'm always happy to help out a growing
hacker, though I'm not sure what I have to offer.)

------
vermasque
What are these walls that you hit? Is the problem too hard to solve with your
amount of experience or something else? Perhaps you should explore why the
walls happen.

On finding something to build, it can be tough. You have to keep thinking
about things that scratch an itch of yours but are also practical to build.
For the longest time, I used to think and even plan out ideas that really
seemed to be like science fair projects: 2D drawing using contour maps to
design 3D structures like for game design, an app to tell me how to fit a
bunch of boxes optimally into a truck/van, a form creator (an ultimate GUI
over DB to replace many GUI-over-DB apps). The problem is that I wouldn't use
any of these for my own needs because I don't need these things. And I didn't
know anyone who actually needed this stuff and could use it if I built it.
Find something that scratches an itch. Do you need something but all the
existing tools aren't quite right? Go for it. And don't worry about using
"cool" tech to get it done. If Clojure can be used to solve the problem and
you really want to learn it, great. If not, then stick to what you know but
focus on getting the problem solved and building something of value to you.

Perhaps a new job might give you a fresh environment, a change of pace, or
something different to learn during work. That could be used to stimulate more
or different learning on the side.

As far as feeling depressed when you see hackers who have done a ton of stuff,
I imagine everyone looks at someone who has done more than them and wonders
the same. What matters is that you do more than what you are currently doing.
There are times that I wish I had started sooner on things or been more
passionate about things. I can't change the past now. But I can change the
future.

------
sixtofour
I can think of a couple ways to approach this.

1\. Pick a very small project, something useful to you but borderline under-
ambitious. Anything that bugs you. Nothing that you would necessarily point
proudly to on github; don't be thinking about github. I'm talking small, maybe
even just a simple command line utility, or not much more. Implement it. Don't
give up, learn it. Improve it. Pick another small project. Another. A slightly
bigger one. What you're trying to do here is to get a giant heavy flywheel
moving, but it's going to take some time before it's really spinning. Once
it's spinning fast it will almost sustain itself and you won't have enough
time in the day to implement all your ideas.

2\. If you can't think of _any_ small thing to build (hard to believe, but
OK), then poke around for some technology that you'd like to learn, that has
good documentation, and start going through its tutorials and documentation.
Learn as much as you can about it. At some point you'll start to get ideas
about things you can build. Start building them. It doesn't have to be an OSS
project, it can just be your own if you want. At this stage it's more
important that you get that flywheel spinning any way you can.

N. Don't give up.

------
pheelicks
You say that you start "building things" but can never finish. This is normal,
we all do it - we start coding on something, it's totally awesome for a couple
of hours and then when we come back to it the next day we can't be bothered.

Perseverance is hard, but there's no shortcut around this. To make yourself
feel worthwhile & motivated you will just have to finish something. It doesn't
have to be the next facebook etc... just get something done.

If you can't thin of ideas, ask people around you what they'd like to have in
their life.

You mention Android as a tech you'd like to learn. Surely you know someone
with an Android phone. Ask them what they'd like you to build and then build
it. Do not stop until they are happy.

Doing this is well within your reach, you know Java - and there is a wealth of
info on the net.

------
FameofLight
I have one advice.

Cause of Problem ( Let me know in comment if this doesn't apply to you ) We
get depressed because of lots of hopes and expectation, the main we are
looking is getting to end as fast as possible, without enjoying the process in
itself.We are looking for goals ignoring the values and process it takes. I
tell you process and value is more important than the end goal. The main
function of goal is what you become.

The simplest advice is keep grounded in action. Start small , do small action
and build upon the small steps to bigger ladder.

You are feeling depressed because all the while you have said to yourself you
are great hacker and when you start something you are not able to complete it,
hence the spiral of de-motivation. Focus on action and work, eveything else is
secondary.

------
iradik
Since one of your complaints is you don't know what problem to solve, one
thing I might suggest is to try doing puzzles / challenges... They are much
less daunting than trying to define a big project.

This is a great book filled with such puzzles and advice:
<http://www.programming-challenges.com/pg.php?page=index>

Pick a problem and try to solve it. Then you can submit it to a robot judge
and get immediate feedback.

There's a lot of pros here: can just do it anytime (commit 1 hr per day to
working on a puzzle), can try different puzzles, learn about algorithms, get
immediate feedback, and become a better coder!

Keep a git repo of all your solutions... so you can keep track of your
progress.

------
clyfe
You are probably stressed at work, and miss flow
<http://en.wikipedia.org/wiki/Flow_(psychology)> or what programmers call "not
being in the zone".

Find a significant chunk of time, like a free Saturday. Make sure it's quiet
and you cannot be disturbed. Set a manageable _toy_ goal - easy enough that
you can do it, but let it be a bit challanging to keep things interesting.
Build it! That should give you a nice push forward.

PS. You could also find interesting questions on StackOverflow - many times
they offer a bit of challenge, and you can cherry-pick issues in your comfort
zone, also helps you practice writing.

Also, have a break from work! Cut the stress.

------
drx
I'm a bit late to the topic, so quite possibly you've moved on, but

> I keep failing and getting frustrated as soon as I hit a wall, I didn't used
> to be like this but now everything seems too hard

> depressed and demotivated

Just one of many possibilities, but you could have a neurological disorder ("I
didn't used to be like this" and depression, no motivation). Go to a decent
doctor and get checked for a bunch of things. Could be something treatable
like vitamin deficiency.

In any case, feel free to ping me, emails in my profile.

------
jjm
What I learned is you need time, and dedication. Slowly work on one project or
OSS contribution... in time they'll grow.

There are many devs that work with OSS full-time, creating and allowed to
create new tools daily. Then with their free time they add even more! Keep
this in mind.

There is nothing wrong with creating/contributing what you can, when you can,
on the side with your free time.

------
hugo31370
Do not quit!!! It's all about your comfort zone. Getting out of it is a
daunting task. What you feel is not new. You need 1. assume you're going to
struggle getting out of your comfort zone, and 2. find small tasks that can
help you transition to a new stage.

Just don't quit! I'm happy to chat about it. If you want just shoot me an
email.

------
infinite_snoop
You already know Java so you have a huge stepping stone into the Android
world, buy a book and work through the examples and then start your own
project, start small as other people have suggested. It's hugely satisfying
watching your app being downloaded and used!

------
andrewhillman
I suggest you try to work through whatever you previously started. If you hit
a wall, ask questions on stackoverflow. No question is dumb. Ask for help and
you shall receive. I assume you started working on something of interest... so
this is a start.

------
iSloth
You need to pick a small project and most importantly finish it, then pick a
bigger on, then a bigger one...

If you never finish a project then your always going to be depressed :)

------
thiagofm
Let's build something some of your ideas(the hardest preferably) in node,
contact is in the profile.

I can teach you some node also. Let's hack something.

