What are the most marketable computer/programming skills in the Seattle job market?
September 4, 2012 5:35 PM   Subscribe

What are the most marketable computer/programming skills in the Seattle job market?

Hi folks,

For one reason or another, my current track isn't working out; I've got three actuarial exams passed (all within 9 months), but don't like the industry and can't see myself spending the next 30 years in it.

So I left my job, and have some college teaching lined up for math (I have an MA, and three years of teaching experience). This is greatly rewarding work in and of itself, but I would like to supplement this income with another job. I've been applying to other jobs, but the only skills I have are teaching math, and advanced Excel.

I see there are some continuing education classes being offered at the local community college. I know that Seattle is a very tech-oriented industry, so what classes would give me the most marketability? I have a good amount of experience in financial modeling and data analysis, but nothing too fancy or seriously statistical/mathematical. As evidenced by my academic background (near-perfect GPA in graduate math), I like technical/creative work.

There are classes in Java, C#, C++, Visual Basic, MyPHP, SQL, and Perl, but I'm a good self-learner, so if, say Python or Ruby were highly recommended, I wouldn't mind learning it from scratch. So far I'm leaning towards SQL, but upon reflection I really don't see why other than the fact that I've heard it's very useful in analyzing large data sets, and almost had the opportunity to use it in my old job.
posted by brighteyes7 to Work & Money (18 answers total) 19 users marked this as a favorite
 
In my experience (15 years in the Seattle tech industry, including 10 as a developer), it can be challenging to get a foot in the door without experience.

One thing that is often in high demand are the more "infrastructure" positions - so a SQL Database Developer/Architect/Administrator, or a Windows Systems Admin, etc.

Once you have some experience, you might look at getting hooked up with one of the temp agencies (which one you pick will depend on what you decide to learn) to get some real-world experience.

Seattle is great for tech, but you're competing with a lot of people with a lot of experience.
posted by dotgirl at 5:43 PM on September 4, 2012


Response by poster: That's exactly what I'm afraid of - Seattle is a hub for tech. With this in mind, what are some of the easier sub-industries to get into?
posted by brighteyes7 at 5:47 PM on September 4, 2012


In my opinion, it's going to be very difficult to get a full time position without a Bachelor's degree in the field (computer science/engineering). You may be able to work in "IT", in more help desk/troubleshooting/setup type of work, or contractor or QA (quality assurance) work if you're willing to do more boring (less design) work. Those are more likely to just require "certificates" instead of full degrees.

Another alternative is freelancing as a web designer, if you have an eye for design, but that is still not easy to actually make money in.

If you're serious about making the jump into being a software engineer, I would suggest biting the bullet and going back for a degree (ideally from UW, since we're one of the top ten here). That'll give you the full complement of skills, and you'll have summers to get internships, which are extremely helpful to your learning and getting a foot in the industry.

So, yes, we have Microsoft, Google, Facebook, Amazon, Adobe, and a whole bunch of smaller startups here. But if you don't have a degree and no experience, you'll probably end up being a temp and doing grunge work. Since you left your last industry because it wasn't what you wanted, I doubt doing grunge work would be satisfying to you.
posted by ethidda at 5:51 PM on September 4, 2012


Response by poster: I don't have to work in high-end design - I just need something else in this industry to supplement my teaching. Is there really no other recourse other than going back for a degree in this?
posted by brighteyes7 at 5:56 PM on September 4, 2012


What degrees do you have? My friend with a Ph.D. in physics got a programming job (not in Seattle). Math might also work, if you have programmed before. If you have those types of degrees, you might actually get interesting (to you) jobs where it's more about the algorithm (and the programming is more of a prototype) than the software design.
posted by ethidda at 5:58 PM on September 4, 2012


I would disagree that you need a degree to get into tech here. Yes, if you want to work on enterprise-scale software architecture or something, sure. But if you're just interested in working in Tech as a QA Engineer or a Project Manager or a Business Analyst - that's a little easier a proposition.

However, most places (including the ones Ethidda mentions) tend to have a "promote from within" mentality. So you'll find Project Managers who started out as Testers, or Program Managers who started out as Business Analysts, etc.

Not being 100% clear on what you're looking for, it's hard to advise you, but feel free to drop me a MeMail if you'd like.
posted by dotgirl at 6:01 PM on September 4, 2012


