Hacker News new | comments | ask | show | jobs | submit login
Ask HN: How to overcome strong feelings of worthlesness and inadequacy
41 points by dazedconfused on Dec 13, 2011 | hide | past | web | favorite | 57 comments
I need help HN.

I have been stuck in a dead end job for the past few years and I've forgotten what's it like to have a passion for development, I've forgotten what's it like to have the ability to create something.

A bit of background first: I have been programming for the past 6 years, mostly I've been doing pretty much the same job for the past six years (1 year repeated 6 times) even though I somewhat enjoyed it I never learned anything besides the typical CRUD apps. Very few times I had to develop something from scratch, my job consisted mostly of fixing bugs and the new feature every now and then, so even though I have 6 years of "programming" experience I feel unable to build stuff, I am far far away from being a truly experienced developer.

I graduated with an information technology degree where I was not exposed to a lot of computer science, however I never really saw it as a flaw, until now. Most of my programming knowledge I learned "on the job", at least I learned enough to do the kind of Job I've always done, but not much more than that. Sadly I realize now that I lack a natural curiosity for how things work and that most of the time I was blindly copying/pasting code from the Internet, I've fooled myself into thinking that I am a programmer.

I started reading HN since last year, and ever since I've become anxious and depressed.

Anxious because HN has introduced me to technologies, people and ideas that I find incredibly amazing and inspiring, so much in fact that for the first time I feel that a programmer is much much more than just fixing bugs, that you can create amazing things!, this started a revolution in my head, I now have a goal: I want to be like these guys I want be admired by my peers and start amazing projects or maybe launch a cool startup, who knows? for the first time I feel that the sky really is the limit, all the tools that you need are there for the taking for FREE all the knowledge you need is right there! look at all the amazing technologies like node, backbone.js, coffeescript, redis, riak, neo4j, hadoop, clojure, scala, django, rails, android, look at all the cool things you can do with linux, bash ...I mean it's all over the place and they are open source...I have no excuse.

Depressed because I feel worthless compared to all the amazing hackers of the HN community, I feel that no matter how hard I work I will never be at the same level as any of you.

I have tried telling myself that its alright, that its all about hard work that I have to stop feeling sorry for myself and just do it and start working, but no matter how hard I try I keep having these feelings of inadequacy and pretty soon I'm back to feeling sorry for myself, "it doesn't matter how hard you work, you'll never be like them" says the little devil in the back of my head, and this time the feeling is twice as strong because I've failed once more.

This is indeed ruining my life.

To make matters worse I lost my job two months ago and I can't find a new job, I fail every interview time and time again, I have applied for junior positions but I am rejected because of my age and profile...even though my experience is useless and meaningless.

I have a gigantic list of ideas and technologies and "stuff" that I have compiled throughout the time I've been reading HN of things I want to learn, things I SHOULD know to save face and call myself a programmer again.I keep adding and adding items to that list but I never finish anything, I lack too much knowledge that I don't even know how I can call myself a programmer anymore, let alone how am I going to get through the interviews, how can I ever reach my goal of becoming a hacker?

I bought a few books for instance Introduction to algorithms and SCIP I get motivated, I start reading doing the exercises, watching the lectures and then boom! I lose motivation, and worst I never end up doing anything useful, whatever little I learn I forget.

I have tried to start side projects I have a cool idea set up I start thinking about it and then again I lose motivation "that's too hard, too much work you'll never be able to finish that, why are you even trying?" again say the voices in the back of my head.

I can't finish anything.

I'm 30 years old and I do not know what do anymore I am thinking of seeing a therapist because I truly feel there is something wrong with me and sadly thoughts of suicide have popped up every now and then... I'm seriously thinking of quitting development altogether and doing something else. At 30 and with a wife this is a big risk but I can't keep living like this anymore.

If anyone can give me any pointers that can help me overcome these feeling I'll really appreciate it.

Sorry for the long post, and thank you for reading.

What you see on HN/TechCrunch/whatever has a strong "success bias." What this means is that you only get to see/read success stories. But there are also many people just like yourself who are just starting out. Many have failures under their belts. Even the people who are successful today have failed in the past!

It sounds like you're practicing too much "theory" and reading, instead of creating. This will make anyone feel bad. The people you admire did not get where they are by reading HN/books/etc. alone. They got there by doing things.

As others have said, pick a side project and hack at it -- release it, fail, and try again, and again. The beautiful thing about the tech community is that failure is encouraged and embraced. By doing things over and over is how we learn and establish ourselves. Your projects will suck at first, you will get no users at first, you will make no money at first (if you care about $). And then you'll iterate and improve. It's only normal.

Finally, as far as picking projects goes, don't pick a pie-in-the-sky-idea! Pick something you can finish in two or three weeks, or maybe even shorter. Anything longer and you'll get disappointed at your lack of progress. You don't have to create the next Facebook. Create a throwaway app for the app store (and don't be discouraged if you don't make much from it.) Learning how to ship small projects will be incredibly painful but that is how you will grow and become happier with yourself. HTH.

Thank you.

Yes I don't really know the feeling of what is like to create something, this kills me.

I am constantly disappointed by my code, it sucks, it's really bad and that also makes me lose motivation whenever I try to build something, for some reason failure is a permanent constant and the fear that I am going to fail anyway keeps me from actually getting trough building something to the end...

That's fair, but who actually cares about how good your code is? Make it work. Hack things together. After you practically code for longer, patterns will emerge, you'll refactor and rewrite as necessary. At any point in time, if I look at code I have written earlier, I shudder at how awful it was.

