SteveOH

Tag: how to

Guidelines to Development on the Hollywood Operating System

by Steve Hernandez on Nov.05, 2009, under General, Technology

Courtesy of Cain’s Brain.

1. Any PERMISSION DENIED has an OVERRIDE function.

2. Complex calculations and loading of huge amounts of data will be accomplished in under three seconds. In the movies, modems transmit data at two gigabytes per second.

3. When the power plant/missile site/whatever overheats, all the control panels will explode, as will the entire building.

4. If you display a file on the screen and someone deletes the file, it also disappears from the screen. There are no ways to copy a backup file — and there are no undelete utilities.

Corollary: Deleting a file instantly removes all copies of said file from disks, memory, frame buffers and caches across all computers in the universe.

5. If a disk has got encrypted files, you are automatically asked for a password when you try to access it.

6. No matter what kind of computer disk it is, it’ll be readable by any system you put it into. All application software is usable by all computer platforms.

7. The more high-tech the equipment, the more buttons it has. However, everyone must have been highly trained, because the buttons aren’t labeled.

8. Most computers, no matter how small, have reality-defying three-dimensional, real-time, photo-realistic animated graphics capability.

9. Laptops, for some strange reason, always seem to have amazing real-time video phone capabilities and the performance of a CRAY.

10. Whenever a character looks at a terminal, the image is so bright that it projects itself onto his/her face.

11. Computers never crash during key, high-intensity activities. Humans operating computers never make mistakes under stress.

12. (From Independence Day) No matter what kind of virus it is, any computer can be infected with it — even an alien spaceship’s computer — simply by running a virus upload program on a laptop.

13. (From Jurassic Park) A custom system with millions of lines of code controlling a multimillion dollar theme park can be operated by a 13 year old who has seen a Unix system before. Seeing an operating system means you know how to run any application on that system, even custom apps.

Note: What OS was it really running?

(1) “These are super computers”.  A CrayOS?

(2) “Quicktime movie, Apple logo, trash can.”  MacOS?

(3) “Reboot. System ready. C:\”  DOS?

(4) “Hey, this is Unix.  I know this”  Unix?

The computers in Jurassic Park were Cray supercomputers running the MacOS as a graphical shell of DOS all layered on top of a Unix base.

14. You cannot stop a destructive program or virus by unplugging the computer. Presumably the virus has it’s own built-in power supply.

15. You cannot stop a destructive program downloading onto your system by unplugging the phone line. You must figure out the mandatory “back door” all evil virus programmers put in.

16. Computers only crash if a virus or a hacker is involved.

17. All text must be at least 72 point.

18. Word processors do not have an insert point.

19. The only way to reboot is to shut off the main power to the building.

20. Passwords can be guessed in three and exactly three tries.  If you cannot guess the password in three tries, you must give up immediately.

21. Any task or program can be executed by simply pressing Enter, no matter which program or window is in the foreground.

22. All scanners, video cameras and digital cameras have a resolution of approximately 500 megapixels.  Any image can be infinitely magnified with no pixelization.

23. Security will not improve over time.  Nonaffialiated personnel can take over a space ship without needing an account or access control.  Corollary: Anyone can override access control lists in the future.

24. All hackers wear black T-shirts or Hawaiian shirts.

25. Incoming messages are displayed letter by letter.  Email over the Internet works like telegraphs.

26. Microsoft Windows doesn’t exist.  Macintosh has a 75% market share.

27. GUI operations, such as image selection and manipulation, can be handled easily and quickly via the keyboard.

28. If a robot’s eyes turn red, it becomes evil.

29. Cell phones and laptops have infinite battery life, until you need to call for help.

30. Latency does not exist.  Voice and data can be sent to Mars in real time.

Leave a Comment :, , , , , , , , , , , , , more...

Computer Science Graduate School Survival Guide

by Steve Hernandez on Aug.14, 2009, under Academic, Technology

The guide below was not written by me, but by Ronald T. Azuma, PhD.  All credits go to the author and/or other stated sources.  I just wanted to share this wonderful resource with anyone that may be interested.

****

Brief description

A computer science graduate school survival guide, intended for prospective or novice graduate students. This guide describes what I wish I had known at the start of graduate school but had to learn the hard way instead. It focuses on mental toughness and the skills a graduate student needs. The guide also discusses finding a job after completing the Ph.D. and points to many other related web pages.


“So long, and thanks for the Ph.D.!”

a.k.a.

“Everything I wanted to know about C.S. graduate school
at the beginning but didn’t learn until later.”

The 4th guide in the Hitchhiker’s guide trilogy
(and if that doesn’t make sense, you obviously have not read Douglas Adams)

by Ronald T. Azuma

v. 1.08

Original version 1997, last revised January 2003


Introduction

    • The Feynman Problem Solving Algorithm:
      1) Write down the problem.
      2) Think very hard.
      3) Write down the solution.
  • “To know the road ahead, ask those coming back.”
    - Chinese proverbIn February 1995, on a beautiful sunny day with clear Carolina blue skies, I turned in the final, signed copy of my dissertation. The graduate school staff member did some last-minute checks on the document and pronounced it acceptable. After six and a half years of toil and sweat, I was finally done! While walking back to the C.S. department building, I was sorely disappointed that the heavens didn’t part, with trumpet-playing angels descending to announce this monumental occasion. Upon hearing this observation, Dr. Fred Brooks (one of my committee members) commented, “And the sad fact is, you’re no smarter today than you were yesterday.” “That’s true,” I replied, “but the important thing is that I am smarter than I was six and a half years ago.”

    That day was over two years ago, and since then I have had plenty of time to reflect upon my graduate student career. One thought that has repeatedly struck me is how much easier graduate school might have been if somehow, magically, some of the things I knew when I turned in my dissertation I could have known when I first entered graduate school. Instead, I had to learn those the hard way. Of course, for many topics this is impossible: the point of graduate school is to learn those by going through the experience. However, I believe other lessons can be taught ahead of time. Unfortunately, such guidance is rarely offered. While I had to learn everything the hard way, new graduate students might benefit from my experiences and what I learned. That is the purpose of this guide.

    Very little of this guide discusses technical matters. Technical skills, intelligence and creativity are certainly strong factors for success in graduate school. For example, I doubt there is a C.S. graduate student who didn’t at one point wish he or she had a stronger mathematical background. However, it’s beyond the scope of this guide to tell you how to be technically brilliant, as the following joke implies:

    You don’t have to be a genius to do well in graduate school. You must be reasonably intelligent, but after a certain point, I think other traits become more important in determining success.This guide covers the character traits and social skills that often separate the “star” graduate students from the ordinary ones. Who are the students who are self-motivated, take initiative, find ways around obstacles, communicate well both orally and in writing, and get along well enough with their committee and other department members to marshal resources to their cause? Which students seem to know “how the system works” and manage to get things done? These traits are hardly unique to succeeding in graduate school; they are the same ones vital to success in academic or industrial careers, which is probably why many of the best graduate students that I knew were ones who had spent some time working before they came back to school.

    This document is aimed at junior C.S. graduate students, but these observations are probably broad enough to apply to graduate education in other technical fields. My conclusions are certainly colored by my particular experiences (doing my dissertation work in interactive computer graphics in the Computer Science department of the University of North Carolina at Chapel Hill) but I think they are fairly general in application and should be of interest to readers at other schools and other C.S. specialties. Obviously, these are only my opinions and may not represent the views of other sane individuals or organizations. Some points may be controversial, but if they weren’t this would not be interesting reading. Parts of this document come from two informal talks I gave at UNC about “the Ph.D. job hunt” and “observations from spending one year in industrial research.” Both talks had larger audiences than any informal technical talk I gave at UNC, which told me that students are definitely interested in these subjects!

Why get a Ph.D.?

    “Being a graduate student is like becoming all of the Seven Dwarves. In the beginning you’re Dopey and Bashful. In the middle, you are usually sick (Sneezy), tired (Sleepy), and irritable (Grumpy). But at the end, they call you Doc, and then you’re Happy.”
    - yours trulyThe most basic question every Ph.D. student must know the answer to is: “Why the hell am I doing this?”

    It’s a good question. The hours are long. The pay is low, with minimal benefits. After graduation, Ph.D. salaries are higher than B.S. and M.S. salaries, but the difference doesn’t make up for the income lost by staying in school longer. The M.S. has a better “bucks for the time invested” ratio than the Ph.D. does. And in terms of social status, a graduate student doesn’t rank very high on the ladder.

    If you do not have an acceptable answer to this question, then don’t get a Ph.D. I repeat: if you do not have a rock-solid reason for getting the Ph.D., then it is better that you leave with a Master’s.

    Why? Completing a Ph.D. is a long, hard road with many potholes and washed out bridges along the way. You may run over some land mines and have to stop and turn around and explore other routes. If the goal is important enough to you, then these obstacles will not prevent you from completing your journey. But if you don’t know why you are on this road, then you will get discouraged and will probably leave without finishing, having wasted years of your life.

    I faced this situation after the first time I took the Doctoral Written Exam (which at the time was the entrance examination into the Ph.D. program). I missed passing it by just 4 percentage points. I then had to decide whether or not to try again next semester (committing myself again to spending weeks getting ready for the test) or just leave with an M.S. degree.

    I didn’t come to graduate school with the Ph.D. as the primary goal. So this test result forced me to answer the basic question “Why the hell am I doing this?” After much soul searching, I found my answer and decided to take the test again, passed it, and went on to get my Ph.D.

    I got the Ph.D. because I wanted to get a research position after leaving graduate school. I wanted to work with the state of the art and extend it. I did not want to “bring yesterday’s technology one step closer to tomorrow.” I wanted a job that would I find interesting, challenging and stimulating. While an M.S. would give me a chance at landing a research position, the Ph.D. would give me a much better chance. And I did not want to live with regrets. If I took the Doctoral Written Exam again and failed again, then I could say that it wasn’t meant to be and move on with my life. I would have no regrets because I had given it my best shot and was not able to make it. However, if I left with an M.S. without taking the test a second time, and five years later I was in a job that was boring and uninteresting, then I would have to lie awake every night for the rest of my life wondering “What if?” What if I had taken the test again and passed? Would I then be in the job that I really wanted? That was not a situation I wanted to be in. I did not want to live the rest of my life regretting what might have been.

    In hindsight, I think one of the main reasons I successfully completed the Ph.D. was the fact that I didn’t pass the exam on the first try. It’s ironic, but life sometimes works in strange ways. That initial failure caused me to answer the basic question, providing the mental fortitude to keep going despite the hurdles and problems I would later face.

    My answer is you should get a Ph.D. if it is required for your goals after graduate school, such as becoming a professor or a researcher in academia, government or industry. Your answer may differ from mine. As long as you have an answer that you believe in passionately, then that’s enough. If you don’t have an answer, then save yourself a lot of grief and don’t get the Ph.D.

