Author Topic: Software, programmer, grad school, p/t jobs? Help!  (Read 2297 times)

throwaway_123

  • 5 O'Clock Shadow
  • *
  • Posts: 3
Software, programmer, grad school, p/t jobs? Help!
« on: October 10, 2016, 08:31:40 PM »
Sorry that this is long. tl;dr - a single programmer slowly turning into a "technical leader" is somewhat bored but unsure if he should go to grad school part-time, find a part time technical job, a fun part time job, another full time job, or some combination of all of the above. Regular poster on a throwaway due to details.
--

Job/Educational background-
I work at a company in the 150 person range that does labor market research and is closely affiliated with the University of Michigan, but not officially so. I have a STEM degree from Michigan, non-engineering, in 2011, with a GPA of 3.26, and GRE scores of 800/800 Q and 700/800 V. I got quite lucky with some relevant research work and timing, as virtually no one with a GPA < 3.8 gets hired here and they usually went to better schools in similar majors. Since graduating I've taken 4 courses in the EECS department, for free through work, in addition to an entry-level course:
280 - Programming and introductory data structures (C++) - B+
281 - Data structures and algorithms (C++) - A-
203 - Discrete Math - B
370 - Computer Organization - B-

Since graduating I've worked as a programmer using SAS (80%), Stata(10%), SQL(40%), and the occasional C#/Python/VBA/etc.(10%). That last bit is me on an island without many experienced resources and that % is about as high as it can go given the nature of the work. Those #s don't add up because a lot of our SQL is pass-through Teradata/Oracle code written in SAS. For the first 2-3 years I primarily did programming, and I've slowly transitioned to a point where I haven't programmed at all at work over the past 1-2 years and I'm likely headed further down that path. We do have plenty of more senior people programming here though, but this path is more valued. I've led teams of up to 12 programmers, communicated directly with clients, created budgets/schedules etc. and worked closely with some researchers from U of M. I supervise 11 programmers and do recruiting for my level and the level below me. There's a somewhat clear path forward for me to supervise the next level up in a few years if things go well. To be honest, I've been very fortunate that my bosses like me and I've advanced as quickly as anyone I've seen at this company, which is especially fortunate given I don't have an advanced degree in an industry where that's valued given we bid for contracts. I'm the youngest, most junior, and least tenured supervisor and the youngest/least tenured at my level, and only one without an MA/MS. My lack of degree probably lowers my salary a few percentage points and will slow me down eventually (a "6-7 year track" instead of a 4-5 year track is possible from where I'm at now). I work 40 hours a week, 8 hours a day anytime between 7am and 630pm, and my job is busy and mostly intellectually stimulating but not super stressful. I take a free bus into Ann Arbor each day. I could take or leave labor market research in an instant.

"Technical leadership" is not my favorite. The problem is that while the programming we do is very far on the sophisticated/difficult side of things as far as the "programming" you see with languages like SAS/Stata/SQL, it's just not that great either after 3ish years. While the code is different of course, the underlying problems just aren't very different from one another (this market compared to that market etc.) so things can get somewhat stale. Unfortunately the other side of things gets pretty dry in this industry too - think red tape, endless schedules/meetings with outside entities too far removed from the data, problem, SMEs etc. to make much progress. As I continue the leadership-side problems seem to grow in number and stake, but not necessarily get harder, just like the programming ones. This has me worried, because frankly the people I work with are smarter than me. I've needed my intense interest in technical work to take me where I am today, and I'm slightly worried that I'll get worse / get lost / stagnate professionally while also being less interested in what I do. I've seen that in myself development wise and in this environment I don't know that will work for me in the long run without falling behind my reputation. But, given the technical limitations I'm not super keen on jumping back to that side of the world either at least in this capacity.