Finally, "fear that I am going to fail" is silly. It's the other way. You're starting at the point of failure. You have nothing right now. Accept that, and then you won't have to hold yourself to such a high standard. Start somewhere (and remember that you "suck" at first), and keep at it. Seriously.

Pretty much everything sucks when you start it. Its only by working on something sucky that you figure out A) this sucks and B) how to fix it. I've got a couple of gems that are embarrassingly bad in spots—they (mostly) get better over time.

Remember that software development is much much a procedural skill than a memorized skill. You have to do it, and you have to do it a lot, before you'll be great at it. Get started making the mistakes you need to make, and don't let them get you down. We've all got projects we didn't really get off the ground.

I used to be in your situation and then I read this.

"I do not write tests for my code. I do not write very many comments. I change styles very frequently. And most of all, I shun the predominant styles of coding, because that would go against the very essence of experimentation. In short: all I do is muck around.

So, my way of measuring a great programmer is different from some prevailing thought on the subject. I would like to hear what Matz would say about this. You should ask him, seriously.

I admire programmers who take risks. They aren’t afraid to write dangerous or “crappy” code. If you worry too much about being clean and tidy, you can’t push the boundaries (I don’t think!). I also admire programmers who refuse to stick with one idea about the “way the world is.” These programmers ignore protocol and procedure. I really like Autrijus Tang because he embraces all languages and all procedures. There is no wrong way in his world.

Anyway, you say you want to become better. I mean that’s really all you need. You feel driven, so stick with it. I would also start writing short scripts to share with people on the Web. Little Ruby scripts or Rails programs or MouseHole scripts to show off. Twenty lines here and there, and soon people will be beating you up and you’ll be scrambling to build on those scripts and figure out your style and newer innovations and so on." -why

Just out of curiosity, were you a good student throughout your life, and told you were smart or bright? I ask because there was an interesting article on HN a week or two ago that showed a correlation between crippling fear of failure and self-doubt, and those with above-average IQs who were lauded for their academic prowess in school rather than their work ethic. Anyways, thanks for posting this question. I've found myself in this situation, and the advice shared here is rock solid.

I don't really know the feeling of what is like to create something.

Take a cooking class.

I'm absolutely serious about this. You learn to build things by building things, and you build things by following recipes, recipes that are very slightly above your skill level, but no more. Go get some recipes, and use the techniques they tell you to use, and build some pancakes, and eat them. [1] Then you will "know the feeling of what it is like to create something." Something tasty.

I can hear you already: "My pancakes are just pancakes! They are not amazing and original pancakes." This is true. You need to get over that. Trying to amaze yourself is generally a waste of time. You can't do it consistently – that's what "amazing" means: something that doesn't happen every day. If what you want to do is create things, lots of things, every day, you've got to realize that it's not going to feel amazing while you're doing it. It's going to feel normal.

But: It will be tasty. Oh, there are worse fates than being so good at making pancakes that you can make them without even thinking. For one thing, other people will eventually start talking about your amazing pancakes, and even though you'll know in your heart that they're flattering you - hey, they're just the same pancakes that you've made a hundred times, from a recipe, with only a minor tweak or two - it will still be gratifying.

And maybe in thirty years you'll be the next Anthony Bourdain, and you'll be out drinking one night and suddenly you'll look at yourself and your own life and be amazed: You remember starting off with the pancakes, and you just kept trying a little more every day, and then there was the day you got a job cranking out those pancakes on the line, and man was that an educational experience, but now it's years later and you're shocked to find that you're some kind of breakfast legend, people line up for your amazing cooking, and at that moment you'll actually be amazed at yourself for everything you have accomplished. You'll be amazed for at least five minutes, maybe even ten minutes, depending on how much you've been drinking. [2]

Then you'll wake up the next morning and go back to work, just like we all do.

Anyway, programming. Throw SICP away and try something like Zed Shaw's Learn Python the Hard Way, something with a lot of exercises. Do all the exercises. Then do some of those programming-contest-type problems. Do little problems, ten-minute problems, thirty-minute problems. Practice the art of small victories.


[1] No, do not use a pancake mix. That's like copy-and-paste.

[2] Incidentally, alcohol is a depressant, so don't think I'm seriously recommending it to someone who is already depressed. Coffee! I meant coffee!

Learning to cook is one of the most important things I've ever done for my creativity. Not only does it help you get into building things, but it's a great way to blow off steam and boost your self esteem with small successes. I learned from a friend who taught me his "no recipes" approach, but I'm sure a cooking class would do the trick if you're not an improviser.

A meal or two per day and suddenly everybody is complimenting you.

I really like this advice. Even if you're not doing super-duper, crazy creative "disruptive" things all the time, one can get a huge sense of satisfaction by approaching some platonic ideal of pancakes, or whatever. Even if your code (or copywriting, design, or whatever it is you do) isn't groundbreaking, you can still strive for the ideal form of whatever it is you're working on.

I heard a really good piece of advice, in the form of metaphor: If you install carpet for a living, you don't have to like the carpet you're installing, but you should be damned proud of how well you laid it down.

* fear that I am going to fail anyway *

That's a shallow explanation; what does this fear of failure mean, to you personally? Fear that who will say what? Fear that who will think what?

Why is it that you associate failing in these tasks as such a bad thing?

Yes! You said just what I was thinking. Thank you for being able to articulate it better than I could.

While youre waiting start exercising, preferably outdoors, running, cycling or whatever. Force yourself and although I'm in California and we don't have miserable weather, I find that weather has that "whatever doesn't kill you" aspect to it.

