Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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:

  1. My code may not be highly optimized.
  2. Wrong usage of certain libraries or functions which coincidentally get the job done.
  3. Not knowing or following any coding pattern.
  4. Lots of bugs/ not considering corner, edge cases
  5. 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.

share|improve this question
4  
I understand where you are coming from. When you expose your projects to the world, you are effectively exposing a part of yourself. Consider this though, practically all the code on the planet has bugs in it, unless they cheated by formally verifying it. You have much more to gain than you have to lose. If a prospective employer finds out you made a mistake in one of your projects whilst you were relatively inexperienced, they'll think big whoop, so did I and every one else here. The more likely scenario is they won't have time to look through everything you've ever written. –  dan_waterworth Jul 22 '12 at 19:54
    
In my point of view formally verifying a program is not "cheating". –  user1249 Jul 22 '12 at 23:00
4  
All I know is to build products that work. - Which is a very good thing. It's easy to get too caught up in patterns and design and end up never delivering... –  Izkata Jul 23 '12 at 2:57
    
I say screw what other people say and don't be scared. If you want to do something positive and you think yourself or others can benefit from your work than just do it. (Nike plug) –  Snake Jul 26 '12 at 17:34
add comment

3 Answers

up vote 29 down vote accepted

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.

share|improve this answer
    
+1. BTW, I'm wondering why your second paragraph makes me think about PHP development team. –  MainMa Jul 26 '12 at 18:04
    
+1 Understanding and respecting that everyone can do wrong is one of the most important qualities as a team member. –  jgauffin Oct 22 '12 at 14:58
add comment

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.

share|improve this answer
add comment

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!

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.