The fact that you're concerned is a good sign. Let's start with that. You mention you love to program, but do you love being a professional programmer? There's a big difference between an enthusiast and a professional. As a professional you will be under constant scrutiny for your work product.
Our team is composed of 5 programmers, and 4 of us are new
The fact that you've worked two years without any confrontation tells me that you're working in a very laid-back job which, is not so good if you're actually wanting to move forward as a professional. Mind you, some of the best programmers in the world work for the Linux foundation and be rest assured they do not get treated kindly when they make marginal mistakes ... much less 'messy code'.
For a quick review of some fairly standard coding guidelines, the Linux Community Contributors Standards should give you an idea of the level of responsibility to aspire towards for your product. Refer to GETTING THE CODE RIGHT.
To further that assertion you should learn to embrace review as most good software is thoroughly reviewed. This supports Linus' Law stating ...
"If there are enough reviewers, all problems are easy to solve."
Personally, I've seen highly skilled, responsible and dependable developers get the axe for something as simple as forgetting to leave comments ... so if someone tells you your codes a
mess then it probably is ... Get over it ... Refactoring. It's part of the gig.
I feel so sad and hurt.
Go make a sadness application to gauge how upset you get when you don't apply yourself.
You answered your problem ... You Don't Test!
After seeing a comment you made stating that your a java developer, I almost got upset. So if I understand you correctly your saying that you and your development team are working in a java shop and don't have a test framework for your applications ...
Therein Lies The Rub
"We deployed our program to the program without thorough testing."
Cribbing UML Creator Grady Booch ...
The amateur software engineer is always in search of magic,
some sensational method or tool whose application promises to
render software development trivial. It is the mark of the
professional software engineer to know that no such panacea
exists.
Alistair Cockburn provides a wealth of information on his site on using agile methodologies to increase performance and quality for you and your team.
One of the most important aspects of programming {and life} is knowing your strengths and weaknesses. If you don't work on your weaknesses you will not have a well-rounded skill-set.
Outro ... Your doing fine - Just don't whine. Move forward in developing your craft and let your passion for programming keep you going. Good Luck :-)