For me, math, science, and reading were all good motivators. We talked about formulas, equations, and algorithms all the time in class. Since class was really boring, I'd spend my time programming our TI-8x's. F=ma, E=1/2mv^2=mgh, etc all go into the calculator. Reading at home played into that really well. For example, in Sagan's Contact they talk about a message being embedded somewhere in Pi with the hint that such a message could only have been created by an architect of existence. One day in geometry we learn how to calculate Pi, and guess what I'm programming in my calculator. Later I read stuff like cryptonomicon and between silk and cyanide and spent countless classroom hours trying to find new ways to factor numbers.
Looking back, I was always interested in tinkering with large public data sets. I built several iterations of a fantasy baseball league site and multiple stock analysis tools. I also played with decision tree algorithms and imdb's public data and messed around a lot with trying to analyze my pokerstars hand history. Today, we are drowning in new and interesting and often totally unexploited data sets. The right 20 lines of perl could change the course of human history. The challenge is not to find those 20 lines, but to look for them.
Some kinds of games encourage programmatic thinking. You get a lot of exposure to arbitrary sets of rules and how to manipulate stuff in well defined environments, to build and test plans, etc. Civilization and StarCraft are all kind of production/workflow optimization problems. At some point though, there's a difference. Programming is more an act of creation. What's possible is undefined and what happens is defined by you. I think to make the leap from gamer to hobby programmer, you need a spark of something, the kind of attitude that believes 20 lines of perl can change the world.
I think a classic mistake in programming education is to teach using "good teaching languages". Working in a write only language like perl allows you to produce immediate results at a time when you're not ready to accept the full abstraction of good programming practices. It also primes you to accept the principles of a good programming language at a later date. A year breaking bad habits is a good trade for 5 years of programming experience.
Is it perhaps possible that this is one of those cases where reality is interceding on behalf of Microsoft? The other day someone asked me to review a Macbook Pro they wanted to purchase and Apple was charging $1,000 to go from 4GB to 8GB and advertising it as if 4GB were enough for web browsing, email, and word processing... but if you wanted to get the most out of your PC, you need 8GB. I was torn between wanting to boycott apple and wanting to buy their stock.
Windows is a term that could be related to Macs. Any article that talks about the pricing of either needs to compare it against the other to have any meaning. At least one Why-are-Macs-so-expensive article makes the google list. Given that Macs are insanely expensive compared to PCs I would guess that there would be more articles explaining the cost of Macs versus the other way around.
In server software, popularity is often correlated with stability and quality. A larger market share tends to mean a better and usually more secure product. Those that opt to use better products tend to be better admins or developers or whatever which can also have a positive effect on security. This is arguably even more true when comparing microsoft solutions which are known for nice GUIs to open source tools which are known for text based configuration and heavy customization.
On the desktop, the products with larger market shares are those products that have the least savvy users. When combined with the size of the market, this is clearly the best attack vector.
As an aside, when it comes to desktops, we are a windows shop. An executive (and a very smart one) with a joint appointment recently inquired about replacing his non-domain XP laptop (supported by other area) with a Mac machine managed through our group. One of the reasons he gave was that XP was so horribly slow and his Mac at home booted up so much faster, the implication being Microsoft sucked. I took a look at his laptop and found that there were 50+ startup programs listed in msconfig, almost none of which had anything to do with Microsoft or windows. Since the executive had administrator privileges, it was clear to me that his problems were largely self inflicted. I doubt 1/5th of the crappy startup programs had mac equivalents.
The exec's problem was not with malware per say, but in my experience, most desktop malware infections are caused by users and correlated with market share.
What makes you think they didn't have a space program? More importantly, what makes you think they are all dead?
I find it highly suspicious that we haven't been hit with an ELE from space in the past 60 million years. The most probable explanation for that would seem to be that, roughly 60 million years ago, someone or something blasted off into space with a mission to protect the earth from future bombardment.
It was probably the raptors (it always is). I'm guessing they saved as many as they could in the seed ships while sending hunter-killer probes after near-earth asteroids. Even now, a society of hyper evolved Raptors are probably awakening from their cryogenic fugue out in the Ort cloud. Any day, they'll be sending a probe our way to evaluate the habitability of Earth as they've no doubt done every 20 million years or so.
What's gonna happen when they find out an infestation of not so furry primates have taken over and are now molding the remains of their ancestors into cheap plastic hello kitty christmas ornaments? I'm guessing they'll either capture a comet from the Ort cloud and send it hurtling our way, wipe us out with death beams from space, or send crack teams of Raptor ninjas down to exterminate us in hand to hand combat.
Shortest path algorithm, semaphores, compilers, programming language design...? This is the kind of stuff of formal programming methodologies. However, the kind of stuff that goes into it is not the kind of stuff that goes into software development in 99.99% of the world. Dijkstra was no doubt very smart, but I'm not sure I'd hire him to build business software.
Where exactly do semi-formalized, poorly thought-out specifications handed to you half-written out on a napkin and constantly subject to change fit into the programmers task and Dijkstra's world?
Many of the professors exist in a world where faculty is king, ie in charge of every aspect of the business. Therefore not receiving inputs in the desired fashion would be unacceptable and rejected outright.
There is a difference between something being cruel and something that is difficult or challenging. Any teacher who believes their goal is to be cruel should be fired. My greatest strides have always come from the work that came out of my home and not out of the classroom or even the work environment. The greatest aid in learning is the motivation to learn. Cruelty is not a good incentive for independent learning.
Then you graduate and find out the real world is easier than the theory.
Real world software development jobs are also a lot easier than rolling around naked through hot coals and velociraptors, but this isn't necessarily an optimal way of preparing someone for a career as a developer. I found a lot but not all of the theory I was taught in school to be irrelevant (axiomatic semantics, countability) while I was missing many fundamentals (usability, interface design, realistically modeled team work and project management).
Rule Number 1 of Computer Science - Don't reinvent the wheel. Everyone who invents their own education focused language that's only used at their school is violating the first rule of computer science. At my university, the first year of programming is taught in a java like variant of C++ called Resolve C++. Why is it bad?
It hurts students applying for co-ops/internships because none of the employers no what it means.
It hurts students because there are about a thousandth of a percent of the sources of information about Jo-bob's made up educational language as there are for something like Java.
It hurts students because they don't feel like they can go home and make useful projects in weird language XYZ in their own time.
It wastes time because you are rolling your own instead of reusing something tried and true. As the needs of the modern world change, will your made up language be able to change with it, or will it stagnate like everything else in academia?
By rolling your own when a veritable shitstorm of acceptable solutions exist, you are setting a horrible example for your students.
Most importantly, while students are not always right, they absolutely hate it when they are forced to learn some professors pet project and if something useful is only slightly harder why piss them off.
My point is that you should not throw out fundamental stuff like computational complexity in favor of topics that directly apply to "real-world problems".
Almost everything taught applies to real world problems. Information doesn't know if it's theoretical or practical. It has value which is relative to its intended use. The sooner we embrace that fact, the sooner we'll have a balanced curriculum.
At my university, topics like axiomatic semantics and countability are covered while topics like usability and user interface design are not. The topics presented are often far more important to the provider than they are to the consumer. It's a classic case of a developer that creates the product he thinks his customers should want without truly soliciting requirements.
I agree that outsourcing can be good. However, if you are who I think you are, I would say that it is absolutely ridiculous that $500,000 is considered too much to spend on a mail system upgrade. The university just spent $140 million on a new Gym, $100 million for a new union, $108 million for the main library renovations. The mail system isn't a visible presence on campus but it IS CRITICAL university infrastructure and at least 1/100th as important as those other projects.
They can and should shell out a million on a quality mail system if that is all it takes to get one. Because the central system sucks, every quality admin on campus has to run their own system. How does $500,000 for 50,000 mailboxes compare to $5,000 for 100 which is less than what we're paying in my area for the server hardware, exchange, anti-virus and anti-spam? How do the time costs of maintaining one system compare to maintaining 100? How ridiculous is it that Bob in hr has no way of accessing the calendar of Sue in Maps?
We payed at least $5,000 for our server and licenses, but barring trust issues, I'm damn sure our group would pay a hell of a lot more than that for a good central mail system.
I assume appearances on the Colbert show are correlated with increased campaigning which results in increased contributions. I like Colbert, but to me, this sounds like exactly the sort of meaningless pompous statistic he would have fun with and mock.
The irony for me seeing this story here today is that last night I spent a good hour or so looking for a non-US/canadian proxy service so I could play Scrabulous online.
Hasbro has sued Indian based Scrabulous for copyright infringement and as a result they've had to restrict the service for all US/Canadian IPs. Scrabble was created in 1938 by Alfred Mosher Butts, who was born in 1899 and died in 1993. It's a 70 year old game created by a man that's been dead for 15 years and it's illegal to put copies of it online in the US.
Sure, nobody's getting killed over a game of Scrabble (that I know of), but sometimes I think this kind of censorship is more dangerous. It stifles human progress in a manner that most people find acceptable because they can't relate to it.
In college, almost all of our major projects were of the form "make an interpreter/compiler". This was very boring, uninspired, repetitive, and in general an unrealistic representation of real world projects. I like programming. It wasn't fun. It wasn't really rewarding. In fact, I think it was pretty pathetic.
I was thinking the same thing at first... then had a duh moment.
circumference = 2*pi*r
area = pi*r^2
So it's a linear scaling with a factor of pi. One more inch of diameter would yield 3.14... inches of circumference. I like pi, but hopefully not enough to affect my circumference... unless perhaps it is pumpkin.
The question is: What design/architecture qualities are shared by all good software? Good software means lacking in bugs, maintainable, modifiable, scalable, etc...
This is a very academic way of looking at "Good Software". Good software does not have to be all those things because those attributes are not of primary importance in all situations.
A one time import script does not need to be maintainable, modifiable, or scalable. However, it is sometimes very important that it is bug free or that it is written quickly.
One place I worked, we developed very expensive packaged software that was often installed in remote locations. It was important that it work and work the first time. Another place I worked programmed for inhouse systems and there the primary driving force was always speed and features. This resulted in some crappy code which was considered to be good software by the business because it was what they needed when they needed it.
Had I spent the same amount of time and care developing at the second job as I did at the first, I would have been rightly labeled incompetent. It didn't matter that the code was difficult to maintain because the most oft overlooked requirement for maintainability is profitability.
My point is just that your definition of good software really only makes sense in an abstract sense, when looking at software in isolation from its intended purpose, or in very specific situations where those attributes are overriding concerns.
If you are planning on getting into college and getting out with a BS and working in the real world (as opposed to staying on and sticking in academia)... you should go and visit each universities career services office.
They should be able to give you an idea of what kind of demand exists for graduates of their programs. Ask for things like lists of companies that recruit on campus, ask about career fairs and who attends, about a co-op or internship program (hint, you will be dead in the water without a co-op or internship).
The smaller university is likely to have a career service office that caters towards the liberal arts crowd and this could REALLY work against you. Liberal arts career services offices tend to be geared towards finding people with a college degree a job befitting someone with a generic college degree. Think Target hiring managers or United Health hiring insurance reps. The larger one is likely to have an engineering career services office that specializes in attracting the lockheeds and microsoft's of the world who come to campus looking for fresh CS blood to throw in their programming mines.
Now don't get me wrong, I've worked in a career services office, and I don't really think they are that great. But it's still where you want to look in terms of figuring out what your prospects will be when you graduate.
Also, a small liberal arts school feels kind of like the opposite of what most real world IT jobs end up being like. If you really want to go that school, maybe you wouldn't enjoy most IT jobs. Ever think about being an architect? A very large number of students end up changing their major. Consider the possibility of change as you design your college experience. What would your second or third choice majors be, does the smaller school offer them?
In my dealings, some of them (READ SOME) have the attitude that they are doing you a favor, just talking to you.
Sometimes they are doing you a favor by listening to a particular request or complaint. It depends on the work load and what kind of services are mandated. At my job, I do development, administration, and support. When a user asks me for help doing something in Word, I'll almost always try to help them. However, sometimes we're really really busy with important things and don't have time to show people how to do things when they should be able to figure it out on their own.
From another perspective, when I help a guy with 3 office questions a week, I am doing him a favor because I'm taking time away from more important issues to cover his ass by helping him do things that he should know how to do or at least be able to figure out as part of his job. Half the time I just do a google search. With certain people, every time they can't figure out how to do a mail merge, it is IT's fault, which is kinda the reverse of the attitude you were describing in some IT staff.
Interesting aside. At my last job, I worked for a tech company with a large number of generic office workers. Since they were a tech company, they required all their employees to take a basic computer literacy test as a prerequisite to employment. My current employer is an engineering college with lots of PhDs but poor computer skills. Despite the fact that we delivered far far far less end user support at the first job, satisfaction and relationships with the IT department were better than at the present job.
Indeed... the one time I can remember sleeping on the job was when I pulled an unpaid all (friday) nighter in order to get a test run rollout ready for the saturday development crew (which included me). I think I caught a couple hours sleep on the floor (or a bench?) at work that night. Those were fun times... Sadly, I'm sure our boss probably thought we were all lazy.
There is no viable way of determining who merits what and none is proposed.
Consider, pretty much everyone who is hiring anyone wants the best candidate for the job. Someone with a generalized bias against women in IT believes they merit less consideration. They are still following a meritocratic process, it's just that their evaluation criteria are different. If we remove all generalized biases/stereotypes from the evaluation process, evaluation becomes an impossible task.
Interesting aside, I've worked in male and female dominated workplaces. There are times when the introduction of an attractive single male or female has destabilized things among the workforce. Sometimes the most qualified candidate, male or female, is not the best candidate for a position. Personalities and social dynamics are very important.
My organization pays something like $50 per year per seat for full versions of Office and Windows workstation upgrades. Until recently, Visual Studio was included as well. That seems reasonable to me. Full microsoft compatibility is important enough to my user base to justify $50 per year.
Also, one important distinction between a migration to OO and a migration to Office 2007 is that, for my user base, 2007 migration issues would be largely MICROSOFT's fault and OO migration problems would be mostly MY fault.
I think in IT, we are used to being asked to clean up the mistakes of people that have bleeped up because they didn't know what they were doing. It could be the web designer that is dabbling with programming, the office worker making a bunch of excel macros to run office functions, or the typical end user that deleted all their files and doesn't understand that "Mom and Dad" is not a valid email address. IT is a profession in which many professionals cringe at the notion of amateur hour. For that matter, there's a lot of trained professionals I don't trust.
Personally, I'm rooting for Carmack, but I'm expecting more from Scaled Composites.
My friend left IT to become an MBA. He's graduating this quarter, and will be doubling his old salary. In his own words, he wanted to make the transition from the person writing the reports to the person requesting the reports. Of course, whether or not he'll achieve that as a consultant is debatable, but hey, he still doubled his salary and gets a change of pace. The two years he spent in the mba program served as a nice break from reality as well. Or as he would say, "Grad school is the snooze bar on the alarm clock of life."
The guy probably doesn't have enough time to do his job as it is. Tweaking bios settings on every pc he deploys and maintaining impossible to centrally manage bios passwords is a pain in the ass.
Besides, maybe there are times when booting off alternate media is within the range of acceptable use. In this case, disabling that feature would be analogous to deploying a proxy. Not every problem has a technical solution and for the ones that do... sometimes a law based solution is more efficient.
For me, math, science, and reading were all good motivators. We talked about formulas, equations, and algorithms all the time in class. Since class was really boring, I'd spend my time programming our TI-8x's. F=ma, E=1/2mv^2=mgh, etc all go into the calculator. Reading at home played into that really well. For example, in Sagan's Contact they talk about a message being embedded somewhere in Pi with the hint that such a message could only have been created by an architect of existence. One day in geometry we learn how to calculate Pi, and guess what I'm programming in my calculator. Later I read stuff like cryptonomicon and between silk and cyanide and spent countless classroom hours trying to find new ways to factor numbers.
Looking back, I was always interested in tinkering with large public data sets. I built several iterations of a fantasy baseball league site and multiple stock analysis tools. I also played with decision tree algorithms and imdb's public data and messed around a lot with trying to analyze my pokerstars hand history. Today, we are drowning in new and interesting and often totally unexploited data sets. The right 20 lines of perl could change the course of human history. The challenge is not to find those 20 lines, but to look for them.
Some kinds of games encourage programmatic thinking. You get a lot of exposure to arbitrary sets of rules and how to manipulate stuff in well defined environments, to build and test plans, etc. Civilization and StarCraft are all kind of production/workflow optimization problems. At some point though, there's a difference. Programming is more an act of creation. What's possible is undefined and what happens is defined by you. I think to make the leap from gamer to hobby programmer, you need a spark of something, the kind of attitude that believes 20 lines of perl can change the world.
I think a classic mistake in programming education is to teach using "good teaching languages". Working in a write only language like perl allows you to produce immediate results at a time when you're not ready to accept the full abstraction of good programming practices. It also primes you to accept the principles of a good programming language at a later date. A year breaking bad habits is a good trade for 5 years of programming experience.
Is it perhaps possible that this is one of those cases where reality is interceding on behalf of Microsoft? The other day someone asked me to review a Macbook Pro they wanted to purchase and Apple was charging $1,000 to go from 4GB to 8GB and advertising it as if 4GB were enough for web browsing, email, and word processing... but if you wanted to get the most out of your PC, you need 8GB. I was torn between wanting to boycott apple and wanting to buy their stock.
Windows is a term that could be related to Macs. Any article that talks about the pricing of either needs to compare it against the other to have any meaning. At least one Why-are-Macs-so-expensive article makes the google list. Given that Macs are insanely expensive compared to PCs I would guess that there would be more articles explaining the cost of Macs versus the other way around.
Insufficient counter example.
In server software, popularity is often correlated with stability and quality. A larger market share tends to mean a better and usually more secure product. Those that opt to use better products tend to be better admins or developers or whatever which can also have a positive effect on security. This is arguably even more true when comparing microsoft solutions which are known for nice GUIs to open source tools which are known for text based configuration and heavy customization.
On the desktop, the products with larger market shares are those products that have the least savvy users. When combined with the size of the market, this is clearly the best attack vector.
As an aside, when it comes to desktops, we are a windows shop. An executive (and a very smart one) with a joint appointment recently inquired about replacing his non-domain XP laptop (supported by other area) with a Mac machine managed through our group. One of the reasons he gave was that XP was so horribly slow and his Mac at home booted up so much faster, the implication being Microsoft sucked. I took a look at his laptop and found that there were 50+ startup programs listed in msconfig, almost none of which had anything to do with Microsoft or windows. Since the executive had administrator privileges, it was clear to me that his problems were largely self inflicted. I doubt 1/5th of the crappy startup programs had mac equivalents.
The exec's problem was not with malware per say, but in my experience, most desktop malware infections are caused by users and correlated with market share.
What makes you think they didn't have a space program? More importantly, what makes you think they are all dead?
I find it highly suspicious that we haven't been hit with an ELE from space in the past 60 million years. The most probable explanation for that would seem to be that, roughly 60 million years ago, someone or something blasted off into space with a mission to protect the earth from future bombardment.
It was probably the raptors (it always is). I'm guessing they saved as many as they could in the seed ships while sending hunter-killer probes after near-earth asteroids. Even now, a society of hyper evolved Raptors are probably awakening from their cryogenic fugue out in the Ort cloud. Any day, they'll be sending a probe our way to evaluate the habitability of Earth as they've no doubt done every 20 million years or so.
What's gonna happen when they find out an infestation of not so furry primates have taken over and are now molding the remains of their ancestors into cheap plastic hello kitty christmas ornaments? I'm guessing they'll either capture a comet from the Ort cloud and send it hurtling our way, wipe us out with death beams from space, or send crack teams of Raptor ninjas down to exterminate us in hand to hand combat.
Shortest path algorithm, semaphores, compilers, programming language design...? This is the kind of stuff of formal programming methodologies. However, the kind of stuff that goes into it is not the kind of stuff that goes into software development in 99.99% of the world. Dijkstra was no doubt very smart, but I'm not sure I'd hire him to build business software.
Where exactly do semi-formalized, poorly thought-out specifications handed to you half-written out on a napkin and constantly subject to change fit into the programmers task and Dijkstra's world?
Many of the professors exist in a world where faculty is king, ie in charge of every aspect of the business. Therefore not receiving inputs in the desired fashion would be unacceptable and rejected outright.
The aim of a really good degree is to be cruel
There is a difference between something being cruel and something that is difficult or challenging. Any teacher who believes their goal is to be cruel should be fired. My greatest strides have always come from the work that came out of my home and not out of the classroom or even the work environment. The greatest aid in learning is the motivation to learn. Cruelty is not a good incentive for independent learning.
Then you graduate and find out the real world is easier than the theory.
Real world software development jobs are also a lot easier than rolling around naked through hot coals and velociraptors, but this isn't necessarily an optimal way of preparing someone for a career as a developer. I found a lot but not all of the theory I was taught in school to be irrelevant (axiomatic semantics, countability) while I was missing many fundamentals (usability, interface design, realistically modeled team work and project management).
Rule Number 1 of Computer Science - Don't reinvent the wheel. Everyone who invents their own education focused language that's only used at their school is violating the first rule of computer science. At my university, the first year of programming is taught in a java like variant of C++ called Resolve C++. Why is it bad?
My point is that you should not throw out fundamental stuff like computational complexity in favor of topics that directly apply to "real-world problems".
Almost everything taught applies to real world problems. Information doesn't know if it's theoretical or practical. It has value which is relative to its intended use. The sooner we embrace that fact, the sooner we'll have a balanced curriculum.
At my university, topics like axiomatic semantics and countability are covered while topics like usability and user interface design are not. The topics presented are often far more important to the provider than they are to the consumer. It's a classic case of a developer that creates the product he thinks his customers should want without truly soliciting requirements.
I agree that outsourcing can be good. However, if you are who I think you are, I would say that it is absolutely ridiculous that $500,000 is considered too much to spend on a mail system upgrade. The university just spent $140 million on a new Gym, $100 million for a new union, $108 million for the main library renovations. The mail system isn't a visible presence on campus but it IS CRITICAL university infrastructure and at least 1/100th as important as those other projects.
They can and should shell out a million on a quality mail system if that is all it takes to get one. Because the central system sucks, every quality admin on campus has to run their own system. How does $500,000 for 50,000 mailboxes compare to $5,000 for 100 which is less than what we're paying in my area for the server hardware, exchange, anti-virus and anti-spam? How do the time costs of maintaining one system compare to maintaining 100? How ridiculous is it that Bob in hr has no way of accessing the calendar of Sue in Maps?
We payed at least $5,000 for our server and licenses, but barring trust issues, I'm damn sure our group would pay a hell of a lot more than that for a good central mail system.
Can anyone else reason out a better explanation?
I assume appearances on the Colbert show are correlated with increased campaigning which results in increased contributions. I like Colbert, but to me, this sounds like exactly the sort of meaningless pompous statistic he would have fun with and mock.
The irony for me seeing this story here today is that last night I spent a good hour or so looking for a non-US/canadian proxy service so I could play Scrabulous online.
Hasbro has sued Indian based Scrabulous for copyright infringement and as a result they've had to restrict the service for all US/Canadian IPs. Scrabble was created in 1938 by Alfred Mosher Butts, who was born in 1899 and died in 1993. It's a 70 year old game created by a man that's been dead for 15 years and it's illegal to put copies of it online in the US.
Sure, nobody's getting killed over a game of Scrabble (that I know of), but sometimes I think this kind of censorship is more dangerous. It stifles human progress in a manner that most people find acceptable because they can't relate to it.
In college, almost all of our major projects were of the form "make an interpreter/compiler". This was very boring, uninspired, repetitive, and in general an unrealistic representation of real world projects. I like programming. It wasn't fun. It wasn't really rewarding. In fact, I think it was pretty pathetic.
I was thinking the same thing at first... then had a duh moment.
circumference = 2*pi*r
area = pi*r^2
So it's a linear scaling with a factor of pi. One more inch of diameter would yield 3.14... inches of circumference. I like pi, but hopefully not enough to affect my circumference... unless perhaps it is pumpkin.
The question is: What design/architecture qualities are shared by all good software? Good software means lacking in bugs, maintainable, modifiable, scalable, etc...
This is a very academic way of looking at "Good Software". Good software does not have to be all those things because those attributes are not of primary importance in all situations.
A one time import script does not need to be maintainable, modifiable, or scalable. However, it is sometimes very important that it is bug free or that it is written quickly.
One place I worked, we developed very expensive packaged software that was often installed in remote locations. It was important that it work and work the first time. Another place I worked programmed for inhouse systems and there the primary driving force was always speed and features. This resulted in some crappy code which was considered to be good software by the business because it was what they needed when they needed it.
Had I spent the same amount of time and care developing at the second job as I did at the first, I would have been rightly labeled incompetent. It didn't matter that the code was difficult to maintain because the most oft overlooked requirement for maintainability is profitability.
My point is just that your definition of good software really only makes sense in an abstract sense, when looking at software in isolation from its intended purpose, or in very specific situations where those attributes are overriding concerns.
If you are planning on getting into college and getting out with a BS and working in the real world (as opposed to staying on and sticking in academia)... you should go and visit each universities career services office.
They should be able to give you an idea of what kind of demand exists for graduates of their programs. Ask for things like lists of companies that recruit on campus, ask about career fairs and who attends, about a co-op or internship program (hint, you will be dead in the water without a co-op or internship).
The smaller university is likely to have a career service office that caters towards the liberal arts crowd and this could REALLY work against you. Liberal arts career services offices tend to be geared towards finding people with a college degree a job befitting someone with a generic college degree. Think Target hiring managers or United Health hiring insurance reps. The larger one is likely to have an engineering career services office that specializes in attracting the lockheeds and microsoft's of the world who come to campus looking for fresh CS blood to throw in their programming mines.
Now don't get me wrong, I've worked in a career services office, and I don't really think they are that great. But it's still where you want to look in terms of figuring out what your prospects will be when you graduate.
Also, a small liberal arts school feels kind of like the opposite of what most real world IT jobs end up being like. If you really want to go that school, maybe you wouldn't enjoy most IT jobs. Ever think about being an architect? A very large number of students end up changing their major. Consider the possibility of change as you design your college experience. What would your second or third choice majors be, does the smaller school offer them?
In my dealings, some of them (READ SOME) have the attitude that they are doing you a favor, just talking to you.
Sometimes they are doing you a favor by listening to a particular request or complaint. It depends on the work load and what kind of services are mandated. At my job, I do development, administration, and support. When a user asks me for help doing something in Word, I'll almost always try to help them. However, sometimes we're really really busy with important things and don't have time to show people how to do things when they should be able to figure it out on their own.
From another perspective, when I help a guy with 3 office questions a week, I am doing him a favor because I'm taking time away from more important issues to cover his ass by helping him do things that he should know how to do or at least be able to figure out as part of his job. Half the time I just do a google search. With certain people, every time they can't figure out how to do a mail merge, it is IT's fault, which is kinda the reverse of the attitude you were describing in some IT staff.
Interesting aside. At my last job, I worked for a tech company with a large number of generic office workers. Since they were a tech company, they required all their employees to take a basic computer literacy test as a prerequisite to employment. My current employer is an engineering college with lots of PhDs but poor computer skills. Despite the fact that we delivered far far far less end user support at the first job, satisfaction and relationships with the IT department were better than at the present job.
Indeed... the one time I can remember sleeping on the job was when I pulled an unpaid all (friday) nighter in order to get a test run rollout ready for the saturday development crew (which included me). I think I caught a couple hours sleep on the floor (or a bench?) at work that night. Those were fun times... Sadly, I'm sure our boss probably thought we were all lazy.
There is no viable way of determining who merits what and none is proposed.
Consider, pretty much everyone who is hiring anyone wants the best candidate for the job. Someone with a generalized bias against women in IT believes they merit less consideration. They are still following a meritocratic process, it's just that their evaluation criteria are different. If we remove all generalized biases/stereotypes from the evaluation process, evaluation becomes an impossible task.
Interesting aside, I've worked in male and female dominated workplaces. There are times when the introduction of an attractive single male or female has destabilized things among the workforce. Sometimes the most qualified candidate, male or female, is not the best candidate for a position. Personalities and social dynamics are very important.
How about the $400 per seat price tag?
My organization pays something like $50 per year per seat for full versions of Office and Windows workstation upgrades. Until recently, Visual Studio was included as well. That seems reasonable to me. Full microsoft compatibility is important enough to my user base to justify $50 per year.
Also, one important distinction between a migration to OO and a migration to Office 2007 is that, for my user base, 2007 migration issues would be largely MICROSOFT's fault and OO migration problems would be mostly MY fault.
I think in IT, we are used to being asked to clean up the mistakes of people that have bleeped up because they didn't know what they were doing. It could be the web designer that is dabbling with programming, the office worker making a bunch of excel macros to run office functions, or the typical end user that deleted all their files and doesn't understand that "Mom and Dad" is not a valid email address. IT is a profession in which many professionals cringe at the notion of amateur hour. For that matter, there's a lot of trained professionals I don't trust.
Personally, I'm rooting for Carmack, but I'm expecting more from Scaled Composites.
Thanks, that's some very good and very well thought out advice.
My friend left IT to become an MBA. He's graduating this quarter, and will be doubling his old salary. In his own words, he wanted to make the transition from the person writing the reports to the person requesting the reports. Of course, whether or not he'll achieve that as a consultant is debatable, but hey, he still doubled his salary and gets a change of pace. The two years he spent in the mba program served as a nice break from reality as well. Or as he would say, "Grad school is the snooze bar on the alarm clock of life."
The guy probably doesn't have enough time to do his job as it is. Tweaking bios settings on every pc he deploys and maintaining impossible to centrally manage bios passwords is a pain in the ass.
Besides, maybe there are times when booting off alternate media is within the range of acceptable use. In this case, disabling that feature would be analogous to deploying a proxy. Not every problem has a technical solution and for the ones that do... sometimes a law based solution is more efficient.
...study Architecture and build real schools! Just imagine the horrors
Sure, laugh now. Have you ever seen the Monty Python architect sketch?