Don't give up on finding another job. It will happen, just keep at it. Some people (me included) can only stay enthusiastic about a job for about a year. Then it becomes a paycheck and whatever else I can get out of it until I can move on to the next one.

I don't believe the mantra that idea's are a dime a dozen. Keep looking until you find an idea that really grabs you and get as much as you can out of it. If nothing else, do it and brush up on your tech skills for that next interview.

Please do see someone professional about your thoughts of suicide. Good luck, you are not alone.

Thank you.

Seeing "someone professional about your thoughts of suicide" is a good idea if the thoughts are very bad and pervasive and you are in danger to yourself or others, I think. But in the end they'll offer only two things: psychotherapy or psychotropic medication - is that a long-term, sustainable and smart solution?

We've already got a written statement that exhibits most of the classic warning signs of depression. Does the poor guy need to submit it in triplicate before you'll take him seriously?

The OP should worry about the long run, but only after taking every necessary measure to get through the short run.

Meanwhile, whether or not any course of treatment is a long-term, sustainable, smart solution depends on the patient, of course. Therapy, both short-term and sustained, has markedly improved the lives of multiple friends and relations of mine, and drugs have very definitely saved the lives of a few, and that's just the ones I know about.

Don't undervalue the benefits of some short-term usage of medication to get back on your feet! I'm a little surprised that no one in these replies has suggested it, but please do consider it - it is a very smart solution! You'll feel better and might make some progress on your goals and then feel better about yourself again. And, heck, even if it is long-term, that's fine, too, don't let these folks be a judge of that for you.

I'd probably spend less time on Hacker News. The percentage of programmers in the world who have actually finished SICP and CLRS is really small. I have copies of both sitting here next to me and have only finished a couple of sections. No reason to feel bad about it. Also, plenty of people have been out of work for over 2 months.

I also recommend getting outdoors and doing things besides worrying about whether you are the best hacker. Last year I was working with a small company with an uncertain future and was really anxious and worried the whole time. This year I quit and moved to Oregon. Since then, I have spent a lot of time visiting parks/waterfalls/the gorge, and lately the goal of being the richest/greatest/most elite programmer hasn't seemed very important.

Thank you.

Sadly HN has become like a drug to me... I have tried several times to ignore and stop coming back here but it has never worked and when I procrastinate I always end up coming back.

Edit your hosts file to block news.ycombinator.com— news.ycombinator.com
On Unix-like systems it's /etc/hosts

Have you been a lurker all this time? Maybe you should start writing.

Sounds like you're depressed and jealous. Not a good thing. You might want to ask yourself why you worked in that dead-end job for 6 years, did you not know about HN during that time?

You can start by getting some sunshine for Vitamin D, and do some physical exercise of some sort, beyond that, you have to set yourself some goals, however small.

What sort of person do you wish to become when you become That Hacker? Perhaps you could give something to charity or start answering some questions on SO to feel better about yourself, or at least chrystalize your current knowledge.

I would also look at any heavy metal toxicity you might have.

Thank you.

No I didn't know about HN back then...the only reason I stayed in that job was because I had to pay for my education, I worked and went to school at the same time.

What do you mean by heavy metal toxicity?

I am thinking one of the most common sources: Mercury toxicity from amalgam fillings. They can test your hair for it. I'd look at getting some tests done although I've never gone down that route myself so can't advise. Do you have a passion for anything, or only feeling bad about yourself and your situation? Have you read the Power of Now, it says to separate your life from your life situation?

Oh I see...what makes you think I may have that? It might be possible...I have had fillings.

I don't really have a passion I am obsessed with being successful, I feel I've wasted 6 years of my life that I will never get back, I feel that I have not accomplished anything worthwhile and for some reason I constantly feel jealous of everyone else's success, this has made me bitter too.

Yes, yes, could well be Mercury toxicity, especially if you've had many large ones, for a long period of time.

I was reading that: "Amalgam Fillings Since 1970s Unstable: The type of mercury fillings that began to be used during the last couple of decades, non-gamma-2 (high copper), releases many times more mercury than the older style of amalgam fillings."


Start getting into health is my tip, you can't lose. The Paleo diet is very popular right now, check it out.

"With raw in general, I have noticed more stamina and energy, and less need for sleep, greater clarity of thought, faster healing, looking younger, fewer joint problems, etc. the usual."


Think of a creative side project that you would really enjoy doing. Then do it. And take your time on it. Slow down. Tune out from what everyone else is doing. You have to give yourself time and space to breathe. Don't put pressure on yourself, make it fun!

Don't worry about reading SICP or becoming an expert at some technology. That will come automatically over time. Just choose one stack for your side project and go with it.

It doesn't matter if you code your project in C, clojure, or ruby. What matters is that you produce something that you feel good about. If you make a goal to produce something good, you will learn the technologies and you will become a good hacker over time.

I write all this because I was in the same position as you a couple years ago, so I scrapped my ambition of reading theoretical CS books and learning all the latest hot new technologies (I will do all that stuff later). I decided I'd make a game, and learn what I need to add the features that I imagined. And I progressed. It was so much more fun that way.

Thank you.

I have several ideas for side projects, at first I am really motivated and very excited but very soon the motivation wears down and by then it stops being fun, I lack the will power of sticking through to the end because in the end I constantly fear that I will fail and if I am going to fail anyway, why try it?

This is ruining me I know I can't be like this but I don't know what to do to stop having these thoughts.

