My career path
- End user help desk support - 25k ~2 years
- Network Operations Center - ~30k - 50k ~3 years
- Network Operations Center (Changed Companies) - 57k ~1.5 years
- Joined Security team - 64k - 75k at end of ~3 years
- Joined different copany - 90k plus bonuses and stock
- Same company, more specialized role, 130k plus bonuses and stock after 4 years
- Same company, more specialized role, 145k plus bonuses and stock after ~4.5 years (salary adjustment)
I threw this together not knowing anything about the person I am writing for or what their level of familiarity is with any of these topics.
Big places to learn from
- Udemy - buy one course at a time. Always buy the course signed out of their software, its available at huge discounts
- Pluralsight - subscribe and get access to a large number of courses, different plans
- acloud.guru - cloud focused training, but some other stuff too
- Free Code Camp - https://www.freecodecamp.org/learn/ - https://www.freecodecamp.org/news/join-the-100daysofcode-556ddb4579e4/ - 100 days of code is a challenge lots of folks do to stay committed and on track with it. I never did, i did a few of their courses though, good stuff
There are a bunch of different focuses you can follow. Most of them will follow a core technology and then higher paying positions require you to specialize in that technology. There is not one "basic" or "standard" skillset that covers all of these jobs, but there are some generic skills that are really good to have.
Certifications:
- Good but not necessary. Less necessary with a resume that shows work specific to the area. Certifications are great ways for people to get into tech.
- The "Pluses" - Linux+, Security+, Networking+. They are not typically enough on their own, but give a good baseline of knowledge
- CCNA - Cisco Certified Network Associate - Fundamentals of networking, geared towards Cisco technology, one of the biggest networking equipment vendors
- RHCSA - Red Hat Certified Systems Administrator - More in depth, more pratical test on linux and its fundamentals
- Microsoft Certified Solutions Associate - Entry Level windows Certification
- Familiarity with the commandline
- Running and using applications using a terminal
- bash, powershell, and others
- lots of remote system and services you'd manage do not give a graphical interface to access and manage, being able to use a command line is important and lets you run repeatable and automatable tasks across systems.
- Resources:
- Familiarity with networking fundamentals
- IP Addressing - ipv4 is essential, ipv6 is nice but still not catching on
- Subnetting - how networks are broken up into isolated segments
- Switching and Routing - what they are and hwo they work, at least at a high level
- Networking Protocols - ICMP, TCP, UDP - Don't have to know them backwards and forwards, do have to know the differences and use cases for each
- OSI Model of networking
- Resources:
- https://www.pluralsight.com/paths/networking-fundamentals
- https://www.youtube.com/channel/UCmJJUewPWfnyzvZRrFHlykA from https://jbcsec.com/links/ - There's a section on IT and CyberSec career advice that's really good
- CBT Nuggets
- Operating system familiarity
- Pick one and get good with it. Linux is free and open source and very popular
- How the file system works
- How networking is configured
- How storage is provisioned and managed
- Common services and tools
- SSH, Telnet, FTP, etc etc
- How services are managed
- How authentication and user management works
- Resources:
- Material for the Linux+ Exam
- https://www.reddit.com/r/redhat/comments/8arqd9/rhcsa_study_materials/
- How the web works
- HTTP, SSL/TLS (encrypted http),
- HTML, CSS, basics of javascript
- configuring basics of a web server (apache, nginx, microsoft IIS are the big 3)
- Resources:
- Programming/Scripting
- I am not a developer, but if I had to pick one language, it would be Python, its the most widely used across different disciplines and once you learn on eprogramming language its easier to learn others
- Learn how to use it to do basic and intermediate tasks and automations
- Resources:
- Learn Python the Hard Way
- Code Academy
- Virtual Machines
- Lower the cost of errors when learning
- systems that run on top of other sytems that can be created and destroyed easily.
- If you've ever reinstalled windows, thats an annoying and long process, virtual machines can be set up once and forgotten.
- Git and Version Control
- Learn how code is committed to a code repository, how it is shared and cooperated on
- Resources:
Most of these I only work along side, the ones I know most about are Network Engineering, Cybersecurity and System Administration.
Software Development - Pick a language or type of engineering
- Full Stack Engineering - Web applications and back end supporting code
- Front End Engineering/UX/UI - Web Applications, user experience, user interface, designing accessible sites and tools Network Engineer - Learn network fundamentals, eventually specialize in one or more vendor's technology stack Systems Administration - Windows Systems Adminitration - Linux Systems Administration - macOS
- Linux makes up the vast majority of back end systems. Windows makes up a very significant amount of user facing (end user desktops, authentication and directory services,) and back end services (Databases, Administrative systems, Web Servers). macOS is a small part but important for many companies, tends to be a role managing user facing systems (both simpler help desk jobs and large scale system administration and orchestration roles). Many jobs require you knowing something about at least one of these. I personally think linux is cheaper and easier to learn than windows adminsitration, there's good reasons to disagree though.
Cloud System Administration/Cloud Engineering
- There still is and will be a significant amount of systems people run "in house" in their own data centers they manage or rent space from a provider to host their own systems in. A very large number of new systems or rebuilt older systems are being deployed in the cloud (services like Amazon Web Services, Microsoft Azure, Google Cloud, and a bunch of smaller players).
- Pick one of the bigger services and specialize in it. AWS has the biggest customer base by far, then Azure (often but not always companies using Windows based systems), then Google Cloud.
- Systems are built on a large scale in an automated fashion. Helps to having some programming or scripting knowledge.
- This is a very fast moving part of tech, but theres a ton of need for skilled people here.
Cybersecurity
- How systems are attacked and secured. Offensive and Defensive security are two main branches, but a bunch of disciplines under that.
- Application Security - Attack and secure web applications, test for weaknesses, advise and work with development teams to fix them
- Incident Response - Detecting and responding to security incidents or hacks
- Penetration Testing - Performing structured assesments of a company's security policy by hacking them, stricter scopes and rules of engagement, simulated attacks of systems
- Red Teaming - Performing less structured assesments of a company's security policy by hacking them, less strict scopes and rules of engagements, simulates "real world" attacks
- Vulnerability Management - identify gaps in security configurations or systems, track and remediate the fixes
- Compliance and Audit - Apply industry standard metrics and standards to an organization to measure and guide their compliance