Hacker News new | ask | show | jobs
by joshmarlow 2106 days ago
There's going to be some overlap with my suggestions and other comments here, but I'll give them anyway. These are some thoughts that might be helpful.

1) I've known several great programmers who didn't have formal education and that definitely exacerbated their impostor syndrome. Try to be easy on yourself; as others have said here, it takes time to build up your skillsets and it's super easy to compare yourself with someone who seems to know more.

2) Maybe you aren't on the team that could help you grow the most. It sounds like you can hammer out code that does the thing you want to do. Going beyond that is about judgement and patterns and processes and experiences. The right team can really help you grow those skills. Does your team do code review? Do they do pair programming [0]? Maybe some sort of mentor relationship would be helpful?

3) I generally find solutions are easier to understand when I've personally struggled with the problem they are trying to solve. Look at code for problems you are familiar with and try to figure out what patterns/OOP concepts are being used in the solution. When you can wrap your mind around the problem, you can learn more from solutions.

4) Do you have an interest in the people/product side of software development? If so, you could try to move into a neighboring field. I've got a notion that a strong technical background would make it easier for product/project managers to do their jobs.

5) You don't have to be the best; most of us aren't :) if you enjoy the work you are doing and your employer and team approves of your work, then maybe you shouldn't stress about it? Work to improve your skills for the fun of it :)

6) Maybe pick a single language and focus on getting great at it. Preferably one that enables you to work on a passion project. All else being equal, Javascript is probably one of the best good to haves.

[0] - I've been programming for more than half of my life and I've only come to really appreciate pair programming in the last year. As a way of sharing knowledge, it may be the best approach.

Good luck!