Academia is a business

    “Remember the Golden Rule: Those who have the gold make the rules.”Academia is a business, and “graduate student” is a job title. This is especially true at private universities. Academia is very peculiar type of business. It is certainly not the Real World and does not work in the same way that the ordinary corporate world does. However, it is a business nonetheless and as a graduate student, you must treat it that way. Graduate school made a lot more sense and became much easier for me after I realized this. If you think of graduate school as an “Ivory Tower” free of politics, money problems, and real-world concerns, you are going to be severely disappointed. If you don’t believe me, read The Idea Factory by Pepper White (listed in the references) for one account of graduate life at MIT.

    A few graduate students are independently wealthy or have fellowship and scholarship money that cover all their expenses for their total stay in graduate school. Such students are rare, however. Most of us needed financial support, in the form of Teaching Assistantships or Research Assistantships (RA’s). In general, RA’s are more desirable to students since those can directly fund the research you need to finish.

    Where does the money come from to fund RA’s? Your professors have to raise funds from external organizations. These include government agencies such as the National Science Foundation (NSF), Defense Advanced Research Projects Agency (DARPA), the Office of Naval Research (ONR), and others. Private companies also fund some university research, although this tends to be less common, in smaller amounts, and in the form of equipment donations. These organizations don’t just give money away as charity. They expect their money to accomplish something. Increasingly these days, this takes the form of a contract for a working demonstration that must be shown at the end. That means once the money is delivered, your professors must come through with the working demonstration. It is rare that they do this by themselves. Instead, they find some very capable, young, self-motivated people who are willing to work long hours for small amounts of pay. In other words, they fund RA’s.

    The RA job is crucial to the academic business. If the RA’s cannot successfully conduct the research, then the demonstration will not work in the end and the funding agencies may not be happy. They may choose not to fund your professor in the future, which will bring his or her research program to a halt. And there are many professors and other researchers chasing too few research dollars these days; it is a competitive market. Thus, each professor wants the best students available. These students are the most capable ones who can get the research done required to fulfill the funding contracts.

    That means you must treat an RA like a job. You must prove to your professors that you are capable of getting the work done, being a team player, communicating your results, and most of the other characteristics needed to do well in regular jobs. That’s why many of the upcoming sections in this guide sound like ones written for the regular workplace.

    What do you get out of this? At the start, you may have to do tasks specifically related to the funding contracts. But eventually your professor must be flexible enough to fund your own specific research program that leads to the completion of your dissertation. Your stipend and tuition waiver should be enough to live on frugally without going into debt. You will learn the state of the art in your chosen speciality and conduct cutting-edge research on a subject that you find interesting and enjoyable. If you don’t find this compensation sufficient, then you shouldn’t be in graduate school in the first place.

    The bottom line: realize that academia is a peculiar kind of business and the role you play in this enterprise. If you do your job well (and have good negotiation and interpersonal skills, as discussed in future sections), both your needs and your professors’ needs will be met. But don’t enter an RA position thinking that the computers, research equipment, staff members and other resources that you are provided with are your birthright. Don’t take them for granted! Most of those exist only because your professors have been able to raise the money to provide those to you. In turn, you must fulfill your end of the deal by doing great research with those resources. If you don’t do your job well, don’t be surprised if your professors choose not to fund you in the future. They do not have to provide you with an RA job or let you use the computing equipment they acquired. And the student who has no funding, no tuition reimbursement and no access to required computing resources is the student who leaves the university that semester.

    How do you make sure you are one of those best, highly desired RA’s? Read on!

Graduate school is a different ballgame

    “Don’t let school get in the way of your education.”
    - Mark Twain“The IQ test was invented to predict academic performance, nothing else. If we wanted something that would predict life success, we’d have to invent another test completely.”
    - Robert Zajonc

    If you go through a Ph.D. program, you will find graduate school a very different world from undergraduate school. If you just get an M.S., then graduate school may not be much different from undergrad (depending on where you get your degree), except that the courses are deeper and more advanced. But for a Ph.D. student, graduate school is a whole new ballgame. The students who do well are the ones who learn this earlier rather than later and make the necessary adjustments.

    Graduate school is not primarily about taking courses. You will take classes in the beginning but in your later years you probably won’t have any classes. People judge a recently graduated Ph.D. by his or her research, not by his or her class grades. And, without any offense to my professors, most of what you learn in a Ph.D. program comes outside of classes: from doing research on your own, attending conferences, and talking to your fellow students. Success in graduate school does not come from completing a set number of course units but rather from successfully completing a research program.

    Graduate school is more like an apprenticeship where each student has his or her own project, and the masters may or may not be particularly helpful. It’s like teaching swimming by tossing students into the deep end of the pool and seeing who makes it to the other end alive and who drowns. It’s like training clock designers by locking students inside a clock factory with some working clocks and lots of clock parts and machines for building clocks. However, the instructions are at best incomplete and even the masters themselves don’t know exactly how to build next year’s models.

    Excelling in a Ph.D. program requires different skills than doing well in undergrad. Undergraduate education tests you through class projects (that do not last more than a semester), essays, midterms and finals. For the most part, you work alone. Your professor may not know your name. Every other student in your class takes the same tests or does similar projects. But in a Ph.D. program, you must select and complete a unique long-term research program. For most of us, this means you have to learn how to do research and all that entails: working closely with your professors, staff and fellow students, communicating results, finding your way around obstacles, dealing with politics, etc.

    I’m not saying that tests and grades are completely unimportant in graduate school. One of the two biggest hurdles in completing a Ph.D. is passing the qualifying exam. (The other is finding an acceptable dissertation topic.) But because graduate school is not nearly as exam-based as undergraduate education and requires different skills, the GRE and undergraduate grades are not as good an indicator of who will excel and who will drop out as admission committees seem to think. Those tests do not measure creativity, tenacity, interpersonal skills, oral presentation skills, and many other important traits.

    The next several sections discuss these traits.

Initiative

    “The difference between people who exercise initiative and those who don’t is literally the difference between night and day. I’m not talking about a 25 to 50 percent difference in effectiveness; I’m talking about a 5000-plus percent difference, particularly if they are smart, aware, and sensitive to others.”
    - Stephen R. Covey, The 7 Habits of Highly Effective PeopleThe dissertation represents a focused, personal research effort where you take the lead on your own, unique project. If you expect that your adviser is going to hold your hands and tell you what to do every step of the way, you are missing the point of the dissertation. Ph.D. students must show initiative to successfully complete the dissertation. This does not mean that guidance from professors is unimportant, just that this guidance should be at a reasonably high level, not at a micromanaging level. If you never do any tasks except those that your professor specifically tells you to do, then you need to work on initiative.

    At UNC, there is a famous anecdote about a former UNC graduate student named Joe Capowski. Many years ago, UNC got a force-feedback mechanical arm to use with molecular visualization and docking experiments. The problem was how to move it to UNC. This mechanical arm is a large, heavy beast, and it was in Argonne National Labs in Chicago, IL. Unfortunately, there was a trucker’s strike going on at the time. Joe Capowski, on his own initiative (and without telling anyone), flew out to Argonne, rented a car, drove the mechanical arm all the way back to North Carolina, and then handed the computer science department the bill! Many years later, Joe Capowski ran for the Chapel Hill city council and won a seat. Prof. Fred Brooks gave him an endorsement. I still remember the words Dr. Brooks said: “I may not agree with his politics, but I know he’ll get things done.”

    While the Joe Capowski anecdote is perhaps a bit extreme, it does show that it is often better to ask forgiveness than permission, provided you are not becoming a “loose cannon.” Certain universities (e.g. MIT) are good at fostering a “can do” attitude among their graduate students, and therefore they become more assertive and productive. One of the hallmarks of a senior graduate student is that he or she knows the types of tasks that require permission and those that don’t. That knowledge will come with experience. Generally, it’s the senior graduate students who have the most freedom to take initiative on projects. This privilege has to be earned. The more that you have proven that you can work independently and initiate and complete appropriate tasks, the more your professors will leave you alone to do what you want to do.

Tenacity

    “Let me tell you the secret that has led me to my goal. My strength lies solely in my tenacity.”
    - Louis PasteurYou don’t need to be a genius to earn a Ph.D. (although it doesn’t hurt). But nobody finishes a dissertation without being tenacious. A dissertation usually takes a few years to complete. This can be a culture shock to former undergraduates who have never worked on a project that lasted longer than one quarter or semester (at the end of which, whatever the state of the project, one declares victory and then goes home). No one can tell you in advance exactly how long the dissertation will take, so it’s hard to see where the “end of the road” lies. You will encounter unexpected problems and obstacles that can add months or years to the project. It’s very easy to become depressed and unmotivated about going on. If you are not tenacious about working on the dissertation, you won’t finish.

    Tenacity means sticking with things even when you get depressed or when things aren’t going well. For example, I did not enjoy my first year of graduate school. I didn’t tell anyone this until after leaving UNC. I was not on a project and was focused on taking classes, some of which I didn’t do all that well in. I didn’t feel a part of the Department, and really wondered whether or not I fit in. Still, I stuck with it and when summer rolled around and I got a job in the Department, I became much more involved in research and enjoyed graduate school much more. Part of earning a Ph.D. is building a “thick skin” so you are not so fragile that you will give up at the first sign on any difficulties.

    One lesson I learned as a graduate student is the best way to finish the dissertation is to do something every day that gets you closer to being done. If all you have left is writing, then write part of the dissertation every day. If you still have research to do, then do part of it every day. Don’t just do it when you are “in the mood” or feeling productive. This level of discipline will keep you going through the good times and the bad and will ensure that you finish.

Flexibility

    “Back in graduate school, I’d learned how to survive without funding, power, or even office space. Grad students are lowest in the academic hierarchy, and so they have to squeeze resources from between the cracks. When you’re last on the list for telescope time, you make your observations by hanging around the mountaintop, waiting for a slice of time between other observers. When you need an electronic gizmo in the lab, you borrow it in the evening, use it all night, and return it before anyone notices. I didn’t learn much about planetary physics, but weaseling came naturally.”
    - Clifford Stoll, The Cuckoo’s Egg“The Chinese call luck opportunity and they say it knocks every day on your door. Some people hear it; some do not. It’s not enough to hear opportunity knock. You must let him in, greet him, make friends and work together.”
    - Bernard Gittelson

    Flexibility means taking advantage of opportunities and synergies, working around problems, and being willing to change plans as required. As a graduate student, you are on the bottom of the academic totem pole. Even undergraduates can rank higher, especially at private universities (because they actually pay tuition!) You cannot order anybody to do anything. In general, you will be in the position of reacting to big events rather than controlling them. Therefore, you must be flexible in your approach and research program.

    For example, you may not have as much access to a piece of laboratory equipment as you would like, or maybe access is suddenly cut off due to events beyond your control. What do you do? Can you find a replacement? Or reduce the time needed on that equipment? Or come in at odd hours when no normal person uses that equipment? Or redefine the direction of your project so that equipment is no longer required?

    Events can be good as well as bad. The difference between the highly effective graduate student and the average one is that the former recognizes those opportunities and takes advantage of them. I had nothing to do with bringing Gary Bishop to UNC. But after he arrived I realized my research would progress much faster if he became my adviser so I made the switch and that was a big help to my graduate student career. Opportunities for synergy and serendipity do occur, but one has to be flexible enough to recognize them and take advantage of them.

