I am not a good programmer and I can't help it


#1

I have been an average person my whole life. I have always wanted to excel at something but that has never been the case.

At 18 years old, I still had not figured what to do with my life, had no interests, no hobbies, no nothing, and decided to study computer science. I did not had any trouble with it, but again I never did anything noteworthy. Nonetheless I managed to go through some internships and some junior developer jobs with ease and life was not great, not bad, just right.

Now at 27 years old I am at a loss because I don’t feel like I know what I am doing with my life anymore. I see most good developers are not lazy laid back dudes like me who feel sorry for themselves, but a force in overdrive capable of anything. I just don’t have that in me.

I did not code at 8 years old, wrote a framework, designed my own game or even finished a Sudoku puzzle. This is the moment where someone says “you should not care for other peoples achievements and focus on yours” but that is not even possible today. Being excellent is no longer the exception, is the rule. I can not land a job after 6 months of search. I have a pristine CV, got certifications and 5 years of experience, but noone cares about, all they want is to see my code in github.

And the real issue is, when I try to even think about building something to show off, I can’t do it. I have never had that spark of imagination and/or incentive in me. I sit for hours in front of my IDE to end up throwing my laptop on the floor and crying myself to sleep.

I just feel so broken due to the fact that I have never been able to do anything in my life without someone else telling me to do it.

Despite being a late bloomer dev, I really enjoy coding, it brings me back simpler times during my childhood, where all I had to do was put blocks together to create something of greater meaning, plus I won’t consider a career change as there is nothing else for me out there to even think about. I really just don’t know how to make a change.

I feel like I am cursed, and it even makes me question if there is a place for me in the world as a coder, or even as a member of this society.

I did try therapy but the only advice I got from it is that noone knows the purpose of their lives, that in time life will show me why I am who I am. I don’t feel I have that time


#2

I know how you feel, all too well. I’m a few years older than you (I’m 32), but I’m in the same boat as you. Just take a look at some of my other posts on here. You aren’t alone.

I’ve hit a similar wall when trying to come up with a side project to show off what I know and put on GitHub. When I’m learning a new language or framework, I never remember it because I never put the knowledge to use to build something. I obsess over what I should build and never actually accomplish anything.

Unfortunately I don’t have any good advice to offer, because I’m still struggling as you are. I hope you can break through it soon.


#3

Thanks for your reply, a “hang in there” does means a lot to me. You mentioning the words “obsess over” and “never accomplish anything” is such a good way to describe what I feel.

You know, I got to this site through Greg Bauges “Devs and Depression” post on his blog. This quote is something I find somewhat chilling:

Software development is a good place for people with depression and
bipolar. It accepts the socially isolated. It accommodates irregular
sleep patterns and inconsistent bursts of productivity. It seeks those
with the grandiosity to believe that they can solve problems others
can’t, and exalts the ones crazy enough to believe that they can
change the world.

I feel this is no longer true. I am like that but no one cares if you are a hard worker anymore, all that matters is that you are that piece of genius missing on their perfectly built business. I have had plenty of interviews, but since I got nothing noteworthy to talk about they tend to just toss me away.

There are so many developers out there with blogs, participating at meetups and hackatons, building apps like putting butter on their morning toast. All that is just so otherworldly to me. What wouldn’t I give to just be a bit more like them.


#4

Just popping in here with a “me too”.

It makes so little sense to me how much we’re expected to have showoff side projects in order to prove ourselves as developers. We’re already working full-time on code someone else owns that we’re not allowed to just show off to the public, and we need to be doing that in order to survive, but now we’re supposed to have a fully developed thing on the side too? When the hell do people think we’re supposed to be doing all this?

Then there’s even coming up with a worthwhile idea. Making another lame to-do list app, just for the sake of having something to show off, is uninspiring. May as well be another Hello World.

If you have an idea, you open a new file and right away you’re at a loss how to design it. There’s so much pressure to get it exactly right and do it perfect, after all this is what’s supposed to be proving your worth out there, don’t fuck it up! Don’t make a Single Responsibility Principle mistake! Your head is swimming with a dozen different ways to organize the code and design the system, and they all seem wrong.


