Auf Anregung eines Programmierers, dessen Werk er schätzt, beginnt Ken Whitesell einen Karriere-Rückblick, der die Monate Januar bis Juni 1978 abdeckt – sein erstes echtes Highschool-Semester mit Programmieren. Nach einem Umzug von Baltimore nach Ann Arbor, Michigan, zwischen dem vorletzten und dem letzten Schuljahr, besuchte er einen Basic-Kurs an einer Schule mit einem Minicomputer für den ganzen Schulbezirk. Er hatte bereits mit einem programmierbaren Taschenrechner TI SR-52, dem mechanischen Lerncomputer Digi-Comp I und verschiedenen Radio-Shack-Elektronikbaukästen experimentiert, aber das war seine erste formelle Einführung in das Programmieren.
Die Maschine war ein HP-2000F mit Time-Sharing-BASIC. Die Schüler arbeiteten hauptsächlich über Bell ASR 33-Fernschreiber mit Lochstreifenstanzer und -leser. Die Geräte liefen mit 110 Baud, also etwa zehn Zeichen pro Sekunde, und waren so laut, dass normale Gespräche unmöglich waren, sobald mehrere Geräte liefen. Das Labor war etwa 3,5 × 7 Meter groß und beherbergte rund acht Fernschreiber sowie einige Video-Terminals. Ein interaktiver Debugger existierte nicht. Fehlersuche bedeutete: Programm laufen lassen bis zum Abbruch oder Fehler, dann Zeile für Zeile mit Papier und Taschenrechner durchgehen, wobei jede Variable durchgestrichen und neu eingetragen wurde. Änderungen entstanden auf Papier und wurden anschließend neu eingetippt.
Code-Wiederverwendung war umständlich. Eine Subroutine konnte nur über Lochstreifen in ein anderes Programm übertragen werden, oder indem man das Original kopierte, den Rest löschte, die verbleibenden Zeilen höher nummerierte und an das Zielprogramm anhängte – wobei die angehängten Zeilennummern höher sein mussten als die höchste des Zielprogramms.
HP BASIC war stark eingeschränkt. Ausgaben waren standardmäßig in Großbuchstaben. Variablennamen durften nur ein einzelner Buchstabe oder ein Buchstabe plus eine Ziffer sein und waren global gültig. Benutzerdefinierte Funktionen hießen FNA bis FNZ, nahmen einen Parameter entgegen, werteten einen einzigen Ausdruck aus und lieferten einen Wert zurück. Subroutinen hatten keine Parameter; der Aufrufer musste Werte in reservierte globale Variablen kopieren, GOSUB aufrufen und anschließend Ergebnisse zurückkopieren. Matrizen waren zweidimensional und teilten sich den globalen Speicher; obwohl die Obergrenze bei etwa 5000 Elementen lag, blieben bei größeren Programmen oft nur etwa 2000 verfügbar.
Der Zugang war knapp: etwa eine halbe Stunde vor Schulbeginn und eine Stunde danach. Er schrieb abends Code auf Papier und wartete morgens vor der Schultür. Abends nutzte er ein Labor des örtlichen Community College mit etwa einem Dutzend DECwriter LA-30-Terminals, die per Dial-in mit 300 Baud verbunden waren. Sie waren leiser, gaben 132 Zeichen pro Zeile aus und druckten mehr als dreimal so schnell wie die Fernschreiber, sodass Listings praktikabel wurden. Außerdem gab es Video-Terminals, die er zum Editieren bevorzugte. Obwohl das Labor eigentlich College-Studenten vorbehalten war, schätzte er, dass mindestens die Hälfte der Abendnutzer Gymnasiasten waren.
Nach dem Schuljahr nahm er einen Sommerjob an, mietete ein Video-Terminal und installierte eine zweite Telefonleitung zu Hause, um weiter programmieren zu können. Da er keinen Lochstreifen mehr hatte, blieben keine maschinenlesbaren Kopien erhalten; er behielt nur ausgedruckte Listings.