I'm Matthew Setter. I'm a security researcher, privacy advocate, and a software engineer. I’ve been developing software since 2000. I started this blog to help you write simpler, cleaner, and more secure software, and to protect your online privacy.
How Do You Start In The Tech Sector?Career August 9th, 2018
The tech sector, if you know what you're doing, is easier than most fields to get started in. However, you do have to know what you're doing. In this post, I'm going to step through a series of ways to get started, in case you're not sure.
Sounds easy, right? Well, nothing worthwhile's easy. Now, to be fair, I don't mean "if you know what you're doing" in any patronising or condescending way.
What I mean is that, unlike say being a GP, dentist, civil engineer, corporate lawyer, Queen's Council (QC), etc., you don't need to have years of formal training.
What’s more, you don’t need to be registered with an industry group/board before you're allowed to work. These can include the Institute of Chartered Accountants, the Queensland Law Society, or the Queensland Bar Association.
In IT, however, most people whom I've spoken to over the years care far more for what you can do, rather than what a piece of paper says you could do.
Let's Say You Want to Write Code
If you want to write code, then start by learning the basics of a software development language. I'm not going to get into a flame war about one language or another, whether one's better than another or not.
That's for people with too much time on their hands, and for people who are too emotionally invested in their language(s) of choice — or, dare I say it, just a bit insecure.
There are a host of languages to choose from, readily available on the three major operating systems (Linux, macOS, and Windows).
Some of the most common, where you'll find the most amount of help and documentation, are PHP, Perl, C/C++, Java, Go, Ruby, Python, Haskell, and Lisp.
I've linked to a host of excellent online resources for each at the end of the article.
For my part, I prefer any language borne out of C/C++. I've written code in Visual Basic and Cobol and didn't come away from either experience positively.
Once you've learned the basics, build something. It doesn’t matter what it is, but build something; ideally something that scratches an itch.
It doesn’t need to be big, but something that helps you learn in a meaningful way. As an example, I’m currently diving deeper into Go and am building a simple command-line tool for my business finances.
Share it on GitHub, GitLab, Bitbucket, or one of the other collaborative online source repositories, and ask people you know to review the code and give you feedback. If you feel the feedback’s worth implementing, then implement it and improve the quality of your code.
After you’ve deployed your first project, start contributing to open source projects. You don't need to be overly ambitious, so the project doesn't need to be a big one.
It could be a small library, such as VIM for Technical Writers that I maintain every so often. It could, however, be the Linux Kernel too, if that's your motivation and you are feeling particularly ambitious.
Regardless of what you choose, by contributing to these projects you'll learn far faster and better than you likely could in any other way. Why?
Because you're working on real projects and have the opportunity to be mentored by people who have years of hands-on experience. You'll get practical, guided experience, the kind you'd likely take years to acquire on your own.
They'll help teach you good habits, best practices, patterns, techniques, and so much more; things you'd likely take ages to hear about, let alone learn.
What's more, you'll become part of a living, breathing community where — hopefully — you're encouraged to grow and appreciate the responsibilities and requirements of what it takes to ship software.
But I'd Rather Be a Systems Administrator?
The same approach can be broadly applied. Here’s my suggestion. Install a copy of Linux, BSD, or Microsoft Windows on an old PC or laptop. As you're installing it, have a look around at the tools that are available for it
hint: open source provides a staggering amount of choice. #justsayin.
Get to know how it's administered, whether via GUI tools (and the Power Shell) on Windows, or via the various daemons and their configuration files and command-line tools on Linux and BSD.
Server administration's a pretty broad topic, so it's hard — if not downright impossible — to suggest a specific set of tools to learn. I'm encouraging you at this point to get a broad understanding.
Later, if you're keen, you can specialise in a particular area. However, for now, get a broad understanding of:
- User and Group Management
- Installation Options and Tooling
- Service/Daemon configuration; and
- Disk Management.
Whether you're on Linux, BSD, or Windows, I've linked to a host of resources at the bottom of the article to help get you started.
Now that you've learned the fundamentals do something where people can critique you and hold you accountable, such as hosting a website of your own, through a provider such as Digital Ocean, or Linode.
The web server you use, whether Apache, NGINX, Lighttpd, or IIS doesn't matter. Just use one that works well on your OS of choice.
Once you've got it up and running, start building on the day to day tasks required to keep it up and running nicely. Once you've grown some confidence, move on to learning how to improve the site's security and performance, and deployment process.
This can include:
- Optimising the web server, filesystem, and operating system configuration setting for maximum throughput
- Setting up an intrusion detection system (IDS); and
- Dockerising your site
Consider Working on a Helpdesk
Now that you’ve got your basic skills in place, how about working a helpdesk job? I know that it doesn’t have the sexiest reputation, nor one that anyone seems to give any respect to.
But working on a helpdesk can be a significant opportunity to learn all manner of technologies; a bit from here, a bit from there, a bit from everywhere.
You’ll quickly get a feel for, and understanding of a very broad cross-section of the tech industry. By doing so, you’ll gain the ability to know — hands-on — if you want to specialise in a particular area, before you dedicate the time and effort to learn it.
What’s more, by interacting with people each and every day, you have the opportunity to know the mistakes and shortcomings of the different specialties. By learning this, you have the opportunity to succeed and shine where most people fall short.
To be fair, it’s not glamorous in any way. But - most jobs are 1% inspiration and 99% perspiration anyway. So consider starting in one that gives you an unprecedented, if often overlooked, opportunity to grow over the longer term.
To Go Open Source or Microsoft?
By now you've got a pretty good set of knowledge. However, stop for just a moment, because it's time to figure out if you're going to specialise in open source (Linux/UNIX/BSD) or whether you're going to focus around Microsoft's tools and technologies.
You can become knowledgeable in both, and most developers and systems administrators that I know do have a broad range of knowledge in both. However, I'd suggest that it's easier to build your knowledge in one rather than attempting to learn both.
Depending on the operating system you've been using up until now, it's likely that you've already made your choice. However, it's good to stop and deliberately think about it.
What Do You Do Next?
Now, let's get back to building your skills. What do you do next? If you want to be a sys admin, start look around for opportunities to help others with their hosting needs.
Don't go all in — yet. There's no need to rush. Keep stepping up gradually, building your confidence and skills.
If you're not sure of who might need help, have a think about:
- What clubs are you involved in?
- Do you have friends with small businesses that might need support?
- Do you know others who want to learn what you have and need a mentor?
I'm sure that as you start thinking, you'll be able to uncover other ideas and possibilities. Now you have to get out of your comfort zone, contact people and ask them if they need help.
Worst case scenario, they say no. Whatever! Keep going until you find someone who does want help and is willing to take you on.
Regardless of the path that you take, you should feel pretty confident in your foundational skills, because they're based on practical experience.
So, it's time to push further. To do that, I'd suggest contacting a University, a bank, or an insurance provider, if you want to cut your teeth on big installations.
Sure, many other places have big server installations. However, these three are the first that come to mind.
If you are focused on software development, here are a few suggestions:
- Contact software development companies (avoid "digital agencies") and see if they’re hiring.
- Get involved in your local user groups (this goes for sys admins too, btw).
- Start a user group if there isn’t one for what you want to focus on. If you’re not sure if there is one, besides googling, ask local businesses and do a search on Meetup.com, LinkedIn and Xing (if you’re in Germany, Austria, or Switzerland).
- Talk to your local chamber of commerce and industry and let them know you’re around and what you do.
- Find the local business networking groups and go to the networking breakfasts.
I could go on and on. The key takeaway I'm trying to leave you with is that, if you have practical experience, you'll increase the likelihood of gaining employment.
Any employer I've had of any worth values hands-on experience over a piece of paper any day.
Don't get me wrong; there's nothing wrong with degrees or industry certifications. And for complete transparency:
- I have a Bachelor of Information Technology
- I'm LPIC-1 certified; and
- I’m a Zend (PHP 5) Engineer
However, university qualifications and industry certifications should only reinforce what you already know, and not be something that is used to get your start.
With all that said, I want to encourage you to go down the Open Source path, not Microsoft. But I’m biased, as I’ve been using Linux since 1999.
Regardless, have a chew on all that, and let me know what you think in the comments. I hope that, if you’re keen to get into IT, that this helps you do so, and clears up one or more questions and doubts that you may have.
Linux, UNIX, BSD & General Server Administration
- The Complete Beginner's Guide to Linux
- The Linux Documentation Project
- Linux Journal
- OMG Ubuntu
- 'Nix Craft
- Learn UNIX the Hard Way
- Servers for Hackers
Microsoft Windows Administration
- Microsoft Official Documentation
- Windows Server Admin Basics, What You Need to Know
- Windows Server Administration Fundamentals
- 10 PowerShell commands every Windows admin should know
- Windows Server Administration
- The Microsoft MVP Program
- CC Image Courtesy of pwkpwkpwk on Flickr.
- CC Image Courtesy of sunny kumar24 on Flickr.
- CC Image Courtesy of Alan Sung on Flickr.
Join the Email List
If you enjoyed this post, why not join the email list and get all future posts straight to your inbox? In addition, you'll get background information, extra research, and other content that's only available on the list. I promise I'll NEVER spam you. And you can unsubscribe at any time.