Live data from Hacker News

Ask HN: Feeling grossly incompetent working in opensource. What do I do?

news.ycombinator.com

1–10 of 27 posts

Ask HN: Feeling grossly incompetent working in opensource. What do I do?

#1
While in college I worked three times as hard as any other student and I felt more prepared than any other student in the school. I built toy languages, and compilers while others were working on understanding basic data types. Now I am here working on an OpenSource project and I have come to realize that the multiple layers of abstraction that exists has made it impossible to change even one line of code without it effecting the entire codebase. I have spent the last three weeks attempting to understand all the moving parts, and feel just as lost as when I was brought into the project. No matter how much documentation and how much code I read I come no closer to making any changes in the codebase whatsoever. I still have two more years of college left, and I am starting to wonder if I have what it takes to become a programmer. Any suggestions would be helpful. thanks.

Re: Ask HN: Feeling grossly incompetent working in opensource. What do I do?

#2
> multiple layers of abstraction that exists has made it impossible to change even one line of code without it effecting the entire codebase

Either you have misunderstood the meaning of "abstraction", or the code base has what people call "leaky" abstractions.

The point of abstraction is to create stable internal APIs, irrespective of implementation details. The entire point of abstraction is to create the separation that your code base seems to be lacking.

> No matter how much documentation and how much code I read I come no closer to making any changes in the codebase whatsoever

This approach is necessary, but you won't really understand the code until you start debugging. Can you tell us more about the stack (and, ideally, the project itself) so that we can give you better tips? Sometimes understanding code is a lot easier with the right tools (IDE, debugger, etc.)

> I am starting to wonder if I have what it takes to become a programmer

I'm sure you can do it, but it's also important to figure out if you want to. If you work on multiple code bases, including your own, and you don't enjoy it, or the frustration you're feeling now is not healthy for you, then this might not be the right career for you.

A lot of being a programmer is banging your head against a wall for many hours longer than a typical person would be willing to, until you finally get past an obstacle. Sometimes the obstacle is bad documentation, often it's bad configuration, other times it's a bug.

If the fun parts are not worth the not-fun parts for you, then that sounds like an unpleasant career path.

Re: Ask HN: Feeling grossly incompetent working in opensource. What do I do?

#3
Read up on the imposter syndrome. The fact that you're actively trying to work on open source means you're already ahead of the pack. I'd say keep trying and engage with others that are active on the same projects and you'll eventually be able to fill in the gaps.

tldr; don't give up.

Re: Ask HN: Feeling grossly incompetent working in opensource. What do I do?

#5
post #2

> multiple layers of abstraction that exists has made it impossible to change even one line of code without it effecting the entire codebase Either you have misunderstood the meaning of "abstraction", or the code base has what people call "leaky" abstractions. The point of abstraction is to create stable internal APIs, irrespective of implementation details. The entire point of abstraction is to create the separation…

> The entire point of abstraction is to create the separation that your code base seems to be lacking.

I think this appears to be the problem. The codebase appears to be very kludgey.

> This approach is necessary, but you won't really understand the code until you start debugging. Can you tell us more about the stack (and, ideally, the project itself) so that we can give you better tips? Sometimes understanding code is a lot easier with the right tools (IDE, debugger, etc.)

I think the architecture is essentially one of the reasons I am having so many problems. I'm not familiar with docker/apache solr/their custom database, etc. However, I think that's more of a tangential issue. It's more of a feeling of imposter syndrome as another poster said. For everyone else in the field it seems like this is effortless.

> I'm sure you can do it, but it's also important to figure out if you want to. If you work on multiple code bases, including your own, and you don't enjoy it, or the frustration you're feeling now is not healthy for you, then this might not be the right career for you.

It's not really frustration. So much more as feeling like I will never be good enough at this to be successful in this career.

> A lot of being a programmer is banging your head against a wall for many hours longer than a typical person would be willing to, until you finally get past an obstacle.

This is exactly my personality type, and my wife makes fun of me for you. Once I get my teeth into something I basically don't stop until I got it. It's actually created problems for me in other career fields, but it's seen as an asset for programmers. So I know on a personality level I have what it takes, but yeah... Just get the impression I'm not smart enough for this.

Re: Ask HN: Feeling grossly incompetent working in opensource. What do I do?

#6
Everything is an abstraction. Everything is a protocol.

Keep expanding your knowledge.

Read the new pragmatic programmer.

It took me about 5 years to get over my imposter syndrome.

Dont get hung up over one project. I have written a lot of bad code and a lot of clever code. Both in the same project.

Being a good dev is a lot like being a good doctor. Study and practice, sometimes you will get it right, sometimes you won't.

Re: Ask HN: Feeling grossly incompetent working in opensource. What do I do?

#8
You are doing everything right. Assuming you enjoy the project or product you are working on, just keep at it.

You are lucky enough to be experiencing what it’s like to be part of a real software project. It is not at all unusual to be in this position for weeks or even months depending on the complexity of the code base.

If you somehow manage to continue until graduation, you will have invaluable experience that virtually no other job candidates at your level will have. It will be a massive advantage over your competitors, and when you are asked about your experience you’ll have specific and credible stories to draw on when you talk about how you solved problems.

At the very least, congratulations on sticking to this for as long as you have. This stuff is hard. That’s why they pay us a lot of money for it.

Re: Ask HN: Feeling grossly incompetent working in opensource. What do I do?

#10
Three weeks is not enough time. I've worked on code bases that took me 3 - 6 months to feel like I had enough understanding to start doing substantial work. You should give yourself permission to take the time you need to get a handle on everything.
Post reply on HN