Interpersonal skills

    • I first learned of the capricious, human side of organizations some 15 years ago while studying the careers of engineers and scientists. The research design required that I spend eight hours a day in one-on-one interviews. For two hours I’d ask “career” questions of an engineer, chemist, physicist, or applied mathematician — all of whom worked for a Fortune 500 firm. During these 120 minutes, the subjects talked about the perils of the organizations. Two hours was scarcely enough time to share their stories. All energetically discussed their personal careers. Most had been frustrated with the “soft and gushy” side of organizations. Some had figured out the system and learned to master it. Others had not.As part of the research design, we asked to talk to low, medium, and high performers. This in itself was an interesting exercise. To determine performance rankings, we would place in front of a senior manager the names of the 10-50 people within his or her organization. Each name would be typed neatly in the middle of a three-by-five card. After asking the manager to rank the employees from top to bottom, the managers would then go through a card sort. Typically the executive would sort the names into three or four piles and then resort each pile again. Whatever the strategy, the exercise usually took only minutes. Just like that, the individual in charge of the professionals in question was able to rank, from top to bottom, as many as 50 people. It rarely took more than three minutes and a couple of head scratches and grunts. Three minutes. Although politics may appear ambiguous to those on the receiving end, those at the top were able to judge performance with crystal clarity.

      This performance ranking (conducted by individuals not involved in the interviews) was then used as a dependent measure. Those of us conducting the interviews attempted to surface information (independent measures) that would predict the ranking. What about a scientist’s career would lead to a top ranking? What trashed a perfectly good career? Surely scientific prowess would have an impact. And it did.

      But technological prowess wasn’t as predictive as another factor. We discovered that we could tell what performance group the interviewees belonged to within a minute or two by their attitudes toward people and politics. Individuals who were ranked low by their managers spoke of organizational politics as if it were poison. They were exceptionally annoyed by the people side of the business. They frequently stated they would rather be left alone to conduct their research untrammeled by human emotions. They characterized the social side of organizations as “soft and gushy.” They sounded like Spock turned bitter.

      Top performers, in contrast, found a way to work within the political system. They hadn’t exactly embraced politics. They didn’t appear like that toothy kid you knew back in college who lived to fight political battles. They didn’t come off as glad-handling sales folks. These were professional scientists who were often top ranked in their field. They looked and talked liked scientists. The difference between them and those ranked at the bottom of the totem pole was clear. They had found a way to make peace with organizations, people, and politics. They climbed to the top of their field by mastering both hard things and soft and gushy people.

      Engineers and scientists aren’t the only ones who find the human side of the organizations to be annoying. As we expanded our research to include professors, accountants, and other professionals, the findings were remarkably similar. All found political machinations to be distasteful. It’s just that some had found a way to master the social aspects — the top performers.

  • “For humans, honesty is a matter of degree. Engineers are always honest in matters of technology and human relationships. That’s why it’s a good idea to keep engineers away from customers, romantic interests, and other people who can’t handle the truth.”
    - Scott Adams, The Dilbert Principle“I can calculate the motions of the heavenly bodies, but not the madness of people.”
    - Isaac Newton

    Computer Science majors are not, in general, known for their interpersonal skills. Some of us got into this field because it is easier to understand machines than people. As frustrating as computers can be, they at least behave in a logical manner, while human beings often do not. However, your success in graduate school and beyond depends a great deal upon your ability to build and maintain interpersonal relationships with your adviser, your committee, your research and support staff and your fellow students. This does not mean you must become the “life of the party.” I am not and never will be a gregarious, extroverted person. But I did make a serious effort to learn and practice interpersonal skills, and those were crucial to my graduate student career and my current industrial research position.

    Why should this matter, you may ask? If one is technically brilliant, shouldn’t that be all that counts? The answer is no, because the situation is different from your undergraduate days. In both graduate school and in business, you must depend upon and work with other people to achieve your goals To put this in perspective, I have excerpted the following from an article called “Organizations: The Soft and Gushy Side” by Kerry J. Patterson, published in Fall 1991 issue of The Bent:

    Students usually look down on politics, but politics in its most basic, positive form is simply the art of getting things done. Politics is mostly about who is allowed to do what and who gets the resources (money, people, equipment, etc.) To succeed in your research, you will need resources, both capital and personnel. Interpersonal skills are mandatory for acquiring those resources. If you are incapable of working with certain people or make them mad at you, you will not get those resources and will not complete your research.For example, which group of people did I try my best to avoid offending? Was it my committee? No, because healthy disagreements and negotiations with your adviser and committee are crucial to graduating within a reasonable amount of time. Nor was it my fellow students, because I did not need help from most of them, and most of them did not need me. The critical group was the research and support staff. These include the research faculty and all the various support positions (the system administrators, network administrators, audio-visual experts, electronic services, optical and mechanical engineers, and especially the secretaries). I needed their help to get my research done, but they did not directly need me. Consequently, I made it a priority to establish and maintain good working relationships with them.

    Cultivating interpersonal relationships is mostly about treating people with respect and determining their different working styles. Give credit where credit is due. Acknowledge and thank them for their help. Return favors. Respect their expertise, advice and time. Apologize if you are at fault. Realize that different people work in different ways and are motivated by different things — the more you understand this diversity, the better you will be able to interact and motivate them to help you. For certain people, offering to buy them dinner or giving them free basketball tickets can work wonders.

    A true example: at one point in my research, I needed to make significant modifications to some low-level code in the graphics computer called “Pixel Planes 5.” Doing this required expertise that I did not have, but another graduate student named Marc Olano did. How should I tap into Marc’s expertise and get my necessary changes done?

    The wrong way is to go up to Marc, explain the problem, and get him to make the changes. Marc doesn’t need the changes done; I do. Therefore, I should do most of the work. Expecting him to do the work shows disrespect of his time.

    What I actually did was to explain the problem to Marc and he sketched out a possible solution. Then I ran off and worked on my own for a few days, trying to implement the solution. I got part of it working, but ended up getting stuck on another part. Only at that point did I go back to Marc and ask him for help. By doing this, I showed that I respected his time and wanted to minimize his burden, thus making him more willing to help me. Months later, when he and Jon Cohen needed my help in setting up a system to demonstrate some of their software, I was more than happy to return the favor.

    Interpersonal interaction is a huge subject and goes far beyond my description here. All I can really do in this section is (hopefully) convince you that these skills are vital to your graduate student career and encourage you to learn more if you need to improve these skills. I still have a lot to learn myself. I recommend reading The 7 Habits of Highly Effective People and Type Talk (both listed in the References section) as starting points.  The magazine article “How to be a star engineer” (listed in the References) also touches on this subject.

Organizational skills

    “Failing to plan is planning to fail.”Since academia is a type of business, you will have responsibilities that you must uphold. You will be asked to greet and talk with visitors, give demos, show up to meetings, get projects done on time, etc. If you are not well organized, you will have a difficult time meeting those obligations. A technically brilliant student will be greatly hampered if he or she exhibits an “absent minded” personality and develops a reputation for being disorganized.

    There are many different time management and organization skills, and you can find many books on those at your local bookstore. This guide is not going to describe them. Find one that works for you and use it. I can highly recommend Stephen Covey’s book, listed in the references. But whatever system you pick, just make sure it works for you. I have never found anyone else who uses my filing scheme, but it is effective for me (by minimizing the combined time of putting away and locating a piece of information). All that really matters is whether or not it works.

    One metaphor I found useful is the following: Organize your tasks as if you were juggling them. Juggling several balls requires planning and skill. You must grab and toss each ball before it hits the ground. You can only toss one ball at a time, just as you can only work on one task at a time. The order in which you toss the balls is crucial, much as the order of working on tasks often determines whether or not you meet all your deadlines. Finally, once you start a task (grab a ball) you want to get enough done so you can ignore it for a while (throw it high enough in the air so it won’t come down for a while). Otherwise you waste too much time in context switches between tasks. Do you see jugglers try to keep each ball at the same height above the ground, frantically touching every ball every second?

    Randy Pausch (a professor at CMU) has a set of notes on time management. Three words in his guide summarize the most vital step: Kill your television. He asks you to keep your priorities straight. What is the most important thing to a Ph.D. student? It should be finishing the dissertation, not watching every episode of Friends. That doesn’t mean dropping everything else in life, but it does mean knowing what takes priority and allocating time accordingly.

Communications skills

    “What is written without effort is, in general, read without pleasure.”
    - Samuel Johnson“Present to inform, not to impress; if you inform, you will impress. “
    - Fred Brooks

    I am always amazed that articles written about businesses consistently put good communication skills at or near the top of list of skills that employers want to see in people but rarely find. But you know what? It’s true!

    Communication skills, both written and oral, are vital for making a good impression as a Ph.D. student and as a researcher. At a minimum, you have to defend your dissertation with an oral presentation. But you should also expect to write technical papers and reports, give presentations at conferences, and give demonstrations to groups of visitors. If you can write and speak well, you will earn recognition and distinguish yourself from the other graduate students. This is especially true when giving presentations in front of important visitors or at major conferences.

    Conversely, if you cannot communicate well, then your career options after graduation will be limited.  Professors spend most of their time communicating: teaching, fundraising, guiding graduate students, and documenting their results (through papers, videos, viewgraphs, etc.)  In industry, we need people who can communicate well so they can work in teams, learn what businesses and customers need, present their results, raise funds, and transition to leadership roles in projects and personnel management.  If you are technically brilliant but are incapable of communicating, then your results will be limited to what you can accomplish alone and your career growth will be limited, both in industry and academia.

    Unfortunately, not all graduate students receive training in giving presentations or writing technical documents (which are different from English essays). These are skills that can be learned! Don’t worry if giving presentations and writing papers are not something that comes naturally to you. I was not very comfortable giving oral presentations when I started graduate school, so I made a concerted effort to learn how to do so, by taking classes, reading about the subject, and practicing. It’s not easy, but it’s well worth the investment. If you need practice, try giving informal talks at research luncheons, joining Toastmasters, and studying good speakers to see what they do.

    Covering everything about this subject would fill a guide by itself (check out the SIGGRAPH page on preparing and giving presentations), and would probably better done through a videotape than a written document. But here are a few basic points:

  • Organization counts. Within the first few paragraphs or first few minutes, tell me why I should read your paper or listen to your talk. Make it clear where we are going and what we have already covered.
  • Make the text in your slides large enough so that people sitting in the back can read them. For large presentation halls, this usually means no more than 6-7 lines per slide and 28 point type minimum. You’d be surprised how many experts on visualization (especially tenured professors!) give presentations with unreadable slides.
  • Variety retains interest. Vary your pace, tone, and volume. Emphasize the important points. Look around the room. Throw in some video, pictures, or live examples.
  • Don’t stand in front of the screen and block everyone’s view. You’d be surprised how often people do this without realizing it.
  • Point out the limitations of your work. That helps your credibility. Similarly, give credit where credit is due.
  • Make friends with the A/V crew! Running A/V is a thankless, negative reinforcement job. If everything runs smoothly, well, that’s what was supposed to happen so nobody says anything. But if anything goes wrong, the entire audience looks back at the control room. Help the A/V people help you. Always check in early and test the equipment. Tell them what you are going to do in your presentation (e.g. I’m running 3 video segments). Make sure you know how everything works long before you come up to the podium. And thank the A/V crew for their help after you are done!
  • Confidence is the key to giving a good presentation. And the way to gain confidence is to give good presentations. When you’re just starting out, this is a Catch-22. However, once you become good enough, this turns into a positive feedback cycle that can make giving talks a pleasure.

    Writing papers and getting them published is vital for Ph.D. students who want to get jobs in research after graduation. Your ability to write well significantly improves the chances that your paper will be accepted. When I was a young graduate student and read a paper that I didn’t understand, I thought “Gee, I must be dumb.” Today I will read the same paper and think “Boy, this is a lousy paper. The authors did not do a good job explaining and presenting their work.” If I am reviewing that paper, such a reaction is enough for me to reject the paper.

    Where do you submit your papers? Your professors will help you with this choice, but in general I would suggest shooting for the best conferences or journals where you think it has a reasonable chance of being accepted. It’s not much more work to write, submit and present a paper in a highly respected venue than in less respected venues. And if you don’t shoot for the top you’ll never know if it would have made it. The field of computer graphics is a bit unusual in that the most desirable place to publish is a conference (SIGGRAPH), rather than a journal. Be aware that journals can take years to publish submitted papers; the turn-around time is much faster in a conference.

    Finally, don’t forget to communicate with your professors and your teammates. Keep your committee appraised of your progress. One thing I do (which few others do) is write short (1 screenfull) status reports, which I religiously e-mailed to my professors and team members on a weekly basis. These serve as an efficient way of keeping everyone up to date on what I’m doing. They are also a good way for me to record my progress. If I need to remember what I got done during a six month period, I have plenty of old status reports that I can read. You’d be amazed how appreciative professors and managers are of this simple practice. I also throw in a different humorous quote at the end of each week’s report to reward people for reading it.

    When you are working in the lab and you reach a milestone or achieve a result, let people know about it! Bring in your professors and fellow students and show it off! That’s a win-win situation. It lets others know that you are making progress and achieving results, and you get valuable feedback and advice.

