Tips to help you write code faster
There’s a higher demand for coders than ever. Well-paid jobs that have the added bonus of security are just two of the reasons why coding is an excellent skill to have when it comes to employability.
The flip-side is that you’d need to have existed on the moon for the last few decades not to have noticed more coders are needed than ever, so it’s become quite a competitive sector. According to YouTuber Tech With Tim, the speed coders can work at is more vital to their success, relative to speed in other industries. He goes further — even after you’ve won the all-important job, the speed you program at compared to others around you will be a determining factor to your success within the job.
So how can you write code faster? Here are some tips. The beauty is that they’re applicable to any coding language as they are more about praxis and approach than any particular code type.
A good plan can save you a great many problems and help you become time-efficient. More time spent planning can mean less time coding.
That being said, there’s also no definitive way to plan. A plan can look however you want it to, but it should include laying out the key problems you want to solve with your code. The process will allow you to mull over how complex you want it to be, and also you may find other problems, or additional functionality you didn’t foresee as you work through it slowly. This can save loads of time compared to implementing fixes later.
A good plan can throw up anything from a flaw in your logic path to potential bugs. Learning on the job is bad, inefficient, and time-heavy. You don’t want to be redesigning code constantly, or find out later that you need to add features to the software that your language or setup doesn’t allow for. Perhaps most importantly, planning will help you to execute things in the simplest way. On-the-fly programming can become scruffy or rambling, and badly laid out. We’ll come on to what problems this can cause a bit later.
These days big tech companies (like Namecheap) use management methodologies to speed up the process of planning and developing new features for their platforms. These methodologies are usually iterative or incremental, meaning that they try to break down the process of creating new “stuff” into multiple iterations for the increased productivity of individuals.
You might want to follow the same mindset when developing new things. Break down what you have to do in simpler, different steps so it’s clear what are the different stages of the product. But there’s no need to reinvent the wheel. Existing systems like Agile, Waterfall, and Kanban might work for you.
Debugging is the bane of every coder’s life — even ones who plan well. It’s pretty much inevitable and can become a big time-waster. It’s frustrating, but most importantly it can halt progress altogether. So good strategies around debugging and testing parts of your code can save you a lot of time.
A great way to get ahead of the game (before you start) is to use a decent IDE (Integrated Development Environment) to write your software. Programs like Microsoft Visual Studio include code highlighting, the ability to visualize code, and also allow you to jump between functions. Features like this will help you get rid of bugs and common errors (like syntax issues). Make sure you constantly test code as you go along. That way, you’ll find out the moment something doesn’t work as intended. It’s also worth remembering that asking fellow coders or searching online is good practice — it’s unlikely you’re the first coder to face the error you’re having.
But what if this hasn’t worked, and you’re stuck? For the foreseeable future, you are now coder-turned-detective — it’s you versus the code. To find issues in your code, use a debugger — a superior tool to find bugs in the program. Which one you use will depend on the programming language. You can easily search out some good ones for your language online.
Sometimes debuggers just don’t quite cut it. For these moments, there are a couple of other approaches left. Have you tried ‘Rubber duck’ debugging? So named because the idea is that talking it out (to a rubber ducky, if not a fellow programmer) can help you realize the problem. Talking through the software’s processes bit-by-bit helps you spot errors in logic, or just reflect upon what might be wrong. Perhaps only psychologists (or the voiceless duck itself) can tell us how it actually works, but it’s used by many coders the world over.
If you’re still having no luck, it can be worth stepping away from your project — maybe even for the rest of the day. Frustration levels naturally build up the longer you spend on something, and these can impair your ability to focus. Fresh eyes and perspective always help, whatever the problem.
It’s no secret that coding is incredibly complex, full of problem-solving, and often you’ll be attempting something you’ve never done before (or perhaps even something that’s never been done before, period). For this reason, it’s probably fair to say that the level of focus required when coding is more pivotal than it is in other endeavors or disciplines. There are even idioms about the level of focus — ‘they’re plugged/wired in’ — and so on.
Most programmers agree on two key ideas when it comes to productive coding — lack of distractions and long periods of work.
- Work straight without breaks — The idea here is to maximize focus. A great analogy from Software Engineer and YouTuber Shaun Poore is to think of yourself as a battery. ‘Task switching is an operation that drains the battery at an incredible rate’.
- Turn social (and other) distractions off — This will help you focus, and reserve your mental energy to the task at hand so you’re less likely to have to dial into something else.
- Create a warm-up regime — Whether it’s coffee and a run, getting all your social needs out of the way in one, singing your favorite songs — you should have a routine that gets you to that sweet spot of focus every time. Also, it’s worth noting that on a particular day (or two) in the working week you consistently perform better, and so these become your ‘push days’.
- Create an environment conducive to work — we’ll go into this in more detail in the next part.
Setup and work praxis
One of the best things you can do is get to know your editor (or IDE) well. By taking a few hours out to learn all the shortcuts, getting a feel for the navigation/design, and even just practicing on test projects, will give you fluidity when using the software. The result will be apparent when you work on future projects. While it can be a bit of a drag to do, it’s absolutely never time wasted.
Similarly, the right setup and work environment are crucially important to productivity. Especially when working from home, creating a space apart from where you live the rest of your life can really help you focus on things.
With the art of coding being so much about speed, it’s worth spending a bit of time finding the right keyboard. Ultimately, it comes down to personal taste, but there may be things to take into account that you might not intuit when it comes to finding the right one. For example, key density and responsiveness can play a huge part in your maximum words per minute.
That being said, speed isn’t everything. Typing too quickly can incur more mistakes, and this could ultimately prove to be slower. Similarly, it can be a good idea to slow down your typing speed for the most complex parts of code — that bit of extra thinking time can work wonders in terms of bug elimination.
Seats and desks that allow for good posture are also a good investment. A desk that can be raised to allow you to work standing up, or chairs that help support your back, might really help — it sounds kind of kooky, but the longer you can sit comfortably, the longer you can work!
Finally, we’ve all seen multiple monitors. The opinion is divided on this, with some suggesting that with only one pair of eyes, more monitors just give you more room for distractions, while others find having an extra screen where Google is open (for quick access to problem-solving articles) a useful tool. A good vertical monitor is something most coders can agree on though, as they are, by nature, a more ergonomic way to view lines of code that stretch downwards into infinity.
Researching and sifting through documentation
A large part of coding will always be cross-referencing and researching. Even the most experienced coders can’t expect to know how to solve everything. You should strive to become efficient at sifting through information. It’s very demanding to memorize multiple syntaxes, rules, and idiosyncrasies, so it can be better to master the process of searching out and scanning through resources.
Once you’ve found what you’re looking for, it can be ill-advised to simply copy and paste someone else’s solution into your code (where that’s possible). It’s far better to interact and understand the information because you will actually learn what you are trying to implement, which is more likely to help you in the long run.
It’s also worth noting that you won’t be able to run before you can walk, no matter how good the guide may be. Don’t expect to be able to research every solution online effectively. In many cases, you probably need to be an experienced programmer first.
Less code is better code
Many people, especially those used to being in an educational environment, seek to demonstrate how much they know in what they do. While this is understandable (after all, anyone being marked on something wants to impress), it can be detrimental to efficiency later.
The overwhelming consensus among pro-coders and developers is that simple code is always more efficient. It allows others (or even you) to read it back and understand it easily when/if it needs editing. But it also reaps other benefits. After all, time is money, and longer code takes more time to write. Some would argue that if a task can be completed in a shorter amount of code, using more code means the coder wasn’t capable of distilling the logic to its most simple form.
Going back as far as the 1960s, the US Navy had the KISS principle (which stands for Keep It Simple, Stupid). The principle states that systems work best if they’re simple, and therefore simplicity should be built into the design.
There are times where long code even suggests you don’t know the language well enough, your data structures could be improved, you have a bad framework, or you’re using a legacy codebase. Check out this lesson on clean code from Uncle Bob for more detailed tips on why less code is best.
Pragmatic approaches to coding
There are ways beyond your planning, setup, and personal wellbeing that are universal when it comes to coding.
Poore explains that his coding speed improved dramatically when he started his own business. He reasons that in a business scenario, every second counts, so you learn to focus only on the things that matter. Nothing makes the client happy apart from the essentials that they’re paying for. ‘Every day, you prioritize the most important thing, and you only work on that until it’s done, then you prioritize the next most important thing’ — a nice mantra for budding coders.
Think about longevity too. Can the function you’re working on now have content components or structures that can be reused throughout the project? This is called inheritance. One generic message can be relayed to many objects, and they interpret it differently according to their specialism. Once you get the message right, you can just change one variable, rather than having to change a single variable a thousand times. Strategies like this will make you less error-prone.
It might also offer the additional benefit of consistency throughout your project. When you boil it down, even top sites like YouTube only have a couple of different page structures and resizing surfaces. Consistent UI designs also help prevent the need for multiple iterations of the same things.
See what works best for you and take it further
After all, developing is what you do. Some of these ideas may inspire you, others may not. It’s hard to write a one-size-fits-all article with so many languages, abilities, and strategies. But maybe some of the areas we’ve covered might have inspired you to develop your own tips and tricks. Why not compile them somewhere so if you’re ever stuck, you can refer back to them over a coffee break?
If you’re looking for the ideal hosting environment for your web development projects, find out why Namecheap’s VPS hosting is perfect for developers. Additionally, why not check out some of our other articles on coding?