Transitioning from IT Support to Web Development.

Topher Dunlap
7 min readSep 1, 2020

--

For the past 6–7 months I’ve been using part of my free time to study software development. I’m also currently enrolled in a coding boot camp for Full Stack Web Development. Early on in this journey I attempted to find information that would illuminate the questions I had about how difficult it might be to transition from something like an IT support role to a software developer. Being in the thick of it now I feel like I’m able to help shed some light on this for those that may be considering a similar path. Often times non-technical people have a hard time distinguishing the difference between IT and software development. As an analogy I’ll describe it in this way. Let’s say you work at a tire shop that specializes in changing tires and doing oil changes. Or let’s say you work at an auto body shop. Having the set of expertise to work in these places doesn’t necessarily mean you’ll know how to rebuild or fix an engine. Even though you’re a professional in the automotive industry each subset of skills could have its own career path. Technology is no different. Being an IT professional doesn’t constitute having knowledge of how to write software to make an application. Even if they exists in similar worlds they aren’t necessarily the same thing.

Background

It’s important to summarize my technical experience to better understand what my “starting from zero” point was when I began diving into coding. I was a Support Specialist with a creative agency for about 5 years and before that a health care company doing a similar position for about a year. Even before that I was in a role that required limited technical abilities. So we’ll talk about what skills I was able to acquire as a support specialists and how they’ve enhanced my journey into web development. I’ll list them and then expound on each.

  • Bash/terminal/command line.
  • Understanding information flow and application structure.
  • Understanding of scope.
  • Understanding the importance of details and thoroughness.
  • Automation.

While some of these listed are attainable in other careers or settings it’s important to frame the experience in the context of a technical role. Let’s start with the first bullet point.

Bash/terminal/command line

I was always of the mind that every other IT professional had more knowledge about this than I did. It was partly assumed I would eventually pick it up as part of my duties as a support specialist. So over the years I took a couple short “classes” on Codecademy and Skillshare for bash/terminal. But that was the extent of my training besides asking a more sr. tech to help explain something. As it stands I’m not sure I would say it’s one of my strongest skills I can say I definitely knew enough to make it by. I could write basic shell scripts, but would also need to google how to start them. I knew how to use a ‘vi’ editor and change permissions and posix on directories and files, rename, create, move and destroy files. But that was the extent of my knowledge. Enough to be “dangerous”. For now this skill has come in handy when interacting with Github through the terminal or creating new directories or files for coding projects in my IDE. At this time I have not used this skill much outside of that scope. Though it may come in handy down the road!

Understanding information flow and application structure

The flow I’m referring to has to do with how local or cloud based applications send and receive information and how all the parts of an application make a whole. For example, part of my job would be trouble shooting issues with local applications that our IT department had little to no experience supporting. Understanding how a plist file, a cache, or preference folder can have negative effects on an application launching or functioning properly was essential to problem solving a myriad of technical issues. It would allow us to help identify exactly where the problem was occurring. This would become essential in continuing to develop my trouble shooting skills in coding. Understanding where in the flow a function or a bit of code is malfunctioning as part of the whole is important to debugging, troubleshooting and developing a great application.

Understanding of scope

Scope in this context is how an application/database or process interacts with and may be dependent on the overall technological ecosystem at a business/department. This is important to know because if you decide to remove, add or adjust one of these parts it may have an effect on one if not multiple pieces of the ecosystem. This knowledge translates to aspects of coding too. For example, let’s say we have a JavaScript file that contains multiple functions all working together to process changes to an HTML file. If one of these is changed it may have a ripple effect on other functions and how they do their jobs.

Understanding the importance of details and thoroughness.

In coding this is essential. A missed semi colon, carriage return or typo could completely down a feature or even your entire app. While a support specialist one of my responsibilities was to enter data into a number of databases or even make changes to something like our DNS. One typo or mistake could make an entire data set inaccurate or completely knock out our companies computers from connecting to our servers (like a typo in the DNS). This experience really taught me to be careful and aware of what I was doing when it mattered most. If I wasn’t sure about sending a command or making an edit I would double and triple check it. If all else failed I would ask someone to double check my work for me. I can tell this skill will be essential in the programming world as I’ve already caught some of these slips saving me valuable time in debugging code.

Automation

This was the last step before leaving my technical support role and one that I would encourage others to make that may be thinking of making the leap from IT to software development. While working in support I was able to make a couple simple apps to help make my life easier. Some used a mixture of shell scripts and “drag & drop” parameters in Apple Automator. Others like my Apple TV app was made in xCode, but didn’t contain any real coding. I eventually started studying and learning software development more seriously early December of 2019. I was still a support specialist and began considering the journey to web development. I started a number of courses like, CS50, Udemy (App Breweries complete web development), Codecademy C++. However I still found my knowledge was lacking enough that I was unable to create any more meaningful applications or automation from scratch. It seems that in order to make an app from start to finish you have to have relative mastery over at least one language. You’re only doing yourself a disservice by bouncing around trying to learn a handful of languages all at once. By the end of my tenure in support I was able to automate at least one process using Python that I was proud of. I learned Python from CS50 (highly recommended course) and I was able to automate a process of creating emails to send out to users who’s passwords were close to expiring. The Python script imported and parsed a .CSV, creating and addressing emails to users. A simple yet effective script and it took me all of thirty minutes and saved hours of churning out emails by hand. If you’re able to a learn coding for your current position it can add immense value for your employer. You may even be able to convince them to pay for it! Practice and motivate yourself to automate tasks you find boring or repetitive. Find issues facing your team and evaluate if it could be solved using automation or another kind of coding. This kind of experience helps fill out your resume and boosts your ability to land an official role as a software engineer. Even inside the company you already work for.

Summary

Whether you’re unsure if your IT skill set will boost your ability to excel at learning software development or if you’re worried that you’ll fall short. You’re not alone. More than likely if you’ve had limited experience coding in your current IT position, learning something like a computer language will be difficult. Having experience in technology helps immensely compared to someone that has little to no experience, but it doesn’t make learning a new skill a walk in the park. Consider however, all the places your IT experience can be of benefit in your web development journey. Be open to discovering and leveraging these experiences and strengths in making a smooth transition into a new career. At the end of the day your IT background will aid you in be coming a well rounded developer. You’ll weather through troubleshooting and debugging challenges, keep your cool in hot situations and will help to provide insight for the bigger picture others may miss. If you’re seriously considering the change, take the leap!

--

--

Topher Dunlap
0 Followers

I'm a full stack software engineer writing about my experiences going through a coding bootcamp.