I've done that a million times. The trick is to have the right goal. Usually you'll have visions of how it will turn out in the end and not even half way through you give up because it seems that vision won't come true. Think of these projects in terms of years, not months. Then break them down into the very smallest possible parts. Im talking about thinks like making an entire day's goal to just write a single function that does something really small like connect to a database or something. That's how I've managed to finish despite having the same issue.

You sound like me two years ago -- just replace "people on HN" with "classmates". I had clinical depression.

It had very little to do with my ability and everything to do with stress levels, brain chemistry and horrible feedback loops.

My advise for you: You need to stop beating yourself up. You're not worthless. You're not inadequate. Stop saying you'll "never" get there. Don't let that inner voice tell you anything you wouldn't tell your wife/child/best friend. I'm not saying it's an easy thing to do, but it's worth the trouble.

Hey there! I'm in much the same boat.

I have to admit I'm rather relieved reading your post because at least I'm not the only one who is rapidly developing an inferiority complex here ;)

For my part, I'm 28 with a Philosophy degree and currently in a junior role at a late stage startup. I'm not a developer, more like "guy who hacks together Perl and queries MySQL all day".

So, you at least have an edge on me - for what little that's worth! In fact, stepping back to take stock of what you do in fact have might help. I realize it's not much consolation to know you're neither homeless, politically oppressed or living in a war zone - but keeping that perspective has helped me through some moments of self-doubt and pity.

I totally know what you're saying about having no excuses with all the free and accessible information out there. Believe it or not, I find the plethora of choice a little crippling in its own way. When I spend 5 weeks debating which language to learn, and 5 days actually trying to learn a language - there's clearly something wrong!

I don't know where you are in your life, but it might be worth considering a bold leap. I've seen a few programming boot camps promoted here on HN - one in the Bay Area and the other in Chicago. If you're between jobs, this might be something to consider.

Dev Bootcamp : http://devbootcamp.com/apply

Code Academy : http://codeacademy.org/

I know how incredibly difficult it is to find the time and motivation to work on a side project. In fact, if you're looking for a learning partner - I'd certainly welcome it. I'm currenly interested in the following : Python, Perl, Django, Dancer, Ruby, Groovy, Rails/Grails, JS, coffeescript, design principles, NoSQL, Big Data, Hadoop. I can be reached @ esoteric.doktrin at gmail.

Good luck - keep calm and carry on, as they say.

"Depressed because I feel worthless compared to all the amazing hackers of the HN community"

Someone is lying to you inside your head. They are saying, you are a worthless human being because you are mediocre/sucked/failed at x. "You aren't good enough" is a tool used by Satan to destroy good men.

I recommend you read "Wild at Heart" by John Eldridge. I'll send you my copy if you'd like. I was going through a very similar time, only I felt worthless because I wasn't a successful entrepreneur like take-your-pick-from-Tech-Crunch. That book set me on a new path that has made my life so much richer and has freed me from the depression of failure, and allowed me to enjoy what I do again.

I'll be praying for you brother, God bless.

Most of your doubts and concerns were already answered by the wise old edw519 here: http://edweissman.com/53640595

Also please understand that self-pity is the worst use of your imagination.

I've been in your situation too and some of the things that helped me are: 1) Having a habit of exercising daily for 30 minutes. No compromise on this. This is a good antidote for depression. 2) A habit of getting up at 5 daily and doing the most important thing at that time. This habit alone can change your life and to cultivate this hard habit in a ridiculously easy manner please check this article: http://www.stevepavlina.com/blog/2006/04/how-to-get-up-right... 3) Having a Vision Board. I use text instead of images. They are more direct. I change it every week to keep it fresh and inspiring all the time. As a part of the morning ritual, I stare at the vision board for about 5 to 10 minutes and is also close to where I sleep. It gets in my way whenever I’m distracted and not working.

I'm an aspiring Hacker too - currently at the 'aspiring' level only though. I'm learning Ruby by straightaway trying to implement the algorithms found in my college book - Design and Analysis of Algorithm. My work is hardly inspiring. But I start my day with some satisfaction that I’m one step closer to becoming someone like ed519 even if it would take me years!

Remember that the 10000-hour-rule is BS. I realized that I can have fun 'while in the learning phase' and I could hit a wonderful break even before that. Just develop a couple of life-changing habits and you’ll do great.

I'm sorry to hear that you feel so crumby.

In coming to us, asking for help with your problem, you demonstrate strength, in spite of feeling badly.

Since you mentioned thinking of suicide, I must strongly recommend you talk to a mental health professional. If you don't already have an appointment, tell us your city and we'll come up with a resource for finding one in your area. These can narrowly constrain your opportunities. If we know, we can perhaps offer more realistic help.