Choosing an adviser and a committee

    “Some students in the lab are only nominally supervised by a thesis advisor. This can work out well for people who are independent self-starters. It has the advantage that you have only your own neuroses to deal with, not your advisor’s as well.”
    - from “How to do research at the MIT AI Lab”The choice of an appropriate adviser is crucial to successfully completing the Ph.D. Your adviser must be someone who can cover your area of specialization and someone you can get along with. When I started graduate school, I thought the adviser – student relationship was supposed to be very close, both professionally and socially. In reality, the relationship is whatever the professor and the student choose to make of it. It can be close, with invited dinners at the professor’s home, or it can be distant, e.g. meeting once per semester just to remind the professor that the student is still alive.

    One basic question in choosing an adviser is whether to pick a junior (non-tenured) or a senior (tenured) professor. Non-tenured professors tend to travel less and are generally more available. It is difficult to get help from an adviser who is never in town. Non-tenured faculty have fewer advisees that you have to compete with to get time with the professor. They are more likely to be personally involved with your research — writing code, spending time in the lab at midnight, etc. Non-tenured faculty must be energetic and hard working if they want to be awarded tenure, and this work habit can rub off on their students. However, tenured faculty have several advantages as well. They are usually the ones with most of the money and resources to support you. They do not have to compete with their students for publications and recognition. The advisee does not run the risk of having his or her adviser not getting tenure and leaving the university. Tenured faculty are more experienced with “how the game works” and thus may be better sources of guidance, personal contacts, jobs after graduation, etc.

    I ended up with a non-tenured professor (actually, he was not even on the tenure track at the time) as my adviser, but also put several tenured professors on my committee, including some of the most senior ones in my specialty. In that way, I got the best of both worlds: the day-to-day attention from the primary adviser, combined with the resources and experience of the committee.

    Professors develop reputations amongst graduate students. Some are known to graduate their Ph.D. students rapidly. Others are impossible to get hold of, so their students take forever to finish or leave without graduating. Some dictate what their advisees have to do, while others are accommodating of student interests. Ask around. What you learn may be revealing. And if circumstances change to make another professor a more appropriate match to your needs, don’t be afraid to switch if that is an overall win.

    When picking a committee, you want to make sure they can cover all the areas of your thesis. You also want to make sure that it is likely that all the committee members will be available for meetings! Including too many professors who travel often will make it difficult to get all five or six together in one room for a three hour oral exam or proposal meeting. When scheduling such meetings, start by finding times when the difficult-to-reach professors are in town, and then add in the other committee members.

Balance and Perspective

    “Life goes by so fast, that if you don’t stop and look around, you might miss it.”
    - from the film Ferris Bueller’s Day Off“Generally speaking, people provide better maintenance for their cars than for their own bodies.”
    - Scott Adams, The Dilbert Future

    When I was in graduate school, my top priority was crystal clear to me: getting out with a Ph.D. Other people described me as “focused like a laser beam” on that goal. In retrospect, I may have been too focused. There is more to life than graduate work. Keeping your health and your sanity intact are both vital to achieving the primary goal of getting out.

    Repetitive Strain Injury (RSI) is a major occupational hazard in our industry. Carpal Tunnel Syndrome is just one type of RSI. If you do not know how to set up your workspace for good ergonomics, learn now! The Pascarelli reference at the end of this guide is a good book on this subject. Over a dozen of my friends and coworkers have been inflicted with this problem. In severe cases, RSI can be a career-ending injury. If you can’t type, it’s rather difficult to write papers, computer programs, presentations, etc. Don’t let this happen to you! Prevention is the way to go. Recently I have been working with weights to strengthen my shoulders and wrists as an additional preventative step.

    Earning a Ph.D. is like running a marathon. You have to learn to pace yourself and take care of your body if you want to reach the finish line. Unfortunately, students often act like sprinters running a marathon. They are highly productive for a while, but then fall by the wayside because they aren’t eating correctly, exercising, taking time out to recharge their batteries, etc. You maximize your long-term productivity by not ignoring those other aspects. While I was in graduate school, I took time out to travel up and down the East Coast, from Boston down to Orlando. That was an important part of keeping my stress down and recharging my batteries. I also did some running and circuit training for exercise. For shorter breaks, I shot nerf basketballs at a tiny hoop mounted in the graphics lab and kept a guitar in my office. Figure out what works for you.

    It’s easy to lose perspective while in graduate school. You are surrounded by so many other smart, hard working people that it is easy to feel inferior and lose self-esteem and confidence. But without an underlying confidence that you do have what it takes to complete a dissertation, it’s too easy to drop out when the going gets tough instead of sticking it through. I found it useful to keep in touch with the “real world,” to remind myself that the graduate student population is not representative of humanity in general and to keep my perspective. You got into graduate school because you have already shown to your professors that you have potential and skills that are not typical among most college students, let alone most people — don’t forget that.

The Ph.D. job hunt

    On résumés: “The closest to perfection a person ever comes is when he fills out a job application form.”
    - Stanley RandallReal World, The (n.): Where a computer science student goes after graduation; used pejoratively (“Poor slob, he got his degree and had to go out into the REAL WORLD.”). Among programmers, discussing someone in residence there is not unlike talking about a deceased person.”
    - the fortune program

    Ideally, the job hunt begins years before you graduate. Networking is very important: while you are in the middle to late phases of your graduate studies, try to get yourself noticed by professors and industry people at other sites. One way to do this is to offer to give a talk about your work at another site. This is not that difficult to do, since most research places love to host seminars and bring in fresh ideas. Attending conferences and working elsewhere during the summer are other ways to get exposure. Make friends with graduate students and personnel at other schools. Make and carry your own business cards. Schmooze with important visitors during major site visits. For about two years, I ran the informal “Graphics Lunch” symposia at UNC. That means I was the point of contact for many speakers who visited UNC and that helped me make contacts. There is also a “star” system that exists. Certain outstanding graduate students can get labeled as “stars” by their professors and that can be an enormous help in getting an interview at CMU or other prestigious locations. It’s nice if you can get on that track but one shouldn’t rely upon it!

    Networking is important because many jobs are found and filled that way. I got my position at HRL partially because I visited there, at my own expense, two years before I even started my job hunt. That meant that when I circulated my résumé, I was more than just a piece of paper to them. You are not going to be looking for job ads in the newspaper. Instead, you’ll look for announcements in major journals, at conferences, on the Net, and through your contacts. For industrial positions, it is crucial to get past the Human Resources department and find the individual with the ability to hire and deal with that person directly.

    When do you start asking for interviews? You can start when you are able to give a talk about your dissertation work. Don’t be too early or too late, because you only get one chance per site. Academic positions generally have a particular “season” (much like getting admitted to school) that starts in the Fall and ends around April; industrial positions generally don’t follow that. The job hunt and interviewing process can take months; factor that into your time allocation.

    The job supply and demand situation can vary dramatically in a few years, and anything I say here about how strong the job market is today (Jan. 2003) will likely be out of date by the time you read it.  For example, during the time I was job hunting (end of 1994 to early 1995), good positions were not easy to find. If I had a dollar for every site that told me “We don’t have a permanent position, but would you take a postdoc?” I could buy a lot of lunches. However, around 1997 the graphics job market became very strong, with many individuals getting multiple offers with high salaries. 1998 was an excellent year for people looking for tenure-track graphics faculty positions. I know many friends who found good tenure-track positions that year.  So when I revised the guide in 2000, I said the job market was strong with high demand. Of course, the tech industry went downhill at that point and hasn’t recovered yet. Now it is much more difficult to find research positions in industry or academia.  With luck, the market will be much better at the time you read this.

    Before starting the job hunt, determine your goals and parameters in advance and the “angle” you will take to sell yourself. For example, my strength was in systems, so I chose to emphasize that in my cover letters. Customize your approach to each site, if time permits. What you do for your thesis determines who will and who won’t take a look at you. Try to get at least one reference from outside your university.

    This guide is not going to cover the basics of interviewing; you can get that from many books (e.g. the Martin Yate and Bob Weinstein books listed in the references). However, I will mention some tips. Don’t interview on the day of arrival, and try to avoid Mondays and Fridays. Be prepared for hard or illegal questions, but you probably won’t get them. Do your homework on each site before interviewing! It continually amazes me that people show up for interviews without knowing anything about the institution they want to join. If the target is a research lab for a major company, you can easily find Wall St. Journal articles, annual reports and stockbroker reports in your library. If your goal is an academic position, check out the Tomorrow’s Professor site for guidance.  If you interview at a university, get their course catalog and use their numbering scheme to describe the courses you can teach. Interview to find out more about them, not just to sell yourself. Your 45-60 minute research presentation is crucial; make sure you practice it thoroughly. Interviews create interviews. That is, if you’ve already gone on many interviews at other places, then that makes you appear more desirable since others want you, and that makes it easier for you to get more interviews. Broadcast this fact by keeping your interview schedule on your web page. There is an anecdote about one student who received offers to interview at many different places, but only after Stanford interviewed him! Keep logs on who you talk to, what you talked about, and when. That makes it easier to keep things straight when juggling several contenders. The major conferences in your field are a good place to schedule preliminary interviews to get your foot in the door, because it is cheap for the company or university. The people you need to meet are already there, so that saves them the expense of having to fly you out and house you at their site.

    Offers are a waiting game. Be prepared for lots of frustration. You need a written offer or nothing is official; you should also accept or reject in writing. Negotiate, but be aware of the strength or weakness of your position. Starting salary may not be as important as the type of work, benefits, and growth potential. Drug tests and other factors are becoming more common; you will have to decide how you want to respond to those.

    Ah yes, salaries. Everybody wants to know about those. For academic (tenure track) salaries, you can get typical numbers from the annual Taulbee surveys, printed in the Computing Research News newsletter and the Communications of the ACM. Realize that these are 9-month salaries. Whether or not you can procure funding that covers 2 or 3 months of summer salary makes a big difference to your bottom line. Also, professors can make money by consulting at rates of $1000-2500 per day, although this is more common among established professors. Figures for industrial salaries are harder to come by. The Maisel and Gaddy references are the only ones I have found that specifically surveys young Ph.D.’s in industry (also see the chart a few paragraphs down). Salaries depend heavily on geography. Silicon Valley is in a league of its own, with salaries far above any other region. But before you decide to move to Palo Alto, remember that the cost of living there is also in the stratosphere. In Sept. 1997, a $60k salary in Indianapolis bought the same standard of living as a $101k salary in San Jose! The cost of living difference is larger today.  Decent houses in the Silicon Valley cost more than half a million.  More general computer science salary surveys are run by the IEEE and EE Times, available at the JobStar salary survey site.

    Acquire salary information on your own by making use of your network. Don’t ask for someone’s salary directly, unless it’s someone you know very well and even then be very careful. Instead, bounce figures off people and see how they respond. Do they think the figure you mention is high, low, or about right? By seeing how people respond you can get an idea of what the market range is.

    Factor in benefits and the expected workload into your compensation evaluation. That $100k offer may seem less attractive if you have to work 80 hour weeks in that position.  Traditionally, stock options made up a large fraction of the compensation packages for startups and Silicon Valley positions, but with the tech bust that may no longer be the case.

    The type of work and compensation varies dramatically with the types of positions. Academic positions are tenure-track, research staff (non tenured) and postdocs. Tenure-track positions at major universities are fairly hard to come by; you need to be both good and lucky. Read the Feibelman and Ralston references for more details. The tenure-track also requires a lot of hours and dedication. As Randy Pausch put it, tenure is a competitive process where you get compared with the other assistant professors and the already-tenured professors. If they worked 70 hour weeks for six years to get tenure, don’t expect to get away with working 40 hour weeks. Postdocs are low paying but good for padding your C.V. if you think you need it to get a tenure track position. Just be sure to read the Feibelman reference, which tells you exactly what you need to do to survive a postdoc. In general, academic positions don’t pay as well as industrial positions, but universities offer more freedom, prestige, a richer intellectual environment and the possibility of long-term stability (with tenure). There’s a big difference between startups, regular industrial jobs, and industrial research positions. Startups can be the most lucrative financially, although that’s a big gamble. Read the Kawasaki and Bell references if you want to work at a startup. Expect to put in long hours while losing contact with the research community. Industrial research lies in an uncomfortable middle ground between production jobs and academic research, and blends the advantages and disadvantages of industry vs. academia.

    The next two charts are the latest figures I have for academic and industrial salaries.

    Academic salaries from 2000-2001 Taulbee survey

    The above chart is from the March 2002 issue of Computing Research News.  It shows the results of the latest Taulbee survey of academic salaries, where nine-month assistant professor salaries average in the $70-80k range.

    Industrial research salary chart

    The above chart is from the November 2002 issue of Computing Research News, showing compensation for industrial positions (based on 11 organizations and 689 responses). Unsurprisingly, expected compensation from bonuses and stock options dropped significantly from 2000 to 2001.  Industrial compensation is higher than academic, although the Taulbee figures are for nine months of salary (not 12).  With summer salary and other supplements, the difference is reduced.  Still, Computing Research News estimates that total compensation for assistant and associate professors lags that of comprable industrial counterparts by 25%.

    No matter where you go after you graduate, maintain your contacts with your alma mater. You may change jobs and move from place to place, but you will always have your degree from your university. If you keep good relations with your university and your fellow former students, that will serve as an excellent base for your personal network.

