Pages

Sunday, September 11, 2016

Reflecting on Week 0, 2016

This post is a look back at the first week of my latest career and our first week of class together. I want to summarize some of the more important things that we tried to cover in four class periods and touch on a few things I wish I had covered a little better than I did.

In his book The Juggling Act,  Pat Gelsinger, now the CEO of VMware, writes about the impact Bob Buford's book Halftime: Moving from Success to Significance had on him at a point in his life when he was contemplating whether to continue pursuing his ambitions as a Christian businessman or whether to leave the corporate world and do something else instead. Similarly, I spent twenty years of my life working for Intel Corporation before seriously considering other alternatives. Now I'm employed at Valley Catholic High School where I'm forced to grow and learn a whole new set of interesting and useful skills! To change or not to change is a decision we're all constantly faced with. Sometimes the question is forced upon us. Sometimes it sneaks up on us. But it's always there, even if when it's lurking subconsciously in out-of-the-way corners of our minds. In A Confession, Leo Tolstoy writes about the question at a point in his life when he had achieved fame and virtual immortality via, among other things, the success of his epic works War and Peace and Anna Karenina. He was ‘happy’ in a sense: he had his health, a wife, a large estate and several children. Yet life seemed meaningless to him.

Of course we're all quite young, so . . . moving on! . . .

Hurry up!

In the first chapter of A Russian Proprietor our traveling companion Mr. Tolstoy tells a story about a nineteen-year-old prince who writes a letter to his “Auntie” explaining his decision to leave the university in order to devote himself to country life. She replies:
You say you feel that your vocation is for a country life; that you wish to make your serfs happy, and that you hope to be a good farmer.

In the first place, I must tell you that we feel sure of our vocation only when we have once made a mistake in one; secondly, that it is easier to win happiness for ourselves than for others; and thirdly, that in order to be a good master, it is necessary to be a cold and austere man, which you will never in this world succeed in being, even though you strive to make believe that you are.
In high school, I got the idea stuck in my head that I was going to be a dentist. After completing three years of undergraduate course work at Purdue University, I was accepted into dental school at the Indiana University School of Dentistry. (I was in a hurry!) During my first semester of dental school I decided that becoming a dentist wasn't what I wanted to do after all. I don't regret the experience, but I could have saved myself some money and devoted more of my limited time on this earth to other pursuits if I had come to the conclusion that I wasn't cut out to be a dentist sooner.

Last week a student dropped out of AP Computer Science Principles. On the one hand, I admire this student's decisiveness. On the other hand, I hope it was a smart choice and not just a knee-jerk reaction to a new experience that felt unpleasant for some reason but might have turned out to be just the opposite given enough time. It's difficult to say how long someone should stick with something before deciding to quit and try something else instead. Some cultures encourage individuals to make their own choices in life. Other cultures try to impose decisions on people about things like what to wear, what to eat, what to study, whom to marry—even what to believe! Is one approach better than another? I have opinions, I suppose, but I wonder about their origins. Are my opinions really mine or were they somehow surreptitiously imposed on me? In any event, who am I to judge?

If you think you love computer science, then great! I'll try not to don't dampen your enthusiasm too much. If you're starting to think you might hate computer science, maybe you should hang in there a little longer. Maybe you'll change your mind. Or maybe it's me and not computer science that's the problem. Or maybe it is great that you've discovered something about yourself so quickly! Whatever the case may be, I hope that you're right sooner or later and that you have the support you need to succeed at whatever it is you decide you're going to try to do next.

No matter what, if down the road a ways you conclude that you were wrong about something, don't beat yourself up over it. The ability to admit you were wrong, perhaps forgive yourself, and change is a good ability to have, in my opinion.

Donald E. Knuth

How many American baseball fans don't know the name Babe Ruth? What golf pro doesn't know and admire Jack Nicholas? What classically trained musician hasn't heard of Johann Sebastian Bach or Ludwig van Beethoven or Wolfgang Amadeus Mozart? It's a shame that many professional computer programmers have never heard of Donald Knuth or his landmark series of books The Art of Computer Programming, which Jim Plummer, the longest serving dean in the history of the Stanford School of Engineering, says that many people consider to be among the most important scientific writings of the past century (All Questions Answered, 3:28-3:40).

I hope all of you will at least remember the name Donald Knuth if not a few things about him, like the fact that his family didn't have an automobile until he was in 7th grade (My parent' finances, 0:37-45); or that his father always rode a bicycle to work (My parent' finances, 1:08-1:12); or that he was a big fan of Mad magazine and Roger Price and produced a musical production in high school using Price's words from the short story "Milton and the Rhinoceros" (Interests in high school, 2:30-3:27); or that he's a very slow reader, wouldn't read a book unless it was assigned to him (when he was in high school), and didn't discover some of the great literature of the world and read it for his own pleasure until he was in his thirties (Being a nerd of nerds at high school, 2:47-3:25); or that he had never heard of calculus before he got to college (Feeling the need to prove myself, 5:40-5:54); or that he initially planned to study music as an undergraduate at Case Institute of Technology in Cleveland, Ohio before becoming a math major (touché Tolstoy!) and graduating with the highest GPA of any of the math majors in his class (All Questions Answered, 4:56-5:43 and Feeling the need to prove myself, 4:50-5:02); or that he loved his college calculus book, written by George B. Thomas and published by Addison-Wesley, so much that he later chose Addison-Wesley to be the publisher of his own books (Feeling the need to prove myself, 5:58-7:40); or that he earned his Ph.D. in mathematics in 1963 from Caltech before joining the faculty at Stanford where he taught computer science for many years before retiring from teaching so that he could work full-time writing his books (All Questions Answered, 5:45-6:08); or that he's a Christian (specifically a Lutheran) and spoke publicly about his faith at MIT in 1999 (Giving a lecture series on science and religion at MIT).

Brass Tacks

I imagine some of you might be saying to yourself, “Enough already with all this babbling about the meaning of life, career advice, and some old guy named . . . What's his name again?” Fair enough, it's your time, your parents' money, and my job to try to help you learn a thing or two about computer science. . . .

Brass tacks of computer related topics and technologies we touched on in our first week together include:
  • Integrity and Textbooks and Earbuds, O my! (Exercise[3])
  • The tradition of writing a Hello World program when learning a new programming language (Exercise[4])
  • Differences between interpreted and compiled languages like JavaScript and Java (Exercise[4] and Exercise[5])
  • Pressing the F12 key to access developer tools in a modern web browser like Chrome (Exercise[4])
  • A couple of simple, similar ways to write a Hello World program using JavaScript's alert and console.log commands (Exercise[4])
  • The use of single and double quotes to demarcate strings in JavaScript (Exercise[4])
  • The concepts of a command prompt and a command line (Exercise[4] and Exercise[5])
  • The use of semicolons to separate JavaScript commands on a single command line (Exercise[4])
  • Using javac.exe to compile Java source code into portable bytecode and using java.exe to interpret the compiled bytecode (Exercise[5])
  • Technologies including Java Development Kits (JDKs), PowerShell, PowerShell ISE, Notepad, Notepad++ (Exercise[5])
  • PowerShell command completion using the tab key (Exercise[5])
  • PowerShell command scrolling using the up and down arrow keys (Exercise[5])
  • The abstract concept of an alias and some PowerShell commands (aliases) for viewing, setting, exporting and importing aliases (Exercise[5])
  • The following PowerShell commands: clear, pwd, dir, ls, cd (Exercise[5])
  • File encodings (Exercise[5])
  • Parameters and arguments (Exercise[5]