Taking classes and doing some fun coding on the side I've learned that I am very much interested in building applications, working with C++ and C#. However some of this is that the specs for our classes are absolutely beautiful compared to the mess we deal with at work, and for my side projects I get to pick and change direction etc. whenever I want to which is great. Maybe not a realistic depiction of actual jobs. The downside is that while I loved my software classes (and algorithms was easily my favorite course I've ever taken) I really didn't care for my discrete math class and computer organization is probably my least favorite class I've ever taken. These classes also take up a lot of my time without enough breaks as I'd like, often I can't attend class in person, and I really think taking just one class a semester is a less than ideal way to learn (e.g. I haven't taken algorithms in over a year by the next time I really need to use it and I don't have time while I'm taking computer organization to code otherwise really).

Finances-
I have a NW of 170,000, make 85,000 gross, ignoring company match but counting annual bonus, and save 40,000ish. I spend around 24,000 after-tax as Ann Arbor is not that expensive. Over the next 5 years I can expect my gross salary to go up between 4-10k per year, averaging likely around 6. This is nice. Spending is as optimized as I care for it to be, I'd like to be at 750,000 bare minimum to consider myself FI or drastic lifestyle changes. Those changes might include working a few months a year, taking fun part or full time jobs, and outright retirement.

Life-
I'm single and not attached to this state in any particular way as I'm originally from Indiana and my family has since spread across the country. I don't like the cold but I also don't like hurricanes, tornadoes, change, or overwhelming heat/humidity. A pet dream of mine is to reach FI, be less single, and spend a year living in NYC/London/ anywhere in the world working for a year at a company there. I'd like to spend more time attempting to not be single any more too.

-------
-------
So, yeah. I'm not overly worried, unhappy, or restless or anything, but I am getting to the point where I don't love my job and don't feel the type of burning happiness I did when first getting into the programming or during my algorithms class. At this point, I love the people I work with and am set up to frankly advance beyond my actual worth in this industry soon and I feel we make a positive impact on the world (we're a non-profit, too). The way I see it I've got a few options:

1) Find a part-time job writing C++/C# code at a place that will help me grow these skills. This could either parlay into a full time opportunity, or be just enough to scratch the itch (like my classes have been at times). This has proven difficult, and I don't really have much of a resume for this. It'd require flexible work times (either entirely, or just 7-9 or 430-630 or something). I don't have the credentials/skills to really compete for contracts either. This would be ideal as I'd learn while getting paid, and not have to commit to a degree program / back out of it later / spend a lot of time on parts of theory I'm not so interested in.

2) Find a part-time job doing other stuff that I would enjoy (the "fun" jobs from above). This could include instructing/tutoring for the GRE, working at a restaurant, working as a bartender. This would provide more variety, allow me to meet new people, and make money in a somewhat relaxing and stimulating way. I'm not the type who would get stressed while working a side job at a restaurant, for instance. This could replace the time I currently spend on school.

3) Find a new full time job writing C++ / C# code. I think it would be very difficult for me to find such a job that would be cost-of-living-adjusted NW-neutral over 3-5 years. There are jobs out there like that of course but a) I'm probably not good enough for them at all, even at a junior level (I know and took classes with people who develop software at places like Google and, in what I saw, they'd get an A- in algorithms without even trying while it nearly killed me) and b) even if I am, I don't have the resume/github to get hired there. Taking something less than this would be a risk: maybe I wouldn't like the technical pieces as much as I hope, maybe I wouldn't be as good at it or I would miss the awesome people at our current place. They also don't pay those crazy salaries you hear about over hear in a small town in the Midwest. If I could assuage those concerns and actually land the gig I'd do this in a heartbeat.

4) Get a graduate degree in computer science part-time. I don't know that I would get in to Michigan or the online program at Georgia Tech, but those are my main choices for computer science. I like the idea of doing it at Michigan with those sweet, sweet on campus interviews, but it would take me 4-5 years and I'd have to take more classes in the "computer organization" vein. That's a long time to be super busy, and I wouldn't really be able to attend class in person much at all. Georgia Tech seems to have more software focused classes, maybe, and is geared towards professionals and part-timers. I don't know that their online program is going to be worth a damn on a resume though as it is so new - I've stalked a bunch of people on Linkedin but they seem to mostly be people already with awesome jobs/resumes rather than people using it as a stepping stone. Graduate degrees in computer science also aren't super highly regarded in the industry compared to other industries as I understand it.