Conclusion

    • Picture a martial artist kneeling before the master sensei in a ceremony to receive a hard-earned black belt. After years of relentless training, the student has finally reached a pinnacle of achievement in the discipline.”Before granting the belt, you must pass one more test,” says the sensei.

      “I am ready,” responds the student, expecting perhaps one final round of sparring.

      “You must answer the essential question: What is the true meaning of the black belt?”

      “The end of my journey,” says the student. “A well-deserved reward for all my hard work.”

      The sensei waits for more. Clearly, he is not satisfied. Finally, the sensei speaks. “You are not yet ready for the black belt. Return in one year.”

      A year later, the student kneels again in front of the sensei.

      “What is the true meaning of the black belt?” asks the sensei.

      “A symbol of distinction and the highest achievement in our art,” says the student.

      The sensei says nothing for many minutes, waiting. Clearly, he is not satisfied. Finally, he speaks. “You are still not ready for the black belt. Return in one year.”

      A year later, the student kneels once again in front of the sensei. And again the sensei asks: “What is the true meaning of the black belt?”

      “The black belt represents the beginning — the start of a never-ending journey of discipline, work, and the pursuit of an ever-higher standard,” says the student.

      “Yes. You are now ready to receive the black belt and begin your work.”

  • “Dissertations are not finished; they are abandoned.”
    - Fred BrooksThe following story, called “The Parable of the Black Belt,” is excerpted from Built to Last: Successful Habits of Visionary Companies, by James C. Collins and Jerry I. Porras.

    To me, there are two lessons in this story.First, the Ph.D. is the beginning, not the culmination, of your career. Don’t worry about making it your magnum opus. Get out sooner, rather than later.

    Second, if you bother to talk to and learn from the people who have already gone through this process, you might graduate two years earlier.

    Good luck.

Other Related Guides

Recommended Reading

    Bell, C. Gordon and John McNamara. High-Tech Ventures: The Guide for Entrepreneurial Success. Addison-Wesley, 1991. ISBN 0-201-56321-5.
    Dated, but recommended reading if you want to work for a startup.Bronson, Po. The Nudist on the Late Shift. Random House, 1999. ISBN 0375502777.
    A fun read, giving the flavor of what working in the Silicon Valley is like.  Many of the chapters previously appeared as articles in Wired.  A snapshot of the culture before the tech bubble burst.

    Covey, Stephen R. The 7 Habits of Highly Effective People. Fireside Simon and Schuster, 1989. ISBN 0-671-70863-5.
    Excellent overall, with sections on time management, guiding principles and interpersonal skills.

    EE Times Salary Survey Issue.
    EE Times produces an annual survey and commentary about industrial salaries.

    Feibelman, Peter J. A Ph.D. is Not Enough! A Guide to Survival in Science. Addison-Wesley, 1993. ISBN 0-201-62663-2.
    Good discussion of research career paths. A must read if you choose to take a postdoc.

    Kawasaki, Guy. The Macintosh Way: The Art of Guerrilla Management. Harper Perennial, 1990. ISBN 0-06-097338-2.
    Despite problems that occurred at Apple, this book shows the energy and chutzpah required to survive in a startup.

    Kelley, Robert E.  How to be a star engineer.  IEEE Spectrum (October 1999), 51-58.
    Good description of the skills that are needed to excel at work, which go beyond sheer technical skills.

    Kroeger, Otto and Janet M. Thuesen. Type Talk: The 16 Personality Types that Determine How We Live, Love and Work. Tilden Press, 1988. ISBN 0-385-29828-5.
    Introduction to the Myers-Briggs type indicators, useful for interpersonal relations.

    Maisel, Herbert and Catherine Gaddy. Employment and Salaries of Recent Doctorates in Computer Science. Communications of the ACM 40, 9 (September 1997), 90-93.

    Maisel, Herbert and Catherine Gaddy. Employment and Salaries of Recent Doctorates. Communications of the ACM 41, 11 (November 1998), 99-101.
    One of the few surveys I have seen for recent C.S. Ph.D.s that includes both industry and academic numbers. The low sample size is a problem, however.

    Pascarelli, Emil and Deborah Quilter. Repetitive Strain Injury: A Complete User’s Guide. John Wiley and Sons, 1994. ISBN 0-471-59532-2.
    A good introduction to RSI injuries and avoiding them.

    Pastore, Robert R.  Stock Options: An Authoritative Guide to Incentive and Nonqualified Stock Options, 2nd edition.  (printed Dec. 1999).  ISBN 0966889924.  PCM Capital Publishing.
    I haven't read this but I have been told this is an excellent reference for those of you fortunate enough to have a bundle of stock options.  Give me a few options as a tip for finding this book, ok? :-)   The book covers tax and legal issues and gives advice on when to keep or exercise your options.

    Ralston, Anthony. The Demographics of Candidates for Faculty Positions in Computer Science. Communications of the ACM 39, 3 (March 1996), 78-84.
    A must read if you are looking for tenure track positions. The author is a former CS professor who led a faculty search, so if you don't believe what I say, then listen to him.

    Weinstein, Bob. Résumés Don’t Get Jobs: The Realities and Myths of Job Hunting. McGraw-Hill, 1993. ISBN 0-07-069144-4.
    Gritty, realistic job hunting guide for today's market.

    White, Pepper. The Idea Factory: Learning to Think at MIT. Plume (Penguin Books), 1992. ISBN 0-452-26841-9.
    While this is not about C.S., it does dispel the notion of graduate school as an ivory tower environment.

    Yate, Martin. Knock ‘Em Dead: The Ultimate Job Seeker’s Handbook. Bob Adams, Inc.
    Good generic guide to job hunting and interviews, including a long section on interview questions.


Last updated: Fri January 3, 2003

Questions? Send email to azuma_email

Return to Ron Azuma’s page of guides on CS graduate school

Return to Ron Azuma’s home page

Copyright 1997-2003, Ronald T. Azuma, except for portions excerpted from elsewhere

3 Comments :, , , , , , , , , , , , , , , , , , , , , , , , , , , more...

The Road to Management

by Steve Hernandez on Jul.08, 2009, under Technology

Leading people is a fundamental skill

By Peggy Albright

The computing field asks a lot of its practitioners. Its professionals must be diligent, naturally curious, good problem solvers, able to grapple with big concepts as well as minutiae and willing to think outside of conventional boundaries to develop new code, architectures and applications that will find value in business and society. Yet in today’s competitive and global business environment, computing professionals must add yet another fundamental skill to the mix: the ability to lead and manage people.

In fact, developing leadership and managerial skills is no longer a career option, it is becoming a requirement, says Wade Shaw, an IEEE Fellow, editor-in-chief of IEEE’s Engineering Management Review and dean and professor of engineering at Mercer University.

According to Shaw, computing professionals today can expect to supervise someone else in some capacity within three to four years of completing an undergraduate degree. Most successful computer scientists and engineers will need to augment their technology skills with management responsibilities at some point in their career.

Teams and silos

The broadened expectations in the discipline are an outgrowth of an industry whose products are often built by project teams and whose members are often based in different parts of the world and contributing their skills from within various silos of expertise, Shaw said. With comparatively fewer advancement opportunities available for those who prefer to remain individual technology contributors in their companies, any strategy to advance one’s own value to an organization and earn better recognition and compensation must now involve management responsibility.

“The idea that someone changes their career midstream to enter management is an outdated notion,” Shaw said.

“It’s not ‘if’ I become a manager, it’s ‘when’ I become one,” he said. “That’s the starting point. It’s a key attitude difference.”

Soft skills essential

Whether a computing professional is just starting out, taking steps to advance from individual contributor status to project leader or managing multiple teams, or taking the leap from middle management to the executive ranks, the successful cultivation and use of “soft skills” is an essential part of the career advancement process.

Key among these soft skills is the ability to develop relationships with individuals and groups and to communicate effectively. Soft skills also include general business savvy, a big-picture understanding of the organization, a correct perception of one’s own role in the company and how other functions in the organization, such as finance and marketing, contribute to overall success. It includes learning how to think strategically.

“Our technical skills get us in the front door of an organization, but as we work there longer, we need soft skills,” said Dwight Jaggard, IEEE Fellow and director of the Executive Master’s in Technology Management program at the University of Pennsylvania, which is co-sponsored by Penn Engineering and The Wharton School.

Relationships matter

It might seem obvious, but strong relationship skills are among the most fundamental traits that technology professionals should have if they want to succeed in a leadership capacity. In fact, effective relationship skills are a necessity, not just an added value.

James Kouzes, executive educator, author of the best-selling book, The Leadership Challenge and the dean’s executive professor of leadership at the Leavey School of Business at Santa Clara University, says that poor relationship skills is the one weakness that is “most likely” to derail a technology professional’s ambition to succeed in management. While these skills have been emphasized in other careers, such as customer service and business development, they have not been routinely taught in the computing field. These skills can be learned, but they must be practiced regularly, and on a daily basis, Kouzes said.

“It is a competency that can be developed, but it does need time and attention,” he said.

His advice: It’s all about focusing. Listen to others’ points of view, learn how to resolve conflicts that leave both parties feeling that they’ve gained something, and if you need to give direction to non-technical people, learn to communicate coherently in non-technical language. And trust others to carry out their roles and responsibilities: lack of trust undermines one’s relationships and leads to managerial failure, he said.