Do you have: money? car? housing? physical disabilities? Legal problems? (Of course, you're not required or compelled to share any personal details with us.)

Once all that is addressed: You need to focus on success in the place of focusing on failure. You need to see that you can accomplish, yourself, a goal.

Not knowing anything about you and your life, I recommend: Goal: walk for an hour every day - in any number of shorter walks, if you'd like or have to.


Preparation: P1. Cancel broadband service at home. P2. Get a small, blank notebook as a daily log.

Daily actions: D1. Go for a walk. Out the door, or a bus or car ride away. Mall, abandoned train tracks, park, city streets, airport, your driveway - doesn't matter particularly. D2. Immediately after your walk, log your walk: date and time. D3. Shower, shave, dress neatly. No excuses on this one. D4. Go to a busy place for an hour. Bring pad and pen. No phone or computer allowed. D5. Immediately after your visit there, log it: date, time and place.

Follow-up: F1. Repeat this everyday this week. F2. Next Monday, check back with one/all of us.

Hint: The goal is accomplishing the action, not having a feeling ("Happy!" "Fulfilled").

I look forward to hearing from you.

Go slow. Pressure is anathema to self-improvement, you just implode. I've been trying for the last six months to get into a routine of teaching myself things, and I've only just got to the point where I can look back on my night without noting that I could have accomplished as much within ten minutes of motivated effort.

Don't load up on textbooks. Buy one and finish it before devoting yourself to the next one. I didn't follow this rule, and now I have stacks of books that I'm trying to read in parallel (this is going terribly).

I think it's great that you want to do this! Just know that even wanting to improve yourself is a small victory - too many of my coworkers are happy to only know as much as their jobs requires them to, or (more accurately) so they believe it requires them to. Keep me posted on how stuff goes!

Thank you.

Yes I did the mistake of getting all these books, I even made a schedule, I was going to study one book on mondays then another on tuesdays and so on but I always fail I can't teach myself anything, it sucks and it makes me angry with myself.

Learning multiple programming languages, concepts or theories at once is a recipe for disaster. I tried it with something as simple as Ruby and JavaScript and never finished either one. One at a time.

In another part of my life, I am a trained therapist and I would like to encourage you to see a therapist NOW - before the thoughts of suicide return. In the meantime - even though it is a bit 'off topic' - anyone dealing with frustration can use this article: http://www.marcandangel.com/2011/12/11/30-things-to-stop-doi...

So many of the comments in this thread are valid and worth another read - you will never succeed unless you risk failing, period. Keep trying - shoot for small success - take a break - find support - and the best suggestion I read in the thread: stop lurking and start contributing here - be a part of the community where most of us have failed at something a time or ten!

If your thoughts of suicide come back to you more and more frequently, see a therapist.

As for your lack of motivation, remember what Chis Gardner (pursuit of happiness) said:

- If other guys can do it, you can too.

- The cavalerie is not coming.

- Baby steps count too, as long as they are in the right direction.

You want to truly become a good engineer/hacker. That's great. Now get to work, because the only thing that stands between you and your goal of becoming a great engineer is you and your self doubt. As you said, you have no excuses. But most importantly STOP feeling overwhelmed an inadequate and START accepting that the field of computer science is just HUGE. There are literally hundreds of programming languages, technologies, skill sets (front-end, web dev, DB etc.). Nobody masters all of them. And further, true mastery of a skill takes practice and therefore time. What you see on HN is an aggregate of the best of the best, a community where everyone chips in the best of their abilities. And that's why it is so great to read HN.

Now, to get out of this whole, simply use divide and conquer. Pick one fundamental C.S. skill you want to learn (algorithms, data structures, OS/compilers etc.) and learn it really well. Dive really deep and try to not just watch videos on academic earth but do the homework, code the samples, build small projects around it. Once done, pick the next subject. Remember, it is better to complete one small thing, that to start 10 big ones.

There's plenty of expert programmers who know Node.JS, Redis, CoffeeScript, Erlang, Scala, with tons of projects in GitHub... that noone uses... and noone pays for.

Then there's this guy named Mark Zuckerberg, who ppl claim to be a bad programmer who wrote Facebook in PHP.. and it's probably sphaghetti code.

Stop focusing on being technically superior, and focus on using your current skills(you probably have enough) to create something people want, and solves a problem. The 2 are not directly related to one another.

Walk away for a little while.

I've been programming and playing with a computer since I was around 10. There were a couple times in my life where I completely walked away because I wasn't sure that it was actually what I wanted to do. The first time was in high school. For three years I barely even used a computer. I took a course in Pascal but once I got my assignment done I was doing other things. Before high school I was pretty much glued to my computer 24/7 hacking this game or that.

The second time was a year into university. My freshman year I was on my computer hacking all the time. Learning new web tech etc. After my freshman year I pretty much got sick of everything computer related and even ended up not going to class and the next year dropping out completely.

The time away allowed me to explore new ideas and other worlds that I never did when I was glued to my computer all the time. Learning computer tech is not an easy thing, and it takes A LOT of time and dedication. Some people may make it look easy, but I think those people are in the minority.

After taking a year off I realized that I really missed working and creating stuff computer related. It gave me a lot of motivation to go back to university and start learning stuff again. Suddenly university was actually easy, who would have though listening in class and taking notes gets one 75% of the way there.

Leaving computers behind for a while was the best thing I ever did. I look back fondly at all the experiences I gained during those times.

If you find that there is a hole that programming will fill, you will know it. Picking it up again is easy. Its like learning to ride a bike, you may get a little sloppy but it comes back relatively fast.

Oh and stop visiting HN. It is good at depressing people. Realize that HN is like the rest of the news out there, it focuses mainly on the success stories. Not many people write articles about projects they never ended up finishing. Trust me everyone does it. I have around 20 half done projects. HN gets me depressed as well, and I think i'm a pretty competent programmer and had a chance to work on some awesome projects.

Your not alone... don't let the successes on HN get you down. Learn to program because you yourself get off on it, not because you care what anyone else is doing...

Hey, OP.

I see a lot of good responses, and then sometimes people thanking the responders. (and I agree)

But really, I'd like to thank you. Thank you so much for writing this.

I feel the same way you do a lot, and I'd bet that there are others too who have these struggles.

I too had irrelevant experience and could not get even an entry level job because of the fucked up way our industry works. I've seen my classmates strike it rich at Google, and I see all the programming.reddit.com and HN posts of people's blogs and their wonky projects, and sometimes I feel like I could never do what they do, and I'll never get a job.

Right now, I'm about halfway up the curve of something happening for me. I wish I could tell you that it was quick, and I wish that I could tell you what the outcome is going to be for me... Maybe I'll let you know when I get there.

But I just wanted to thank you, and I wanted to tell you that there are a lot of people who feel this way too.

There are some who never feel this way, and I envy them.

The best response I've seen here is to pick a project that you can do in 3 weeks. But I'll go even further: pick one you can do in a day. Then a couple of those. When you've done a few, I'll bet that you are able to easily pick something that's 3 weeks, and get it done in 3 weeks, and feel damn satisfied that you can do something.

Good luck, and solidarity.

1) You're in luck, there is a lot of evidence to show that this kind of thinking responds very well to Cognitive Behavioural Therapy. There are a number of ways to get this; you can do it from a book ("Mind Over Mood" is one recommended book) you can do it online (the Australian "MoodGym" is often recommended) or you can buy therapy. Look for someone experienced and registered. In the UK you can go to your GP and mention IAPT (Improved Access to Psychological Therapies) but keep pushing it, some GPs say there isn't any when there is - you may have to ask your local MH trust about talking therapies.

