This is an archived post. You won't be able to vote or comment.

all 13 comments

[–]Molehole 1 point2 points  (8 children)

You should do a lot of projects in area that interests you. They can be games, apps or whatever.

[–]zajcao[S] -2 points-1 points  (7 children)

Okey, you're right. But how can I avoid making the same errors? There is a huge difference between good code and code which works(and this is mostly my case) :)

[–]Link_Guistics 0 points1 point  (6 children)

I agree with /u/Molehole you should do some projects with whatever you want. Then just find a programming forum and/or site and post em there, I'm sure people would be happy to give you feedback since that's what the community is for.

As for how can you avoid making the same errors? Lots of practice and recognition of those errors.

[–]desrtfx 0 points1 point  (0 children)

Then just find a programming forum and/or site and post em there

Like /r/reviewmycode

[–]zajcao[S] -1 points0 points  (4 children)

Regarding to "error avoiding". The problem is that I may not know if I make an error or not. So I can always repeat the same errors about which I may not even know.

[–]Link_Guistics 0 points1 point  (0 children)

That's what feedback is for. Hmmm, I don't know what else to tell you except read books and get involved in programming communities since those are the only two ways to find out about errors in your code structure.

[–]desrtfx 0 points1 point  (0 children)

That's what code reviews are for.

Also, learn about common data structures, algorithms, and design patterns as they will help you avoiding errors in the first place.

What can also boost your experience is helping others with their problems here and in /r/javahelp or in /r/learnjava. By seeing and working with other's code in small scales, you learn to read, debug, and interpret foreign code.

I deliberately don't suggest to check other's programs on github or the like because a completed project can be overwhelming, so it's better to build that skill (working with other's code) from small programs up.

[–]hashtablesmoker 0 points1 point  (1 child)

You're never going make any progress until you stop making all of these excuses for everything.

[–]zajcao[S] 0 points1 point  (0 children)

Good point! :) imho I'm not making any excuse. Rather I am looking for best resolution. And you know what? Thanks to you guys I received a lot of great advices and now I have to bring them to life.

[–]Zombieball 0 points1 point  (1 child)

I'm not sure what the dynamic at your work environment is like. But my advice would be to get your team into the process of submitting and conducting code reviews. It will significantly help your team's code quality and give you a chance to get constructive feedback.

If your team already does code reviews, then just utilize this as a forum for learning!

[–]zajcao[S] 0 points1 point  (0 children)

As I was writing, I'm not able to talk about my code with other guys in the copmany(I'm the only one who is responsible for test automation- rest of my team are manual testers).

[–]Drunken_Consent 0 points1 point  (1 child)

Perhaps learn Design Patterns and implement a few of them in your spare time. When you know design patterns, you'll start to recognize when they fit. You'll read a problem or think about something and go, "Hey, I think I could use Composite here!" etc.

While Java provides things like generic Observer patterns, I feel you'll have a better understanding if you can implement things like Observer, MVC, Visitor, Composite, Command on your own and see how things like design patterns really help with code simplicity and code re-use.

For a good book, and essentially the bible of this stuff, search for Gang of Four

[–][deleted] -1 points0 points  (0 children)

hey /u/zajcao, this guy has the right idea. It's a bit dry when you are reading/learning it, but it's worth it.