Kouzes noted a few new observations from his most recent surveys of working professionals and executives around the world that should be of particular value to technology professionals who are in or seeking management roles. The first most important trait people want in their leaders is honesty, he said. The second most important trait is having a forward-looking vision that is shared by one’s peers and followers in an organization and an ability to communicate that vision to inspire others.
Additionally, he recommended that managers develop a competency in seeking feedback. This is one trait his respondents have indicted to be the most challenging, yet it is also vital to success because it important to be always learning. “The best leaders are the best learners,” he said. And feedback is an essential part of learning.

“If you want to go into management, you must ask for feedback. Be open to receiving it. Act on it. Take it earnestly and do something with it,” he said.

Big-picture perspective

Computing professionals taking steps to move higher in corporate ranks must recognize that the demands that come with developing soft skills may require that they disengage to a certain extent from the technology roots they established when they began their careers. It’s a commitment that needs to be taken seriously.

Ronald Danielson, vice provost for information services and chief information officer and associate professor of computer engineering at Santa Clara University, has found that as an IT professional advances in an organization, including to C-level roles, he or she is expected to have the same general business skills and traits as other top executives. A lack of these skills–whether real or perceived by upper management—can keep senior IT professionals from advancing to the top levels of the corporation, he said. The challenge for IT professionals is to overcome this perceived bias.

Computing professionals who are striving to advance into management, Danielson said, must recognize that once the commitment is made, there may be no going back to their former roles.

“The difficult thing for many technical people is that you can’t really do it all,” he said. “If you’re going to spend more of your time and energy on the soft skills that senior executives need to have, you’re necessarily going to give up some of your technical competencies. And that’s very unsettling because our discipline advances so rapidly that if you give that up for a while, it is very difficult to go back in as the same level of contributor that you were before.” CW
(8 July, 2009)

Leave a Comment :, , , , , , , , , , , more...

Wake-Up Call – Better Sleep

by Steve Hernandez on May.16, 2009, under Health

Rise and shine! Follow these 8 tips to start the day refreshed and ready-to-go

By Michele Bender

do in the hour after you get up can help you look and feel your best for the rest of the day.

Tap into the Power Hour

What you

The right moves and foods will give you the focus, stamina, and positive outlook you need to plow through your busy schedule. Plus, you’ll kick-start your metabolism, helping you torch extra calories and melt more fat. Our get-up-and-go routine outlines the latest research-based tips guaranteed to make your morning a true power hour. Here’s how to rise and shine.

1. Cue Energy with Color

“Seeing a bright, vibrant hue when you open your eyes gets your adrenaline going–and that sudden surge of energy helps clear the cobwebs and kicks you into gear,” says Leatrice Eiseman, executive director of the Pantone Color Institute. Put a red, orange, yellow, or fuchsia throw pillow, blanket, or piece of art in the area you first see in the morning, or slip on a robe in one of these shades. You can even make breakfast visually stimulating (and get a nutritional boost) by pouring yourself a glass of antioxidant rich pomegranate or cranberry juice with a sweet slice of orange.

2. Wake Up and See the Roses

Seeing a bouquet of blooms when they first woke up gave women in a new study a mood lift and energy boost that lasted all day, reports Nancy Etcoff, PhD, a faculty member at Harvard Medical School and the Harvard University Mind/Brain/Behavior Initiative.

3. Stop Hitting the Snooze Button

There’s truth in the adage “You snooze, you lose.” When you hit snooze, your brain knows it will go off again in a few minutes–so you won’t go into the deeper, more restful stages of slumber. That means you’ll be more tired than if you’d gotten up when it first sounded. A better strategy: “Set your alarm for when you really need to get up,” says Jodi Mindell, PhD, associate director of the Sleep Disorders Center at the Children’s Hospital of Philadelphia. “That extra, uninterrupted sleep makes you feel more rested and refreshed when you get out of bed.”

4. Picture the Day Ahead

Once you’re awake, close your eyes and picture yourself alert and energetic. “Imagining an activity fires up the same parts of your brain that are used when you actually experience it,” says Dana Lightman, PhD, a behavioral psychologist in Abington, PA. “Thinking positively about the day ahead energizes you.”

5. Drink Instant Energy

Drinking a big glass of water as soon as you get up is a good way to replenish the fluid your body loses overnight, and it provides instant energy. “Everything that happens in your body requires water,” says Holly Andersen, MD, an assistant professor of medicine at Weill Cornell Medical Center. “Without enough of it, your systems have to work harder in every respect–which can cause fatigue.” Indeed, even a 2% drop in water stores can tire you physically and mentally. Starting to sip early also gives you a head start on the 11 cups of water the Institute of Medicine now recommends women consume throughout the day to stay hydrated.

6. Let the Sunshine In

A splash of sunlight makes you feel more awake, so read the paper by a sunny window or step outside for a few minutes while having your coffee. “Daylight signals your biological clock to stop the secretion of melatonin, a hormone that makes you sleepy, and promotes wakefulness,” says James B. Maas, PhD, a professor and past chairman of the department of psychology at Cornell University. It also increases the brain’s level of serotonin, a chemical that boosts mood. If it’s still dark when you get up, consider purchasing a dawn stimulator (from $80; Light Therapy Products), a device that gradually brightens a light source at a preprogrammed time. Set it to create a dawn that breaks a half hour before your usual wake up time and grows to maximum brightness when your alarm goes off–even when your eyes are closed, the light that passes through your lids signals your internal clock to trigger waking neurons in your brain.

7. Give Yourself a Face Rub

“Massaging your face boosts circulation, making it a surefire way to wake up,” says Maggy Dunphy, general manager of the Aria Spa and Club in Vail, CO. Starting at your forehead and working down to your chin, lightly flutter tap or drum your fingertips, varying the velocity, intensity, and location until you’ve touched your entire face. Bonus: These moves give you a quick healthy glow.

8. Have a Romp in the Hay

Physical activity is one of the best ways to shake off grogginess–and having sex boosts your body’s levels of chemicals associated with stamina (testosterone), energy (dopamine), and calmness (oxytocin), says Helen E. Fisher, PhD, a research professor in the department of anthropology at Rutgers University. What a great way to start the day!

1 Comment :, , , more...

How to Fix Windows Server 2008 Boot Loader

by Steve Hernandez on Mar.29, 2009, under Technology

If the boot loader to your Windows Server 2008 machine gets corrupted or deleted for whatever reason, it really is a painstaking process to get it fixed.  The boot loader to my machine got deleted somehow while I was resizing partitions.  After scouring the web, I could not find anything on rebuilding the boot loader for Windows Server 2008.  All I could find were instructions to restore a Windows Vista boot loader, but luckily, the process for Server 2008 is similar.

If you are getting a “bootmgr is missing” error upon startup or something similar, repairing the boot loader will probably fix the problem.

Due to the lack of recovery tools on the Server 2008 installation CD, the boot loader must be rebuilt manually.

For this guide, I’m going to assume your installation has a drive letter of C:.

Insert the Server 2008 installation CD into your DVD-ROM.  Restart your computer and boot from the CD.

Choose to repair your computer, then open the command prompt.

At the command prompt, use the following commands:

c:
cd boot
bootsect /nt60 c: /force /mbr
bootrec /rebuildbcd

After using the “bootrec /rebuldbcd” command, you will be prompted to accept a Windows installation.  Accept the installation, then wait for the process to finish.  Once it’s done, reboot your comptuer and you should have a boot loader ready to go.

Leave a Comment :, , , , , , , , , more...

How to Beat the Monday Morning Blues

by Steve Hernandez on Nov.18, 2008, under Personal

By eHow Health Editor

How to Beat the Monday Morning Blues

There’s actually a scientific explanation behind those dreaded Monday morning blues. Our internal clocks naturally operate on a day that is longer than 24 hours. By the time Monday rolls around each week, we’ve built up a sleep deficit of at least an hour. Of course, the weekend revelries and facing another work week don’t help matters. Here are some tips to make Monday mornings a little easier.

Step1

If you can, sleep in an extra hour on Monday mornings. Going to bed early on Sunday night doesn’t always help because most people will remain awake until their usual bedtime.

 

Step2

If you can’t sleep in by a full hour (and most of us can’t), take action Sunday night to shorten your morning preparation time so that you can set the alarm for 15 minutes later than usual. Wash your hair, pack lunches, lay out your outfit or pack your briefcase on Sunday night.

 

Step3

Hop out of bed the moment you wake up on Monday morning. Lingering in that downy comforter will only draw out the agony.

 

Step4

End your shower with a jolt of cold water to tear yourself out of your grogginess. Or exercise in the morning to get your blood pumping and to release those feel-good endorphins.

 

Step5

Get out in the sunlight. Bright light tells your body that it is indeed the morning and helps reset your internal clock.

 

Step6

Drink coffee or another caffeine beverage. Although it’s not healthy to drink caffeine to the point of addiction, caffeine, when used in moderation, can give your Monday mornings that much-needed oomph and alertness.

 

Step7

Anticipate your Monday morning on Friday afternoon. Fight the temptation to race away from a messy desk. Clean up your desk and leave yourself a to-do list to make Monday morning a little more tolerable.

Leave a Comment :, , more...

The 86 Rules of Drinking

by Steve Hernandez on Oct.08, 2008, under Personal

