Arcadia University in Pennsylvania used to be called Beaver College. It doesn't mention this in the Wikipedia article but I recall newspaper articles at the time claiming that, because of web filtering software, High School students were having trouble accessing the college's web site for application and other enrollment information.
http://en.wikipedia.org/wiki/Arcadia_University
First, my disclaimer. I received a Math/CS degree from a very highly regarded technical school (some twenty years ago but please don't hold that against me).
I currently lead an engineering organization. I've personally hired about 40 developers over the last 4 years and I've been involved in the hiring process my entire career. My organization prides itself on identifying and hiring top performers. Many of our staff graduated from top tier CS programs but we do have a smattering of great staff from small liberal arts colleges as well as other, perhaps less highly regarded, institutions.
I grew up in a family that placed a high value on literature and the other arts. I sometimes wish I had received more of a classic liberal arts education but I have to say that my professional education has served me well. I do think that it helps to walk away with some good, solid practical programming skills; I held programming jobs most of the way through school and every summer during school. I'm not sure I would have had that same opportunity at a different institution but perhaps that is one way in which the landscape really has changed since I was in school.
I would recommend that you look for a program that will teach you solid CS theory, whether it's at a small liberal arts college or at a technical school. I run into too many candidates these days that know a particlar programming library API inside and out but, for example, have no clue about the performance implications of selecting one data structure over another for a given application.
Ultimately though, the most important skill to learn in college is how to learn.
No college program is going to teach you everything you will need to know as your career progresses. Hell, when I went to school object-oriented programming was a notion that a few researchers were barely tossing around in their heads. I didn't learn about polymorhism in college. That came later. You will undoubtably have to pick up additional skills on the job through your interactions with others and through your own investigation. The real skills you need are the basic understanding of how to learn and the perseverence and foundational knowledge that empowers you to do so.
Good luck with your decision. Ultimately what you get out of your education is more about what YOU put into it rather than what others put into it.
I second this recommendation. This book is not particularly deep but it does give a general sense of what to do and what to avoid. It's a fairly gentle introduction to HCI principles with respect to GUI development.
I've made that same transition -- several times. I now <pointy-hair>manage software managers</pointy-hair>. I have several suggestions to get you started.
First and foremost leverage your own experience as an employee. Think about the things that managers have done for you or to you that you liked or disliked. Unfortunately most of us have many more bad examples than good. I was lucky enough to have a great role model for a manager the first time I made the management leap. Try to emulate the good examples and try to avoid the bad examples when interacting with your staff. That will go a long ways.
My philosophy is that as a manager you have three primary responsibilities or objectives when assigning tasks:
satisfy the business needs of the organization
know and consider the current skill sets of your staff
know and consider the likes and dislikes and the career goals of your staff
Think about these objectives as three circles in a venn diagram. When the overlap of the three circles is as great as it can be across your organization you are well on your way to doing a great job. Many managers forget about one or more of these objectives; Most often the third objective is the one that is lost. That's unfortunate.
Employee satisfaction is incredibly important. You don't want to lose a good employee just because you were unable to keep them happy or satisfy their career goals. In my business the learning curve is steep. It can take as much as six or more months for some employees to become fully productive. In addition I am very selective in my hiring. The cost of hiring and training a new employee is very costly. Retention is very important to me. This doesn't mean that you should bend to accommodate every every request or whim that your employees throw your way. In any job there is some s**t work that needs to be done. Everyone gets their fair share of this. Remember the first objective.
People are less logical than code and will always be more difficult to manage than code. Expect to spend a fair amount of your time dealing with interpersonal issues, group tensions, and other personal dynamics. Make time for this. Your employees will appreciate the time you spend with them. I have an open door policy and I rarely reject a meeting invitation.
Time management is incredibly important for a manger especially if you abide by the paragraph above. As a manager you will have more context switches than you can possibly imagine. You need to have strategies for managing your work queue. Make a list of the tasks that you need to accomplish each day. Keep this list up to date. When handling an interrupt take a second to jot a note about what you were doing so you can more easily return to the original task. I now manage a department of 45 developers however when I was managing a smaller group (5-10), I would spend about an hour total walking around each morning talking to each employee to see what issues they were having. That was a surprisingly simple and effective technique for proactively managing issues that otherwise would come up later in the day as interrupts.
The career growth of your employees is extremely important, not only to keep them happy but also to increase their value to your organization. If your company doesn't have a formal annual review process then create one. Make sure your evaluations are fair and relative to each employees experience and role in the organization. You don't judge a recent college graduate by the same set of measures as a 15 year veteran. Don't hand out top ratings like they are going out of style. Make sure your evaluations are constructively critical. It doesn't do anyone any good to avoid addressing issues. Every employee, no matter how talented, has areas in which they can improve. Make them stretch to reach their goals.
I mentioned hiring a few paragraphs up but this is a topic that deserves more attention. In fact, it d
I've been a Verizon customer since 1994 or so. I've been tempted a number of times to abandon Verizon for a variety of reasons, many already mentioned by other posters:
they are often the last company to get some of the interesting phones if they get them at all
they cripple phone features
they put their own ui on the phone
However, the bottom line is that I have great service. I can't remember the last call I dropped or the last time I couldn't get service except in a remote location snowboarding. All of my friends (none of them have Verizon) complain quite a bit about their service.
Verizon is often slow to adopt new phones partially because of #2 and #3 above; Those customizations take time. But also, Verizon does a huge amount of testing to make sure that each new phone gives good service. That's why for a long time Verizon didn't carry a single phone with an internal antenna. Most of those phones just didn't provide the same level of service. I've even heard that hardware providers have modified their electronics for Verizon as a direct result of this extensive testing.
I'd like to take advantage of some of the advanced that Verizon leaves out but, and maybe I'm strange in this way, I have a cell phone in order to make and receive phone calls. Killer bluetooth support, better web access support and other nice features don't do much good when you have zero bars.
Actually, here's a link to a page at the project's prime contractor that gives a little more context:
http://caloproject.sri.com/about/
This page is actually about 1 of the 2 subprojects that together makeup the PAL project.
I suggest that many of the posters to other threads should follow the publications link and bother to read some of the 50-odd citations. Only then will you really be in a position to speculate on what is and isn't hype. I guess it's actually easier to read a summary (/.) of an article (ComputerWorld) containing a summary of a web page (DARPA) summarizing the project.
I try to take both of my cars everywhere I go just in case the one I am driving breaks down. I can then use the other car to go pick up my personal mechanic to come fix the first car. This works fine.
[Yes, I know I'm getting off topic. I don't expect this thread to get modded up.]
You've completely missed my point. It's not about the button layout of a particular remote. My Hauppauge remote (the grey one) has a passable button selection and layout and is not that dissimilar from the Tivo remote. I've slightly customized the standard LIRC configuration for the Hauppauge remote and that's helped a bit.
What I find frustrating is the inability, as an end user, to define button bindings that are context sensitive. The Myth developers have done this to some limitied degree internally but for many reasons they haven't pushed context sensitive binding definition capability down to the user. For example, I would like the obvious (and marked) volume buttons on my remote to be navigation buttons while I'm in the program guide. Likewise with the channel buttons. I recognize that the lack of a single common remote layout for MythTV has made the job of the developers that much more difficult. However, I believe this to be a major lapse in terms of the usability of MythTV. I'm pretty sure that a comprehensive redesign of the code could , with the appropriate attention to usability, be very beneficial in the long run.
Don't get me wrong. I love my MythTV and am enjoying it as I post. My wife, who is not particularly technical, is totally comfortable using Myth while I'm not around. I do wish I had the time and the necessary non-production hardware to play around with the source and possibly contribute to the project.
As much as I love my MythTV(s), I can't imagine using its remote control navigation as an example to which Microsoft should aspire. Of course, part of the issue that Myth faces is that it isn't coded for a single remote button layout. But that doesn't completely excuse the clumsy navigation. This is one area where user studies and subsequent development could push MythTV to the next level of usability. Unlikely to happen though...
I work for a small software company. Our walls are covered with whiteboards. We regularly use digital cameras to archive whiteboard design session. Many of us carry cameras in our bags and there are two cameras at our reception desk. This is probably not an overly common model for the workplace but many of our clients have adopted it at their own workplace after experiencing one of these design sessions first hand. Yes, I do know about electronic whiteboards but they run over $1000 each and as I said, our walls are covered in whiteboards.
Hear, Hear! I couldn't have said it better myself. Every place I've worked over the last 19 years has had a similar policy. We've come up with a small set of simple rules focused on readability as well as correctness. I can't remember a time where anyone agreed with every rule but we all followed them.
Readability is important both for the person writing the code initially as well as others that follow as maintainers of the code. Most people don't think of correctness as playing a role in coding standards but that's naive. When I coded in C we had a rule to use compound statements (i.e. with braces) for the bodies of all control statements even if the body only contained a single statement. It's too easy for someone to add another line to the block without noticing the lack of braces. This can lead to any number of critical errors.
Best Buy scammed me too but only for $0.01. I was browsing the dvd section with a disk in hand that I was planning to purchase. A store employee handed me a disk saying they were giving *free* demo disks to anyone buying a dvd. I usually decline these sorts of things but for whatever reason that day I just took the disk and proceeded to the checkout. Only when I got home did I discover that I'd been charged a penny for the free demo disk. I didn't bother to go back and complain but the principle of the whole matter really bothered me.
Well said. That was exactly my first thought too.
Arcadia University in Pennsylvania used to be called Beaver College. It doesn't mention this in the Wikipedia article but I recall newspaper articles at the time claiming that, because of web filtering software, High School students were having trouble accessing the college's web site for application and other enrollment information. http://en.wikipedia.org/wiki/Arcadia_University
Ouch! I would say that this ad campaign is the gonorrhea of viral marketing except that its victims get no moment of ecstasy before the agony sets in.
First, my disclaimer. I received a Math/CS degree from a very highly regarded technical school (some twenty years ago but please don't hold that against me).
I currently lead an engineering organization. I've personally hired about 40 developers over the last 4 years and I've been involved in the hiring process my entire career. My organization prides itself on identifying and hiring top performers. Many of our staff graduated from top tier CS programs but we do have a smattering of great staff from small liberal arts colleges as well as other, perhaps less highly regarded, institutions.
I grew up in a family that placed a high value on literature and the other arts. I sometimes wish I had received more of a classic liberal arts education but I have to say that my professional education has served me well. I do think that it helps to walk away with some good, solid practical programming skills; I held programming jobs most of the way through school and every summer during school. I'm not sure I would have had that same opportunity at a different institution but perhaps that is one way in which the landscape really has changed since I was in school.
I would recommend that you look for a program that will teach you solid CS theory, whether it's at a small liberal arts college or at a technical school. I run into too many candidates these days that know a particlar programming library API inside and out but, for example, have no clue about the performance implications of selecting one data structure over another for a given application. Ultimately though, the most important skill to learn in college is how to learn.
No college program is going to teach you everything you will need to know as your career progresses. Hell, when I went to school object-oriented programming was a notion that a few researchers were barely tossing around in their heads. I didn't learn about polymorhism in college. That came later. You will undoubtably have to pick up additional skills on the job through your interactions with others and through your own investigation. The real skills you need are the basic understanding of how to learn and the perseverence and foundational knowledge that empowers you to do so.
Good luck with your decision. Ultimately what you get out of your education is more about what YOU put into it rather than what others put into it.
I second this recommendation. This book is not particularly deep but it does give a general sense of what to do and what to avoid. It's a fairly gentle introduction to HCI principles with respect to GUI development.
I've made that same transition -- several times. I now <pointy-hair>manage software managers</pointy-hair>. I have several suggestions to get you started.
First and foremost leverage your own experience as an employee. Think about the things that managers have done for you or to you that you liked or disliked. Unfortunately most of us have many more bad examples than good. I was lucky enough to have a great role model for a manager the first time I made the management leap. Try to emulate the good examples and try to avoid the bad examples when interacting with your staff. That will go a long ways.
My philosophy is that as a manager you have three primary responsibilities or objectives when assigning tasks:
Think about these objectives as three circles in a venn diagram. When the overlap of the three circles is as great as it can be across your organization you are well on your way to doing a great job. Many managers forget about one or more of these objectives; Most often the third objective is the one that is lost. That's unfortunate.
Employee satisfaction is incredibly important. You don't want to lose a good employee just because you were unable to keep them happy or satisfy their career goals. In my business the learning curve is steep. It can take as much as six or more months for some employees to become fully productive. In addition I am very selective in my hiring. The cost of hiring and training a new employee is very costly. Retention is very important to me. This doesn't mean that you should bend to accommodate every every request or whim that your employees throw your way. In any job there is some s**t work that needs to be done. Everyone gets their fair share of this. Remember the first objective.
People are less logical than code and will always be more difficult to manage than code. Expect to spend a fair amount of your time dealing with interpersonal issues, group tensions, and other personal dynamics. Make time for this. Your employees will appreciate the time you spend with them. I have an open door policy and I rarely reject a meeting invitation.
Time management is incredibly important for a manger especially if you abide by the paragraph above. As a manager you will have more context switches than you can possibly imagine. You need to have strategies for managing your work queue. Make a list of the tasks that you need to accomplish each day. Keep this list up to date. When handling an interrupt take a second to jot a note about what you were doing so you can more easily return to the original task. I now manage a department of 45 developers however when I was managing a smaller group (5-10), I would spend about an hour total walking around each morning talking to each employee to see what issues they were having. That was a surprisingly simple and effective technique for proactively managing issues that otherwise would come up later in the day as interrupts.
The career growth of your employees is extremely important, not only to keep them happy but also to increase their value to your organization. If your company doesn't have a formal annual review process then create one. Make sure your evaluations are fair and relative to each employees experience and role in the organization. You don't judge a recent college graduate by the same set of measures as a 15 year veteran. Don't hand out top ratings like they are going out of style. Make sure your evaluations are constructively critical. It doesn't do anyone any good to avoid addressing issues. Every employee, no matter how talented, has areas in which they can improve. Make them stretch to reach their goals.
I mentioned hiring a few paragraphs up but this is a topic that deserves more attention. In fact, it d
I've been a Verizon customer since 1994 or so. I've been tempted a number of times to abandon Verizon for a variety of reasons, many already mentioned by other posters:
However, the bottom line is that I have great service. I can't remember the last call I dropped or the last time I couldn't get service except in a remote location snowboarding. All of my friends (none of them have Verizon) complain quite a bit about their service.
Verizon is often slow to adopt new phones partially because of #2 and #3 above; Those customizations take time. But also, Verizon does a huge amount of testing to make sure that each new phone gives good service. That's why for a long time Verizon didn't carry a single phone with an internal antenna. Most of those phones just didn't provide the same level of service. I've even heard that hardware providers have modified their electronics for Verizon as a direct result of this extensive testing.
I'd like to take advantage of some of the advanced that Verizon leaves out but, and maybe I'm strange in this way, I have a cell phone in order to make and receive phone calls. Killer bluetooth support, better web access support and other nice features don't do much good when you have zero bars.
Actually, here's a link to a page at the project's prime contractor that gives a little more context:
http://caloproject.sri.com/about/
This page is actually about 1 of the 2 subprojects that together makeup the PAL project.
I suggest that many of the posters to other threads should follow the publications link and bother to read some of the 50-odd citations. Only then will you really be in a position to speculate on what is and isn't hype. I guess it's actually easier to read a summary (/.) of an article (ComputerWorld) containing a summary of a web page (DARPA) summarizing the project.
I try to take both of my cars everywhere I go just in case the one I am driving breaks down. I can then use the other car to go pick up my personal mechanic to come fix the first car. This works fine.
You've completely missed my point. It's not about the button layout of a particular remote. My Hauppauge remote (the grey one) has a passable button selection and layout and is not that dissimilar from the Tivo remote. I've slightly customized the standard LIRC configuration for the Hauppauge remote and that's helped a bit.
What I find frustrating is the inability, as an end user, to define button bindings that are context sensitive. The Myth developers have done this to some limitied degree internally but for many reasons they haven't pushed context sensitive binding definition capability down to the user. For example, I would like the obvious (and marked) volume buttons on my remote to be navigation buttons while I'm in the program guide. Likewise with the channel buttons. I recognize that the lack of a single common remote layout for MythTV has made the job of the developers that much more difficult. However, I believe this to be a major lapse in terms of the usability of MythTV. I'm pretty sure that a comprehensive redesign of the code could , with the appropriate attention to usability, be very beneficial in the long run. Don't get me wrong. I love my MythTV and am enjoying it as I post. My wife, who is not particularly technical, is totally comfortable using Myth while I'm not around. I do wish I had the time and the necessary non-production hardware to play around with the source and possibly contribute to the project.
As much as I love my MythTV(s), I can't imagine using its remote control navigation as an example to which Microsoft should aspire. Of course, part of the issue that Myth faces is that it isn't coded for a single remote button layout. But that doesn't completely excuse the clumsy navigation. This is one area where user studies and subsequent development could push MythTV to the next level of usability. Unlikely to happen though...
I work for a small software company. Our walls are covered with whiteboards. We regularly use digital cameras to archive whiteboard design session. Many of us carry cameras in our bags and there are two cameras at our reception desk. This is probably not an overly common model for the workplace but many of our clients have adopted it at their own workplace after experiencing one of these design sessions first hand. Yes, I do know about electronic whiteboards but they run over $1000 each and as I said, our walls are covered in whiteboards.
Hear, Hear! I couldn't have said it better myself. Every place I've worked over the last 19 years has had a similar policy. We've come up with a small set of simple rules focused on readability as well as correctness. I can't remember a time where anyone agreed with every rule but we all followed them.
Readability is important both for the person writing the code initially as well as others that follow as maintainers of the code. Most people don't think of correctness as playing a role in coding standards but that's naive. When I coded in C we had a rule to use compound statements (i.e. with braces) for the bodies of all control statements even if the body only contained a single statement. It's too easy for someone to add another line to the block without noticing the lack of braces. This can lead to any number of critical errors.
Best Buy scammed me too but only for $0.01. I was browsing the dvd section with a disk in hand that I was planning to purchase. A store employee handed me a disk saying they were giving *free* demo disks to anyone buying a dvd. I usually decline these sorts of things but for whatever reason that day I just took the disk and proceeded to the checkout. Only when I got home did I discover that I'd been charged a penny for the free demo disk. I didn't bother to go back and complain but the principle of the whole matter really bothered me.
Just announced by Lindows: http://info.lindows.com/mobilepc/mobilepc.htm