Ask HN: Why am I a terrible software engineer?

1 points by sown ↗ HN
It seems like my biggest problem is that I can't read large amounts of code. I don't get to participate in interesting work. I forget everything, even stuff I write down.

Now days I work in sustaining engineering and I'm fairly bad at it (see https://news.ycombinator.com/item?id=7188437)

I've been allegedly been doing this for years but it really feels like I have the experience of someone who's recently out of school.

I setup a github and try writing out stuff on my own but no one cares about it. It's mostly private repos anyways. I spend 10-20 hours after hours working on extra stuff. That may be too much as I have other (serious, very real) commitments

Some of you will say 'get good'. That's technically true but it's also what I'm trying to do.

I'm wondering if I've just made serious career errors or maybe I am just permanently screwed. If I never give up and never quit, maybe I'm at my limits?

Maybe I'm a leech like another askHN post talked about (https://news.ycombinator.com/item?id=7196455) and don't know it or how to fix it?

15 comments

[ 4.9 ms ] story [ 50.4 ms ] thread
Neither of these 2 posts say how long you've been doing this work for.

Maybe your just using a language that doesn't relate to you? Have you tried writing in Java? PHP? Ruby? You might be a crappy C programmer but excel in Java.

I sucked in FoxPro but really excel at PHP and am getting pretty good at Obj-C. It's all a matter of how badly you want to learn something. PHP is my career, but I want to be an iOS developer. So everyday, I try. I fail often, but the more I've worked with the language, the better I've gotten and I struggle with it less now adays.

+1 to this - try something else to try that you've not already tried, e.g. if you've only ever done C or Java before, why not branch out and try HTML+Javascript?

Just tinkering around with other stuff can be a fun & educational diversion.

> Neither of these 2 posts say how long you've been doing this work for.

Good point. I've been working since 2007. I think the last real new code I wrote was in 2010. Before that, I did something in 2007-2008-ish.

Mostly C/C++. I want to do something else, that's true. maybe android development or ML stuff. I've been reading about that but I don't think I have what it takes

I've come to believe that there are moments, for me, where I have accidentally attained some sort of threshold of knowledge where despite never measuring up to a task before, I revisit it for the 10th time, and this time, for some reason, I'm able to start making progress.

I'd keep reading, but also, just do some dead simple tutorials in whatever space you are interested in. Codecademy was a great motivator for me, because though I had read a ton, I hadn't managed to really accomplishing anything on my own. With their hand-holding I was suddenly genuinely understanding concepts that had been very fuzzy to me up to that point.

http://codecademy.com

Give it a shot :) Good luck!

> I've been reading about that but I don't think I have what it takes

There is no such thing has not having what it takes. We're fortunate in that you don't necessarily need a degree to excel in this industry. A recruiter asked me just the other week - "how have you gotten this far without a proper education? " - I didn't know how to answer her. What'd you mean, how? I worked my ass off, learned new things and every job I got I made sure it was a step forward, not backward.

It's impossible to learn a new language over night. But dedicate time to it and over a couple months / year - you might get good enough to use it at a real job.

Always make samples of work and store them somewhere. Start basic, and move gradually towards complex projects. Never know, maybe a startup comes of one of them...

I meant that it seems like i'm too dumb. it was like this in school, too. I remember in a networking class I was always bewildered at what the professor was saying and everyone else got. he used the socratic method of teaching; asking questions in a logical fashion. he didn't call on me after a while.

i do keep trying to read and learn about ML or any new tech, but it always seems like I'm clueless because there's more stuff I don't know or never knew about. it's never good enough to get a job. just thinking about it now makes me feel like a loser when i should feel excited at new knowledge. maybe i'm just burning out. i feel like I'm at the end of my life

It's debatable who actually does read large amounts of code; see: http://www.gigamonkeys.com/code-reading/

I personally only read large amounts of code when trying to grasp the overall structure of a large application. But I'd rather not read large amounts of code; I'd rather read a design document! But not everyone writes them... :-(

I would opine (based on experience!) that work like bug-fixing can be so monotonous that your mind starts getting a little mushy as you do it day after day after year after year. It doesn't tend to be the kind of work that promotes great engineering thought. It's . . . a job. Which is okay, as far as it goes. But if you want to grow as an engineer, you need to design and build things.

I would suggest reading:

http://philip.greenspun.com/seia/

and especially:

http://philip.greenspun.com/seia/writeup

which talks about professionalism for software engineers. You might find some inspiration there. (And the whole book, even if you don't build web applications, is still a worthwhile read to gain some insight into how a professional software engineer thinks.)

By reading code, I also meant debugging. They don't really explain how things work and their response is usually 'just read the fucking code!' so I presumed that I just am terrible at reading code.
That sounds like you work at a fairly shitty place. I don't know you or your place of business but based on that statement there is a good chance that you are a lot better than you think and it's just time for a change as your current place is bringing you down.
Sounds to me like they are the ones lacking engineering professionalism...

But it's not uncommon. Programmers like to write programs; they don't tend to like explaining their programs. (HN users may not be a good representative sample; we clearly come here to discuss and explain things to each other.)

My bitbucket repository[1] has 8 public projects and over 25 private. I know people don't care about them but I have fun writing them. That is the key, liking what you do, not do it for getting recognition or else. If one day you can come up with a complete project that you think other people can enjoy you are more than welcome to share it and push it to take off, but the most important thing is that you do it for you first. it's not even about being good, I have seen simple projects taking off easily and amazing super complex projects getting shut down immediately.

[1] https://bitbucket.org/Duiker101

It doesn't sound like you're passionate about the work you're doing. Find a way to bring passion to your code and it will practically write itself.
I don't write code, i fix bugs exclusively.

although, when I'm at home and I work on my own stuff I feel at peace and maybe in control at least. that'll probably be my vacation i hope to take soon; just working on my own shit.

Try making that your mainstay. Develop a project from start to finish that centers around your passion. Fixing bugs is probably your slump.