1. If you owe someone money, always pay them back in a bar. Preferably during Happy Hour.
2. Always toast before doing a shot.
3. Whoever buys the shot gets the first chance to offer a toast.
4. Change your toast at least once a month.
5. Buying someone a drink is five times better than a handshake.
6. Buying a strange woman a drink is still cool. Buying all her drinks is dumb.
7. Never borrow more than one cigarette from the same person in one night.
8. When the bartender is slammed, resist the powerful urge to order a slightly-dirty, very-dry, in-and-out, super-chilled half-and-half martini with a lemon twist. Limit orders to beer, straight shots and two-part cocktails.
9. Get the bartender’s attention with eye contact and a smile.
10. Do not make eye contact with the bartender if you do not want a drink.
11. Unacceptable things to say after doing a shot:
Great, now I’m going to get drunk.
I hate shots.
It’s coming back up.
12. Never, ever tell a bartender he made your drink too strong.
13. If he makes it too weak, order a double next time. He’ll get the message.
14. If you offer to buy a woman a drink and she refuses, she does not like you.
15. If you offer to buy a woman a drink and she accepts, she still might not like you.
16. If she buys you a drink, she likes you.
17. If someone offers to buy you a drink, do not upgrade your liquor preference.
18. Always have a corkscrew in your house.
19. If you don’t have a corkscrew, push the cork down into the bottle with a pen.
20. Drink one girly drink in public, and you will forever be known as the guy who drinks girly drinks.
21. Our parents were better drinkers than we are.
22. Never talk to someone in the restroom unless you’re doing the same thing – urinating, waiting in line or washing your hands.
23. Girls hang out, apply make-up, and have long talks in the bathroom. Men do not.
24. After your sixth drink, do not look at yourself in the mirror. It will shake your confidence.
25. It is only permissible to shout ‘woo-hoo!’ if you are doing a shot with four or more people.
26. If there is a DJ, you can request a song only once per night. If he doesn’t play it within half an hour, don’t approach him again. If he does play it, don’t approach him again.
27. Learn how to make a rose out of a bar napkin. You’ll be surprised how well it works.
28. If you can’t afford to tip, you can’t afford to drink in a bar. Go to the liquor store.
29. If you owe someone twenty dollars or less, you may pay them back in beer.
30. Never complain about the quality or brand of a free drink.
31. If you have been roommates with someone more than six months, you may drink all their beer, even if it’s hidden, as long as you leave them one.
32. You can have a shot of their hard liquor only if the cap has been cracked and the bottle goes for less than $25.
33. The only thing that tastes better than free liquor is stolen liquor.
34. If you bring Old Milwaukee to a party, you must drink at least 2 cans before you start drinking the imported beer in the fridge.
35. Learn to appreciate hangovers. If it was all good times every jackass would be doing it.
36. If you ever feel depressed, get out a bartender’s guide and browse thru all the drinks you’ve never tried.
37. Try one new drink each week.
38. If you’re the bar’s sole customer, you are obliged to make small talk with the bartender until he stops acknowledging you. Then you’re off the hook. The same goes for him.
39. Never tip with coins that have touched you. If your change is $1.50, you can tell the barmaid to keep the change, but, once she has handed it to you, you cannot give it back. To a bartender or cocktail waitress, small change has no value.
40. If you have ever told a bartender, “Hey, it all spends the same,” then you are a cheap ass.
41. Anyone on stage or behind a bar is fifty percent better looking.
42. You can tell how hard a drinker someone is by how close they keep their drink to their mouth.
43. A bar is a college, not a nursery. If you spill a beer, clean it up. If you break a glass, wait for a staff member to clean it up, then blame it on someone else.
44. Being drunk is feeling sophisticated without being able to say it.
45. It’s okay to drink alone.
46. After three drinks, you will forget a woman’s name two seconds after she tells you. The rest of the night you will call her “baby” or “darling”.
47. Nothing screams ‘Gay’ louder than swirling an oversized brandy snifter.
48. Men don’t drink from straws. Unless you’re doing a Mind or Face Eraser.
49. If you do a shot, finish it. If you don’t plan to finish it, don’t accept it.
50. Never brood in a dance bar. Never dance in a dive bar.
51. Never play more than three songs by the same artist in a row.
52. Your songs will come on as you’re leaving the bar.
53. Never yell out jukebox selections to someone you don’t know.
54. Never lie in a bar. You may, however, grossly exaggerate and lean.
55. If you think you might be slurring a little, then you are slurring a lot. If you think you are slurring a lot, then you are not speaking English.
56. Screaming, “Someone buy me a drink!” has never worked.
57. For every drink, there is a five percent better chance you will get in a fight. There is also a three percent better chance you will lose the fight.
58. Fighting an extremely drunk person when you are sober is hilarious.
59. If you’re broke and a friend is “sporting you”, you must laugh at all his jokes and play wingman when he makes his move.
60. If you’re broke and a friend is “ragging on you”, you may steal any drink he leaves unattended.
61. Never rest your head on a table or bar top. It is the equivalent of voluntarily putting your head on a chopping block.
62. If you are trading rounds with a friend and he asks if you’re ready for another, always say “Yes”. Once you fall out of sync you will end up buying more drinks than him.
63. If you’re going to hit on a member of the bar staff, make sure you tip well before and after, regardless of her response.
64. The people with the most money are rarely the best tippers.
65. Before you die, single-handedly make one decent martini.
66. Asking a bartender what beers are on tap when the handles are right in front of you is the equivalent of saying, “I’m an idiot.”
67. Never ask a bartender “What’s good tonight?” They do not fly in the scotch fresh from the coast every morning.
68. If there is a line for drinks, get your damn drink and step the hell away from the bar.
69. If there is ever any confusion, the fuller beer is yours.
70. The patrons at your local bar are your extended family, your father, hers, your brothers and sisters. Except you get to sleep with these sisters. And if you’re really drunk, the mothers.
71. It’s acceptable, traditional, in fact, to disappear during a night of hard drinking. You will appear mysterious, and your friends will understand. If they even notice.
72. Never argue your tab at the end of the night. Remember, you’re hammered, and they’re sober. It’s akin to a precocious five-year-old arguing the super-string theory with a physicist. 99.9% of the time you’re wrong and, either way, you’re going to come off as a jackass.
73. If you bring booze to a party, you must drink it or leave it.
74. If you hesitate more than three seconds after the bartender looks at you, you do not deserve a drink.
75. Beer makes you mellow, champagne makes you silly, wine makes you dramatic, tequila makes you felonious.
76. The greatest thing a drunkard can do is buy a round of drinks for a packed bar.
77. Never preface a conversation with a bartender with “I know this is going to be a hassle, but . . .”
78. When you’re in a bar and drunk, your boss is just another guy begging for a fat lip. Unless he’s buying.
79. If you are 86′d, do not return for at least three months. To come back sooner makes it appear no other bar wants you.
80. Anyone with three or more drinks in his hands has the right of way.
81. If you’re going to drink on the job, drink vodka. It’s the no-tell liquor.
82. There’s nothing wrong with drinking before noon. Especially if you’re supposed to be at work.
83. The bar clock moves twice as fast from midnight to last call.
84. A flask engraved with a personal message is one of the best gifts you can ever give. And make sure there’s something in it.
85. On the intimacy scale, sharing a quiet drink is between a handshake and a kiss.
86. You will forget everyone of of these rules by your fifth drink.

1 Comment :, , more...

uCertify Review – MCTS 70-536: VB.NET 2.0 Application Development Foundation

by Steve Hernandez on Jul.30, 2008, under Technology

I was contacted by a Public Relations individual from uCertify who requested me to review their product.  This was quite some time ago, and since I had never used their product before, decided to test their test preparation software out in addition to others.  This short review will not mention other applications, suites or books for the preparation for this exam, only the uCertify application.

The first thing you’ll notice when you download the program, is that they offer a few things.  First, there’s 100% money back guarantee that you’ll pass the test on the first try.  That’s enticing and speaks volumes on their product.  Unfortunately, the money back guarantee is on the ~$70 you spent on the program, and not the $150+ on the exam, but alas, something is better than nothing.  At the very least, you can use that money and try again on the exam (or buy a different prep book).

Second, they offer 2 flavors of their software: a full and free (demo) version.   The demo version has a few questions, enough to give you an idea of what’s going on, but not enough for you to do anything with (ie. pass the test, study from, etc).

Lastly, I like the fact that they give you directions on how to download and install the application.  That’s very thoughtful for users who may not be highly technical but want to be, and are therefore attempting to get certified in a particular technology (this is becoming more and more common, even though the certification is supposed to be taken after experience has been attained in the work place, to validate your skills).

So let’s run the application.

As a software developer myself, I have to say that I like the initial interface a lot.  Everything is very well place and easy to navigate.  The demo version only has a Diagnostic Test (15 questions), Create a Custom Test and Create a Fixed Time Test available to you in the main navigation section.  The “Enhance your understanding” section on the right hand side has all of the items available, which are basically extras to give you an ‘edge’.  It’s mostly general information, some tips, and other resources you can find on the internet.  You don’t need this section, but it’s nice to have everything in one place anyway.

uCertify has their advertisements all over the place “Buy the full version”, which makes me laugh.  That’s what they’re supposed to do, and they do a pretty good job in keeping it in your face as you go through the demo.

Diagnostic Test:

I ran it with 10 total questions, 10 minute duration and a passing score of 730.  I also selected the “Always show last answer option as ‘None of the above’” which I believe to be crucial in getting you to think critically.  Why?  Because everyone will default themselves to “the answer must not be here” if they can’t figure it out or come up with an answer based on incorrect assumptions.  Since it’s there all the time, and you won’t know when it’s a valid option, you’ll definitely think twice before choosing it.  In my courses, I always have this option available to students.

Well, the first thing I noticed while taking the Diagnostic Quiz is that my settings didn’t stick.  I noticed at the bottom that I was on question 10 of 15 (I said a max of 10) and that the “Always show ‘none of the above’” wasn’t being shown on all questions.  Maybe this is reduced functionality for the demo, but it would have been nice to see that stated.

I found the questions a bit vague.  They’re not meant to confuse you, but require a good understanding of the underlying topic for you to know what they’re referring to.  The application does assist you with some background information and explanation, but I don’t believe it to be enough for a full understanding of the topics, but again, they are quite helpful.

The results page is fairly straight forward.  A little hard to read, maybe alternating row colors would have been nicer on the eyes.  Anyway, it tells you what you did right and wrong.  Clicking on the question will take you to the page of that question, with the answer you gave and why you were right or wrong, along with those ‘Facts’ that help you solidify your understanding.

I really like the Readiness report, which gives you a summary on how you’ve done on all the exams (there are 5 practice tests, a final test, and a diagnostic test – 423 questions in total).  They also provide an adaptive test, but that functionality is not available, so I cannot comment on it.

All in all, I believe this to be a good product.  It’s obvious the uCertify is trying to get you to pass the test, as they provide you with several ways of doing so.  If I were going to use this product, I would read a book prior to build a decent foundation, and then polish my skills and knowledge off with this application and its exams.  If you did that, you would have taken 7 tests in the uCertify application, and an additional 1 or 2 in the Microsoft book, for a total of 8 or 9.  You would iterate through the content and examinations enough to know what you have to study and understand better, and know where your strengths are.

If you used the approach above, it would cost you about $100 (Microsoft Self-Paced Certification Books – really the only books available for MCTS-ASP.NET) and $60 for the uCertify application.  That’s $160 in prep (and maybe 1 – 3 months) and then the cost of the exam, which is about $200 or so (don’t quote me on that).  When you buy the Microsoft books, you get a voucher for a discount on the actual exam, so that helps. I believe it to be worth it.

The feedback from the exams is that you need to really memorize the book’s content and have lots of coding experience (more project experience than just slapping code together).  In that respect, an application such as this one will really help you with that, as they ask you real-world type questions.  The link below is to a site of a gentlemen who gives his experience from taking the exam: here

Rating of the Application:

Visual Appeal: 8
Question Difficulty: 8
Extra Content to Help (ie. Tips): 10
Number of Questions / Exams: 9
Reporting: 9
Exam Preparedness: 8.5
Overall: 8.75

I would say this system will help anyone pass the exam, as long as they have the knowledge.  I would / will use this system in the future.

Take a look for yourself: http://www.ucertify.com/exams/Microsoft/70-536-VB.html

You can receive a 10% discount on any certification course you wish to attend using the code STEVEH.  Thank you to Roger and uCertify for their generosity.

1 Comment :, , , , , , , , , more...

DOCman 1.4 RC3: Error Uploading. Directory Problem. *FIX*

by Steve Hernandez on Jul.11, 2008, under Technology

I have verified that this fix works, and that it is, in fact, a bug in the latest release.

EDIT: (8.11.08) Please make sure you change the quotes once you copy in the code.  Wordpress will alter them, so you need to copy the code into your files and then delete each quote and retype it.  It should clear a lot of the PHP errors everyone’s getting, since it doesn’t know how to handle them, and is resulting in unpredictable behavior.

EDIT: (8.27.08) The paths to the files are as follows:

JOOMLA/components/com_docman/includes_frontend/upload.http.php
JOOMLA/administrator/components/com_docman/includes/files.php
JOOMLA/administrator/components/com_docman/classes/DOCMAN_file.class.php

Where JOOMLA is the root / home folder of the joomla installation (not to be confused with the root folder of the server).


Hello I’ve had the error message “error uploading. directory problem” with DOCman 1.4 RC3, debugged the code and found the solution – it is a bug in RC3:Effect:
- Error message: “error uploading. directory problem”, after step 2 of uploading a new file,Occurrence:
- with docman 1.4 RC3, (not with RC1)
- on windows-based webservers (directory paths with backslash)
- if in PHP configuration “magic_quotes_gpc” is set to “on”

