Feel I'm stuck in helpdesk/tech support roles, want more from career
May 14, 2021 7:31 PM   Subscribe

I graduated HS in 2012 at 18, and then went to community college but found their computer science program very lacking (Despite programming being my ultimately desired career), so I started a small online retail business by myself and ran it until I felt out-competed and decided to go into office work. I've been working my way to more and more technically-focused roles, starting from a payroll position in 2017 to a software integration position in 2019, to helpdesk IT in 2020, to a software technical support specialist today in 2021. I've done fine at these positions, but have felt increasingly unsatisfied and feel like I am falling behind my peers. I do not have any certs, and have mainly been getting/changing jobs through demonstrating eagerness, quick learning, and previous job experience/co-worker references. But now I feel I've hit a serious wall, described below.

I've taken these technical, computer-focused jobs of increasing complexity feeling they'd be great stepping stones to a programming position, but I'm realizing I'm at the point of needing certs, portfolio pieces, and/or formal programming knowledge/training to climb higher. I've done some digging and serious soul-searching, and work on subjects such as RPA/other kinds of hardware/software automation as well as Chemical/material simulation have ultimately caught my eye.

I am certainly capable of learning and steering myself down different career paths, I just need help finding a good place to start. I started the business I ran for 5 years on an earnest suggestion from a friend, but something like this feels more difficult to just imagine up, requires more confidence and commitment.

