IT Careers Guide
This is a presentation I usually give at the end of the semester to my students who are unsure of their career plans. Unfortunately, with the insanity of starting a new job at the end of the semester, I forgot to do the presentation in both classes I was teaching this semester. Instead I’ve written down my thoughts.
The purpose of this guide is to align of the coursework students learn at UMBC with the kinds of jobs and tasks these students might have when they enter the workforce. For the most part, the coursework at UMBC is legit, and a good student at UMBC would be a valuable asset to any IT organization.
The main disclaimer: I am a biased individual and I’m only speaking from my own experiences. I try to be transparent about my biases in class and I’ll do the same in this document. I’ve never been a manager, but I know a few people who’ve been in senior management IT positions who would agree with most of this.
Certifications?
If you’re a student at UMBC and you have the money ($200-$300 each) it might be worth it to you to get certifications. I can’t tell you which certifications to get because it really depends on the types of jobs you’re looking for. The best advice is to see what kind of certifications employers for entry-level jobs want and get those. The most common “basic” certifications are A+, Network+, Security+, and if you’re really interested in networking, maybe getting the basic CCNA certification. Some kind of basic certification in a cloud platform like Azure or AWS might also be helpful on the software side. Good employers on the software/applications side will be more interested in your portfolio than certifications, so class projects or sample mobile applications you’ve created are helpful.
Hardware Jobs
Network Engineers – (IS 450, IS 451, IS 452). Networking jobs can take various forms. At the most basic level, this involves physically installing networking hardware and wiring buildings with network cable. At a more advanced level, these jobs involve logically configuring networks (IP addresses, subnetting, etc.). Networking jobs increasingly involve more programming and data analysis than it used to, especially with the software tools needed to monitor traffic and security of these networks.
In my opinion, networking skills are ideal for those who want to enter the cybersecurity field, since most cybersecurity attacks happen at the network level.
Server Engineers – Server engineers configure servers, patch those servers, can serve as database administrators, and maintain an organization’s directory (LDAP used to be discussed in IS 310 with the previous textbook but it’s not in the current book). Lately these people configure virtual machine environments like VMWare.
If you take either of the IS 451 variants, you’ll learn some server stuff by proxy but the department doesn’t really offer specific server classes. I think that’s because a lot of server knowledge is specialized and specific to the organization you work for. In my experience most server engineers are former help desk technicians who graduated to server work.
Ultimately people who are server engineers get certifications related to the server technologies they work on. For example, Windows Server certs or VMWare certs.
Cloud Engineers – Many organizations have moved to the cloud which greatly minimizes the need for traditional server people. Then again, there are specialized skills that are necessary to administer certain cloud environments. These include Amazon and Azure environments, or on the application-side, SharePoint/SalesForce/etc. administrators. If there is a cloud-based software your organization uses, there is specialized knowledge that you’d have to be trained on to use that cloud technology. I’ll talk about “the cloud” in a later section.
Help/Service Desk – (IS 310) This is most likely the type of job many of you will get straight out of college. The job involves configuring, deploying, and maintaining desktops/laptops/printers. They also respond to problems from users (tickets) and escalates them to other IT employees when necessary. For example, I’m an application developer and sometimes if a bug is found in my software the help desk receives the ticket, triages it, and forwards it to me.
Sometimes the service desk is split into two groups: One that handles tickets (help desk) and another that handles the deployment and maintenance of machines (endpoint management).
When I ask students what they want to do with their degree, nobody says that they want to work at the help desk for their entire career. If you work in a good organization, you’ll eventually be given opportunities to learn technologies associated with other groups (like servers, networking, etc.) and you’ll either take those positions a few years into your career or you’ll end up applying for and getting a job at a different organization.
There are some people who like help desk work and can see themselves doing it for the rest of their lives. While help desk is considered entry-level, you can end up making a decent salary doing it.
Application Jobs
Full-Stack Developers – In small to medium organizations, a full-stack developer handles all the below functions. I am a full-stack developer in my current job. That means I handle almost all aspects of the development of a software application by myself with minimal collaboration. In larger organizations, the below jobs are separate and done by different people. It really just depends on the organization.
UI/UX Designer/Developer – (IS 303, IS 403) Takes requirements and translates them into user experiences that work for people. Makes sure applications “make sense” to people and look good. It’s not just about how it looks, it’s also about how it works.
Front-End Engineer – (IS 448) Handles front-end web technologies like HTML, Javascript (and associated frameworks like Angular/React/Vue)
Application Developer – (IS 147, IS 247) Handles middle-layer technology like .NET or Java.
Database Developer – (IS 410, IS 420) Writes SQL queries to support above applications. In many applications, it is important to get the database structure correct since a good database design makes everyone else’s job easier.
Data Jobs
People say that data is the future of IT. What’s the point of creating and supporting systems that facilitate data entry if an organization doesn’t do anything with that data?
Business Intelligence/Analytics “Person” – (IS 425) Writes reports and performs ad-hoc analysis from data (usually in databases). Needs to be able to write good queries and some knowledge of data visualization techniques. Common tools in industry for this type of work include Power BI and Tableau, but your organization will most likely have chosen some software and you’ll have to be trained on it.
Data Scientist/Architect/Engineer – (IS 427, IS 428, Grad School). The hottest field in the United States these days. IS 427 is the deep learning/text mining/neural network class and IS 428 is the data mining class. We do cover these topics briefly in IS 425, but you’ll have to figure out which field you’re more interested in. But for examples:
Tesla’s self-driving program is created with a neural network, so if you wanted to train computers to identify images, then IS 427 is the class for you.
If you’re given a more specific problem, like what are the shopping patterns of customers (the recommendation algorithms used in Amazon or Netflix) then IS 428 is the class for you.
If you can take both classes, great! Keep in mind that both classes are heavily mathematical. If you don’t like math, you might run into problems, but if you want to do data science as a career, strong math skills are pretty important.
Also, the IS department does good research in these fields. If you want to really become a “data scientist” then you’ll most likely want to get a Master’s degree, and maybe do some basic research (as part of an independent study) with one of the faculty. Just go through their individual pages and find someone whose research interests you.
Security Jobs
Security should really be a focus of most IT jobs. If every job in an IT department (application developers all the way to network engineers) made sure that they secured their stuff, you wouldn’t need as many dedicated security people.
Security Analyst – (IS 430) Uses tools to identify suspicious behavior or external threats to IT systems. Scans applications, networks and systems for vulnerabilities.
Chief Security Officer (CISO) – Responsible for an organization’s security. Most CISO’s only stay in the job for a couple of years because it’s very stressful and if your organization gets hacked you usually lose your job. This is sometimes considered an executive-level position.
Project Management
Before we get into the non-technical jobs: I have a love-hate relationship with project management. Some of my favorite coworkers in my career were project managers and the people I’ve hated the most in my career were project managers. If you want a non-technical job you have to make sure that you approach the job the right way or you’ll find yourself disliked by your technical co-workers, so please be careful here. I have many opinions on this, and I’m writing this with my own biases based on my own experiences. Your mileage may vary.
I’ll repeat the disclaimer that these are my opinions. I have friends who I respect who will disagree with me in a few places, so this is one area where a diversity of opinion might serve you well.
Project Management Jobs
These job descriptions assume that an organization uses the traditional PMP-based project management methodology. As mentioned in a later section, some organizations don’t employ project managers in the traditional sense.
Business Analyst – (IS 436, IS 437) Works with organizations to identify their business processes. Creates requirements for systems/projects.
Project Manager – (IS 438) Organizes a “project” including the personnel involved in that project, timelines, and the money required to meet those requirements. This is not to be confused with a “functional manager.”
For smaller projects and in smaller organizations, the project manager also does the work of a business analyst. And sometimes for smaller projects the developer can do the work of a project manager for their own work. Normally a project manager isn’t even necessary for many IT projects unless the scope is large enough to necessitate one.
By “large enough” I mean that the project involves multiple technical staff to complete or involves a 3rd party contractor where a budget needs to be more strictly managed.
What About Agile?
A few years ago, my department was trained on one of the Agile frameworks. The teacher mentioned that project management (PMP certification) was flawed and that SCRUM was the hip certification to get. There are so many of these newer certifications.
Every few years, everybody gets the hot new management/process certification, and then we’re told that “the old cert is no good, you have to get the new hotness.” And repeat, and repeat. Makes you think the whole thing is just an excuse to get people to spend money to get these certifications.
You’d think that by now we’d have figured out the best way to manage projects and process. Maybe these people aren’t interested in perfecting or finishing anything. That it’s just a grift (to get you to spend money).
The reality is that you’ll join an organization that uses any number of methodologies, and it’ll be up to you to adapt and get trained to that methodology. Just remember that rules are sometimes necessary but sometimes rules need to be bent to get the job done. Use your judgment.
Management
Here are the typical “management” roles in IT organizations.
Functional Managers – Most IT departments are divided into groups (divisions) listed above. The manager of these groups is the “functional manager.” So, for example, the “server team manager.”
Chief Information Officer – Runs an IT department. Keeps the lights on.
Chief Technology Officer – Focuses on the technical aspects of an organization. For example, if you work for a software company, the person in charge of the technology that the company developers.
Chief _____ Officer – Organizations create positions at the executive level if they’re deemed important enough. For example, “Chief Data Officer” if data analysis is important to them.
When you enter the workforce, you’ll most likely have a functional manager of some kind. This is the person who you submit paperwork to (like time off or calling in sick). The functional managers you have will have the greatest impact on the trajectory of your career. A good manager who looks out for you can greatly help a career and a bad manager who doesn’t can greatly hurt your career. If you find yourself in a situation surrounded by people who don’t want to help you grow as a worker, you might have to leave. It took me way too long to learn this lesson.
In my previous job, I had seven managers in 15 years. Only one of them was good, and he wasn’t perfect (he also happens to be one of my best friends to this day). Here’s how I evaluate managers:
Are they technically competent? I’ve had managers who didn’t have the technical background or competence to do the job. Even the one “good” manager I mentioned didn’t understand most of what I did. Having a technically weak manager isn’t a dealbreaker though; if that manager trusts you to make those technical decisions then you’ll be fine.
I have encountered managers who were insecure with their lack of technical knowledge and overcompensate for this by being heavy-handed. A good non-technical manager should be secure enough to know what they don’t know. Honestly that’s true for people in general.
Are they looking out for you? The best managers should have your best interests at heart. They shouldn’t be an impediment to your success or the organization’s success. Managers who see their employees as steppingstones for their own personal advancement are generally bad. There is nothing wrong with being ambitious, but ideally ambition should not come at the expense of others.
Sometimes you’ll encounter managers who are genuinely nice people, but they’re happy where they are and it is incomprehensible to them that you want to do something other than work for them in your career. These aren’t bad people, but this can be a problem, and I don’t have any advice on how to deal with this situation.
I’ve also tended not to like managers who take “management” seriously. In many workplaces, a lot of managers only spend a fraction of their time managing and still spend most of their time doing the work they were doing before they became managers. For example, the functional manager of a networking team still spends time configuring IP addresses and the functional manager of a development team still does programming activities. In my experience there are very few situations where spending 100% of one’s time “managing” was justified. Try not to become that kind of manager.
Bad managers don’t trust their employees to do their jobs. They insert themselves into situations even if they’re not directly contributing to anything. These people are bureaucrats.