What tech to learn for a good jobby job.
January 3, 2007 1:51 PM

What tech skills should I pick up to help in my job search after I graduate from college?

I have developed database driven web applications in php, Coldfusion, and ASP for 7 years now. In a few months I will be graduating with a degree in finance and want to get a job that meshes these two disciplines. I'm thinking eventually, an IT consulting job would suit me nicely and would like to know where to go now.

Which technology would be most beneficial for me to learn to help in my job search? ASP.NET (VB or C#), Ruby, Python, Java? I am an avid Debian/Linux/OSX fan, but recognize that Windows has a very large place in the market. I am NOT a Windows hater, and have been using it most of my life, but I do think there are situations where other platforms are better suited (contrary to the opinion of my formal educators).

If you are an IT consultant, tech project manager, or the like I would really like to hear your insight into this. But, of course, any input is much appreciated.
posted by blueplasticfish to Computers & Internet (7 answers total) 6 users marked this as a favorite
nearly every place I have worked uses some variety of Java/JSP.
posted by drjimmy11 at 2:11 PM on January 3, 2007


C#, ASP.NET, java/jsp and with your degree in finance will make you hireable by pretty much every fiancial firm.
posted by Stynxno at 2:29 PM on January 3, 2007


Perl is totally required to be a real *nix head. It's the swiss-army chainsaw of programming languages.
posted by phrontist at 2:51 PM on January 3, 2007


7 years of self-directed PHP, Cold Fusion and ASP, and a degree in finance is a GREAT combination. Few people realize that a background outside of IT is vital to being a good, well-rounded consultant or product manager (you'll understand the needs of your clients better than most programmers will), but your programming experience gives you a huge leg up on knowing what implementations are difficult, trivial, or impossible (which is a trait that's missing from a lot of project managers).

You're not likely to be an effective IT consultant right out of school... you've got to put in your time in the trenches. It sounds like you know this, but I thought I'd reiterate it.

Your choice of what technology to focus on is going to be a factor of what sort of clients/projects you think you'll be most interested in. Want to work in the basements of financial services companies or software companies, making a fortune? Then you'll be best served with C# and ASP.NET (and the MFC/.NET classes that are really the bulk of Windows programming in any language).

Java/JSP technologies are used in most web projects run by large organizations -- especially in financial circles. Want to work on Yodlee, or paypal, or on a big ecommerce site, or on the online bill payment system of a bank?

Heavily technology-focused organizations use a lot of Python these days, and the skills/habits learned by becoming proficient in Python will translate to lots of other languages. If you want to work for Google, BitTorrent, Yahoo, NASA, NIST and most medical research companies, go down this road. For what it's worth, python does seem to be favored by people who are more strictly computer science oriented. Whether you consider this to be a good thing or a bad thing depends on your personality and how your brain is wired.

The bleeding edge web application companies tend to be Ruby-based (in particular using Ruby on Rails). Ruby is a language designed not to get in your way, and it's quite versatile and well-suited for web application programming. However, it's still evolving (and it's got some things to learn about performance), and it certainly isn't accepted in more slowly-moving organizations like banks/brokerage. If you're interested in doing some work for a cool project with young people, and would like to see your work on TechCrunch, then Ruby is your friend.

Perl is still the swiss army knife of sysadmins, but it's falling out of favor with programmers. It's hard to be a *nix-head without being comfortable with it, but it's certainly possible (especially if you're comfortable with Python or Ruby). You still see a lot of jobs maintaining Perl code, but there are very few projects that are just starting that are perl based.

PHP is quickly becoming the language of so-so freelance coders and Indian outsource companies. There's work, and it's certainly a versatile and powerful language, but most of the A-List talent has moved on (or is moving on), frequently to python or Ruby.


But ultimately, it depends on what drives you. If you're driven by profit, stick with windows programming and/or Java. If you want to change the online world and work on cutting edge stuff with primarily younger coworkers, go with Ruby. If you'd like to become an ubergeek (or a respected manager of ubergeeks) or work on sciencey things surrounded by smart people then go with python (and C, but that's another story entirely).

There's a very high burnout rate among technology workers, because it can be a very demanding career, without a whole lot of obvious reward. To be successful, long-term, you need to like what you do (it's better if you love it), and the people that do it with you.

Certain people are drawn to certain technologies for various reasons. As you get exposure to more technologies and the people that use them, you'll probably be able to recognize which ones suit you best. Trust your gut and whether you look forward to going to work on Monday.

The best way to find out what you like is to go out and do it. A previous answer suggested internships, but since you're graduating in the spring, I'd say that you should just jump into an entry-level job that seems to fit your personality best (and don't be afraid to tell people "I'm a PHP/CF person who's learning {Python|Ruby|C#} and looking for an entry gig in my new language").

If you don't like where you land, start looking elsewhere. As you're starting a career, you're in a better position to jump from one entry-level gig to another. You will hear people tell you that you should always stay in a job for a year for resume-material, but the truth is, if you know you're in the wrong job, the sooner you can find the right one, the better.

All else being equal, If I were graduating soon, I'd be steering myself towards Ruby, because it's showing itself as being capable of scaling to large sites, and it's drawing a lot of attention from the sort of creative people who innovate. (But, I'm also a web/networking guy that likes to break the rules, so python's "one way to do things" philosophy isn't my style, and I think that slightly insane innovators (the mad inventor type) are the best people to work with.)

Good Luck!
posted by toxic at 4:27 PM on January 3, 2007


How about learning the backend? MySQL, PostgreSQL or Oracle? Even MS SQL Server?
posted by mphuie at 5:53 PM on January 3, 2007


toxic mostly nails it, however I'd like to add that Python is becoming (already is, IMHO) a major contender in the web-app development sphere in addition to aforementioned uses. Specifically thanks to the Django web framework, and to a lesser extent its rivals/compatriots, TurboGears and Pylons.

Whether Python or Ruby is a better fit for you depends primarily on your personality and style, and secondarily on the problem at hand (library support matters more than you think!) but I definitely suggest learning at least one of them. "Agile" languages/frameworks like these are where things are headed in Web application development.
posted by cyrusdogstar at 10:53 AM on January 4, 2007


Oh, and mphule, I would assume he's already got at least a basic working knowledge of SQL if he's been doing "database-driven web applications" for a few years. Still, it's definitely not a bad thing to brush up on; I rather wish I retained more of what I learned in school, instead of falling back on only the skills used in my day-to-day existence.
posted by cyrusdogstar at 10:55 AM on January 4, 2007


« Older Snake?   |   What short film did my teacher show us repeatedly... Newer »
This thread is closed to new comments.