views:

160

answers:

4

I love programming. It keeps me busy, interested and I get some satisfaction after crossing a brick wall. I still have a year to go before I graduate. I like Java, but there is a lot of competition for entry level positions in Java.

I am familiar with PHP and I am doing a project in PHP.

I want to be very good at something which will be widely used in the future. I think Ruby on Rails is a good one. I am planning to work solidly on this by doing a few projects and gain a bit of experience.

This way when I graduate and apply for RoR positions, I will have better chances of getting through.

My question is this. Is my strategy correct? Also what is your opinion of Scala, ColdFusion and SAP? Can you guess about the market one year from now; i.e by the end of next Spring?

Note: I am doing my graduate studies in a small school in CS. My GPA should be around 3.6 I loved procedural oriented programming and coded lots of programs in BASIC all through high school.

I started with OOPS Java only from the past one year.

+3  A: 

I would go and try to do things that would made me a better programmer. Try to do small projects that are different from your current experience

  • OO languages likeJava or C#
  • Code something on OS X or Windows
  • Participate in an open-source project
  • Code something small on iPhone or Android

The main idea is try things and see if you enjoy them. Have fun, creating something cool that keeps you up at night!

gyurisc
I agree. A good programmer doesn't depend on a language. It's the principles (OO) behind a language that are important. By exposing yourself to new languages/platforms through small, pet projects you'll start to see what they have in common and how it relates to what you're learning in school. That will prepare you for the real world. Learn to move quickly to new languages/platforms. Always have a pet project or contribute to an open source one.
Chris
Thanks for the great comment
gyurisc
A: 

If you want a guaranteed job in the current market C# is probably still the way to go. That said, if you are really good at anything you should be able to find a job.

Try all of the languages, find one that you like to work in and learn as much as you can. 90% of what you learn is probably applicable to other languages, so even if your favorite language falls out of favor jumping into a new one won't be like starting from scratch.

jessecurry
A: 

If you want a job, acquire depth in a technical skill set that many HR managers are looking for: Enterprise Java, C#/.NET, even RoR to some extent nowadays. Then you'll compete with thousands of other programmers, but if you're smart and motivated enough you can land something.

If you want the job -- make yourself stand out from the pack. The gigahertz race is over for now, so the action is going to be in parallel programming (until the next technology leap occurs). Do a project in Scala, Haskell, Erlang, or F# to expose yourself to functional programming. Bonus points if you solve a hard problem with concurrency.

Read _Head_First_Object-Oriented_Analysis_ & Design, _The_Pragmatic_Programmer_, or _Practices_of_An_Agile_Developer_, or even _My_Job_Went_to_India_And_All_I_Got_Was_This_Lousy_T-Shirt_.

Work on your team skills. Gather a group and have a go at agile development methods -- pick one. Use revision control, code analysis, peer review, automated test tools, continuous integration. Successful teams adopt these practices; a savvy employer is going to ask if you use them. The precise toolset matters much less than the experience with the shockingly-hard problems of gathering requirements and working together to ship high-quality code.

If you can afford it, consider an internship. The real world is ineluctably different from the academic environment, you're well advised to demonstrate that you can survive in it.

Of course, getting the job straight out of school is unlikely. For one thing you probably don't know yet what it is! But that doesn't mean you shouldn't go for the very best you can.

Rick Wayne
A: 

If you want to work for yourself learn PHP (rather easy but hard to do well) and a CMS (Drupal, Joomla! or Wordpress). You can get little gigs all month long and the better you get, the faster you can do them and the more you make. If you don't get a long with the client at the start just let them go, you don't need the headache.

Clutch
how to get the gigs?
Karthik Kottapalli
Start with criagslist or sites where you can bid on projects. Then after a year you should be going on word of mouth. Try to stay local if you live in a larger city it is easier.
Clutch