CAREERS IN GENERAL

This page, which is not specific to me, might be useful in your career. This page deals with careers in general and careers specifically in computer science but not careers specifically in other areas.

TOPICS FOR A CAREER IN ANY FIELD
RESOURCES
STORIES AND QUOTES
TOPICS IN COMPUTER SCIENCE
THE JAVA PROGRAMMING LANGUAGE
SEARCHING THE RESEARCH LITERATURE
MISCELLANEOUS TOPICS IN COMPUTER SCIENCE


Return to Gary Sockut's home page.




TOPICS FOR A CAREER IN ANY FIELD



This section's information is, of course, just a fraction of the information that you might find useful for work.


RESOURCES:

Many career resources, organized below by their topics, are available. I do not make any guarantees about the resources listed here. I found some of them, and viewers of earlier versions of this web site suggested some of them.

Overall information: Organizations: Networking: Education: Job-hunting: Other career-related topics:

STORIES AND QUOTES:

Many things can be difficult to predict. The economist John Kenneth Galbraith is quoted as saying “The only function of economic forecasting is to make astrology look respectable.”

Finding the reason for an observed fact can be tricky. I heard about somebody who, after getting a new keyboard, could log in when sitting but could not log in when standing. The reason was eventually found to be the manufacturer's inadvertent exchanging of the labels of two keys. When sitting, the person used touch typing and therefore pressed the correct keys. When standing, the person looked at the labels and therefore pressed the incorrect keys.

Sometimes a seemingly simple action has unintended consequences, especially in an interconnected system. I quote one publication of the World Health Organization (WHO): “This story began in the late 1950s when WHO carried out extensive programs to eradicate mosquitoes in Borneo by spraying the village areas with DDT. Not long after, the palm-thatched roofs of the village houses began to collapse: a moth larva which fed on the palm fronds had increased because a predatory fly, which ordinarily kept the larva at low levels, had been annihilated by the DDT. The contaminated flies were eaten by lizards which were eaten by housecats which also died. As a result, rats began to invade the dwellings, posing a serious threat of diseases. To solve the problem, WHO and Singapore's Royal Air Force packed cats into perforated containers and dropped them into the villages by parachute. Thus the story of Operation Cat Drop was born. It attracted attention and controversy because a well-meaning action had resulted in the unbalancing of a delicate ecological equilibrium, but it lived on because of the intriguing image of cats plummeting into the Borneo jungle by parachute.”

In designing a written or oral explanation of something (e.g., a computer language), I recommend explaining the simple things before explaining the complicated things. For example, some explanations of the Unix operating system illustrate a Unix pipe (whose syntax is “|”) via an example like “cat myfile | lpr” without previously explaining “cat” and “lpr” individually. The “cat” concatenates one or more operands (just “myfile” in this case), “lpr” prints its operand on a printer, and “|” feeds the output of one command (cat) into the input of another command (lpr). Some people who read or hear such an explanation can get the incorrect impression that “cat myfile | lpr” is the simplest way to print a file. However, the simplest way is really “lpr myfile.” Explaining “cat” and “lpr” individually before explaining their combination can avoid giving the incorrect impression.

In designing an explanation, there can be a trade-off between thoroughness and conciseness. I heard a presentation by Terry Smith called “The 10 Commandments (More or Less) of Successful Presentations.” He gives an example to illustrate the need for conciseness: “A diminutive immature specimen of a ruminant mammal of the genus Ovis was under the exclusive dominion and control of Mary.”

It is always important to consider the users. I quote this example from the “Error Messages” section of B. Shneiderman, Designing the User Interface: Strategies for Effective Human-Computer Interaction, Addison-Wesley: “The phone company, long used to dealing with nontechnical users, offers this tolerant message: “We're sorry, but we were unable to complete your call as dialed. Please hang up, check your number, or consult the operator for assistance.” They take the blame and offer constructive guidance for what do to. A thoughtless programmer might have generated: Illegal phone number. Call aborted. Error number 583-2R6.9. Consult your user manual for further information.

I heard a story about Gerd Binnig and Heinrich Rohrer, who invented the scanning tunneling microscope. When they told their colleagues about their proposed research, their colleagues said, “You're crazy! It will never work. But if it does work, you will win a Nobel Prize.” The colleagues were partially correct; after it was shown to work, they won a Nobel Prize (physics, 1986). Sometimes it is worthwhile to do what some people consider crazy.

People from different cultures often have different customs. A friend worked for an American company that celebrated major product releases by giving employees T-shirts containing a message about the release. He once visited an engineering lab that the company had in Germany. After work one day, he and his German colleagues went out for drinks. After a few beers, one colleague said “We love you Americans, but why do you keep sending us underwear?”



TOPICS IN COMPUTER SCIENCE


THE JAVA PROGRAMMING LANGUAGE:

I like this book: D. Lowe and B. Burd, Java All-In-One Desk Reference For Dummies, 2nd Edition, Wiley Publishing, 2007. It is thorough (882 pages) and easy to understand.

I can usually find other Java subjects (not found in the book) on Oracle's web site or elsewhere on the web. The web site provides the full specification of the language, a searchable tutorial, and other things.

In early 2017, I wanted to refresh my memory on Java programming, and I wanted to have some fun doing it. So I wrote a Roman numeral desk calculator. Instead of 2 plus 2 is 4, II plus II is IV. It supports addition, subtraction, multiplication, division, exponentiation, and parenthesized expressions. I have uploaded the source file. I also contributed it to the GitHub repository as open-source software, in my games repository. So I have satisfied the world's most important need! ☺


SEARCHING THE RESEARCH LITERATURE:

I have used mainly three free web sites. For each site, this table lists the site's name, the areas covered, and the number of publications that the site found in November 2007 when I searched for publications that I have authored:

Site's name Areas covered # publications
Google Scholar many disciplines, including computer science 16
ACM Guide to Computing Literature computer science 11
DBLP computer science, especially databases and logic programming 10

Of the 16 publications that Google found, 8 were in both ACM and DBLP, 3 were just in ACM, 1 was just in DBLP, and 4 were in neither. DBLP also found 1 publication that was in neither Google nor ACM. Google found all my patents, but ACM and DBLP did not find any. When analyzing this comparison, remember that this was a one-time test that involved only one search criterion (authorship by me); different search criteria can produce different comparisons (YMMV). Also remember that the sites' capabilities can evolve.

Here are a few more details of the sites: You can also search for US patents through the Patent and Trademark Office. There are web sites for producing a pdf version of a patent; one such site is pat2pdf.org.

Many authors' web sites list more publications than any of the search sites list for those authors. Besides using a search engine (Google, Bing, Yahoo, etc.), here are other ways to find an author's web site:

MISCELLANEOUS TOPICS IN COMPUTER SCIENCE:

There is a blog on web 3.0 and the semantic web.





Forward to Leisure.

Return to Gary Sockut's home page.