5) Get a graduate degree in something like data analytics or another programming focused discipline. This might scratch the itch of writing more code, especially applied code vs. computer science code which may be what an MS in CS is focused on more than I realize. I'm worried about this as it is super expensive at most top schools and would again be 3-5 years if I want to make it remotely a good deal financially.

For #4 and #5, I'm focusing on very good schools even if I'm not qualified as those are the ones I see as having a chance at landing me the type of job I'd love. I'm not at all a school snob, as I sucked at school, but I see this as a thing where if I effectively want to switch industries to software engineering after getting a degree and have it remotely close to worth it financially in 5-7 year window I need to have a resume with one of those degrees land on a hiring manager's desk who is one :). I also am not considering full-time programs as missing out on 100 thousand net in salary while paying up to 100 thousand is just not going to make sense #s wise.

6) Try to find part-time / remote work doing SAS type programming. We're allowed to work in other industries, though not with U of M, in this capacity. I don't have a lot of experience or knowledge in this area. I'd be happy asking my current job for this too if I could get paid regular-time for additional hours, but that's not how that would go.

7) Keep taking classes as they are interesting to me, and/or work on contributing to open source projects and my own projects. Either be satisfied with that, or try to leverage that for other opportunities.

--------

So, what do you think 90000 words later? Am I hilariously off base? Am I just a complainy-pants who doesn't know how good I've got it? Do you have suggestions for me? Do you have follow-up questions? Do you have a low-paying C++ part-time position for an underqualified young man with excellent facial hair??

humbleMouse

  • Bristles
  • ***
  • Posts: 300
  • Location: Minneapolis
Re: Software, programmer, grad school, p/t jobs? Help!
« Reply #1 on: October 10, 2016, 11:18:03 PM »
I am also a programmer who has grown tired of problems that are similar.  I think that you have many more options than you list out.  What you describe is very impressive to the private sector software world.  If you are good at selling yourself and your skills, you could land a vast array of tech related or leadership related jobs.

You don't need to go back to school to study data science.  With the nature of the work you have already done - you have the technical skills to manipulate and compare data yourself.  Those are extremely highly valuable skills. 


spicykissa

  • Stubble
  • **
  • Posts: 158
Re: Software, programmer, grad school, p/t jobs? Help!
« Reply #2 on: October 10, 2016, 11:56:39 PM »
My husband is a programmer, first at a start-up and now an industry giant. He would have much better advice for you than me, but alas he does not read MMM. Two things I think he would say, though:

1. Do NOT get hung up on the academic side of computer science. My husband (a 4.0 physics major who bombed the GRE, if it matters) interviews programmers regularly, and while a masters/PhD from a well-known school might help a little, people HAVE to be able to demonstrate their ability beyond the degree. A good github (can't believe I actually know what this is!) is worth way more, and you don't necessarily need school to do cool projects. I would only get the degree if you want it for yourself, and only if you can do it for cheap/free.

2. If you go further into the "leadership" role, do it with your eyes wide open. My husband has actively avoided it, because he is like you and needs to be working on difficult, interesting, technical problems or he is miserable. Also, you will lose skills--if you are already to the point where you haven't programmed at work in 2 years, you are pretty far out already! You realize you are not as naturally talented as some at programming, so this other track probably comes easier to you, and may even be more lucrative in the long run (the $ is good either way, honestly). But is it what you want to do?   

I like options #3 and #7 the most, if my vote means anything. It never hurts to look--you might be surprised! And if you're not tied to location, even better. 

formerlydivorcedmom

  • Pencil Stache
  • ****
  • Posts: 698
  • Location: Texas
Re: Software, programmer, grad school, p/t jobs? Help!
« Reply #3 on: October 11, 2016, 01:45:00 PM »
I've been in IT for 16 years, and I've had multiple cycles of getting heavily into supervisory activities and then getting bored and pulling back to be more technical.  So you are totally normal to be feeling this way!

I would not continue down your current path unless you are either a) confident you don't want to be a full-time developer again or b) confident you can dig in and bring your skills back up to speed quickly.  Like you, I'm not as technical as many of my colleagues.  I work hard and can pick it up and deliver a solid product, but I would never ever be able to work for Google or Amazon.