#5

I have blotches on my CV, I wasted 8 years trying to fit into some university system and quit without a degree. My github account only gets public commits every few months and I’m only creative in very narrow situations. I have phases I will be very depressed, usually when the job isn’t going well. And I’m trying to get my blog done for all of 2013.

But I do fine job wise, the markets are good, demand is there and the challenges are good. I can’t complain about that.

Here are some pointers, I know they are hard to accept and make your own. I almost never can when I’m severely depressed, but they worked for me.

  • If you’re not 100% set on Java specialize to a language / framework with a smaller crowd but high demand. Being the only applicant or 1 out of 2 makes things much easier than being 1 in 20. However you have to be willing to move towns and keep a few thousand on your savings account so you can always go back home if need be.
  • Don’t try to be creative, just do some legwork for an open source project. Like updating the docs. Make some friends with a few guys there and grow into it.
  • Always, ALWAYS join companies with decent sized teams. The small startup might be luring, but you might end up being the only dev or being solely responsible for major features without having colleagues to collaborate with. Edit: I mean 5+ developers here, not Google.
  • Try learning, for me that takes the edge of. Without specific goals I can learn new stuff much better then when I have to. And there are so many side technologies and new languages, cool frameworks to explore.

I hope there might be something in that list for you. You will do fine. And don’t feel old. With a 3 in front of your age and a few grey hairs people will take you seriously much easier. Happened to me that way.


#6

I forgot to mention this before, but one way to add something to your GitHub page is to do programming problems/challenges. If you look at my GitHub page, that’s pretty much all you’ll find (along with an old iGoogle gadget that I built back in the day, when I was less depressed).

There are three good sources of programming problems I’ve found:

  1. Dave Thomas’s Code Kata problems. Some of these are really hard, but they are good learning experiences. I blogged about solving one of them a couple of weeks back.
  2. More math-oriented is Project Euler.
  3. Another source for interesting challenges is on Reddit, at /r/dailyprogrammer. They post easy, intermediate, and hard challenges each week.

#7

Ye, I decided to do golf (code) for a few months already. Done some of Projects Eulers. I also joined my local Meetup group, participate in stackoverflow and done CodeAcademy courses.Yet that is not impressive enough for the people I have been interviewed by.

It really has become a situation of show me projects or get lost. I’m trying to get into opensource projects through socialcoding4good.org, but haven’t heard a reply either.

Why oh why I had to be introduced to J2EE in my life…


#8

I hear you. Java EE has become one of my biggest sources of anxiety. I’m so far behind on my knowledge in that space. I did some Servlets and JSP years ago, but I’ve all but forgotten it. EJBs, JPA, JMS, all these things are unknown to me. Same thing with the Spring framework and all its associated projects. It scares the hell out of me when I see job listings that all want these technologies.

I unfortunately got myself into a job where I was doing Swing GUI work for several years, and got too comfortable on my laurels instead of learning new stuff. Now I’m in constant fear that if I lose my current job, I’ll be screwed, and won’t be able to find another one.

Trying to learn new stuff to catch up on my knowledge gap, but seriously, it’s so much to learn and how am I supposed to master it when I’m not using it at work? I don’t have some great idea for a project to build with it, so I don’t know how I’m supposed to remember what I learn.


#9

Heh, my case is the opposite, I know Java and JEE too well, just haven’t had the guts to prove it. I mean, what am I gonna write? how to connect to a DB for the n-th powered to the n-th time? I even laugh at people thinking you can only have singletons by using Spring… dude that came from a pattern… sigh…

I read books, a lot, I’m not afraid of new knowledge, I just can’t build something from 0, man I have never been able to draw a stick figure. Ye me and my childhood issues.

And don’t panic with not knowing Java, JEE is kinda stuck, in a good way. The enterprise and business rules side of things is so solid that does not require any more people working on it. All now days is JS clients and native apps. We are devolving into 2 layers again.