2) Remember that tech invites high performers, and HN has a bunch of VERY SMART people. Don't compare yourself to them; you'll always feel lousy. Compare yourself to the people behind you on the bell curve. You are above average, and for the moment, that's good enough. Now you just need enough motivation to plug away at the good ideas, and keep producing them until you get the awesome ideas.

3) Make sure your food and exercise are good - there's lots of evidence to show that good exercise helps with mood. And eventually it may lead to team sports, which have a bunch of social life benefits. Alcohol will lower mood. Some people find that even small amounts of alcohol will lower mood for days. Being careful with sugar, caffeine and alcohol should help.

4) Learn a time management technique, like pomodoro (but there are probably others) and keep at least one project going.

Most importantly, good luck, and keep going. If you find things getting worse it's a really good idea to see a doctor. Depression sucks, and sometimes the worse it is the harder it is to treat.

I think that a lot of people on HN would identify with aspects of this, it's a good read regardless. Don't take this as me diagnosing you or anything, I just think there are elements of truth in this that can help better anyone's life.


Second Part - Easier said than done...

Stop comparing yourself to others and start comparing yourself to yourself.

Humans basically have 3 states - Think, Feel, Do.

If I had to guess, ever since finding HN you've been bouncing between thinking and feeling, with very little doing. It's not healthy, everything needs balance. Try forcing yourself to set a really simple goal of just doing something for a week. Walking 2 miles every other day, playing guitar 30 minutes 3 times a week, something physical. (The reason I say physical is because you're prone to thinking and feeling a lot, keep it simple and avoid going back into that rut)

You need to start finding little rewards and reinforcements for yourself on the 'do' side of things, I suspect even small ones will open doors to greater successes.

Something I find almost impossible to do physically is not think. Sit on your floor, lay in your bed, at your desk chair, whatever, and start counting your breaths, slow, metered even breathing. 5 seconds in, 5 seconds out. As soon as you hear a thought pop into your head that isnt just focused on the in and out of your breathing and on what breath you're on, start over. See how high you can get. Not thinking is an incredible way to train your focus.

I know it may not be much consolation, but many people go through such phases at least once (or even more) in their life.

Think of it as a phase, which will leave you more skilled and happy when it's done.

When passing through a phase of feeling worthless, it is common to become inundated with things and not being able to take tasks to completion. The trick is to set small achievable goals. Make goals that will take no more than a couple of hours to couple of days to accomplish (start small if you can). Every time you complete something, cross it off your list. Every time you cross an item, it will give you a feeling of accomplishment and confidence.

Try using the Pomodoro technique to stay focused. It has helped a lot of people (myself included), and it may help you too.

I have a website for peer based learning of various computer science topics. I will be glad if it helps you in any way. You can check it out at http://diycomputerscience.com/

Remember that such phases often happen to bring about growth, and you will come out of this better off.

Take care.

Move to Silicon Valley. Seriously. I started reading Hacker News last year as well and decided back in September to leave my job and move here. Definitely a big decision but I don't regret it. The demand for engineers here far exceeds the supply, so you can work at almost anywhere you like.

If you can't move, then attend a Startup Weekend near you (http://www.startupweekend.org/). It's a great way to meet startup oriented folks. I thought there was no startup community in the midwest. But at Startup Weekend in Des Moines, IA and Kansas City, MO I met well over 100 people. Then I found out about Startup Digest, Silicon Prairie News, etc. If there is no startup community, create one. Find everyone you know that might be interested, create a Facebook and Meetup group and organize some startup meetings. You never know who you'll meet.

1. do go see a therapist. seriously. just talking to someone who will listen to you without judgement is healing in itself, but a therapist will also be able to help you set goals and work towards them. and that is not even to mention the depression.

2. see a naturopathic doctor. a lot of people suffer from non-pathologic illness that are not typically diagnosed by by conventional medical doctors. here's some common things:

* adrenal fatigue * vitamin D deficieny * sub-clinical hypothyroidism * blood sugar issues * food/environmental allergies.

i could go on. the mind can often be greatly affected by the health of the body.

3. start attending technology users groups. interacting with real people will; give you much more perpsective thatthan reading about the great things that bubble up to the top of HN.

best of luck. know that you are not alone; a lot of us have been in your place. it feels horrible, but it is temporary, so hang in there.

Start from the scratch, its ok.

Create simple html page for a login. Once you finish html , add some css to it . Try linking with a backend. Make sure you do these small things properly , not just thinking its too easy. The things like this will help you with confidence, once you finish up with your site , add more functionality to it . Use JavaScript , make your page dynamic. Try using javascript to just make small things. Once you are fully done with these go in for python/ruby.There are really good tutorials out there.Implement a small thing and post it here . I'm sure people will appreciate it. That day you'll get back your confidence , till then try lurking less into HN . Good Luck man, I'm sure you'll get back to us with your comeback story :)

