Novice vs Experienced Developer - How do they compare?
Every developer is a novice at some point in their career. And here at Developer Connection we know that the novice developers of today are the experienced developers of tomorrow. When you're on the lookout for an eCommerce developer for your store it's important to know there are key differences between what a novice and experienced developer can offer you. Knowing these differences will help you to make an informed decision on who is the best developer hire for your project.
In this blog post we'll be looking at some key, tangible differences between novice and experienced developers so you can understand what impact your next hire will have on the day-to-day operation, and progression of not only your store, but also your business overall.
Onto the comparison...
Following a task specification
Ticket specs are regularly not written by someone with development knowledge, and often at a point when the full scope and requirements of a task haven't yet been investigated and understood.
How a developer approaches and fulfils the requirements of a task is therefore key to ensuring the best solution for the store gets built.
A novice developer will follow instructions exactly to complete a task.
An experienced developer will understand the end goal of a task, even though it might not be explicitly described, and build the best solution to solve that problem.
Following a task description exactly could give a solution that works as intended...
But an experienced developer will:
- Understand the overall end goal
- Visualise how a solution can best be implemented
- Build something that fulfils the task criteria - in the best way for the project
Ticket specs are regularly not written by someone with development knowledge, and often at a point when the full scope and requirements of a task haven't yet been investigated and understood. The experienced developer will take the ticket as a starting point to discover and implement the best solution, while the novice developer will build exactly what the task describes even though it might not be the best solution. Extend this over any length of time, and there's the real possibility of ending up with a spaghetti junction of code that's unordered, buggy and hard to maintain.
Sometimes you need to say no
A novice developer will say yes to everything.
An experienced developer understands that for some tasks, you need to say no.
In eCommerce development, it's generally true that any functionality you want, you can have. However, the experienced developer will understand that building this particular functionality, although it's possible to achieve will negatively impact the store in that way.
Often this is around store performance - the experienced developer will always have store performance in the back of their mind and sometimes advise that an alternative method of completing a task would maintain better store performance, or even suggest dropping a feature entirely if the gain doesn't justify the negative impact it would have. You might not end up with exactly what was originally planned, but keeping overall store performance good should always trump wanting 'perfect' functionality.
A novice developer will spend a lot of time on self-learning.
An experienced developer will have 'been there and done that' so many times, they automatically know what to do.
A novice developer will be learning on the job and won't automatically know the best way to approach any given task. Learning on the job also means any solution a novice developer finds might well not be the best way to complete a particular task.
An experienced developer will have already gone through the learning and refinement process countless times and the solutions they implement will be methods that are time proven and tested to be the best approach.
Rate of work
A novice developer will take a lot longer to finish tasks.
An experienced developer will generate high-quality code at pace.
There will be a significant element of trial and error in the development process for a novice developer. This means tasks will often take quite a bit longer to complete.
An experienced developer will have very little trial and error and will be able to visualise exactly what needs building immediately to create a solution.
It's common for an experienced developer to get through tasks 3 or 4 times as quickly as a novice making them a much more efficient spend.
A future proof store
A novice developer often won't implement a solution in a way that future-proofs a store.
An experienced developer will always implement the solution that lasts the course of time.
A novice developer will only consider the immediate solution to a problem that works, regardless of whether it could cause issues in the future when customising or upgrading the store.
An experienced developer will always look to complete a task with as light a touch as possible. This means they will always look to affect the core codebase as little as possible so further customisations and store upgrades can be done without issue.
A novice developer often won't follow best practices in writing and structuring the code they write.
An experienced developer will always write code that is properly structured and easy to maintain.
The way a developer writes code should always be evolving - being refined and improved.
A novice developer will be at the start of this journey so their code can often include things like:
- Overly long methods that are hard to follow
- Classes with too many methods
- Tabs instead of spaces for line indentation
- Repeated logic between different classes or methods
- Using private rather than protected methods
- Commented code left it in the codebase 'for later'
An experienced developer will instead write much cleaner, more maintainable code:
- Each method will be short and achieve a single goal - easy to follow and understand
- Long classes will be broken out across multiple classes each containing the most relevant methods
- Use spaces for indentation - a huge one for readability
- They'll move any logic that repeats into it's own method, often a helper, and reference that everywhere the logic is needed
- Private classes wlll rarely be used to allow for future class customisation
- Any code no longer needed will be removed from the codebase rather than commented. It's always referenceable in the repo if it does need reinstating.
You might not have wanted to use an experienced developer before purely based on cost - and yes an experienced developer will charge a higher hourly rate than a novice. But with rapid, high-quality, bug-free and future-proof code output, there's every chance you'll actually spend less on development than you would with a lower-priced, slower, novice developer.
So am I trying to tell you not to use novice developers for your projects? Absolutely not!
But what I am saying is that if you do plan to have novice developers on your team it does mean you should also have an experienced developer to train, guide and help them improve the code they write.
Remember the novice developers of today are the experienced developers of tomorrow. So if a novice developer is truly keen to improve, they'll relish the opportunity to learn from a more experienced developer on your team.
If you're on the lookout for an experienced developer to work on your store, you can find one using our instant service that matches you to available, time-proven and experienced developers today.