If you look at the job and career discussion boards, there are many questions about information technology (IT) careers. Two specifically we see a lot:
- What kind of jobs in IT can I get with a computer science degree?
- What types of IT jobs are available?
While there are some positions in IT that usually require some working experience, in general the jobs are the same. As far as the degree, it depends – while it is not require to have computer science or engineering degree, we know of many engineering organizations that do require it (more in the midwest, less on the coasts). You may already know we think computer science is on of the top college degrees, so it is an advantage over other candidates.
So let’s take a look at some of the positions you can get during your career.
Software Development Careers
These positions are software engineering positions – you will be designing software and writing code. Computer science degrees are preferred.
- Software Engineer (aka software developer, development engineer, computer programmer, coder) – gather requirements, design/architect software, write code. You could be working on a small feature in a product or teaming up with others to code the entire backend of a large scale system.
- Software Architect (aka principle engineer, staff engineer, member of technical staff) – very senior level within the software development organization. While you may write code, it’s more likely you are architecting systems, writing prototypes, mentoring other engineers, writing white papers, and related senior level activities.
- Release and Configuration Management Engineer (aka build engineer, SCM engineer, tools engineer) – this role can also lie in QA or Operations. You may be doing everything from codebase management (branching, automated builds, etc) to releasing to production. You need excellent scripting and coding skills since there is a lot of automation work. Attention to detail is a must.
Operations and IT
The focus is here is on systems management and support – typically large inhouse infrastructure, labs, or production systems. The scale varies depending on role and company. Again, computer science degrees preferred (especially in large web companies), but there are more folks in IT Ops without them than in development positions.
- Systems Administrator (aka sysadmin, systems analyst, linux/unix/windows admin, systems engineer) – focused on the health, maintenance and scaling of a company’s infrastructure or server farms. You need to know the operating systems well and have strong scripting skills to automate many repeated tasks. You may also support applications, databases, networks, etc. In many companies, this means managing everything not under software development, databases, or QA.
- Operations Engineer (aka Site Reliability Engineer, systems engineer) – more prevalent in very large web orgs or companies using the cloud. Your focus is enhancing, managing, and scaling the production applications. Systems admins focus on the hardware and OS, you may be writing software frameworks (monitoring, automation, installs) to support large scale deployments. These are really software developers who enjoy working in production so you need to know OSes as well as development. Can be a stressful position when oncall.
- Network Engineer (aka network administrator, network analyst) – depending on role, you may need to be a deep expert in networking and related hardware (switches, load balancers, firewalls, etc). In other roles, it may be more of a simple support admin, who monitors the network, handles upgrades/installs, or just configures devices. Having network certifications is a big plus.
- Security Engineer (aka security analyst, information security engineer) – you focus on the overall security of your company’s software (both inhouse written and purchased), hardware, networking, etc. This is a specialized role but most have a strong systems engineering/admin background with a deep understanding of the OS; should understand cryptography. You should like to dress in black too
- Performance Engineer (aka capacity engineer, scalability engineer) – this role could lie in engineering or QA as well, depending on the company. You’ll be devising systems or methods to measure the scalability of your production system or product. You should have strong coding and scripting skills; ideally experience with many of the automation tools out there.
Helpdesk and IT Support
These roles are typically staffed by folks without a computer science background but still excel technically – they are great entry level IT jobs and can often lead to positions within operations, QA, or engineering. These are the classic thankless jobs – you only hear from people when something goes wrong. Make no mistake, though, these folks keep a company ticking and are very important!
- Support Engineer (aka Infrastructure admin, technical support admin, helpdesk admin, desktop support admin) – a classic technical support administrator; you handle everything from customer desktop support, technical phone support, troubleshooting systems, and building new systems for employees. You need to have good customer services skills and a sense of prioritization
Quality Assurance (QA)
QA folks are responsible for the testing and quality of inhouse written software before it is released. They typically signoff on software before it can go live. Depending on the organization, QA can be staffed by people with lighter technical skills – however, orgs are increasingly demanding the same computer science background as developers. As more software is written, there is a need to automate infrastructure so manual testing is no longer required.
- QA Engineer (aka QA analyst, software tester, test analyst, test engineer, product assurance engineer) – you will be writing test plans and cases by working closely with engineers then executing those cases. In some places, this is all manual (black box testing). However, most companies now want engineers with a deep understanding of the code so they can write test frameworks and large systems that can crank through test cases in an automated fashion. You should have good coding and systems skills since you may be managing prod-like test systems. Continue reading