08/11/04
pages 86 - 110
Earning that degree was not easy for him. For the first two years, he made mostly poor grades, although he did well in a psychology class. In his junior year, however, he took a course in digital logic. The course included a lot of Boolean algebra, which made perfect sense to Alsing. Moreover, he found fascinating the idea that you could represent any number, in binary form, in terms of merely "0's" and "1's" and, because you could represent a "0" by a low voltage and a "1" by a high voltage, you could represent numbers, and even add them, by electricity. He got an A in the course.
Then he enrolled in a FORTRAN programming course. FORTRAN, short for FORmula TRANslation, was an early language that made it relatively easy for engineers and scientists to enter their equations into a computer for computation. A recent version of this language is still used for many engineering and scientific calculations, although the more modern C language is also used for these purposes.
BASIC, on the other hand, is a programming language that uses a different, but in many ways similar computer program, called an interpreter, to translate BASIC programs into the instruction set for the computer. The fundamental difference between compilers and interpreters is this: interpreters process programs line by line whereas compilers process entire programs all at once. This difference means that compilers tend to produce faster, more compact, translations because they consider the program as a whole and therefore have a more complete perspective for optimization.
The line-by-line processing by interpreters, on the other hand, offers the advantage of notifying the programmer immediately of any syntax errors discovered. A compiler, since it considers the program all at once, reports all errors at one time - not immediately, but after the entire program has been written. The delay in reporting errors produces a large accumulated list of errors that can be confusing to deal with. For example, an error early in a program can lead to errors later in the program that disappear once the early error is corrected.
In general, compilers produce fast compact code while interpreters provide convenience at the expense of slower, less compact, code. In an effort to have the best of both approaches, many contemporary software development tools, called integrated development environments (IDEs), provide an interpreter during development of a project, for convenience, but provide a compiler, for efficiency, to build the executable files. IDEs are available for most contemporary programming languages.
He stayed out of school for a year, probably on suspension. When he returned, he took electrical engineering courses and became a straight-A student.
Such a pattern of early academic failure and latter academic success, though not common, is not that unusual. You should not necessarily become discouraged about the possibility of successfully completing the requirements for a BS degree in ECE because you do not achieve unqualified academic success at the start. If you think you might like some things about ECE, hang in there for a while. Something that fascinates you in this extremely broad field might turn up. Alsing did not find what fascinated him until his junior year.
In computers, microcode translates the instructions in the computer's instruction set into more detailed instructions to open or close the various transistor logic gates that make up the computer hardware. In some really fast computers, the instruction set directly opens and closes the logic gates, with no intervening microcode. The increased speed without intervening microcode is achieved at the expense of flexibility. If, for example, some kind of bug becomes evident in a machine with microcode after the machine has gone to market, it may be possible to fix the problem by modifying the microcode.
In some machines, the microcode was stored in replaceable ROM (Read Only Memory) chips so that it could be easily replaced. In Eagle, the microcode was put onto a floppy disk and was read into the machine each time the machine was booted (started). The microcode in Eagle, therefore, would be exceedingly easy to modify - just mail the users a new floppy disk to use during the booting process.
Probably as a result of the anxiety caused by his procrastination, Alsing did not receive a substantial gift of stock, as many other engineers did, upon completion of the Eclipse, even though he had made a most important contribution.
A second problem was that Alsing's microcode appeared, to anyone else, quirky and disorganized. It worked and had the advantage of requiring relatively little memory, but it was not written in a modular form that could be easily understood and modified by someone else. Alsing apparently could keep all the organizational details for the Eclipse microcode in his head.
For the Eagle, however, Alsing's approach simply would not work. There was far too much microcode for one person to write, even if there were plenty of time (which there wasn't). But microcode written by more than one person must be highly organized and modular to permit understanding and cooperation. Alsing, therefore, would write no microcode for the Eagle. Instead, he was placed in charge of the Microkids, the group of fresh graduates who were to write the microcode for Eagle. He had been given management responsibility.
It is fairly common for engineers who have learned to work successfully with others to become managers at some point in their careers. One advantage engineers have in becoming managers is that they can apply the analytical thinking skills they developed in mathematics and technical courses to management.
With the Eagle project, Alsing has just begun his transition from mainly technical work to management. He chose the Microkids and provided their initial training. His interest in psychology could prove helpful to him, of course, but is no guarantee of success as a manager. He taught the Microkids many things, including the important lesson about the importance of relying on staff, secretary Rosemarie Seale in particular, for information and support.
As a manager, Alsing tried to be personally accessible to the Microkids. Indeed, Kidder says he functioned as "social director" of the group. On the other hand, he isolated himself from the technical work of the group. He left technical supervision to a couple of lieutenants.
His approach led to some problems. Perhaps because of his technical isolation, some of the Microkids felt that the weekly micromeetings were pointless. Possibly, his lack of technical involvement led to a loss of professional credibility with them. West felt that Alsing was too close to the people that worked for him.
Alsing's lieutenants complained that he sometimes by-passed them and told the Microkids to do something different than what the lieutenants had already agreed to in earlier discussions. Such by-passing is a definite "no-no" in management because it leads to confusion and tension. In Alsings case, it was even more problematic because he was out of touch with the details of what was going on. In fact, the detailed, close-up, knowledge of the situation of the immediate supervisor, as opposed to the supervisor's supervisor, is a major argument against by-passing levels of management.
Alsing, on the other hand, felt that West was too distant from the people who worked for him. Probably both were right. Both still had important things to learn about management.