Response by poster: I have a MA in math, and love anything conceptual/technical.

I can absolutely work in low-level analyst roles such as Testers or Analysts, and would actually prefer to start out at the bottom so I can earn my experience. I don't need to work for any of the super-glamorous companies here like Microsoft, Amazon, or Adobe.

I don't have any programming or tech experience, but am highly confident I can pick it up easily. The most experience I have is advanced Excel; sorry if it was unclear, but the question is actually meant to solicit direction, e.g.

There are classes in Java, C#, C++, Visual Basic, MyPHP, SQL, and Perl, but I'm a good self-learner, so if, say Python or Ruby were highly recommended, I wouldn't mind learning it from scratch. So far I'm leaning towards SQL, but upon reflection I really don't see why other than the fact that I've heard it's very useful in analyzing large data sets, and almost had the opportunity to use it in my old job.

posted by brighteyes7 at 6:08 PM on September 4, 2012


Python is a fantastic language for both pedagogic and practical purposes: it does a great job at being consistent, explicit, and unsurprising. It's multi-paradigm, so you can explore procedural, object-oriented, and functional programming all from within the same language. It has a rich ecosystem of well-maintained third-party modules for doing all sorts of wonderful tasks. There's almost no domain for which Python isn't a reasonable choice: It runs everywhere and is used heavily in web development, system administration, and scientific computing.

So, Python's a great place to start, but it's just the beginning of the journey. To quote Alexander Pope:
Th' Eternal Snows appear already past,
And the first Clouds and Mountains seem the last:
But those attain'd, we tremble to survey
The growing Labours of the lengthen'd Way,
Th' increasing Prospect tires our wandering Eyes,
Hills peep o'er Hills, and Alps on Alps arise!
Depending on what you find interesting and what role you want to fill, you'll need to master many additional tools. Relational databases (SQL), distributed version control, and HTTP are universally applicable.

I would also highly recommend that you begin attending a local user group meeting for your language of choice. I've heard good things about Seattle Python Interest Group (SeaPIG), which meets every second Thursday. User groups are an awesome way to get connected to practitioners in your area and keep abreast of the field. They're also extremely fertile grounds for networking and finding jobs, if you attend regularly.
posted by SemiSophos at 9:20 PM on September 4, 2012


As far as "what classes would give [you] the most marketability," it really depends on the market. Different cities can be surprisingly heterogeneous: Minneapolis is swimming in Ruby on Rails gigs, but almost nothing for dedicated Pythonistas. Washington, D.C., on the other hand, is apparently inundated with Python gigs.

I don't know the Seattle market personally, but visit a few user groups and you'll get a sense of it pretty quickly. :)
posted by SemiSophos at 9:24 PM on September 4, 2012


Response by poster: Thanks everyone!
posted by brighteyes7 at 10:01 PM on September 4, 2012


You don't need a degree. If you can pass three actuarial exams and you have an MA in math, you have the aptitude to be a successful programmer by learning on your own.