I can TOTALLY relate! I'm in pretty much the same position with a depression that grows stronger with every day I'm not doing something to break out of the situation. Making things worse is the fact that I've solely been doing Perl web development for the last 12(!) years at the same company. When I started web development in 99, it was all fun and play. I had the feeling I was at the forefront of technology and only few people could do what I did. Then I got stuck with Perl and had to see it going out of fashion (nevertheless, I seriously still think it's a wonderful language that gets the job done and with the Modern Perl tools available in a very maintainable way as well, but I digress). Years passed, and here I am. A Perl developer in a country where Perl has completely vanished off the surface. I'd never go so far as to call myself a Perl expert either. Neither have I written a couple of frameworks or libraries (like the pros you mention) nor have I poked around in the internals of the interpreter. I'm just a web guy, who is equally good at front- and backend development, but neither a rockstar in one of them. Jack of all trades, master of none fits my person best. Once sought-after in the internet hay days, nowadays replaced by an army of experts and specialists.

I'm thinking about leaving development as well, but what are the alternatives? Going into management? I don't have the experience to apply for such a position at another company and I don't see this happening at my current employer because we're rather small. Similar to you, I lost my motivation over the years and find it hard to justify learning new stuff (like Ruby, Rails, Python, node.js, maybe Cocoa development, etc.) because it'll go out of fashion soon again anyway and takes me considerably more time to digest than those prodigy developers the internet seems to be full of. But maybe, things aren't like they appear. What's the percentage of rockstar developers among all developers? It's most certainly not close to 90% as the internet and all the cool blogs make us think ...

Sorry I couldn't be of more help, just wanted to let you know that there are others out there in pretty much the same situation. All the best!

I read this post, then reread it and wondered if my alter ego wrote this one while I was asleep. I'm in the similar job with more or less similar experience level and age (of course minus the wife). Thanks for posting this question, I would never have posted it myself. And thanks to the ever awesome community for such motivating and thoughtful responses.

PS: I've started off with Python today. :)

First, there is nothing to be ashamed about for being an enterprise programmer. So, you've been working as an assembler. Now is the time to look at the tools themselves.

First, go back and review the basics of web programming. https://code.google.com/edu/submissions/html-css-javascript/... is a good start. It is probably below your level, but do it anyway. Get some confidence. :) Do the same with a decent book on your programming language. Get an understanding from the ground up. Make sure you can program 100 lines without looking anywhere.

Next, start learning your tools. Were you using jQuery? Oracle? Start delving into what those tools really are. Watch screencasts and follow along, typing the exact code in as you go. Make a basic to-do application in the technologies that are on your resume. Don't be afraid to look on the internet, but there's one rule.

No copy and paste.

No, every time you find an answer, you're going to type it in directly. Every line you type in, you're going to think about what each thing means, and if you don't know, you look it up in the documentation.

Learn how to write a login page, how to connect to a random single signon. How to logoff. How to write each piece of the app. You will soon have a simple application. It's not much, but it's yours. Write unit tests and integration tests. If you think code looks messy, clean it up. This is your template.

Now, add some ajax. See how others are doing it, but again type it in yourself. Put in all the features you want to learn. Keep updating the tests, both front end and back end.

Now, try implementing the front end in backbone and jQuery, or whatever front end technology you want to try first. Keep the back end the way it is, and keep the look of the front end how it is. Just port the code over.

Now choose a back end you're interested in. Port the back end. You know how to make the simple case already, it's just a matter of learning how the new one works. THEN you take your todo app and start making things from that, now that you know how everything works basically.

Now, for interviews, take a month off and do all this. (Block reddit and use aggressive noprocrast on HN.) Then go back and interview for mid level positions. Many coders you are competing against are in the same position as you are, but you've gone back and taken the time to really learn your set of tools.

I really believe the difference between a bad and mediocre web programmer, in many cases, is about 100 hours of dedicated training about how the web works, and how their programming language works. The difference between a mediocre and a B- programmer is being able to rattle off the basics really quickly and knowing their toolset.

Getting to the A level, that takes more time. But you can do that as you have a job. :)

Good call on no copy and paste. I'm in constant learning mode and the difference between copying and pasting code, and typing in code, even if it's code that someone else has written, is huge. Same goes for reading a programming book vs reading and doing all the examples. Sometimes I think that when you program you're thinking with your fingers or your fingers are an extension of your brain. Exercise them!

Also, thanks for the link to google code university - it's new to me.

You should give course(s) offered by Stanford a try. Rule is you have to finish them (including assignments and exams). They are really interesting and will add to your CS skills http://algo-class.org/ http://jan2012.ml-class.org/

You want a huge list of generic internet advice to feel intimiated by, ignore, then feel bad about?

you can create amazing things!, this started a revolution in my head, I now have a goal: I want to be like these guys I want be admired by my peers

