· Travis Rodgers · Career  · 8 min read

Programming Is Not Enough | 7 Additional Skills You Need

With all the new technologies out there, being a developer in the traditional sense is not enough. In this post, I want to share 7 additional skills that every programmer needs to know to succeed.

Becoming a programmer in the traditional sense is no longer enough.

With the advent of new and widely adopted technology out there, developers are now required to know more than just writing good code.

The good news is that you don’t have to master some of these additional skills. Instead, you just need to be familiar enough with them to use them when asked to.

In this post, I want to give you 7 of these skills that you will need to ADD to your pursuit of being a successful developer.

All these skills can be learned on --> Zero To Mastery (one of my favorite learning sites these days for quality and breadth of courses).

1. Cloud Computing

I’ve said this again and again. This is now, in my opinion, a default requirement for any developer.

Here are some stats. According to TechReport:

  • 85% of firms are anticipated to embrace a “cloud-first” strategy by 2025.
  • Spending on the cloud in 2022 made up around 25% of the $919 billion market for commercial IT.
  • Over 60% of all corporate data is stored in cloud storage.

Everyone is going there, if not there already.

You aren’t just pushing code and moving on to the next thing. That code will be linked in some way to the cloud and you’ll be asked to facilitate.

Having knowledge in the cloud will set you apart and make you more of a leader in your role. And if not a leader then a very capable developer, one that doesn’t need additional hand-holding in things outside of code.

So how do you learn Cloud Computing?

Well, there are two approaches:

  1. You take a course, get your hands dirty, and achieve competence. This is okay and will suffice much more than the person who avoids learning about the cloud.
  2. But if you want to be more marketable and really level up your skills (because remember cloud knowledge will require you to learn networking and like things that you don’t really learn as a developer by default). But getting certified in some way will really, really help you out. A basic certification like the AWS cloud practitioner is a good start but if you could get the AWS solution architect associate, that would be ideal. To have that knowledge and to have that on your resume in addition to your coding skills, is a plus.

Which Cloud?

Pick one.

AWS is good. Azure is also good. Google seems to be great as well, but I don’t have a lot of knowledge there.

However, I do have a video of exactly how I passed the AWS Solutions Architect Associate and the exact courses and materials I used. Here’s a link.

I also have the equivalent video for the Azure cert and how I got Azure certified. Here’s the link for that.

Whichever route you decide, those videos will give you all the resources you need.

2. Git/Source Control

I find it fascinating how many people are learning to code or have been coding for some time who just haven’t learned Git.

If you are working with a team or are working with code that is being pushed to a platform like GitHub, and you’re not an isolated freelancer (which I could argue why you still need it in that scenario) you have to know Git or a version control system of the like, Git being the most popular.

And that’s exactly what Git is. It’s a version control system used for tracking changes in computer files (or code in our case).

It allows you to create a separate branch from the main code repository, do your work, and merge it back in. And only the changes that you made, not an overwriting of files themselves. The versioned code is usually pushed up to an online repository like Github, Bitbucket, or GitLab.

And if you don’t know Git, you can learn the basics pretty quickly.

You don’t need to buy a course for this. Just go to YouTube and do a search for “git in one hour,” and there will be a number of great tutorials.

It’s actually a tool that you can learn the basics of now, and then get more advanced with it as time goes on.

3. Basic Database Knowledge

In my past roles as a developer, I’ve had tasks ranging from having to know basic SQL commands for pulling data, to actually writing full-blown SQL scripts. In some jobs that may not be your role, but will come a project where you, as a developer, have to navigate some flavor of SQL to get the job done.

And you want to have not only basic SQL syntax knowledge but knowledge of databases as well. Concepts like:

  • Database vs tables
  • Relational vs NoSQL
  • Relations like one to many, many to many.
  • And the SQL syntax like select, update, joins, inserts, etc.

You don’t have to become a DBA, but just be able to jump in with enough knowledge to figure things out.

4. Basic Linux Knowledge

This is something I thought I had by way of having a Mac and a Unix terminal but learned very quickly that there’s more to Linux than just terminal commands.

And while you should learn core Linux terminal commands from cd to cat to grep, you should also try to get a good understanding of the Linux file system.

I mean, why are files in the /etc folder or the /bin folder? Or what is the /mnt directory or /opt, /usr, /tmp?

You’ll also need to get familiar with file permissions and ownership.

Every file and directory in the Linux file system has permissions and an owner. Learn how to read permissions and how to use chmod and chown to change them.

Finally, know how to read logs and interact with system processes.

The reason I say all this is that while we all have Macs or PCs, the servers that run websites and apps in the cloud will be in a Linux flavor of some sort. So once you leave your development environment, you’re in Linux land!

5. Basic Docker Knowledge

I think this skill in the past has fallen to the DevOps team, but in my experience, especially as of late, developers are supposed to just jump in and containerize apps, or microservices, or troubleshoot why an image isn’t building or why a container keeps failing.

It’s becoming like the cloud knowledge discussed above. You’re just going to be asked to know it.

Now if you didn’t know, Docker allows you to take an application, build it into an image, and from there any dev can run the image in a container.

I can pass it around to whoever and when they run it, as a container, it will have all the dependencies and processes to run on its own.

It will work for you and it will work for me.

You can deploy these containers in the cloud or on Kubernetes and they start up fast. And you can deploy multiple copies, etc.

I have a “Learn Docker in 1 Hour” video that has been very helpful for many.

Here’s the link to go check that out.

That will teach you the basics and will show you how to actually containerize two full applications.

So be sure to get some basic, working knowledge of Docker

6. Basic API Knowledge

Now you may think this comes as part of being a backend developer, but many devs leave it out. They learn backend programming, MVC, object-oriented programming, ORMs, and databases, but never really get the skill of building an API.

And while it does involve the coding you are already familiar with, there are API-specific skills and architecture that you need to know WHEN, not IF, but WHEN you are asked to work on an API.

I would recommend learning REST APIs. You’ll need to learn about routes, and verbs like POST, PUT, and GET. Also, learn about responses and status codes.

Even more importantly, you will need to learn about authentication, tokens, and the facets that keep your API safe.

So whatever language you use or are good with, find an API course in that language. Be able to jump in.

7. Pipeline Familiarity

Finally, you’ll need familiarity with pipelines.

These usually run tests or checks and are required to pass before your code gets merged in. You may think others will take care of this, but 8/10 you’ll be asked to try and fix it.

And there’s no mercy here. You pushed the code, the pipeline is now failing, and you’ll be tasked with fixing it.

The best way to get started here is with GitHub Actions.

Imagine when you push your code up to GitHub it kicks off some sort of automation. Maybe it runs a linter or maybe it runs tests.

Then when your code is merged, it may kick off another action or pipeline, one that deploys your new code out to the development or staging server.

Those are pipelines.

Conclusion

So those are 7 additional skills that programmers, especially new programmers, should get familiar with alongside their coding knowledge.

So let me ask you…do you agree with these 7?

What would you add or remove?

What else do you think developers need to know?

Let’s discuss down in the comments.

    Share:

    Related Posts

    View All Posts »