From: Craig Maloney Date: Fri, 30 Nov 2018 14:00:29 +0000 (-0500) Subject: Started editing appendix a X-Git-Tag: 0.5.0^2~5 X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=647aef45ea706c58ae60df86184c1b21d03de5a6;p=themediocreprogrammer.git Started editing appendix a --- diff --git a/appendixa.md b/appendixa.md index 0b27c6f..47bd6fb 100644 --- a/appendixa.md +++ b/appendixa.md @@ -1,8 +1,10 @@ # Appendix A {-} -My journey as a programmer started early in my life. I became interested in computers after reading about them in the World Book Encyclopedia and hoped to work with them some day. What I hadn't realized was those encyclopedias were rather out of date and only showed the larger, more expensive mainframe and mini computers of the 1960s and not the more modern microcomputers of the 1970s. When I saw that an Apple II was a microcomputer and was designed for the home I began my quest to get a computer (AKA: dropping not-so-subtle hints to my parents that I wanted a computer). I scoured magazines looking for the right computer; from the Commodore VIC-20 and Sinclair ZX-80 to the Radio Shack TRS-80 Model III. My parents took me to computer stores and I marveled at the machines that were there (and likely made a few sales-people nervous as I poked and prodded the rather new and expensive machines). Finally my dad picked up an Atari 400 computer with tape drive and I began learning BASIC programming in earnest. Around the same time my school got a "lab" of three Commodore PET 4032 machines (with floppy disk drives) and I spent every moment I could with those machines. In high school I took several programming courses, both in BASIC and in Pascal (which was my first exposure to a higher-level language, and the concepts of computer science). In college I majored in Computer Science (with a bachelor of science) and did my best to keep up with all of the things that they tried to teach me. Unfortunately I wasn't a great student, especially in mathematics. I struggled with (and later dropped) my compilers class, and felt like I was falling behind where other students succeeded. Most of our classes used Pascal but there were a few that used COBOL, Ada, SNOBOL, and assembly language. I graduated with modest scores and returned home. +My journey as a programmer started when I was in elementary school. I became interested in computers after reading about them in the World Book Encyclopedia and hoped to work with them some day. What I didn't realize was that those encyclopedias were out-of-date and only showed the larger, more expensive mainframe and mini computers of the 1960s and not the more modern microcomputers that were introduced in the 1970s. When I realized that an Apple ][ was a microcomputer and that it was designed for the home market I began my quest to get a computer of my own (AKA: I started dropping not-so-subtle hints to my parents that I wanted a computer). I scoured magazines like Popular Computing and Byte Magazine looking for the right computer; from the Commodore VIC-20 and Sinclair ZX-80 to the Radio Shack TRS-80 Model III. My parents took me to computer stores and I marveled at the variety of machines that were there (and likely made a few sales-people nervous as I poked and prodded the new and rather expensive machines). Finally my dad picked up an Atari 400 computer with tape drive and I began learning BASIC programming in earnest. Around the same time my school opened a "computer lab" with three Commodore PET 4032 machines (complete with floppy disk drives) and I found myself spending every moment I could with those machines. In high school I took two programming courses, one in BASIC and the other in Pascal (which was my first exposure to procedural languages, and the basic concepts of computer science). In college I majored in Computer Science (with a bachelor of science) and did my best to keep up with all of the things that they tried to teach me. Unfortunately I wasn't a great student (especially in mathematics). I struggled with (and later dropped) my compilers class, and felt like I was falling behind where other students succeeded. Most of our classes used Pascal (which I was becoming more familiar with) but there were a few classes that used COBOL, Ada, SNOBOL, C, and assembly language. I graduated with modest scores and returned home. -Throughout my career I've straddled the line between system administration and programming. My first few jobs were all related to maintaining various sorts of computers: desktop PCs, UNIX-based machines, and so forth. It wasn't until folks needed websites and realized I knew how to program that my career slid over into programming. From there I learned Perl, SQL, databases, and HTML. At that time the web was new so we were all learning at the same time. I leveraged my Perl knowledge into several jobs doing web-based programming. Perl is a language that is both simple and complex. Perl and CGI made it incredibly easy to get something displayed to a web page. Where it is complex is the syntax for things like regular expressions, and the tendency for Perl programmers to value code that does multiple things on the same line. There was also a lot of value placed on code that was clever, which lead me to wonder on several occasions if I was clever enough to be a Perl programmer. +### FIXME + +Throughout my career I've straddled the divide between system administration and programming. My first few jobs were all related to maintaining various sorts of computers: desktop PCs, UNIX-based machines, and backing up the occasional VAX machine. It wasn't until folks needed websites and realized I knew how to program that my career slid over into programming. From there I learned Perl, SQL, databases, and HTML. At that time the web was new so we were all learning at the same time. I leveraged my Perl knowledge into several jobs doing web-based programming. Perl is a language that is both simple and complex. Perl and CGI made it incredibly easy to get something displayed to a web page. Where it is complex is the syntax for things like regular expressions, and the tendency for Perl programmers to value code that does multiple things on the same line. There was also a lot of value placed on code that was clever, which lead me to wonder on several occasions if I was clever enough to be a Perl programmer. One of the companies I worked at decided to migrate a Perl system over to a Java-based environment. They looked at the skills of the existing developers and decided they needed to outsource the project to another company. This was a common trend in the early 2000s for reasons that are outside of the scope of this book. This gave me my first taste as a team leader. I know a lot of programmers enjoy being in a managerial role but at the time I didn't feel I had fully explored my programming potential. I sat down on several occasions and tried to learn Java but it never clicked for me. It always felt more cumbersome than Perl CGI scripts that I created. It also didn't help that we were shipping .war files into a Tomcat system, which seemed like they were comprised of a lot of metadata and very little code. This is what I meant when I spoke about being OK with giving up on learning something - sometimes what we try to learn is more of a chore. Having something that is a chore isn't going to provide a good learning experience.