38

I am currently working for a 2 person company, as the solo primary developer. My boss gets the clients, mocks up some png design templates and hands them over to me.

This system has been working fine and i'm really enjoying it.

The types of projects I work on are for small - medium sized businesses and they usually want a CMS system. Developed from scratch i'll build a customised backend for the client to add/edit/remove categories, tags, products etc and then output them to the front end according to the design template handed to me. As time has gone on, the projects have increased in complexity, with shopping cart / ordering features and other common e-commerce type features.

Again, this system has been working fine and i'm really enjoying it.

My issue is my personal development as a programmer. I spend a lot of my spare time reading programming blogs, checking through stackexchange, reading suggested programming books (currently on 'The Pragmatic Programmer', really good so far), doing brain exercises (lumosity.com and khanacademy math problems), doing lots of physical exercise and other personal development type activities.

I can't help but feel though, that I'm missing out on feedback, critique. My boss is great and never holds back on praise in regards to my work, but he unfortunately is either to busy to check my code, or to be honest, I don't think it's one of his specialties and so can't provide feedback.

I want to know what i'm doing wrong and what i'm doing right. Should I be putting that much logic in the controller, am I modulating my code enough etc.

So what I have done is developed a little 'Family Budgeting' app and tried to do it as cleanly and effectively as I currently know how.

What i'm wanting to know is, is there somewhere I can submit this app, and have some seasoned developers provide feedback. It's not just a subsection of my code like 'codereview.stackexchange' appears to require, it's my entire workflow that I want critiqued.

I know this is a lot to ask, and I expect the main advice given will be to look for a job within a team, which is certainly something I will look into later down the track, but for now I want to persist with my current employment situation, but just don't want to develop too many bad habits.

Let me know if I can provide any further information to help clarify, or if this isn't the right place for this type of question I apologise in advance. Didn't want to use reddit as I felt this community fosters more well thought out responses.

7 Answers7

21

You are on the right track to improve your skills, and it's understandable that you are uncertain about the reliability and enterprise-readiness of your code.

This is a normal process to go through for a junior developer, and your interest to improve is very important, as it is a key to one day becoming a rock-star developer.

As a reference to learn best practices, I would recommend joining open-source projects which are hosted free for passionate/curious programmers. They would really help you understand how to use best practices and how to decide on application design. In addition, try to get involved in open-source project development, as it will boost your self-learning and improvement dramatically.

I would also recommend attending local community events for software developers . You may find some of these groups at communitymegaphone.com. Talk with local buddy programmers, they are mostly good people who would not mind helping a colleague.

Yusubov
  • 21,498
9

As you gain more experience you can certainly go back and review your previous projects/code to see where you went wrong. Hindsight is a beautiful thing. I know for a fact I've looked at code/documentation I wrote x ago and realised where I went wrong and where I could have improved.

The fact you read blogs, books, SE, etc. should be giving you greater insight into programming as part of your own personal development and the trial and error and the evolution of your projects and code should certainly be evidence of the fact that you're improving. Self critique can be a very good thing.

Having said that, having the critical eye of another developer always adds value and can provide opinions/options that you may not have thought of. Although I don't know of any particular site that you can dump a full project for a code review - you could put snippets of what you consider suspect onto codereview.stackexchange for their perusal and comment, then take that feedback on board and apply it elsewhere where appropriate.

Alternatively, you could write some opensource stuff and throw it up on github (or equivalent). The open source community will certainly critique your work and improve it where they see fit.

At the end of the day, if the products you are producing work as intended, meet the business requirements and are maintainable - you're doing something right.

For conceptual programming questions, patterns, etc. You can always post those questions here on PSE and for code implementation issues on SO.

Deco
  • 2,466
3

Le me share my opinion, some words of wisdom and some questions for you to reflect upon.

Being an experienced programmer I have found over the years that best code is the one that is simple (look at KISS concept)and easier to be modified by another programmer.

Also, leaving adequate space for the code not to be congested (breathing space) and evenly structured. Use a well known naming convention for your variables, giving them understandable names (that another programmer can understand) and writing comments that are to the point, not too much and not too little.

If you follow the above you are already on a good road.

Moreover, since developers are something like architects I will give you a very important saying that you should reflect upon;

  1. “Perfection is achieved, not when there is nothing left to add, but when there is nothing left to take away” – Antoine de Saint-Exupery.

and

  1. "Striving for excellence motivates you; striving for perfection is demoralizing" - Harriet Beryl Braiker.

However,

  1. "Many events, roughly 80% of the effects come from 20% of the causes" - Pareto principle

With the above I want you to understand that there is a fine balance between effort and effect, cost and quality.

And the questions to reflect upon;

  1. What do I like to be doing in five years ahead from now?
  2. Will the effort improving my coding skills benefit my professional career in the long run?
kyrsid
  • 31
1

Continue to read books, blogs and Stack Overflow Q&A. If you want to improve yourself in a more social way, why not engage work on an open source project? I don't mean create your own project, but work on an existing one.

As you are the only developer in this company, I imagine that it would be possible that someday, you will hire somebody else. Tell yourself that this day, the guy will have to read your code. Do you already write some documentation about your tool? Keeping in mind your work can be read by other people is a good thing for solo developers and help you to make better code.

smonff
  • 239
1

You may wish to check out https://codereview.stackexchange.com/

That would be a great place to get feedback about your code or design from seasoned professionals.

1

I'm in a similar situation as you, been hired as the sole programmer for a 5 person company, and only one of them is directly involved with the applications I am developing/adding to. Luckily, I did not have to create anything from scratch but up until now only modified applications my predecessor built. In doing so, I believe I have already improved myself by recognizing what parts of his code were good, what parts were bad and how one could improve them.

Reading code is a huge part of improving your own coding, so above all I suggest you search yourself an open-source project, read code, understand it, and try to judge what is good, what is bad and what could be improved. Maybe even write a code-review about it on your blog.

Cheers!

scd
  • 11
  • 2
-1

Leave. Find a new employer where you will work in a larger team of developers, including some shit hot guys whom you can learn from.

You clearly have all the right motivations in wanting to.