At 1. December 2011 I had worked as a computer scientist for exactly 3 years. It is a relief to feel the days fly by. That I more than often am in "the zone", which is a great sign that it´s something I actually love doing. So what are the lessons learned and how is work different from the student situation?
The only one you potentially can let down as a student is yourself. At work this is obviously not the case. But in the same sense I feel more liberated working. Probably because at work we have a strong sense of camaraderie and knowledge sharing, and that we look at problems as a team responsibility and not only the person assigned to it. In other words I felt a paradigm shift from: "this is hard and I have short on time to learn it" to "this I don´t know, looking forward to learning it so I can solve this problem!".
There is the obvious case that the money you get each month is not a student loan but salary. I still have student frame of mind about money: money go to a place to live and food, and everything else must be well thought out and evaluated. I think the really good programmers do not focus on money. That will come from being a good programmer, not the other way around.
I was involved in a lot besides studying during my time at University. I was very active in Amnesty, had several roles in the photography group and spent time going to lectures and meeting people who studied something else than computer science. I read a lot and had a 2 week grand career studying literature. That is absolutely something I miss. I finished the studies early and I feel a gap between the ones I work with. I don´t have kids and I do want to do something else after work than recover and charge myself for a new day. It is hard to fight against it. To get more energy for all the things I want to do and try to connect to the feeling of diversity of impulses from student days I signed up on meditation courses. Highly recommend it. I will most likely do a post on meditation in the near future.
Solving problems at work is different that solving problems studying. The problems at University are well-defined, the premisses and the context is given and my fellow students are also working on it. The problem is also easy to understand, but not always easy to solve. In a sence the problems at work are the other way around. I spend time finding its context, the problem is not easy to understand but once you know what to do it is often easier to solve than the ones at University. An analogy: a problem at University could be to solve the rubix cube while a problem at work could be to restructure a framework you don´t know anything about.
The company I am working for now have a strong identity of knowledge sharing. It is expected of the programmers to share knowledge all the time. It is great. As students we were enquraged to discuss assignments but rarerly we actually worked togheter on them.
In our last year studying you are one of the better students at the faculty. That´s because the ones in the cull above you have graduated. Starting working I had a bigger ego than what I have now. I see for each day a new field og unknown territory. It makes me humble and exited.
At University you study to learn. At work I study, to as quickly as possible, solve the problem at hand. The notion of pragmatism comes to mind. I wish I had more time learning things more in-depth. But that's the tradeoff of touching upon many different technologies and problems as you do as a consultant.
The most important lesson learned is: I love programming. That is what I want to do. Having heard stories from my fellow students about the time they spend on non programming related tasks I am happy to do a 10min SCRUM and then go back to coding.
Although in a small sence I have felt the presence of separation between programmers, salesmen, HR and account people. It is the diversity of different talents and areas of a Company that makes it go around. We have a strong HR department and it shows in a culture of friendly people who newer decline an invitation to learn something to others.
Another lesson: stand on the shoulders of giants. Follow blogs, twitter messages and attend conferences. It is fun and you will learn so much from it.