I have been working in IT since 2011. Once in a while I am asked to give advice on getting a job in this industry. Much as I love sharing everything I’ve learnt, giving a concise one-size-fits-all answer is quite a challenging task.
The simplest yet sincere answer you can get from me is: I have no idea. I’m a self-taught nerd who spent a significant chunk of my life doing various things with computers for a simple reason: I enjoyed doing that.
The fact I got really deep into computers is something I owe to my parents. They worked hard enough to afford buying an Atari 65XE in early 1990s and my first desktop PC in 1998.
I kept exploring creative ways of using my computer even though my parents at some point thought I was wasting my time. I never got a degree in IT and it wasn’t immediately obvious I’d ever get into this industry at all. I never googled ‘how to get a job in IT’ or had anyone mentoring me. The awareness that I could someday be paid for what I had been doing for fun came much, much later.
My personal story is much longer and it may be difficult to replicate step-by-step in the 2020s. But the general idea didn’t age that much: invest time and effort to learn technical skills, look for opportunities and try to maximize your odds of success. Rinse and repeat until you succeed.
But I’m not here to give you generic advice any SEO-aware click-driven content marketer can give you. Instead, I’ll try doing something else. I decided to note down specific questions I’ve heard myself and provide my own answers to them up to my best knowledge so that I can link to this article every time the topic comes up.
Some prerequisites before we start
Being a web developer, I’m heavily biased towards programming. But IT is way, way wider than that. Sadly, I don’t know much about cybersecurity, networking, IT support, game development, testing or project management. In case of these my point of view may not apply.
I assume you’re on your own. You know no one in the industry. You have no friends that could help you out. It makes things more complicated but it doesn’t render you helpless.
I assume nothing about your age or life situation but I’m not going to say it doesn’t matter at all. I’ve seen success stories of people switching to IT after long careers in various industries. It requires perseverance, mental capacity, time management skills and various degrees of support.
I assume nothing about your gender and I badly want to say it doesn’t matter, but that’s more complicated. As a cis male I acknowledge being privileged by never having to deal with rejection based on my gender - but I cannot deny it does happen. I’m fortunate to know many women that thrive in the industry. I have had women as my direct managers and I worked with women as my teammates. I leave it to your judgment whether my advice presents anything of value based on that prerequisite.
I am unable to post advice specific to one’s ethnicity, nationality or skin color. I stand for racial equality and I try to educate myself on this topic. I am sad to acknowledge systemic discrimination is a thing and I want to be a part of the solution rather than the problem. But I can only do as much and posting advice from a position I never experienced is not something I’m willing to do. If you want to hear stories about getting into tech as seen by people of color, check out other amazing people:
I have no ambitions of being your only source of truth. I cannot cover everything in a single article. Don’t stop here. Google a lot. Keep exploring on your own. Confront opinions from various sources. Establish your own plan and try executing it.
Okay, so how do I get a job in IT?
Broadly speaking, there are two ways of getting into the industry:
- Do it as a hobby and learn at your own pace, then apply for a job
- Get formal training (university degree, courses, bootcamps, etc.), then apply for a job.
Combining both is the most efficient.
Fundamentals of many fields of IT can be learnt free of charge using publicly available sources of knowledge. You can google answers to many questions you may have on your way.
Certain degree of “passion” is important because it helps you cut corners on your way and stay focused on your goals. Inexperienced yet passionate beginner has equal chances against a generic university graduate during a job interview.
You don’t have to spend 100% of your free time learning stuff, but you should do that on a reasonably regular basis. Find your own rhythm, set yourself small objectives and assign chunks of time to work through them.
Okay, but how do I develop a “passion” for IT if I don’t know what I want to do?
There are two ways:
- Pick up that one thing that looks interesting to you and dive into it,
- Try as many things as you can and see what sticks.
Those two ways may look very similar to each other, but there is a slight difference.
I always enjoyed exploring the internet. I quickly developed natural curiosity about how websites are made. I wanted to know how to publish my own things online. I figured that out, I started looking deeper and deeper into the subject, broadening my range of skills. Building stuff that could be accessed via a web browser was that particular one thing I stayed focused on.
But I also tried other things that were fun but failed to convert into anything serious. Over two decades I designed a few logotypes, produced music, wrote two books, took a lot of photographs, edited some videos, published articles on tech blogs, and many others. Every single one of those activities could present interesting opportunities to me if I had decided to pursue them. But I didn’t stick with them for various reasons. Do I regret it? A little. But this is fine.
Yes, things are way easier if you know what you want to do and you don’t have to spray and pray.
But can I really get into IT without a degree?
For some specific areas of IT, especially those that involve programming, it’s absolutely possible. But you need some sort of proof of work you put into your self-development.
Programming is relatively straightforward in this regard. Start learning a programming language of your choice and try building a project or two on your own. Tackle and solve problems with tools you’ve learnt. Experiment with technologies and tools and be ready to talk about them. Learn Git. Set up a profile on GitHub / Codeberg / Gitlab and share stuff you find worthy, even if it’s unfinished and not pretty.
Design? Very similar path. Design for friends or yourself. Redesign popular applications. Learn about user experience and be ready to discuss it. Try to build a portfolio.
Networking, security? Certifications and knowledge of popular tools may be your best bet.
I’m sure there are similar paths for other IT-related fields, but I don’t feel competent enough to comment on them.
So, what’s the point of getting a degree in IT? Is there a point at all?
Yes and no.
Unless you study at MIT, Yale, Oxford, Cambridge or other internationally recognized university, your degree doesn’t say much about your actual skills. Your potential employer won’t care about your grades.
Yes, there are cases where higher education is required by law and cannot be easily bypassed. In my country this often happens in public institutions that have to conduct processes in a certain way to ensure legality and transparency. But that’s just a fraction of the whole picture.
The real value of university education in IT career is somewhere else.
First, it’s a great opportunity to network with other folks who are into the same things as you. Make friends with like-minded people in your group. Or just get to know your potential competitors on the job market.
Second, university forces you to learn to work on schedule, meet deadlines and provide extrinsic motivation to do things you may not always be interested in, like in your future workplace.
Your mileage may vary. Maybe you’re fortunate to live in a country where university education is better than mine. But I’m fully convinced that chasing an IT degree solely for knowledge and skills is probably a waste of time and money. And you totally shouldn’t do that just because some companies put IT degree among requirements in their job offer. Sooner or later nobody will ever bother to look at the education section of your resume.
Okay - I have some tech skills. Do I need anything else?
Yes. Bad news is that even though you signed up for this industry to work with computers, you’re gonna work a lot with people. Even worse, those people will have diverse levels of awareness of their own needs.
It’s safe to say 99.9% of employers will expect you to be a team player and problem solver. It’s even more important than your technical skills, but you definitely shouldn’t neglect either.
To be a good team player, you have to enjoy talking to people, especially non-techy ones. Be friendly, treat others with respect, listen carefully and react to their needs. Being a likable human being is the bare minimum that will get you far.
To be a good problem solver, you have to develop techniques of tackling problems as well as be ready to admit you don’t know it all. Not all problems are worth solving and not all problems can be solved at all.
If you can’t come up with answers on the spot, don’t be afraid to say ‘I don’t know, I’ll get back to you with answers later’.
Google a lot, even the silliest of questions. Everybody on every level of seniority does that. Google doesn’t judge.
If you’re struggling, don’t be afraid to say it loud. You’re part of a team and it’s absolutely fine to ask for help.
Also, if English is not your first language - spend time improving your English, at least passive skills (reading and listening). Majority of first-hand industry knowledge is written in English and some of it may never get translated to your mother tongue. Spoken and written English matter as well, especially if you want to work with clients that don’t speak your language, but you should prioritize understanding what you hear and read before trying to talk or write.
Is getting into a field other than the one I’m interested in (e.g. testing) a good idea?
I’ve heard of this approach quite a few times: get into a field of IT that requires little to no skills, work in it for some time to gain experience, then switch jobs. The usual suspects mentioned are manual testing, IT support and probably some others I don’t know about.
Of course, having this kind of opportunity at hand is million times better than waiting for the one you really want. And you totally want to have a monthly paycheck rather than having no paycheck at all. It makes sense especially if you’re trying to figure out what exactly you want to do in IT - maybe one of those ‘temporary’ careers is the one you were looking for.
But honestly, I find this approach strange for a number of reasons.
First, it creates a false feeling that some IT fields are easier than others and I don’t consider that statement true. For example, manual testing requires a great deal of discipline and attention to detail - it’s about preparing and executing test scenarios, reporting bugs and living a happy life despite tight deadlines and programmers low-key hating you. Helpdesk and support jobs require patience and creativity to solve problems other people may never be facing in their everyday work.
Second, you have to ask yourself whether it’s really the best way to invest your time if you know for sure it’s not the one you’re looking for. A lot of fields within IT, despite similarity, are completely different from each other. There’s a difference between web application development and video game development even though skill requirements are vaguely similar. And there’s definitely a lot of difference between testing and programming applications. Taxi driving and touring car racing might look vaguely similar on the surface, but both require very different skills.
If you know what you want to do, pursue it and don’t accept substitutes as long-term solutions.
Are bootcamps any good?
That’s a frequent question from people interested in programming.
My personal answer is: I don’t know. When I was starting my adventure in IT, bootcamps weren’t a thing yet.
In terms of knowledge, there’s nothing bootcamps will teach you that you cannot find anywhere else. You don’t pay for a magical cheat code to get a dream job in IT. Knowledge can be found online free of charge.
You pay money for the fact someone else made an effort to select, organize and present the material to you.
Treat bootcamps like a product you pay money for and expect it to fulfill certain promises, but keep your expectations modest. Look for reviews, ask for recommendations and compare offers. In fact, that applies to any form of learning you have to pay money for, including books or online courses.
Should I learn programming? Which language?
You don’t have to. But you should, at least a little. It helps a lot, even if your dream job in IT has nothing to do with programming. Basic principles of programming can be learnt within a few hours with free tutorials.
Some programming languages are more beginner-friendly than others, but I strongly believe any popular programming language with good documentation and a sizable community is good enough to start. All programming languages operate on a shared set of principles, so switching between languages isn’t as daunting as it may seem.
Is the tool X better than Y? Is one language better than the other?
There are a few ways to answer this question.
In case of libraries, languages or tools that co-exist next to each other while offering similar functionality, the answer is often political.
By picking C# over Java, you’re likely tying yourself to Windows and a vast range of tools offered by Microsoft.
Angular and React do the same thing in different ways, but the most significant difference is that one is made by Google and the other is done by Facebook - two humongous corporations competing for top talent in the industry. Unless you want to work for either Google or Facebook in specific, there’s no good or bad choice here.
Comparing programming languages like Python or PHP is like comparing gasoline to diesel. Cars running on either of these have a steering wheel, headlights, fuel cap and an ignition. But as an experienced driver you will feel the difference between either as soon as you start the engine. Does that mean one is better than the other? Not necessarily.
Programming languages are built for specific reasons and operate on specific sets of assumptions. But that doesn’t mean one is inherently better or worse than the other per se.
Is there anything else I should know?
Absolutely. There’s tons of stuff I didn’t touch here. I didn’t mention LinkedIn or GitHub, how to write a CV, how the 2020 pandemic changed the job market, how to cope with rejection, and many, many others.
If you would like me to elaborate on any of these topics, or have questions I didn’t answer here, contact me and I’ll write a follow-up to this article.