#10

I just also wanted to say ‘me too’. I am even older (38) and get what I used to call ‘programmer’s block’ but now I think it is more like the symptoms of imposter syndrome (try a search for that, somebody else mentioned it on this forum). At the moment, full-time work is too much for me so I am doing some small projects via a freelancing site. I already had to return the deposit on one job as I was too sick to complete it and am now stuck on another. I decided to use Node.js without any prior knowledge (It’s javascript, you can learn node in a day said someone on StackOverflow). Not me, I can’t learn a whole new coding paradigm in a day. Not while I am battling all the noise in my head. Anyway, you are not alone.


#11

It sounds like job hunting is a bit easier from the Microsoft side of things. I’ve only been asked to see code examples maybe twice in all my interviews. I suppose the mindset is much more used to proprietary and capitalist behavior, because they always accepted it when I told them that all of my work was covered by non-disclosure agreements and I don’t code for free. Maybe that creates the illusion that I’m more important than I am, I don’t know. It’s really more like you where I can’t think of anything worth coding to show off with, and it seems stupid to spend a bunch of my free time making a copy of an app that thousands of other people have already written.


#12

@deepthought full-time job, how I miss the sound of it, I hate that I wanna be part of the system and the system has no place for me…

@jared_synn I agree with your entire statement. Thats my brains default.

Job hunting today is hard, or at least it is for an average person like me. I even had one interviewer talk to me about my FB profile, if I had any pictures of events I previously went.

At this stage I don’t know, I even started to wonder if good coders are born or made. :frowning:


#13

Have you considered finding an existing open source project that you enjoy/admire/whatever and contributing to it? Perhaps spend one night, instead of at your own blank IDE, browsing some other projects with open Issues and needs and seeing if you find anything that touches a nerve. Contributing to an existing project can sometimes serve 2 purposes: building up ‘resume code’ and building up community.

What are some of the things you’ve worked on at gigs that you enjoyed? You talk about enjoying coding in your original post, what were some of the fun things for you?


#14

I don’t enjoy/admire/whatever any of the tools I have worked with. Contributing to one of them implies I would think they are missing something and I haven’t found something like that.

All the code I’ve done has been make DAOs and services, aside from uni homework. I enjoy coding as a day to day occupation, I haven’t said to myself: “hey I am bored I’ll code myself a pac-man”. Hence the nature of this post…

Which would be a good way to hunt an open source (Java/JS) project? I tried going through socialcoding4good.org but never got a reply. must be the xmas season.


#15

I’m not familiar with that site, I’ll have to check it out. I guess I was just thinking of github, for starters. They do have this page: https://github.com/trending?l=java – you can see what repos are trending in different languages.

“hey i am bored I’ll code myself a pac-man”

ha! yeah, I don’t think that’s been my experience either. I tend towards the junk drawer approach, trying to write up small tooling that I can also use on the job to help me get some boring/tedious bits done.

Is there anything in the act of coding DAOs/what-have-you that you like or are bothered by when others don’t do such-n-such – whether it’s testing, docs, comments, good OOP?

When I have work like that, I like trying to build out automation to help me either have better visibility into it or help me ‘play’ with it. If it’s a service, I like to build my own fixture code that allows me to push more realistic/sample data through it, maybe put it under some load, see what breaks. Try threading things are whatnot.

My current work stuffs, I have to occasionally look some one-off stuff up in a Rails prod console - and since it’s payment related, it’s locked down so I have to field some support requests that otherwise we’d just send people to a slave db and have them get it themselves. I got bored with simple console output and took the time occasionally over several days to fix up some convenience methods to help me manipulate the data, give me a good text table output and some other additional lookups.

I like taking something that’s boring and stupid and making a little more fun to handle.

I dunno, just trying to throw out some brainstorming.


#16

Actually thats not a bad idea at all. Gotta love out-of-the-box thinking Got so blocked into trying something new that I never thought I could do some posts about improvements.


#17

Ah, cool :slight_smile:

Yeah, if you poke around my github page, there’s a lot of miscellaneous stuff, not a whole lot of ‘killer side project’ stuff. github.com/chrismo

I’m fortunate to work at a company that supports releasing some stuff as open source. Here’s another small thing I needed to make that we released: https://github.com/livingsocial/excelinator.


#18

Not everything you do has to be epic projects. It’s not just promotional for hiring managers, it’s also good problem-solving practice. It gets you used to thinking about things from a particular mindset of, “Is there a better way to do this?” The first person to create a copy/paste function might have only thought of it as a simple little hack for their own convenience, but look at how much that changes life for so many people.

I find myself trying to model patterns and rulesets of behavior all the time, then picking apart all of the exceptions and ways of breaking the model. I don’t even do it on purpose anymore, it’s just habit. If I could just carry it over to actually trying to create database schemas or class models in real code instead of just letting it go when my attention wanders, I’d probably be a guru architect or something by now. But, hey, you inadvertently helped me find something I can work on for practice at home now. Thanks! :smile:

So, I guess you could take that as indication that you can use habits, annoyances, and laziness as sources of inspiration and direction just as much as passion, curiosity, and ambition. Since so many of us do similar things in similar environments, the thing you come up with to help make your own life better might actually be useful for a lot more people than you realize. Share what you learn, share what you do, and use the feedback to help you continue forward even further.


#19

This is a good suggestion. What type of java stuff do you work on? I did backend webservices for a while, and hated standing up the entire stack, for example. I found it fun to write a few basic things in python (or jython) to interact with what I was doing. If you are working on webservices, even writing some bash scripts for curl stuff can be fun, but definitely look at python and the requests library. it can be relaxing.

another thing I did while on that job was write a script to scrape data from logs, get it to csv form, and then have a python script to play with the data. at first I played with the data just using numpy and interacting with it at a prompt or just wrote a command to spit out text formatted for a wiki. later I learned about ipython notebook, and used it to play wit the code and make graphs and stuff. small steps though. things didn’t happen all at once.

people also do this type of stuff with R.

so if you are looking for things to do, break down something like that from work in to small chunks. I hope I didn’t go in to tedious detail, but I am hoping maybe you have some similar enough job that the ideas would apply.

some more things I am thinking of – at work we used graphite to collect event data from our java code (which we used erma/streambase). We’d watch graphs all the time, definitely when trying to trouble shoot stuff, like why did this service suddently spike, what the heck is going on…

graphite is really neat and you might find it relaxing to use it’s interface where you can ask for raw numbers rather than a graph. but actually, just interacting with for visualizing data can be relaxing too. it might not seem like a big deal to you if you make a graph and stick two metrics on it to, then play around with what graphite can do without writing some script or program or something – but actually it can be relaxing and useful.

I have bipolar2 and tend to be depressed more than hypomanic. all of the above I did on a job where I was often in a fog of depression. so it was not some blissed out activity I did. but over time I can look back through the fog and remember that I enjoyed these things. it might not be completely easy to realize you are enjoying something while you are in the midst of a fog.


#20

btw, I don’t know if you’d want to start with pandas, I will tell a story about the first time I tried to use it. I was doing something similar to this talk (before I saw the talk so I didn’t have the leg up). I eventually managed to struggle through learning what I wanted to do, and once I did I really liked the result – but actually, I felt freaking stupid due to how much I had to struggle. I had all these dysfunctional thoughts – I must be stupid because I didn’t immediately follow the docs. I must be stupid because I don’t know how to infer how to do things by using python’s dir on the dataframe. I must be stupid because I didn’t just immediately know how to slice what I was doing. etc etc etc.

so, regardless of ending up with something I liked, I felt completely stupid.

and then something happened. There was a charity half day class that someone put on about working with datasets using pandas. I thought it would be fun despite being worried I would not be able to keep up with the people in the class. But while there I saw them having to go through the similar steps for learning all the things I did. It was hard to think of them as stupid, because I knew them and considered them very smart. all of suddent we were all just regular people and this is just how regular people experienced the process of learning pandas.