Sleigh bells ringing... No wait, alarm bells. What does wanting admiration and to be like others have to do with creating things?

I have tried telling myself that its alright, that its all about hard work that I have to stop feeling sorry for myself and just do it and start working, but no matter how hard I try I keep having these feelings of inadequacy

You keep telling yourself that you aren't working hard enough, that you keep failing, and that this is OK, and then you're surprised when you feel bad afterwards?? Hello, McFly?

and pretty soon I'm back to feeling sorry for myself, "it doesn't matter how hard you work, you'll never be like them"

What are you trying to prove, and to whom? I don't ask to hear an answer, I suggest you ponder it though.

This is indeed ruining my life.

Indeed. What if you never ever become a great hacker, would you still code for fun? Could you ever really feeply admire and like yourself in that future?

everyone has said what needs to be said, but this post is a few days old now so i'm going to say it again, in case you went back to your normal self.

just pick something, anything, and not major (as to discourage yourself), break it down to small parts and each part into a set of tasks. for that you can use [https://workflowy.com], i like it a lot. just tackle them. DO NOT stop when you're stuck. bulldoze through it, then stop at the middle of a printf or something (again so you will jump back on it because you know how to pick up where you left off).

just pick an idea that you love, and go with it. and never forget who you are.

take care, bud. i promise, you'll be just fine.

Hey, where are you located? Maybe meeting up with some people from here can help.

I went through something very much like you're going through several years ago. Over the course of about six months: Fiance left me. Lost my job. Relative died. Family dog died the next week. It was a mind-numbing, spirit crushing year of defeat. Eventually I decided to return to school with the intention of going to medical school, which for the next couple of years got my back on my feet. I learned that despite an abysmal first attempt at a CS degree (abysmal because of an utter lack of effort on my part) I was actually a much better student than pretty much any of my classmates. I regained my mojo, so to speak, leading up to a semester I took off in order to go code for a friend's company on a short-term contract that was supposed to give me enough cash to pay off some bills and finish my last semester. That was five years ago this month, and I still haven't finished that last semester.

What I have done, however, is rediscover how I enjoyed development. For me it was a combination of Ruby, the Ruby community, and the problems I worked on that did it, along with a healthy dose of perspective and maturity. For other people it might be python, javascript, or any other platform that became enjoyable, and some probably discover that they're happier not being developers at all. I still have a bit of Imposter Syndrome to deal with, but I cope. Today I recognize there are things I'm good at, things I'm bad at, and a lot of in-between. The things I'm bad at I make myself do more often so I can get better at them. The things I'm good at I teach to others to help them along.

I'm not dumping this out there as some sort of victory—more that you need to know that you're not the first to deal with problems like this, and you can come back from them.

If you want to be a hacker, for gods sake find some to hang out with. The best thing you can do for yourself when you're in a rut is have someone pull you out—offer yourself up as a free pair for someone doing what you want to learn to do. You're not getting paid anyway right now, so use the time to learn something. Go to language groups—preferably one with a large community friendly to new developers. Make friends in the tech community around you, and you are all but guaranteed that one of them will eventually have a job for you. In the meantime, work on OSS projects, and if you don't feel confident about your coding skills, help write tests or documentation. (BTW, its a poorly-kept secret that tons of OSS code is written by people who don't really know what they're doing—they just figure it out the hard way. So don't be shy about contributing.)

Get some exercise. Stop trying to work your way through SCIP and read something interesting. Most of all stop beating yourself up. Everyone deals with motivation problems at one point or another. And turn on the no-procrast feature of your HN profile.

I'm often right there with you. I'm 25 and I often feel like shit because everyone else seems so much smarter and doing much greater things than me.

After feeling miserable about myself for some periods of time I end up meeting some cool people who are in the same line of work and I found that my thoughts were just not true. Honestly, it's close to impossible to know everything about programming like you want to. You probably know far more than a lot of people who are trying to do startups already! No joke! There are people who think knowing HTML and CSS is enough for them to make the next Facebook/Google/whatever.

Then there are always going to be people who know far more than you. Most of those people are here on HN. You can't feel worthless because you're not as good as you think you need to be. You'll never be good enough if you keep thinking this way.

I'm just like you and I was inspired by the community here to start my business and I love it but I still feel like what I've done is total crap compared to what a lot of folks here are doing. That's okay. The thing about programming is that you need to break things up into manageable chunks. It sounds like you're trying to do too much at once. One feature at a time. One database call, one AJAX request, one link to a CSS file at a time. Go slowly, work your way up and one day you'll look back and be amazed that all those tiny incremental implementations added up to this one huge app or whatever you're trying to build.

Remember too that everyone specializes in something. You know CRUD apps. Other guys know design. Others are generalist. You know what we all have in common? Everyone copy/pastes code from online from time to time! It doesn't mean you're not a programmer. It just means you haven't learned one specific part of programming yet. Honestly, working your way up from those stupid Hello World examples is the way to go.

I wrote a lot because I often feel just like you and I know how much it sucks. It's okay. There are so many people out there who would be astonished at what you know already that you wouldn't believe. When you hang around HN you're hanging with the best of the best and you don't want to be comparing yourself with them just yet. Be inspired, learn as much as you can but remember that there is so much to learn that you'll be learning to program until the day you die. My best advice would be to focus on one single skill you want at a time and work your way up from the damn Hello World examples even though I know it seems like you know enough to skip them. They will help.

Good luck to you, man. Feel free to get in touch by email, maybe you and I can build something cool together and prove yourself wrong about not being a real programmer.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact