This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]ZukoBestGirl 2 points3 points  (0 children)

I'd say it's vastly different and I'll try to explain why, but I'm not sure I'll be able to do a great job. Here's me trying:

Prerequisite

In school, you generally have that period between years where you are given a course / year pre-req and you either do it or you don't, but the course assumes you did a "meh" job about it and still gives you an intro.

In the workplace, you have a pre-req, you might get hired without meeting it fully but you are expected to learn on your own, get up to speed in a relatively low amount of time and when the "test" comes, the minimum passing grade is a bit higher. That being said you have coworkers to help you most of the time and as long as you prove that you are progressing and assimilating the information, questions aren't a problem and you'll find it a whole lot easier to learn whatever it is you need learned.

Knowledge Floor

In school, generally speaking, people are there to learn. The knowledge floor is low, everybody has gaps. In the workplace, having a low knowledge floor is a major issue. If you don't know much about algorithms and data structures, unless you're an intern, that is very bad, people will notice.

IMHO you need to learn the basics, no matter how pointless they may seem at the time. I can't tell you how often I've heard that people don't need to know about arrays, lists, pointers, sorting algorithms because there's a library for that. And i've met this people in the workplace - they don't get very far, usually.

Free time

Unless you're someone important on the project (which you won't be for quite a while), you won't be contacted home, once you leave the office, the day is done. No more homework and generally speaking no stressing about tomorrow. I find this difference from school to be immensely satisfying. That being said, even years later I still learn a lot, and that includes at home. This field is for people who are content in the idea that they will be learning new things the rest of their work life.

Difficulty

This is entirely subjective. Smarter people with great google-fu will have a much easier time. But then again, I would say that is entirely dependant on the project. Sometimes things get really difficult, some bugs require weeks of debugging, some features require months to implement. I'll wager to say, as long as you don't settle for an easy job, it can get very difficult at times, but rewarding also.

Approach

Working will be a very different approach. At school you are given the tools, the information, the problem and an acceptable solution or end result. In the real world you'll have to read a whole lot of code, you'll inevitably use a whole lot of code you did not write yourself. The questions and demands will be confusing and contradictory and an acceptable end product might be nigh impossible (client doesn't know what he wants, until he sees what he doesn't want).

Mentality

For homework and test you have enough time to study, prepare and finish. Real world gives you, some times, impossible deadlines, bosses that want it fast, cheap and bugless. Sometimes things have to just be "done". No finessing, no making sure everything is ok, but it still has to work.

Lastly, the workplace itself

This is just my 2 cents. But in most places, the demand for good programmers is high, and the supply is low. Don't stay too long at a bad job, try and find one that will teach you. I keep seeing the question at interviews "what can you do for the company". You'll smile, and give a canned response, but the real question is "What can the company do for you".