If you want to be a programmer, then get really good at selling yourself and networking.  I moved from a job doing Lotus Domino development to .NET and then to BI (report writing/dashboards).   The first transition (totally different technical worlds) was due to networking and a hiring manager who valued intelligence over training; the second was because I built a terrific resume and, again, found a hiring manager who valued intelligence and curiosity over a specific skillset.  If you aren't good at selling yourself, then it might be worth it to go back to school. 

At this point, I hope to retire within the next 10 years.  I'm now feeling more comfortable about leaving the techy realm and heading into project management (my talents lie in organization and bossing people around).  If I were still 15 or 20 years from retirement, I'd stay more technical.

Although, if I were still 15 or 20 years from retirement, I wouldn't be as concerned about a 3-year ROI on a degree.  Look at the long term.

throwaway_123

  • 5 O'Clock Shadow
  • *
  • Posts: 3
Re: Software, programmer, grad school, p/t jobs? Help!
« Reply #4 on: October 12, 2016, 08:34:32 AM »
Thanks everyone, this has been helpful. I'm tentatively thinking that I might continue looking for a part-time developing gig, start tutoring in January if I haven't found anything, while passively looking and possibly applying to full-time development positions. Once January comes I'll have a lot more time outside of work. I can use that time to work on some side projects and beef up the GitHub while learning more. I'll do this with the aim of really, seriously applying to full-time work around to start in September next year. The reasoning behind waiting is to get back into more technical things for any interviewing along with the GitHub, I'll find out a lot more about promotional stuff around August, and I'll finish up a thing at work that will look great on my resume. A lot of that is still up in the air obviously. I may also still apply to the Georgia Tech degree in the spring for starting in the fall. That way if I'm able to find anything I'll still get to do some interesting coding and I can apply for jobs/internships with that on my resume too. If I find something, I can either start it anyway, wait a while, or never matriculate. Assuming I get in of course!

Another unspoken option of course is hang out at this job as my savings rate climbs towards 70% over the next five years, and reassess then.

On a related note I signed up to receive additional information from a few data science programs a couple weeks ago. Some of them have called, emailed, or texted me every single day for over two weeks. That, plus a $65,000 price tag even for online programs, really leaves an exploitative taste in my mouth about these programs that was already there to some degree...

letired

  • Pencil Stache
  • ****
  • Posts: 826
  • Location: Texas
    • Needs More Glitter
Re: Software, programmer, grad school, p/t jobs? Help!
« Reply #5 on: October 12, 2016, 09:06:04 AM »
A lot of it might be geared toward the student population, but it might be worth checking meetup.com/googling for some user groups in your area. That might also give you some insight into other options in your area.

I have a friend who is doing the Galvanize data science program as we speak. I think it has been worth it so far for them, though of course we'll know more once the program is over and they have (or don't) a job.

But of course, there is also a ton of free material on both the programming and data science side of things that can help you gauge where you are and what you need to learn. Ex: https://github.com/zipfian/data-science-primer or http://datasciencemasters.org/ or https://trello.com/b/rbpEfMld/data-science


All that said, it sounds like you are doing really really well (financially) and it doesn't sound like you're stagnating too much/at all (financially). Happiness/satisfaction with a job has variable importance to different people, so only you can answer how that balances out. I don't think you have any actually BAD options!

throwaway_123

  • 5 O'Clock Shadow
  • *
  • Posts: 3
Re: Software, programmer, grad school, p/t jobs? Help!
« Reply #6 on: October 13, 2016, 04:57:42 PM »
That's a good point, I'll check those links out soon and look around for some meetups. If I do data science it'll be in a casual format as it won't help me a ton at my current job since i pretty much already have that role. It would provide security I suppose, if things were to happen and I needed to look for other opportunities. Hopefully it could be a fun and low stress environment too, while having something for the resume, since I wouldn't really need to care about GPA. Thanks for the reply!