Three roads diverged in a wood, and I...
April 15, 2015 11:34 AM Subscribe
I am looking into making a career switch into programming/development. Which one of these potential courses of action makes the most sense?
I'm a relatively new liberal arts graduate who's been working in the publishing industry (at roughly the entry level) for about three years. Through various technology initiatives in both of my past workplaces, as well as some coursework I took as an undergrad (a Java course that I liked, some logic/abstract math I liked and was good at), I've started thinking that I may want to switch careers into software engineering. I've always been a little techy/sciencey (not a math genius but into science and problem solving) so this is not a crazy disruption for me, on a personal level. But I have spent the last five years or so writing poetry and working in publishing and research "support," so it's definitely a career change. I've been contemplating how to move forward. So far I've identified three potential paths, and I'm looking for feedback about each and if my impressions are accurate.
1) I currently work for a university, and I can get 50% tuition at the university. The university has an MCS (Masters of Computer Science, professional & coursework only) degree which looks pretty cool; it would put me into debt, but not catastrophically so. It's most likely a very competitive program but I am up for applying. I could stay at my current job and work full time while taking classes in the program in the evening (this is one of their selling points). My feelings about this are that the stability/money would be nice, but I'm concerned that I won't have enough energy or time in the day to work full-time and take courses part-time. Also, I might lose out on the benefits of taking a full Masters program, where other full-time students are doing research and working more related internships. But if this happens, I can always switch gears and go to school full-time, even though I would lose my tuition benefit (I'd probably get a part-time student job/assistantship and take out loans). On the same track, there are other, online-only Masters programs to which I could apply as "safety" programs, some of which are cheaper and some more expensive.
2) I could buckle down and keep trying to get some kind of tech job without a CS degree or solid background in the field. My feelings about this are that it would be great to not take on any debt-- but if I eventually want to be a programmer, I want to be a good programmer. So I feel like formal education would be beneficial. I also think I'd benefit from the structure of formal education. I applied to a junior web programmer position last year that I didn't get; I wasn't surprised, as they wanted database skills, which I didn't have, but it was simultaneously encouraging and a little intimidating (because they interviewed me, even after the coding test! but the in-person interview was terrifying and I felt the impact of my weak skills). Not sure what an appropriate entry-level job would be for someone like me.
3) I recently learned about Harvard Extension School, which seems like a kind of cool middle ground. You don't have to apply, you just jump right in, and you can take reasonably priced courses toward a certificate (or eventually a degree). There is a software engineering certification which requires five courses to be completed in three years. This seems like it could be the best of both worlds-- it's all distance learning, it's a short course that wouldn't overwhelm me while I work, but it would give me structure and professional instruction. I don't mind learning on my own (I enjoy it and can stick with it) but I would also like something to show for it (unlike a MOOC), so this seems like it could work out well.
3a) As a subset of this option, I've been looking at programming bootcamps. Reviews seem mixed, in that it seems you can definitely get a job at the end (as a junior web/app developer, or whatever), but a lot of people say their bootcamp coworkers aren't really up to snuff. Plus, I think I'm actually less interested in Ruby and front-end stuff, to be honest. But I don't know the field as well as I should. This would also require quitting my job while still living/relocating to the city, which is awkward.
Financial notes: In about a year, all my debt (student and otherwise) will be paid off and I should have a nice nest egg put away (between $5,000 - 10,000). I have done freelancing in the past and as long as the program is online-only or long-distance, I can arrange to have very low cost of living if I choose. If it's an in person program-- or a bootcamp-- things are less easy peasy. But I'm not so concerned about the financial side (I can make it work), mostly the practical side-- what will be the best option for my career? What will be the best option for me to become skilled? What's the best investment? I don't expect to be recruited by Google, but I'd also like to be as competitive as possible at my level of talent.
Thanks!
I'm a relatively new liberal arts graduate who's been working in the publishing industry (at roughly the entry level) for about three years. Through various technology initiatives in both of my past workplaces, as well as some coursework I took as an undergrad (a Java course that I liked, some logic/abstract math I liked and was good at), I've started thinking that I may want to switch careers into software engineering. I've always been a little techy/sciencey (not a math genius but into science and problem solving) so this is not a crazy disruption for me, on a personal level. But I have spent the last five years or so writing poetry and working in publishing and research "support," so it's definitely a career change. I've been contemplating how to move forward. So far I've identified three potential paths, and I'm looking for feedback about each and if my impressions are accurate.
1) I currently work for a university, and I can get 50% tuition at the university. The university has an MCS (Masters of Computer Science, professional & coursework only) degree which looks pretty cool; it would put me into debt, but not catastrophically so. It's most likely a very competitive program but I am up for applying. I could stay at my current job and work full time while taking classes in the program in the evening (this is one of their selling points). My feelings about this are that the stability/money would be nice, but I'm concerned that I won't have enough energy or time in the day to work full-time and take courses part-time. Also, I might lose out on the benefits of taking a full Masters program, where other full-time students are doing research and working more related internships. But if this happens, I can always switch gears and go to school full-time, even though I would lose my tuition benefit (I'd probably get a part-time student job/assistantship and take out loans). On the same track, there are other, online-only Masters programs to which I could apply as "safety" programs, some of which are cheaper and some more expensive.
2) I could buckle down and keep trying to get some kind of tech job without a CS degree or solid background in the field. My feelings about this are that it would be great to not take on any debt-- but if I eventually want to be a programmer, I want to be a good programmer. So I feel like formal education would be beneficial. I also think I'd benefit from the structure of formal education. I applied to a junior web programmer position last year that I didn't get; I wasn't surprised, as they wanted database skills, which I didn't have, but it was simultaneously encouraging and a little intimidating (because they interviewed me, even after the coding test! but the in-person interview was terrifying and I felt the impact of my weak skills). Not sure what an appropriate entry-level job would be for someone like me.
3) I recently learned about Harvard Extension School, which seems like a kind of cool middle ground. You don't have to apply, you just jump right in, and you can take reasonably priced courses toward a certificate (or eventually a degree). There is a software engineering certification which requires five courses to be completed in three years. This seems like it could be the best of both worlds-- it's all distance learning, it's a short course that wouldn't overwhelm me while I work, but it would give me structure and professional instruction. I don't mind learning on my own (I enjoy it and can stick with it) but I would also like something to show for it (unlike a MOOC), so this seems like it could work out well.
3a) As a subset of this option, I've been looking at programming bootcamps. Reviews seem mixed, in that it seems you can definitely get a job at the end (as a junior web/app developer, or whatever), but a lot of people say their bootcamp coworkers aren't really up to snuff. Plus, I think I'm actually less interested in Ruby and front-end stuff, to be honest. But I don't know the field as well as I should. This would also require quitting my job while still living/relocating to the city, which is awkward.
Financial notes: In about a year, all my debt (student and otherwise) will be paid off and I should have a nice nest egg put away (between $5,000 - 10,000). I have done freelancing in the past and as long as the program is online-only or long-distance, I can arrange to have very low cost of living if I choose. If it's an in person program-- or a bootcamp-- things are less easy peasy. But I'm not so concerned about the financial side (I can make it work), mostly the practical side-- what will be the best option for my career? What will be the best option for me to become skilled? What's the best investment? I don't expect to be recruited by Google, but I'd also like to be as competitive as possible at my level of talent.
Thanks!
One thing to think about is that internships can be hugely helpful both in learning job skills (which tend to be pretty different from the theoretical stuff you learn as a CS student at a large research university), and in getting a job in the future. You say you don't expect to be recruited by Google, but I don't think that working for that level of company is necessarily out of reach. But if you have interest in working for a Facebook, Google, Apple, etc. you should seriously consider finding a way to do one or more internships during your schooling. Working full time while you go to school will obviously make that harder if not impossible. Not doing internships is FAR from a deal killer, but it will put you at a distinct disadvantage if you're applying to the types of companies that have internship programs.
posted by primethyme at 12:20 PM on April 15, 2015 [1 favorite]
posted by primethyme at 12:20 PM on April 15, 2015 [1 favorite]
50% tuition at your university is a nice deal. I would consider taking undergrad computer science classes to ramp up your skills. Another semester of Java for example, a db class, whatever looks interesting. While doing this, work on side projects that interest you. Put them on Github. You don't need the masters to get a good job if build up your skills. Bootcamps are also unnecessary and expensive.
posted by meta87 at 12:28 PM on April 15, 2015 [1 favorite]
posted by meta87 at 12:28 PM on April 15, 2015 [1 favorite]
Hey! I'm a bootcamp grad (Dev Bootcamp Chicago, Sept. '14). I do have a job, that I started in January, and my employers and coworkers seem pretty content with my work, but I know some people have the concerns you mention. When I went to DBC, it was because I knew I wanted to write code for a living, but I'd been messing around with Codeacademy and Treehouse for a few years and putting it off over and over again. DBC gave me the kick in the ass that I needed to actually achieve my goals. That's what I see as the major selling point of DBC and other bootcamps: you know exactly where you want to go and they point you at it and fire you in that direction. So I guess my one big question would be why you want to get into coding; is this a dream you've had for years that you're finally deciding to chase down, or is this more of a test-the-waters kind of thing?
If it's the former, then a bootcamp could be a good option. Remember, a bootcamp doesn't preclude you from learning more, it just gives you the chops to start getting paid while you learn. I have friends from my cohort who are getting MSCs, except they're also getting paid while they do it, they're getting experience writing production code during their day jobs while learning the theory in their classes, and in two cases the classes are being partially paid for by their employers. Also, there are tons of bootcamps for several different languages. You aren't limited to Ruby or front-end dev work.
If it's the latter, then I would say spend some time working on the various online options and see if you're actually interested in doing this and try to actually build something on your own. The Harvard school sounds like a good option too in that regard. If it does seem like it's really a passion that you want to pursue after you get some more exposure to it, then either the MSC or a bootcamp could be a great idea.
posted by protocoach at 12:33 PM on April 15, 2015
If it's the former, then a bootcamp could be a good option. Remember, a bootcamp doesn't preclude you from learning more, it just gives you the chops to start getting paid while you learn. I have friends from my cohort who are getting MSCs, except they're also getting paid while they do it, they're getting experience writing production code during their day jobs while learning the theory in their classes, and in two cases the classes are being partially paid for by their employers. Also, there are tons of bootcamps for several different languages. You aren't limited to Ruby or front-end dev work.
If it's the latter, then I would say spend some time working on the various online options and see if you're actually interested in doing this and try to actually build something on your own. The Harvard school sounds like a good option too in that regard. If it does seem like it's really a passion that you want to pursue after you get some more exposure to it, then either the MSC or a bootcamp could be a great idea.
posted by protocoach at 12:33 PM on April 15, 2015
Best answer: A big question is what kind of programming jobs you are looking for.
The more "software-y" your dream job is, the more formal education will benefit you. For instance, if you wanted to work for Facebook, Google, Apple, Microsoft, etc., the knowledge you'd get out of taking a full university course in computer science would be very helpful. This also applies to smaller technologically-oriented companies and startups.
Alternately, there are many great companies that specialize in building great Websites and mobile apps for clients. This is a very broad part of the industry: everything from ad agencies to design firms to consulting companies. The sense I get is that these companies are mostly looking for production coding experience rather than academic knowledge, so a coding bootcamp plus some personal or open-source work is a great direction to go.
You say you want to be a good programmer. What does this mean to you? If it means that you want to write good, well-structured code and do projects that you can be proud of, I don't think you need a huge amount of academic experience. On the other hand, if you want to be a good computer scientist -- someone who understands how computer programs work on a deep level, and across areas like algorithms, operating systems, programming languages, networking, databases, and so forth -- then you will benefit from formal education significantly.
posted by goingonit at 1:28 PM on April 15, 2015 [2 favorites]
The more "software-y" your dream job is, the more formal education will benefit you. For instance, if you wanted to work for Facebook, Google, Apple, Microsoft, etc., the knowledge you'd get out of taking a full university course in computer science would be very helpful. This also applies to smaller technologically-oriented companies and startups.
Alternately, there are many great companies that specialize in building great Websites and mobile apps for clients. This is a very broad part of the industry: everything from ad agencies to design firms to consulting companies. The sense I get is that these companies are mostly looking for production coding experience rather than academic knowledge, so a coding bootcamp plus some personal or open-source work is a great direction to go.
You say you want to be a good programmer. What does this mean to you? If it means that you want to write good, well-structured code and do projects that you can be proud of, I don't think you need a huge amount of academic experience. On the other hand, if you want to be a good computer scientist -- someone who understands how computer programs work on a deep level, and across areas like algorithms, operating systems, programming languages, networking, databases, and so forth -- then you will benefit from formal education significantly.
posted by goingonit at 1:28 PM on April 15, 2015 [2 favorites]
+1 on both trying a bit more coursework before jumping into debt (eg. option 3) and sorting out what you see yourself doing.
The field varies, and some parts benefit far more from formal education than others. You don't need to nail down exactly what you want to do, but it's useful to get a general idea of the problems you like to work on.
For example, I sorted out pretty early on that I liked systems programming (as opposed to application development, embedded, webdev, etc.). My specific interests changed over time from kernel programming to PLs to compilers to distributed systems to web infrastructure... but determining early on at a very broad level what I found most interesting helped immensely.
For option 1, it's also important to plan out how many undergrad prereqs you'll need to fill in over the course of the Masters and whether or not those extra credits would push you out of financial coverage.
> Also, I might lose out on the benefits of taking a full Masters program, where other full-time students are doing research
Undergrad/Masters research is largely worthless. It's a good exercise if you're considering going the full academic route (basically as an internship for PhD), but you're unlikely to be missing much if that's not on your roadmap. That being said, reading/discussing research papers with others is a fantastic way to learn.
posted by revertTS at 5:27 PM on April 15, 2015
The field varies, and some parts benefit far more from formal education than others. You don't need to nail down exactly what you want to do, but it's useful to get a general idea of the problems you like to work on.
For example, I sorted out pretty early on that I liked systems programming (as opposed to application development, embedded, webdev, etc.). My specific interests changed over time from kernel programming to PLs to compilers to distributed systems to web infrastructure... but determining early on at a very broad level what I found most interesting helped immensely.
For option 1, it's also important to plan out how many undergrad prereqs you'll need to fill in over the course of the Masters and whether or not those extra credits would push you out of financial coverage.
> Also, I might lose out on the benefits of taking a full Masters program, where other full-time students are doing research
Undergrad/Masters research is largely worthless. It's a good exercise if you're considering going the full academic route (basically as an internship for PhD), but you're unlikely to be missing much if that's not on your roadmap. That being said, reading/discussing research papers with others is a fantastic way to learn.
posted by revertTS at 5:27 PM on April 15, 2015
« Older Finding a psychologist that takes Blue Shield? | Help me find casual summer dresses before I melt Newer »
This thread is closed to new comments.
Not accruing debt is a good thing. Testing the waters in some limited fashion before jumping in wholesale, is also a good thing.
I'd look at the Harvard program as a way of seeing if this stuff really interests you, and if it does, then maybe the investment in the MCS program is worthwhile.
My only other piece of advice would be to see if you can talk to past graduates / students of either of the programs, and ask them what sort of CS experience they had coming into either program. I wouldn't trust the people selling either program—and that includes the admissions process of the competitive program—to accurately represent what sort of previous experience you need to succeed. (They have a vested interest, after all, and higher ed becomes more of a sales pitch by the day.) It's easy enough in many places to take some basic programming classes at a local voc-tech, adult ed program, or community college; you just need to know if it's worth the time ahead of getting in a program that's more costly.
posted by Kadin2048 at 12:04 PM on April 15, 2015