Live data from Hacker News

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

news.ycombinator.com

21–27 of 27 posts

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

#21
You wrote “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” in another comment.

This is a virtue and a fault. After some successes and some failures, you are likely to learn to be more wise when choosing which problem to deep dive into. The wrong deep dive will damage you.

It also takes time to learn that cowboy duct-tape solutions are sometimes correct: this is best learnt by being in a team with someone who is productive in that manner (the downsides of it are obvious to engineer types; learning the positives of hacks is harder for engineers; judging when to apply fast solutions needs a good engineer). If you can only do anal retentive engineering, then your skills are still super valuable, but perhaps try to veer towards projects where beauty and correctness are valued.

For many engineers, I think it is worthwhile to learn the dark side: how to deliver a quick and dirty compromise that meets a need e.g. most web development. I personally find this difficult: google “yak shaving”. Some engineers never learn how to make good compromises, and they sometimes end up stuck in a dead end.

“but yeah... Just get the impression I'm not smart enough for this.“

Keep your humility, use it to connect with clients and users. They feel it 10x.

Finally I’ll add that the best developers I’ve ever worked with have been technically mediocre. Their other skills have made them great - abilities to concentrate on the right things and not worry about being technical goddesses or gods. I have worked with technically great people, that just do a shit job because they can’t get on with others or they produce something that only they can understand.

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

#22
post #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…

As others have said, a complex code base can remain opaque for a lot more than three weeks (especially if the documentation is less than flawless).

Also, you said that you have two more years of college yet to go. You are placing a completely unrealistic expectation on yourself. You are very unlikely to be able to, after your sophomore year of college, jump into a big code base and understand it in three weeks, even if you're better than others in your class.

As for impostor syndrome, I'm stealing this from someone, but how about Meta Imposter Syndrome: "All those other people have imposter syndrome, and yet I see how much they're able to do. So they're not like me, the real imposter."

But, in your situation, all those people who are able to get things done in that code base are not like you. I don't know what the code base is, but I strongly suspect that they are out of school, have several years working professionally, and have several years in that code base.

Your problem isn't that you're not smart enough. Your problem is that your expectations for yourself are very unrealistic.

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

#23
Running `git log --reverse` on any overwhelming mature project will give you commits in reverse from "Initial commit" to "Updated README.md" to "Add utils".

Do `git show COMMIT_HASH` for the first ones and you'll see the genesis.

You're looking at the result of thousands of commits, each one having required countless hours of thinking and coding. This can be overwhelming.

Here[0] are some tips that help getting to know a codebase. Some may be irrelevant.

[0]: https://news.ycombinator.com/item?id=19924100

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

#24

Running `git log --reverse` on any overwhelming mature project will give you commits in reverse from "Initial commit" to "Updated README.md" to "Add utils". Do `git show COMMIT_HASH` for the first ones and you'll see the genesis. You're looking at the result of thousands of commits, each one having required countless hours of thinking and coding. This can be overwhelming. Here[0] are some tips that help getting to kn…

This is extremely helpful, thank you

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

#26
As everyone has already mentioned it's natural to feel like this and it's just a case of practice.

A concrete suggestion that came to mind is isolate the simplest unit of functionality the project implements and try to implement it yourself fromsscratch using the existing code as a reference; stripping out all the error handling, edge cases etc.

The feasibility of this depends on the project but it can be a useful way to understand both the basics and the rest of the code that seems like spaghetti which is probably due to error handling, edge cases, etc. As an example I implemented part (a simple passwordless connection and select statement) of a database connection library from scratch in c# and it really helped me understand the existing solution better.

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

#27

Running `git log --reverse` on any overwhelming mature project will give you commits in reverse from "Initial commit" to "Updated README.md" to "Add utils". Do `git show COMMIT_HASH` for the first ones and you'll see the genesis. You're looking at the result of thousands of commits, each one having required countless hours of thinking and coding. This can be overwhelming. Here[0] are some tips that help getting to kn…

thanks for the content
Post reply on HN