This year has been an interesting one, not least of all because many people around the world — especially in the tech sector — ended up working from home for an extended period of time.

Working from home used to have something of a workplace stigma around it. Employers were seemingly sceptical of how you could be productive in such a distracting environment. Needless to say, it’s been proven it can be done, but what I wasn’t expecting is how it would be the catalyst for an actual increase in productivity. …

You might have heard these terms being tossed around a bit, especially when it comes to things like React. React is declarative according to the documentation, but what does that really mean? Let’s take a look at the difference between these two paradigms.

Image for post
Image for post
Photo by Emile Perron on Unsplash

What is Imperative Programming?

According to our good friend Wikipedia, we have the following definition:

In computer science, imperative programming is a programming paradigm that uses statements that change a program’s state.

In essence, this means we are issuing instructions describing both what and how we want the computer to perform its task. …

You’ve seen the job listings, you’ve heard the recruiters.

“Innovative tech company looking for 10x developer to take the lead on a greenfield project.”

But what is a 10x Developer? How is it possible for one person to do the work of 10? Are they just that good? Are the other 10 people just lazy?

Image for post
Image for post
Photo by Javier García on Unsplash

Although some people would certainly argue otherwise, there is no such thing as a 10x Developer. It’s just another buzzword used by recruiters and companies to hype people up. …

Job titles can be a contentious point. To some, they matter a great deal, and to others, they don’t matter at all. Things get extra interesting when you start throwing around the word “Engineer” though. What does it mean to be an Engineer? What does it mean to be an Engineer of Software? What is Software? Does it include websites?

Image for post
Image for post
Photo by ThisisEngineering RAEng on Unsplash

There are a lot of people who don’t consider web development to be true software development. There are even more who consider neither of these things to be Engineering, but that is not the case.

The following excerpt comes from Engineers…

You’ve probably heard of Vim if you’ve been working with code for a while. Vim is a command-line text editor available for a lot of operating systems. Initially released in 1991, Vim is one of the most popular text editors in the computing community.

Image for post
Image for post
Photo by Anas Alshanti on Unsplash

So why should you care about this old text editor? You should care because it is pretty much ubiquitous, and is worth learning unless your heart already belongs to an alternative like emacs or even nano (if you really want to).

Vim is scary at first. It does so much, and its shortcuts are not likely ones that you have used before. Even quitting out of the software is notoriously tricky for newcomers. Once you have learnt the basics though, they will be the gift that keeps on giving, and I’ll tell you why. …

Iframes get a bad wrap for everything from security problems, to usability and SEO issues. Despite this, they are one of the tools at our disposal, and knowing how to use them effectively could open the door to new solutions to old problems. Being able to send data between the iframe and the parent page is a useful trick for delivering more integrated solutions, rather than the traditional boring “page-in-a-page” way iframes get used.

Image for post
Image for post
Photo by Sai Kiran Anagani on Unsplash

The method examined here isn’t just for iframes though, it will work in any case where you have access to another page’s `window` object (so popups and embedded web-browsers can join in on the fun too). …

There are countless skills you could spend time mastering. Learning how to learn should make the top of your list though. If you are able to refine your ability to learn, the other skills will be a cinch.

Gone are the days when the only way to get a quality education was via formal education institutes. Self-learning is bigger than ever, and it doesn’t look to be going anywhere. This is thanks to the ubiquity of information provided by the internet. The vast wealth of quality information available online is mind-boggling. …

As a developer, your productivity is not gauged by how much code you churn out, but by how much value you deliver. Gone are the days where lines of code are a worthwhile performance metric. If you want to master your craft and hone your productivity, you will need to embrace the age-old adage — “Work smarter, not harder”.

Image for post
Image for post
Photo by Carl Heyerdahl on Unsplash

These are 5 methods and principles you can employ today to start seeing immediate returns in your productivity.

Be deliberate in what you want to achieve

There is no way to know how productive you are if you have nothing to measure against. One of the biggest boosts to productivity you can get without having to do much at all is to set deliberate goals for what you want to do today and this week. …

When it comes to your codebase, one of the most significant indicators of overall quality is consistency. Consistency of patterns, style, naming, libraries — every part of your system needs to be considered, and carefully designed with consistency in mind.

Image for post
Image for post
Photo by Kari Shea on Unsplash

Why is consistency important?

Consistency is crucial when it comes to code quality because consistency leads to predictability. A solution with a high degree of quality will be predictable in the way it functions. You will be able to look at code, and without any domain knowledge, you should have a pretty good idea what’s going on. To quote Robert C. …

For many software companies, code reviews are an essential part of the project lifecycle. Code reviews allow us to have multiple sets of eyes over a piece of code before testing and deployment. Quite often, the reviewers will raise feedback to the author, noting areas of the newly added or changed code which could be improved, or potentially even flagging issues before the code is ever run.

People looking at code on laptops
People looking at code on laptops
Photo by NESA by Makers on Unsplash

Effective code reviews require striking a careful balance between technology and communication. Proper consideration needs to be given to the code, and any quality or functionality issues. Identifying issues is all well and good, but if you cannot deliver the feedback effectively and respectfully, it might do more harm than good to your team cohesion. The point of a code review is not to show that you are smarter than the other person, or to point out everything they did wrong. At its core, a code review is a collaborative process, and a quality filter to ensure that your team’s outputs are as good as they can be. …

About

Cameron Pavey

I write about code quality, productivity, and other stuff. Follow me on Twitter @cpave3 for the latest.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store