Getting Into Tech - Questions and Answers
Since first learning how to code in 2002, holding various part- and full-time paid positions since 2008, a follower of #BlackTechTwitter on Twitter, and participating in a number of tech related groups on Facebook, sometimes I see or get asked questions about how to get into tech. I decided to compile the questions that I get asked about getting into tech as a first career or changing from non-tech career to a tech career into the resource that you see here. As I get asked more questions, I will update this page with my answers to those questions. If you have a question that is not answered here, you can reach out to me on Twitter or Instagram.
Information provided here is grouped into categories. Click the category below to jump to the question that is most relevant to the information you would like to know.
I want to get into tech. What role should I take?
Tech is a big, wide industry. Like big and wide as the ocean. There are many different types of roles and ways to get into tech, that there is no one answer to this question. My suggestion is that you look to see what interests you the most. Once you have narrowed those down, watch YouTubers or discuss with individuals on LinkedIn or Twitter that do similar work to find out more about that particular role. From that point, you can then narrow your list down further to one option. Once you have that final option, find online resources (online courses, YouTube series), books, conferences, workshops, and groups that relate to the work that you are interested in and be an active participant in each of those.
A wrote a blog post based on a presentation that I attended. This is an additional perspective that I share with people that ask this question.
I heard that you can make a lot of money in tech. I want to...
Stop right there. If you are trying to get into tech solely for the money and not because you have a passion, it will show through your habits and lack of knowledge, and nobody will hire you. Find a part of tech that you can be passionate about and then go from there. When you are passionate about what you do, the money will follow and you will not have to chase it. See the question below for a longer explaination.
What's the fastest way to get a job in tech?
Anytime someone asks this question or similar, it is clearly obvious that they have no real interest in tech and are only trying to get in for the money. See the answer to the question above. That being said, I tell people up front that if you are wanting to get into tech solely for the money and not because you have a passion for it, you will easily be found out and will not get hired. Having sat on the interviewer's side of the desk, these type of people are relatively easy to identify as they all have similar patterns or attributes. What are those patterns?
- They are more concerned about how much money they will be paid and not really interested in the job duties.
- They do not have deep knowledge about the area of tech that they want to get into.
- They fail at technical interviews (e.g. unable to answer basic questions relating to databases, or the difference between an int and double).
Once an interviewer sniffs these things out about you, you will most likely get rejected and resume placed in the archive or trash.
I want a work from home (WFH) role.
While work from home roles sprung up a lot more during the COVID-19 Pandemic, working from home can be worse for some people. I talk more about this in my article about the Great Resignation. Below are my pros, cons, and suggestions for working from home. Consider these before accepting a role that allows you to work from home full-time.
- Save money on gas, car maintenance by not having a commute
- Do not have to spend money on work-specific clothes
- Gives you more time to do other things because you are not sitting in traffic
- Allows your kids to remain a home during the day instead of sending them off to daycare, thus saving money
- Extroverts can become depressed due to the lack of social interaction, especially if they live alone.
- More distractions (e.g. kids crying, tv on, making dinner, convenience for midday naps) can cause your work to suffer or you to miss deadlines.
- Increased electrical usage. Since you are home more, your utilities are more than likely to go up.
- Exceeding internet usage limits. Some ISPs (Internet Service Providers) have a cap on the amount of data they will let you use per month. Exceed that limit and you will be charged more for internet or having your service terminated for excessive usage.
- Have a dedicated work space (e.g. home office). When you "clock out" for the day, leave that work space and power off your computer.
- Take walks or exercise outside when weather permits. Lack of sunlight is known to contribute to depression and Vitamin D deficiency.
- Do not work in the same clothes that you sleep in. This is easy to do, especially if your company culture is to not turn on cameras in meetings, but refrain from doing this as mentally it blurs the lines between work and non-work times.
- Let other members of your household know that when you are in your work space, to keep interruptions to a minimum.
- If you get to a point where always being at home is having a negative impact physically or mentally, then seek professional help or find a role that requires you to leave the home.
I want to get into tech, but have prior convictions. What can I do?
Underdog Devs is a program that is designed for those who have prior convictions or come from disadvantaged backgrounds and are trying to get into tech. You are partnered with a mentor and given tasks to complete each week.
I know someone personally that signed up for this program. He said that it has helped him a lot. In particular with his confidence with him getting a job in tech and motivated him to work on his tech skills.
Is it more important to have a experience, degree, or certification?
Experience is far more important than a degree or certification. Having experience in a particular field will get you hired more than a degree or certification will. Reason being is that if you have the experience in the field, then the company sees you as an asset immediately. As an immediate asset, the company will spend less in training you on their particular systems, and thus become more profitable and value for them sooner.
Speaking from personal experience, I was not the best college student academically. "Cs get degrees" is what I jokingly say when asked about my collegiate career. By having experience in tech before graduating college, overshadowed the fact that my GPA was below the ideal level and I was still able to get the job upon graduation.
While in college, one of my professors explained that if he had to choose between two candidates, one that had a 3.0 GPA and 1 year of work experience and one that a 4.0 GPA and no work experience, that he would hire the 3.0 candidate. His reasons for this were
- 3.0 student has experience and therefore has had the opportunity to apply their education to real world situations; 4.0 student is book smart, but has not demonstrated what they have learned in a real world situation
- 3.0 student has made some mistakes (because their GPA isn't perfect) and those mistakes have become learning experiences.
- 4.0 student probably does not have a social life (because they spend a lot of time studying) and may be difficult to work with in team environments; whereas the 3.0 student probably has failed a test or two because they chose to socialize over studying
Are there communities with people that are in or trying to get into tech?
Yes there are several. Check out the Resources page for a list of people and communities that exist.
I want to get a job in the United States, but getting constantly rejected. What is the reason?
The reason for rejections may be due to immigration and not your work skills. The immigration process, in particular for a company to sponsor you, is an expensive one. From previous conversations with a former coworker, the filing and attorney fees can easily run about $15,000 USD. Also visas have to be renewed every 5 to 10 years depending on your status, elgibility, and other requirements.
For that reason, some companies do not hire people that require sponsorship. Other companies do hire people that require sponsorship, because they have in house teams that are familiar with the immigration process and have large number of sponsored employees.
Those that are coming to the US trying to get a work visa and sponsorship, I advise that while they are applying for jobs in the US, to become familiar with the work visa and immigration process of the US. Immigration is a very touchy subject and one missed deadline or wrong paperwork being filed could result in you getting deported or no longer being able to work in the US. More informaiton about this can be found on the USCIS website.
Also wrote a blog post about applying for a job even when you do not meet all of the requirements. The rationale is that it is not your responsibility to disqualify yourself from the job, but the responsibility of the recruiter or HR person to do this.
I don't have a degree. Can I get into tech with only certifications?
Yes you can, but your path to getting a job may be more difficult. Common misconception is that you can get a tech certification (Security+, AWS, Google Cloud, Azure Cloud) and it will automatically have you qualified for the job. This is never the case. What I share with people is that when you interview, you have to demonstrate the knowledge that comes with the certification. Yes, you can study for an exam, but can you put the knowledge that was on that exam into practice. If you cannot, then you will not get hired. Read the previous question for further explanation.
Which cloud certification(s) should I get?
That will vary. The certifications offered by the big three (AWS, Google Cloud, Microsoft Azure) are all similar in nature, but specific to their particular implementation. What I tell people is, if you already have a job and your employer has stuff in the cloud, then get the certification with whatever cloud provider(s) that they are using. If you do not have a job in tech, then find an employer that you want to work for, see what cloud technologies that they are using, and then get the certifications for that cloud provider.
I have a certification(s), but I am not getting job offers or interviews. What can I do?
If you have a certification(s) and do not have experience or have knowledge of IT concepts and best practices, then you will not get hired. The lack of these things are often evident based on your resume and based on how well (or bad) you answer technical questions in an interview. One thing that I always tell people is that people who have experience, both on the job and personal projects, will get hired before those that do not have any experience. The reason is that if you have experience, then that demonstrates and validates to the interviewer that you know what you are talking about. Companies are less likely to hire people that they will have to train, because training people does not add value to the company nor does it help make the company a profit.
Should I list my certifications on my resume and LinkedIn?
Yes, if they are relevant to the work to the job that you have or want to have. Having a food handler certification is irrelevant to being a network engineer, thus would not make sense to list this on your resume or LinkedIn. Having AWS certification listed when going for a Azure cloud position is relevant, although they are different technologies, and should be listed on your resume.
I don't have the money to spend on a certification or practice materials. What should I do?
Consider the money that you spend on getting a certification as an investment on yourself. That being said, do not go cheap on yourself. Any investment that you make in yourself, will qualify you for better opportunities if done correctly.
Depending on which certification that you are going for, sometimes there are vouchers available that will reduce or eliminate the cost of the exam and/or study materials. Check with the certificate issuer about any vouchers or other offers they have to reduce or eliminate the expenditure for taking the certification exams.
I have Google and AWS (or other multiple non-related) certifications and cannot get a job. Why is this?
As an interviewer explained to me once... you have a lot of knowledge in a lot of areas. You will have greater success if you specialize in a few areas than trying to know it all.
In other words, if you have several certifications in AWS and none in Google or Azure, then you will be better qualified for and more likely to get hired for an AWS role, because you would be considered as a specialist in AWS.
For example, you have an issue with your car. You have identified two mechanics that can do the repair. All things equal (cost, years of experience, etc), would you go with the mechanic that also is a paralegal or would you go with the mechanic that works at two different car dealerships? It is obvious that you would take it to the latter because s/he has more experience with cars than the former. The same applies when it comes to tech. Specialize in one technology stack and you will have a greater chance of getting opportunities that you apply for.
I want to get into cyber security. How do I get started?
I would suggest that you first work on getting your CompTIA Security+ certification, as that is usually a minimum requirement for cyber security roles. Then from there, you can get addition certifications such as CEH (Certified Ethical Hacker) or CISSP (Certified Information Systems Security Professional) depending on the area of cyber security that you want to be a part of.
I have a degree in Cyber Security, but cannot get hired. What do I do?
I advise people that run into this wall to set up a home lab and start publicizing their craft. Your home lab can consist of physical or virtual devices. With the home lab, you practice doing the various aspects that a cyber security professional would do. This includes, but is not limited to setting up firewalls, penetration testing, and defending against DOS and DDOS attacks. One person that has done this is the DFIR Diva.
As you perform these various tasks in your home lab, blog, make videos, or post about your activities on LinkedIn. Be consistent about doing this as well. Wtihin a few months of consistent activity, you will begin to get recognized by recruiters and the opportunities for interviews will roll in.
I will also suggest that you find and be an active (not passive) participant in groups on LinkedIn, Facebook, and other platforms that are related and discuss CyberSecurity. Recruiters are often lurking in these groups, and do pay attention to those who are active participants. It is the active participants that get contacted on a regular basis for speaking and job opportunities, even when they are not interested or looking for them (speaking from experience about this).
Once you start getting interviews, you still need to continue posting and practicing in your lab. Only once you have gotten hired and started working, should you then consider (but not necessarily do) reduce the amount you practice in your lab.
Why does this work? The reason is that companies look for proof that you are good at the work that you do. How do you prove that? With experience. In particular documented experience. A blog, YouTube channel, and posting on your social media platforms are all good ways to show that you know what you are talking about and are good at the work that you do.
Do I need to have a Computer Science, Information Systems, or other tech degree to get into tech?
No. I will say that having a Computer Science, Information Systems, or similar degree will grant you more employment opportunities than having a non-tech degree. Having a degree, regardless of what kind of degree, will make you better qualified for a tech job than having no degree at all.
A lot of jobs are requiring that you have a degree, but not necessarily a tech degree. Having been on the interviewer side of the desk, the reason that degrees are required, but not necessarily a tech degree, is because a degree is proof that you have a certain level of competencies to be able to do the job. In addition, those with degrees, regardless of the level of degree, are considered to be more mature, less likely to commit crime, and are more established than those who are not.
Speaking from personal experience, I have a Business Adminstration degree and started working in tech about 3.5 years before I got my degree. The problem that I have encountered is that the HR recruiter will see my resume Business Adminstration degree listed on it and almost immediately disqualify me because the job requirements are for a Computer Science, Information Systems, Mathematics, or engineering-related degree. Since my degree does not align with my work experience, some assume that my experience is bogus or that I do not have the knowledge needed for the job (solely based on the degree) and disqualify me accordingly. On the contrary, I can talk to anybody in tech and have a full blown tech conversation because I do the work and know the terminology. I had a situation occur that a connection on LinkedIn assumed that I had a Computer Science degree because of the personal programming and tech projects that I have. Only did they later find out that I had a Business Adminstration degree, but was willing to vouch for my knowledge and being an expert in tech.
I have a degree in a non-tech subject. How can I get a tech job?
This depends on what your degree is in. I have listed some examples below of people that have asked this question and the positions that I thought would be best where they get a job in tech and leverage their existing degree.
- Individual has a Communications degrees (Bachelors and Masters). I suggested that she look into Business Analyst or Project Management roles. Reason being is both of these roles are usually customer facing and require that you present information (e.g. project progress, design features, questions from developers) to the product owner or customer and being in Communications field means a lot of talking and proper use of the language.
- Individual has a Nursing degree (Bachelors). I suggested that she consider working as a technician
repairing and maintaining medical equipment (e.g. heart monitors, blood pressure machines, MRI machine, etc). Also suggested that this individual consider working for an MSP (Managed Service Provider) that contracts or provides services to hospitals and health care facilities. Having a medical background would give her an advantage because she knows how those machines should work and would only have to learn the technical aspect of the machines. In addition, having previously worked in a hospital environment, she would already be familiar with hospital procedures and protocols.
- Individual has worked decades in automotive manufacturing and currently works in facilities maintenance. He does not have a degree, nor did he want to go back to college to get a degree. However, he did want to make a career change over to a tech role. What I advised was that he look into smart buildings and building automation. This would allow him to leverage his existing skills of maintaining buildings and other mechanical equipment, while adding on the technology aspect of monitoring that equipment for potentional failures, energy consumption, and other variables. From this point, it could then be taken a step further and combined with becoming a LEED associate or being a consultant for building automation.
Do I need to have a certification in a cloud platform before interviewing?
No, you do not. Now if you have one, then it will help better qualify you to get the job.
Do I need to know about incident management?
Yes you do. That is one of the main aspects of Operations side of DevOps is dealing with incidents. Incidents are issues that occur with the infrastructure or application that requires attention. This could be a data process that has failed to complete, an application is unable to reach an downstream or interfacing application, or hardware issue.
Incidents have different level of severities. Most severe incidents will require immediate attention and usually have significant impact (e.g., customers cannot buying items from online store), and require immediate attention. Least severe incidents do not have as big of an impact (e.g., one customer having issues resetting his/her password) and can take back seat to more pressing issues.
The book "The Phoenix Project" provides a perspective of what can happen when incidents are not properly addressed in a timely manner. In the book, it mentions that stores were not able to complete transactions because a fix was put in and not properly documented.
Do I need to know about change management?
Yes, you do. Change management is the process to track changes that are made within a given organization, the scope of work that is to be done, and who will be impacted by the change being made. From my experience, one of main benefits of having change management and CAB (Change Approval Board) meetings, is to prevent conflicting changes from occurring at the same time.
For example, if an application has a release scheduled at the same time or during the same window as the operating system update, that would be bad because the application could end up with a partial deployment if the server is rebooted to apply operating system updates.
The book "The Phoenix Project" talks about change management and the outcome when CAB members do not participate in it. The result is more issues and chaos. I would recommend that you read this book about the issues that an organization can face.
There are multiple distributions of Linux like Red Hat, Ubuntu, and Fedora. Which one should I pick to learn with?
It does not matter, but do pick a distribution that is free and not paid. Some distributions of Linux, like Red Hat, require that you pay for them, simliar to how Microsoft requires that you pay for a Windows OS license. I do not recommend paying for any distribution of Linux that you will be practicing with. Majority of Linux distributions, do not require that you pay for them as they are fully open source and free. From my experience, Ubuntu is one of the easiest to install on a system or virtual machine.
I have installed a Linux VM (Virtual Machine) and use the GUI (graphical user interface) to practice with.
You are doing it wrong. I suggest that you install the server edition of Linux (does not matter what distribution of Linux) which does not have a graphical user interface (GUI). Reason being is that servers that are used in the cloud and any enterprise organization, do not have a graphical interface because the GUI takes up additional system resources (memory, disk space, etc) that could be used by the application, database, firewall, or something else. In addition, by not having the GUI available, it will force you to learn how to do things only using the terminal or command line.
I hate using vi or vim. I prefer nano or gedit.
I always tell people that while vi or vim can be difficult to use, every Linux and Unix based system that I have used either had vi or vim. All of them did not have nano or gedit or any other text editing program. While you can have your favorite, having basic knowledge of how to edit a text file in vi or vim will allow you edit files on any Linux based system even if your favorite editor is not available.
Should I learn Linux using Docker or a virtual machine?
Does not matter. Both methods will give you the full operating system and the ability to be able to perform all of the functions on that system. The major difference is that Docker will use much less resources than a virtual machine will. Thus if you are using an older computer, I would suggest going with Docker container that runs Linux over a virtual machine.
What programming language should I learn first?
Python is talked about so much. I should learn that because it has a lot of uses right?
While it is true that a lot of YouTubers talk about how they have built programs and automations with Python, from my experience, I have never ever have had to use Python in my career. That being said, do not believe the hype about Python because it could lead you down the wrong path. Python does have its use case in certain environments, but governments and large corporations are not going to convert all of their enterprise applications to Python because a number of people are talking about Python.
What I tell people is that larger, more established companies do not use Python in their applications. They are most likely using C# or Java for those. Smaller companies and start ups are more likely to use Python because it is easier to code with and is not as rigid as strongly typed languages like C# and Java.
What all do I need to know as a programmer?
This will vary depending on who you work for, but there are some core compentencies that you will need to know that are universal.
- Change Management (ITIL certification)
- CI/CD - Continuous Integration, Continuous Development
- Incident management (ITIL certification)
- Programming best practices, architecture patterns, and concepts - clean code, SOLID, DRY
- SCRUM and Agile concepts
- Version control - Git is the most popular source control system
Do I need to have a portfolio of my projects?
Need to, no. Would it help you be a better candidate if you did, yes. I suggest that potentional programmers or developers have a Github or Jira account with their projects uploaded to it. Projects forked from another users account do not count as your project. Thus do not create an account, fork a number of projects, and then claim that you are experienced in programming. The commit history will prove that you are lying and you will not get the job.
Having a portfolio of your own projects, demonstrates the knowledge (or lack thereof) that you have about programming, regardless of what programming language you use.
Which IDE (Integrated Development Environment) do you recommend?
In my opinion, it depends on the programming language that you are coding with.
For Java, I would recommend Eclipse as it has been the go to for Java applications for well over a decade.
When it comes to C# or any other programming language, I recommend Visual Studio Code as it has a number of plugins available for the programming language that you are coding with and is designed in a way that you do not have to move your hands between the keyboard and mouse to navigate the application.
As an alternative, you can use Notepad++ for coding. A number of developers used this before VS Code was released because it does syntax highlighting for a number of languages.
Architecture Patterns... is it necessary to learn all of them?
No it is not. You do need to be familiar with some of them and to be able to learn a new pattern. Often times, each company will have their own way of building their applications. Some of it may follow convention, and some of it may not. Ideally, an organization would follow convention for the programming languages that they use.
When changing companies or organizations, be open to learning new ways of structuring your code. There are many tutorials that talk about Clean Architecture, Domain Driven Design, Event Driven Architecture, MVC, and more. There are courses on YouTube and other platforms that will explain those to you.
In addition to the questions and answers below, also check out the question and answers in the Software Development section of this page.
Do I need to learn Bootstrap?
Need to, not necessarily. Would I recommend that you do so, yes. The reason being is that Bootstrap framework is used on a number of websites because it is mobile first and takes less time to style a website with its pre-defined classes.
Heard that PHP (Pre-Hypertext Processor) was a dying language. Should I still learn it?
While usage of PHP has declined, it will still be around for a while. Content Management Systems (CMS) including WordPress and Drupal use it. In addition, most web hosting providers support it without an additional charge. There is no licensing cost to use PHP, so beginner programmers and businesses that have limited budgets use it for their websites to save money. Frameworks such as Laravel, CakePHP, and Symfony exist that help reduce the amount of time required to develop a PHP-based website or application.