Reason:
Bug in RC3:
“DOCMAN_Utils::stripslashes()” removes backslashes in ['tmp_name'], what should NOT be done!!
- in “com_docman/includes_frontend/upload.http.php”, Line 38
- in “com_docman/includes/files.php”, Line 177:

Solution:
In “com_docman/includes/files.php”, line 177
remove DOCMAN_Utils::stripslashes() function:
- incorrect: $file_upload = mosGetParam(DOCMAN_Utils::stripslashes($_FILES), ‘upload’);
- correct: $file_upload = mosGetParam($_FILES, ‘upload’);

In “com_docman/includes_frontend/upload.http.php”, line 38
remove DOCMAN_Utils::stripslashes() function:
- incorrect: $file = mosGetParam(DOCMAN_Utils::stripslashes($_FILES), ‘upload’);
- correct: $file = mosGetParam($_FILES, ‘upload’);

And instead: In “com_docman/classes/DOCMAN_file.class.php”, line 352
add DOCMAN_Utils::stripslashes() function:
- incorrect: $name = $file['name'];
- correct: $name = DOCMAN_Utils::stripslashes($file['name']);

For more information on ['tmp_name'] and backslashes
- see http://ch2.php.net/features.file-upload#42280 (11-May-2004 03:08)

That worked for me. :geek:

Good luck!
Benno

28 Comments :, , , , , , , more...

Performance Tuning for 2003 File Servers

by Steve Hernandez on Jun.10, 2008, under Technology

This post provides a summary of performance tuning options for a Windows Server 2003 file server. Included is information on NTFS, lanmanserver, NIC, Disk and HBA performance tuning options. None should be used in a production environment without testing. Note that the Microsoft excerpts come from a 2008 performance tuning document, after verifying that the options are supported on 2003.


General Performance Settings

Disable 8.3 name creation

HKLM\System\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation

Excerpt from Microsoft on this option:

The default is 0. This parameter determines whether NTFS generates a short name
in the 8.3 (MS DOS®) naming convention for long file names and for file names
that contain characters from the extended character set. If the value of this
entry is 0, files can have two names: the name that the user specifies and the
short name that NTFS generates. If the user-specified name conforms to the 8.3
naming convention, NTFS does not generate a short name.

Changing this value does not change the contents of a file, but it avoids the short-name attribute
creation for the file, also changing the way NTFS displays and manages the file.
For most file servers, the recommended setting is 1.

Note that when accessing files that go beyond the 260 MAX_PATH length, short filenames can be a very useful method of accessing these files.

Ignore Write Flush Commands from Clients

HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\TreatHostAsStableStorage
Excerpt from Microsoft on this option:

The default is 0. This parameter disables the processing of write flush commands
from clients. If the value of this entry is 1, the server performance and client
latency for power-protected servers can improve. Workloads similar to the
NetBench file server benchmark benefit from this behavior.

Network tuning

NIC Offloading

Newer NICs have offloading capabilities, allowing the Operating System to offload one or more tasks to the network adapter. For example, Broadcom BCM5708S NetXtreme II adapters have the following offload capability enabled:
• IPv4 Checksum offload – Calculation and validation of checksums on TX/RX of TCP and UDP packets
• IPv4 Large Send offload – Offload the segmentation of large packets to the hardware

TcpWindowSize

HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\TcpWindowSize

Windows Server 2003 auto-tunes this setting, and benefits to manually choosing a window size are acknowledged in high-latency networks.

NumTcbTablePartitions

HKLM\system\CurrentControlSet\Services\Tcpip\Parameters\NumTcbTablePartitions

Increasing this number from the default of 1 can decrease contention in the TCP/IP stack. Microsoft warns of modifying this setting without significant testing, with a recommended maximum of the number of processors in the system.

MaxFreeTcbs and MaxHashTableSize

HKLM\system\CurrentControlSet\Services\Tcpip\Parameters\MaxFreeTcbs
HKLM\system\CurrentControlSet\Services\Tcpip\Parameters\MaxHashTableSize

MaxFreeTcbs can be adjusted manually to set the maximum number of TCP control blocks the system creates. This number determines the simultaneous number of connections the server can handle. If MaxFreeTcbs is changed, MaxHashTableSize should also be modified, dictating the size of the hash table that stores the control blocks.

Disk Tuning

LargeSystemCache and LanManServer file system caching

The amount of memory allocated to file system caching can help to increase the disk cache hits for a file server. In Windows Server 2003 this setting is enabled by default, although a casual glance of the system working set and the lanmanserver service working set do not show a large amount of the available physical memory for cache.

Windows 2003 also has logical block caching in addition to caching at the file system level. Further information could not be found on configuring or measuring the performance of logical block level caching.

The file cache is part of the system working set, which is protected from excessive trimming when the LargesystemCache option is usedThe lanmanserver service working set must also be protect in some way, part of services.exe (use tasklist /svc).

CacheSet from sysinternals can be used to modify the system working set size

Excerpt from Microsoft TechNet:

The Memory object performance counter System Cache Resident Bytes reports the amount of real memory currently in use by the file cache. As the number of System Cache Resident Bytes increases, we normally expect that the various measures of hit ratio will also increase. Moreover, the cache size can grow simply as a function of the size of the files that are currently in use and their pattern of access.

The Cache Resident Bytes counter reports the amount of real memory the file cache is currently occupying. The Cache Bytes counter, which sounds like it might tell you the size of the cache, actually reports the full system working
set, which includes Cache Resident Bytes and several other real memory areas. In a Windows 2000 file server (remembering Windows 2000’s heritage as the follow-on to the joint IBM/ Microsoft-developed OS2 LAN Manager), the file cache so dominates the system working set that internal documentation frequently refers to the entire system working set as the cache. This usage carries over to tools like Task Manager, which labels the system working set as the System Cache in the Performance tab, illustrated in Figure 7-2. The Windows NT version of Task Manager called this field File Cache, which is probably just as misleading. Curiously, the number of bytes in the System Cache reported by Task Manager does
not correspond exactly to the Cache Bytes counter in the System Monitor.

Disk Alignment

Using disk alignment to realign partitions can occasionally decrease the number of disk I/O operations. This occurs because the MBR is on the first 63 sectors of a disk, and the first partition starts on the 64th sector instead of the 65th sector – the beginning of the next boundary. This is vendor and disk specific, and does not apply to every disk.

Excerpt from Microsoft TechNet:

Microsoft Windows 2000 Server has an internal structure known as the master boot
record (MBR) that limits the maximum number of hidden sectors to 63. This
characteristic of the MBR causes the default starting sector for disks that
report more than 63 sectors per track to be the 64th sector. Therefore, when
programs transfer data to or from disks that have more than 63 sectors per
track, misalignment can occur at the track level, with allocations starting at a
sector other than the starting sector. This misalignment can defeat system
optimizations of I/O operations that are designed to avoid crossing track
boundaries.

Diskpar.exe is a command-line tool from the Windows 2000
Server Resource Kit that can explicitly set the starting offset in the MBR. By
doing this, the track is aligned with the physical disk partition, which results
in an improvement in disk performance. Exchange writes four kilobytes to the
database and up to 32 kilobytes for the streaming data. Therefore, make sure
that you set the starting offset to be a multiple of four kilobytes.

Write-caching option on each disk

Excerpt from Microsoft on this option:

Enabling write caching allows writes to be completed immediately after being
cached in the storage subsystem. Note that with this action a period of time
passes during which a power failure or other catastrophic event could result in
a loss of the data. However, this period is typically fairly short because write
caches in the storage subsystem are usually flushed during any period of idle
activity. Alternately, you can use time-outs at the cache level to force dirty
data out of the cache even if other active requests exist.

This option is enabled by default on all SAN-attached storage

‘Advanced Performance’ option on each disk.

Excerpt from Microsoft on this option:

The advanced performance option strips all write-through flags from disk
requests and also removes all flush-cache commands. The assumption is that if
you have power protection on your I/O path you don’t need to worry about those
two pieces of functionality; by definition, any written data is safe and
“in-order” after it is copied into power-protected storage subsystem hardware,
just as if it had been written to the physical disk media.

This option is disabled by default on all SAN-attached storage.

Emulex Lightpulse scatter/gather list elements

“HKLM\System\CurrentControlSet\Services\lp6nds35″

Add (if not already present) the following Keys under lpxnds

Parameters->Device (Parameters apply to ALL LPxxx adapters)
or
->Devicen (Parameters apply to LPxxx adapter number ‘n’ 0-99)

Under Device or Devicen add a value of “MaximumSGList” Type REG_DWORD,
with a value of from 13 to 255 (decimal). Microsoft specifies to use
this value sparingly, as these request entries come from Non-Page-Pool.

Emulex Lightpulse asynchronous requests

“HKLM\System\CurrentControlSet\Services\lp6nds35″

Add (if not already present) the following Keys under lpxnds

Parameters->Device (Parameters apply to ALL LPxxx adapters)
or
->Devicen (Parameters apply to LPxxx adapter number ‘n’ 0-99)

Under Device or Devicen add a value of “NumberOfRequests” Type REG_DWORD,
with a value of from 16 to 256 (decimal). Microsoft specifies to use
this value sparingly, as these request entries come from Non-Page-Pool
(this is especially true with the ALPHA systems).

References:

Windows Server 2008 performance tuning
http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Perf-tun-srv.docx

How To Improve Windows 2003 File Server Performance
http://support.microsoft.com/kb/555041

CacheSet
http://technet.microsoft.com/en-au/sysinternals/bb897561.aspx

How to Configure the Storage Subsystem
http://technet.microsoft.com/en-us/library/bb643100.aspx

Examining and Tuning Disk Performance
http://www.microsoft.com/technet/prodtechnol/Windows2000Pro/reskit/part6/proch30.mspx?mfr=true

Aligning Disk Partitions by Using Diskpar.exe
http://technet.microsoft.com/en-us/library/bb643097.aspx

PagedPoolSize
http://technet2.microsoft.com/windowsserver/en/library/b1bda681-28b0-4339-a4ea-feb0fd9ff0c01033.mspx?mfr=true

Optimizing Your Memory Configuration
http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/core/fnec_evl_fhcj.mspx?mfr=true

About Cache Manager in Windows Server 2003
http://support.microsoft.com/kb/837331

MaxPagedMemoryUsage for the server sevice
http://technet2.microsoft.com/WindowsServer/en/Library/357c7af1-7a0b-47a5-8af1-ff44756c498a1033.mspx

MaxPagedMemoryUsage for the server sevice
http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/regentry/58636.mspx?mfr=true

LargeSystemCache
http://technet2.microsoft.com/WindowsServer/en/library/efa621bd-a031-4461-9e72-59197a7507b61033.mspx

Optimizing Your Memory Configuration
http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/core/fnec_evl_fhcj.mspx?mfr=true

File Cache Performance and Tuning
http://technet.microsoft.com/en-us/library/bb742613.aspx

Cluster resource command-line operation
http://technet2.microsoft.com/windowsserver/en/library/f6b35982-b355-4b55-8d7f-33127ded5d371033.mspx

File Cache Performance and Tuning
http://technet.microsoft.com/en-us/library/bb742613.aspx

About Cache Manager in Windows Server 2003
http://support.microsoft.com/kb/837331

How to Configure the Storage Subsystem
http://technet.microsoft.com/en-us/library/bb643100.aspx

Why should you use Diskpar
http://msexchangeteam.com/archive/2005/08/10/408950.aspx

Emulex Lightpulse HBA device settings
http://contents.driverguide.com/content.php?id=106500&path=README.TXT

Leave a Comment :, , , , , , , , , , , more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...