You need to pick a language and build something. It hardly even matters what you build, as long as it isn't trivial. It doesn't matter at all what language you build it in. See it through to the end-there are lots of people with a dozen half-done projects (I'm one of them, unfortunately) and fewer who get things done. Companies like to hire people who finish projects. Contribute to some open-source projects once you have some skills. Meet people, show them your skills by contributing to projects. Those people also have jobs that pay money and sometimes their companies are hiring. Read this, and learn all the stuff in there, it's a timeless curriculum: http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html

Biased opinions that hardly matter relative to the above, but here they are anyway:

Everyone is hiring mobile developers. It's harder to become good at infrastructure type stuff mentioned above just working on your own-if you want to do that, getting a degree is probably a good idea. C++ is on the way out. C and Java aren't going anywhere. Once you get started in the Microsoft-verse, you get tend to get stuck forever in the Microsoft-verse. There is basically no reason to learn Visual Basic in 2012 unless someone is preemptively hiring you to learn and do work in Visual Basic. Being a PHP-only developer is like writing 'Please outsource me' on your forehead.

I am a front end developer in Seattle, if you want to buy me a coffee sometime I'd be happy to talk, memail me.
posted by Kwine at 11:06 PM on September 4, 2012 [7 favorites]


++Kwine.

There are Microsoft haters, Microsoft supporters, and then there are people like me who have made a (very nice) living off of Microsoft technologies for a very long time.

Just don't be fooled by the idea that working as a tester is a path to doing development work. It can happen, but it is extraordinarily rare (I know all of two cases, personally).
posted by trinity8-director at 11:22 PM on September 4, 2012


Response by poster: Minor comment to the above - three actuarial exams is really nothing...But three exams in 9 months I think is pretty good. But anyway, I'm sure there are tons of bright people in Seattle.

I am almost certain I have the aptitude to be a successful programmer. I'm detail-oriented to a fault, can troubleshoot like nobody's business, and get lost in building things (e.g. proofs of theorems in math). I'll try to network and get smart in Python and SQL; seems like the way to go.

As far as hardware - I'm running on a Macbook Pro. What's the best way to switch platforms, if necessary?
posted by brighteyes7 at 11:28 PM on September 4, 2012


Response by poster: Trinity, what path did you take to get to development work, if that's what you do on a daily basis?
posted by brighteyes7 at 11:34 PM on September 4, 2012


Read that Steve Yegge post linked by Kwine. Learn that stuff, and get a lot of practice writing code. I'd pick Java as a first language - it's not going anywhere and once you know it you can use it to write Android apps, which have proven to be a great way to demonstrate your chops.

Google has loads and loads of software engineers with advanced degrees in math. You don't need a new degree, you just need to be able to get through a coding interview. Do you know any software engineers? Once you have some coding experience, see if one of them will help you practice.
posted by town of cats at 12:15 AM on September 5, 2012


As far as hardware - I'm running on a Macbook Pro. What's the best way to switch platforms, if necessary?

Stick with the MacBook Pro -- if you end up enjoying Microsoft technologies, you'll have a company issued laptop (though Windows will also run great on the Pro). If you do anything else, Macs are one of the most common developer platforms thanks to the nice UI and UNIX underpinnings.

For learning Python, I'd suggest looking at Zed Shaw's Learn Python the Hard Way. It's extremely basic, assumes no prior knowledge, and involves a good bit of rote learning. It's a good way to familiarize yourself with your tools and the language's syntax before diving into more advanced concepts.

I should emphasize that I'm encouraging you to learn Python not just for the sake of getting a Python job (though you may well do that!), but also because Python fantastic for learning. Once you know it, picking up other languages will be dramatically easier.
posted by SemiSophos at 7:47 AM on September 5, 2012 [1 favorite]


There's short-term marketable, medium-term and long-term, with different answers for each.

Short-term: get a job as a tester.

Medium term: Java, PHP, Python, Ruby, C* (C, C++, Objective C, C#), or any of the popular languages, frameworks, platforms, or packages.

Long-term: With a math background, you may be interested in the Haskell programming language, and more generally, functional programming. It's currently a niche market, but Microsoft supports it quite strongly, in 3 ways, with F#, thru Microsoft Research, and thru its influence on C++, VB, and C#.

Here's a relevant blog post: Eleven Reasons to use Haskell as a Mathematician

Don't let me mis-inform you - there's aren't many fp jobs out there (yet), but it's a good foundation for the next generation of software development, and you've got a huge headstart with your MA in math. I'm suggesting that you get a job as a grunt tester, but study fp long term (Haskell, Scala, Clojure, Erlang, etc.). How's your category theory?
posted by at at 9:23 AM on September 5, 2012


Response by poster: I think I'll apply for tester jobs after I get some basic Java and Python background - this should only take a few months if I immerse myself completely.

I'm not an expert on Cat. Theory (I was into analysis and differential geometry), but I know what it's about. The basic objects of study are objects and functors. Whereas a given area of math (e.g. algebra) studies homomorphisms within classes of objects in that area (groups, rings, fields), CT studies homomorphisms between classes (e.g. homotopy is a homomorphism from topological spaces to groups).

Does anyone know the best method of application/search for tester jobs? I'm currently just using job sites like Indeed.com.

I'm on my way to peruse and possibly buy Think Python at the local Barnes and Noble.
posted by brighteyes7 at 9:33 AM on September 5, 2012


« Older Should I sell or rent my house?   |   Search engine evaluation redux. Newer »
This thread is closed to new comments.