views:

461

answers:

14

I'm about to graduate with a BS in Comp Sci next fall, and to be honest I feel very apprehensive. Not only about the job market, but I almost feel like I know less than I did when I came in. That's to say: I know a lot of generalities and theory, my coding skills are basic, and I just don't feel like I know any one thing well.

Any advice on what I can do to prepare myself for the real world in 7 months, and as an un-experienced programmer how can I market myself?

A: 

Don't worry, you'll do just fine.

Being in college and working in the real world has nothing to do with each other (except for really specific jobs like lab research).

You'll learn yet a lot more useful stuff in your first few jobs than what you learned in college.

Seb
A: 

I felt similar when I was about to graduate from uni. I felt as though all I was taught was how to write small applications with a main method that would print stuff out into the console. I thought to myself "there is no way a real world company would get me to write a program consisting of less than 10 classes that spat stuff out onto a black console screen" - I was right.

The first thing to do (obviously) is find a job - any job. It might not be the most glamorous job out there but just find jobs that advertise specifically for graduates or soon-to-be graduates. Another important thing is to start NOW. Don't wait until you graduate. Once you get yourself into a job, you will learn more in the first few months than you did in the many years at university.

In regards to marketing yourself, I suppose all you can really do is convey the things you learnt at uni. If you worked on some open source products then bring that up. Any hobby programs you may have written would work well too.

Good luck!

digiarnie
A: 

A "computer scientist" isn't exactly a specific field. I'd say what you need to do is decide what sort of job you want to get, and then start doing some real projects using the technologies relevant to that field.

For example, if you'd like to get into web-development, come up with an idea for a web app that you'd find personally useful, and then build it. Learn whatever new skills you need to make it a reality (databases, ajax, whatever). It'll teach you how to use all that theory in a practical manner, and it'll make a great project to put on your resume.

When you're done that, do it again, but with different technologies.

Then if you're somebody that actually enjoys programming, get ready to repeat this process for the rest of your life, welcome to being a programmer. :)

Chad Birch
A: 

Pick an area or technology you love or enjoy and specialise in it. A CS degree is a great asset to have (I'm studying it myself) but it can be seen as very general, this helps to offset that view.

paulbeesley
+9  A: 

Do everything you can to get an internship this summer. A little time on the job, even if it's not paid, will go a long way to making you a more credible candidate for positions. You can also learn a lot about the way business works. If you're lucky (and good) it may also turn into a job offer at graduation. If you've already been the internship route, be prepared to send your resume in to a lot of places and, perhaps, accept a job with one of the big consulting companies. A lot of recent grads start out that way.

If you can sharpen your skills by writing code. Do some implementations of standard algorithms and data structures. Investigate and implement various tutorials. Look at doing some pro bono (or paid, if you can find it) work for local clients. Universities often hire students in various capacities for IT work. Dig around and see if you can find a developer job.

Good luck.

tvanfosson
Unfortunately, by this date he's probably well past the deadline for internship applications. But who knows, maybe he can get lucky and find something. This may be a harder summer than usual to find an internship as well, I know that my company is certainly taking on considerably fewer summer interns than we normally do, as part of our cutbacks.
Chad Birch
+1 for suggesting an internship. Doing two industry internships in undergrad greatly increased my skill set and helped my career options upon graduating tremendously. Doing well in school is good, but adding real experience to that is probably the single most important thing you can do for getting a job and generally making yourself useful.
tgamblin
+1 I agree - internships are very valuable to all parties. Plus, more than one of my employees over the years started as an intern....
Reed Copsey
+6  A: 

No matter what college you graduated from, you won't know enough on your first day of the job. You learned theory and you learned how to learn. You'll put those two pieces together at your first employer. They will enable you to become a good developer, but it will take some time.

For now while you are waiting, just practice programming. If you know where you'll be working, become familiar with the languages and/or APIs they use. Practice, practice, practice.

Steve Rowe
A: 

I haven't noticed any job openings for Computer Scientists lately. I hope your school has taught you something practical, like Software Engineering. There are plenty of Software Engineering jobs out there.

John Saunders
-1 for ignorance
Paul Nathan
What's wrong with this answer? He's exactly right, unless you get a PhD in Comp. Sci. you're not going to be doing compiler or AI research, you're going to be slinging code. +1 b/c I agree.
JP Alioto
Huh? What do you mean, "ignorance"?
John Saunders
+1 for not ignorance. Have a look at the job listings at any of your national labs. The bar is insanely high for a Computer Scientist.
Ellery Newcomer
I think that's just normal supply and demand. There's so little demand for Computer Scientists that the labs can set the bar as high as they want.
John Saunders
+2  A: 

If you are not going to graduate school, you will not (in most cases) be a computer scientist. In the same way that many doctors who finish medical school and do not engage in research are not necessarily scientists.

The most important thing is practical experience. Internships are invaluable.

The second most important thing is to get up to speed on real world coding practices. These are the things not taught in school, since a well-written program has no benefit in grading most courses. Depending on the language you like, read things like Effective Java, Code Clean, Code Complete, etc.

The third thing is to try and get used to reading existing code. Find some existing program, like an open source game, IM client, or anything. Try to dive in and make some changes whose effect you can observe. If you can learn to read code and join existing systems rather than write from scratch, you are better off than 90% of your peers.

Fourth thing is to figure out if you do want to be a computer scientist rather than an engineer, and whether you want to go to grad school. Read everything on SO about PhDs before you take the leap.

Uri
A: 

Try to market your resume on sites like craigslist, elance or guru.com where you can try and pick up a junior or mid level small contract position in a programming area that you feel confident and is relatively easy for you (e.g. - Javascript front end development with some basic PHP and/or simple ajax). This will allow you to focus on an area of programming you are confident in, make some money, but most importantly get some good experience.

Bamerza
+1  A: 
  • Get Visual Studio (or the Free Visual Studio Express) installed and get a good handle on C# before you graduate. (Or Java, alternatively).
  • Get a programming job, or, failing that, go maddog hardcore on an open source project.
Paul Nathan
A: 

"You learned how to learn" - indeed! Stay keen on expanding your knowledge now, and keep an open mind - programming comes in many forms.

If you know how to code, don't be scared to work with new languages. Apply for every remotely related job you can find; if nothing else practice at sitting interviews is valuable.

jsims281
A: 

To prepare yourself for the real world in 7 months, you should learn how to deal with people.

Read these two books: 1. How to Win Friends and Influence People by Dale Carnegie 2. The Magic of Thinking Big by David Schwartz

During these seven months, as an inexperienced programmer, you can market yourself by working on a real world project, perhaps participating in an Open Source project that you really like.

The most important quality that you need is the willingness or eagerness to learn. Most employers would value such a person. Your CS degree is your launching pad into the real world. Seek out good mentors and learn from them.

Hideo
+2  A: 

Seek an open source project in an area that you find interesting. Learn the architecture, and read the code; you can gain a lot of practical knowledge from both positive and negative examples. Identify a project participant with the knowledge and demeanor to serve as an informal mentor, and with his or her help begin making contributions. The learning curve will be steep, but that's exactly what you want.

Six months from now, you'll not only have increased your practical knowledge and self-confidence, but you'll have a body of work you can cite and perhaps a reference or two.

Dave
A: 

There is always google summer of code (Though it's already past the deadline for applying for this year).

Jeremy
Last year's Summer of Code was completely invaluable for my development skills. It really is quite different reading and editing someone else's code than writing your own from scratch. Especially hard is writing your code in the existing style so it blends in and doesn't look like an awful hack.It may be too late for GSOC, but it's definitely worth hacking on somebody else's code for a few weeks in your spare time to get a feel for things.
James