I have lots of ideas for products to be built. The problem is that I have less than a year of professional work experience and I am afraid of getting judged negatively in the future based on what I produce now. I have no clue if my code is any good.
I am not familiar with any of the coding patterns. All I know is to build products that work. I want to have a public profile in github for my future projects and I will try hard to make sure that it is well commented, is optimized and clean.
These are the things that I fear getting exposed publicly:
- My code may not be highly optimized.
- Wrong usage of certain libraries or functions which coincidentally get the job done.
- Not knowing or following any coding pattern.
- Lots of bugs/ not considering corner, edge cases
- Fundamental lack of understanding and application of certain concepts such as thread safety, concurrency issues in multi-threaded programming, etc.
Should I go ahead and get started or continue to stick to building stuff locally and privately till I get more experience. I don’t want the mistakes made here to haunt my career prospects in the long run.
4
After 30 years of professional software development, I still create bugs. I still find patterns I don’t know. I still learn from my colleagues, and encounter stuff I don’t know every day.
Most experienced developers will judge you on how you respond to issues and criticism, whether you learn from your mistakes and improve your product to meet the users’ or community’s needs, whether you admit what you don’t know and seek to improve.
One of the best skills for a developer is willingness to ask the dumb questions and to look a bit foolish at times in order to find good answers as quickly as possible.
Everyone who is experienced and very proficient was once where you are now. You will learn much faster if you put your work out there and work with other people.
There is no reason to wait. Make your project open.
Better yet, contribute to other open projects and learn from them.
2
I think you worry too much.
The OS community is more concerned about how useful a particular app is more than how well it is written. If it’s written poorly, the community will step in and help rectify the mistakes. What’s more interesting is how well the application solves problems that people are struggling with. If the application / project provides an elegant solution to a vexing problem, then the quality of code becomes a moot point.
Put it out there, see what happens. You won’t know how good / how bad your code is until others look at it and start playing around with it. ALL code has bugs. What’s more interesting is how quickly the author works on resolving those bugs.
Consider it a learning exercise. You’re not going to find out what you don’t know until you stick your neck out a little and pick up some criticism. Hopefully, most of the criticism can become constructive. Given that you’re asking about it in the first place, then I’m pretty comfortable saying you’ll have at least average or better quality code.
We find people with high knowledge in the Open Source field. That’s true, and also intimidating for new comers. But they are also very good in providing help for good projects, even if the main developer does not reflect the actual requirements for the software to reach a high quality.
You already know yours limitations. That’s not a bad start. That’s a good start.
Get into the party and find your place there.
Good luck!