I'm sorry this post is so long, all of this has been on my mind a lot lately and it's hard to write enough detail to satisfy my anxiety over it. Any suggestions of positions, certs, industries, companies, programs, etc would be highly welcome. No wrong answers.
posted by wafehling to Work & Money (13 answers total) 1 user marked this as a favorite
Best answer: You sound like a bit of an autodidact, so I'd recommend picking up a few programming books and working through them, if you're not already baseline-proficient in at least one language. My old boss had my entire team (even those of us who'd been programming for 10+ years) go through a basic Python book that started from essentially "hello world" and went all the way through advanced language features. It was a surprisingly valuable experience as an experienced developer, and I think it would be pretty accessible to a beginner. I don't have my work computer open right now, but I can look it up and get back to you.

Do you have a language you want to learn/work in? If not, probably figure that part out first. The big-picture concepts are pretty broadly applicable across languages, for the most part, but learning one deeply gives you a base to expand from. Lately I've been writing a lot of manufacturing test/QA hardware automation in Python, but I'm not sure exactly how much that overlaps with RPA (new term to me). Simulation tends to require lots of math, so depending on exactly what you want, you may want to look into numpy/scipy/gpu acceleration with Python, or a systems language like C/C++/Rust. I've done a lot of graphics in C++ (and would like to revisit that in Rust). There's plenty of online documentation for all of these, and books..

One thing I found really helped me when learning was to have a project -- I'm bad at learning things for the sake of learning, but I will smash my face into the learning cliff endlessly if I'm trying to get something done. If that resonates with you, pick something small and bounded, and try to build it. You'll probably get frustrated and have a few false starts, but building something concrete helps give purpose to all the learning...
posted by Alterscape at 7:55 PM on May 14, 2021 [1 favorite]

Response by poster: "I don't have my work computer open right now, but I can look it up and get back to you. Do you have a language you want to learn/work in?"
I would like to hear that book title very much. I've definitely done the most work in Python, with the 2nd and 3rd being VBA and C++, with a bit of C# and Java mixed in. I'd say Python, VBA, and C# all seemed to click with me the best.

"Lately I've been writing a lot of manufacturing test/QA hardware automation in Python, but I'm not sure exactly how much that overlaps with RPA (new term to me)"
RPA is a relatively new term to me too, but it turns out I did it for years. Remote Process Automation is basically automating dull, repetitive, simple tasks like changing cells in a spreadsheet or using a clunky software UI when you don't have access to the API/backend of things. I used it extensively to automate using the god-awful browser-based payroll software that was slow and needed constant manual correction, 1 day at a time. I used AutoHotKey mainly for it lol, but there's professional-grade software with machine learning and image/pattern recognition now that I would've killed to have access to. It seems like a fascinating area of software that I can really appreciate.

Automating hardware testing in python is definitely related at least, and is the sort of thing I'd be very interested in.

"Simulation tends to require lots of math, so depending on exactly what you want, you may want to look into numpy/scipy/gpu acceleration with Python, or a systems language like C/C++/Rust."

Yeah, that's the main reason I didn't focus in on it. Pure high-complexity semi-abstract math stuff tends to scare me off (Calculus in college was... not my bright spot, but algebra is flat-out enjoyable for me), and I'm sure the right approach to it (Like simulation modeling) I could make it click much easier with me.

"One thing I found really helped me when learning was to have a project -- I'm bad at learning things for the sake of learning, but I will smash my face into the learning cliff endlessly if I'm trying to get something done."

I think you hit my main hurdle right on the head, here. I've tried several times to work through those C++/python/C# guides to just sort of broad-spectrum brute force my way into learning a language, but the only times I've ever been able to keep that pace up were when I had something in mind for once the basics were stapled down. I learned tons of VBA over a couple months to learn how to automate work I would've otherwise had to do in excel, and when I was in high school I spent about a solid year at least semi-consistently working on making a game in python with the libtcodpy library.
Just trying to cram contextless, unapplied information into my head simply doesn't work. If I can't convince my mind what it's trying to retain has a use, it just completely refuses to learn. (As you might imagine, school was rough)

That is why I want a programming position so badly. If I had someone saying "Hey, here's your job, we pay you to make this specific task happen, here are your tools and rules, have fun" I'd be in heaven. I'd be able to dedicate myself to my work like nothing else. Most of my career has been spent doing a job that feels too simple/unengaging/uncreative to really hold my attention, while I hunt for ways to actually create something and dig around in the machine to make it run better.
posted by wafehling at 8:22 PM on May 14, 2021

"algebra is flat-out enjoyable for me."

You sound like you should get into 3d graphics (though maybe I'm biased). How's your linear algebra? If you can do basic algebra you can learn the arithmetic for matrix multiplication, which is 99.9% of what you need for every cool 3d thing you've ever seen in a game. Anyway, all you really need to do is understand how the symbolic manipulation works (hey it's algebra again) and that unlocks a ton of really cool stuff. (Linear algebra is also behind a lot of AI/ML stuff these days, which is why tensorflow and pytorch with CUDA are such a big deal). Have you ever tried Unreal or Unity? I'm not sure I'd recommend that as a first exposure to programming, because there's a lot there, but "Oh! If I manipulate the symbols correctly and write the right code, I can make cool-looking things" is what got me into math and serious programming after a liberal arts undergrad (tho I'd been involved in software for a long time, so, it's a bit of a non-traditional story). There's also Pygame, if you want something with less "fancy authoring environment I can plug a few scripts into" and more "I am writing code!"
posted by Alterscape at 8:52 PM on May 14, 2021

Response by poster: 3d graphics and me go waaaaay back. I spent years fooling around with the modeling system in Second Life around the original launch time, well before I'd actually learned algebra I was doing mentally homebrewed versions of it to make shapes the right dimension and understand how things should be proportioned. I've fiddled with it on and off since for pretty much up until literally earlier today. Blender, Anim8or, Unity, Game Maker, I've certainly messed around with all of them.

I think the main hangup for me with 3D stuff is the same main hangup I have with most things that have some element of visual artistic expression that I've attempted since hitting the age of like, 10: I can't avoid spiraling into a cycle of "This looks horrible and ugly and I simply do not have the gift of visual artistic ability" Which I know is ridiculous and illogical and not how this works, but it's proven devilishly hard to stamp down with everything from 3D modeling to pencil drawing to pixel art. It's very deeply rooted, and is also completely absent when writing code even if it's the ugliest pile of awful stapled-together spaghetti you've ever seen.

Pygame was basically my second choice to libtcodpy when I was deciding what to use! It seems powerful but I was scared of having to make graphics for it lol
posted by wafehling at 9:06 PM on May 14, 2021

FWIW my first computer job was in shipping/receiving for a small retail place. I ended up supporting the products we sold for our customers having problems, which eventually turned into computer repair/consulting business. Then I got a job for a tiny startup as office manager/computer support person. When I had to look for the next job I left off the office manager part on my resume, which led to increasingly bigger/better things. I eventually ended up doing sysadmin work, setting up racks of computers on a daily basis, which involved setting up the OS by hand using a checklist. That was boring so I learned to write Perl so I could automate myself out of a job. I've never been primarily a software engineer, but large parts of my jobs have required writing code. Reading computer books truly put me to sleep. I've learned most of everything I know by needing to get something done and banging my head against it.

The point being, opportunities may come up that aren't exactly what you want, but they may lead you there. For instance, working at a company that does what you're interested in using your current skills may open a door to do what you want. You may be able to do some programming work that isn't strictly part of your job which proves you are capable and gets you noticed. You do have to be careful about this though as it depends on the individual company as to whether they would allow you to grow into a roll that wasn't what you were originally hired for.

Another approach of course is to go back to school and pursue a CS degree. I've worked with a bunch of great developers who have random non-CS degrees, so it's definitely possible to be a developer without a CS degree, but getting one does give you a good foundation. And whatever school you attend should have internship programs that will help you get that critical real work experience and the start of a personal network in the business.

Lastly, once you have some base skills, find an open source project in an area you're interested in and contribute to it. Or make your own project (find a problem in the area you're interested in and solve it, even if it's by writing a simple little program). It's pretty common to put a link to your github profile in your resume. People will definitely look at it to get a feel for how often you write code, how complex it is and its quality (is it documented? Are there useful comments? Is the code written idiomatically for its language? Have you worked on mid-sized projects or is it just a few short programs?)

Anyway, best of luck!
posted by DrumsIntheDeep at 9:12 PM on May 14, 2021 [2 favorites]

have mainly been getting/changing jobs through demonstrating eagerness, quick learning, and previous job experience/co-worker references

Yep. That's how it works.

Those co-worker references are what everybody who has just come through a formal CS education spends their next ten years trying to collect. If they're good, those are gold.
posted by flabdablet at 11:29 PM on May 14, 2021 [1 favorite]

Do you really want to be a developer or are you interested in IT in general? If the latter you might looking into data networking. There are a LOT of developers and quite a few server admins but there's never as many network folks so the market always seems pretty good. It's interesting work and automation is an increasing part of it so python and such can be involved. The network team frequently owns firewalls as well so there's a security aspect.

The downside is mostly annoyances that are generic to IT, mostly people constantly saying it's a network problem when it's really a server problem or a database problem or they didn't ask us to open the firewall. That and people showing up at your desk to say the project they've been working on for six months is going live next week but they've just figured out they need to use the network.
posted by Awfki at 6:29 AM on May 15, 2021

I'd say that working through Head First Python (which may be the book Alterscape was thinking of?) and Fluent Python would give a pretty solid background in Python.

hardware/software automation

Depending on what you mean by software automation, DevOps is very hot right now and is something your experience doing tech/software support can be a positive in.

Cloud is also massively in demand and Microsoft is giving away free training and certifications in Azure.
posted by Candleman at 7:38 AM on May 15, 2021 [1 favorite]

Fluent Python (the 2015 edition) is what I was thinking of.

Also, I know I'm sort of dominating this thread so I promise this is my last post, but, have you seen/read Ira Glass on the Taste Gap? As a person who's torn between traditionally creative stuff (visual art, mostly, but also music) and technical stuff, this was really powerful to see spelled out that way when I first encountered it. For whatever reason, I have the same experience that you do, OP -- "good enough" code is totally fine with me, but "good enough" art bothers me. I personally find code easier than art easier than music, and I think it has to do at least somewhat with the relative ease of self-editing. I can hold the structure of a program in my head at multiple levels and think about how to make it better, and I've done it so much I have a pretty decent intuition (and I know what tools to use if I need something more solid than intuition). I can look at an art piece -- I can go back and edit it if I need to, because I work in digital and a lot of tools exist. But man.. what even is music?

It might be helpful to look at rapid prototyping as an ethos. Game designers call it "grey box" -- implementing the game logic with the minimum art to communicate the idea. More mainstream developers have "get to the minimum viable product (MVP)" which is another way to rapidly evaluate if ideas make sense without finishing everything. I do a lot of "programmer art," which is a few notches above grey box but still something where I know an actual artist is going to come back later and make it better.
posted by Alterscape at 9:14 AM on May 15, 2021

The terror in being a hiring manager in IT is that there are folks out there who can code but who can't or don't deliver completed work. You describe yourself as the opposite, you get stuff done, but you don't code. I agree with the advice above to pick a language/stack, and find a way to learn it. Lots of programmers devote personal time to keeping up with the newest tools.

Given your variety of experience, I think you are better prepared to a leadership position in something you know the to jump to something different.

Don't compare yourself to your peers. There is only one guy at the front of the line.
posted by SemiSalt at 2:29 PM on May 15, 2021

A number of years ago, I had a Python book I started working through that taught by making games. This looks similar by the description.
posted by kathrynm at 3:26 PM on May 15, 2021

There are programming bootcamps all over the place which might be a good option for you I used to scoff at them thinking they were taking advantage of people but... My current employer has three employees who came direct from bootcamps and they're doing great and thriving. Management likes hiring junior employees from bootcamps because they come in with a good set of practical skills and they are really eager to prove themselves and kickstart their careers. The people who go through bootcamps benefit hugely from the alumni network as well.

The biggest feeling i get from your post and comments is that you could really benefit from some kind of structure, something to focus you and shape you so that you are useful to employers.
Bootcamps are designed to mould you in exactly the right ways to start you down a career path - frontend dev, backed dev, devios, data scientist, data engineer, etc.
posted by PercussivePaul at 5:13 PM on May 15, 2021

Response by poster: Thank you all for the advice and suggestions. They've all given me a lot to think over and a lot of promising areas to reach out into. Thank you!
posted by wafehling at 8:27 PM on May 15, 2021

« Older Media Monitoring and Analytics: not for brands but...   |   push it real good Newer »
This thread is closed to new comments.