Wanna learn? Get a school of your own.

By | February 9, 2008

Back in 1995 while I was still in grad school, I discovered that the best way to learn all the different aspects of the computing world was to just jump right in . I already had a full time job as a network adminfor the university’s College of Education, but I was finding that all networking positions were inevitably jobs that were focused on fixing things that were broken rather than building something new. Every so often we would install a new server or router but I felt like I would rather build new things as opposed to maintain existing ones. I decided to start the transition to programmer/developer but it would not be until many years later that I would recognize the value of spending time in a wide variety of computer roles.

At that time, I worked for a professor named Paul who would become one my best friends in the world as well as my mentor in all things computing. He knew another professor in the department whose wife was the head of a K-12 school in Dallas and they need someone to “help them with their computers”.

That was 13 years ago and to this very day I still work with that school as much as I possibly can. Why? Because that part-time job has had a greater impact on my career than my 9 years of college and the training I’ve had at my regular job combined. This is mainly because I was the only person working on computers at the school and I could choose the direction and the means that the school would use for its IT needs. I’ve got a teammate now who takes care of the day-to-day operations, but it was great during those first 8-10 year to have complete control over the entire thing.

In 1995, schools were just starting to get on the Information Super-Highway (man, what a cornball term that is). This school had an enrollment of about 300+ kids and they had a total of about 15 computers spread throughout the entire campus. They didn’t know much about computer networks, but I suppose I didn’t either back then. They had two servers buried in a closet, one of which had burned out its hard drives 2 weeks earlier. Every time it rained, the entire network would die, a problem which I later traced to a network cable that ran out the window, along the ground, through some grass and into another window in the building next door. Keep in mind that this was the good old T-connector coax cable which required a terminator and would run to each computer in a daisy chain so the whole network would die when the local squirrels got hungry. Quality stuff.

I told the Head-of-School that if they were serious about building a new network then they should buy some computers and call me back. I was cocky back then and I was not really sure I could back up the bravado in my voice. They called two weeks later and I returned to the campus to find 80 new Pentium-100Mhz PCs and 2 mini-fridge servers. It was time for me to put up or shut up.

I did not realize it at the time but this place was a gold mine of learning. There is no single better way to learn anything other than to ‘Just Do It’ as Nike proclaimed.

The first item to be addressed was the poor state of the network, so I built one from scratch making mistakes and learning from them along the way. When the task was done I had become an expert on assembling Ethernet cables, linking 3Com hubs, building Novell NetWare servers and installing NDS4NT clients on every PC in the joint. I became skilled with a cable toner which I used to trace which jacks were wired to their corresponding ports on the wiring block in the server room. (The guy who installed the wiring owed the school money so he did it on the cheap and marked the ports with what I determined was pixie dust so that no one would know what worked and what didn’t. It allowed him to make a quick exit when the job was ‘done’.)

We also required Internet access so my second task was getting the school connected to a provider. Initially we connected the network to the outside world using an Ascend 128KB ISDN router. I would learn how to operate this thing by purchasing one for myself and hooking it up in my apartment. My buddy Paul had a similar setup in his house and we could dial them into the university’s computer network for a small monthly fee. In 1996 I think we were two of about four people at the university who could claim to have high-speed internet service in their homes. I was smoking those 56K modem owners until DSL and Cable modems started showing up a few years later. Since that time we’ve moved the school over to a burstable T1 line with a Cisco router and a Sonicwall to block as much danger as possible. Each step of the way, I was learning about things that I would never be allowed to touch in the corporate world. (Large companies don’t usually let the average employee jump in and configure their telecommunications equipment. Granted, they are using much more sophisticated equipment that my school owns, but the underlying principles are the same and the experience of having been through it is invaluable.)

Next up, email. “Hmmm, what email client should they use? I hear Lotus Notes is popular. Let’s try that.” Remember this was 1995 and Notes was so hot that IBM had just gobbled up the entire company to get their hands on this fabled groupware product while sunsetting almost every other piece of software Lotus made. I figured Notes was good place to start learning to write software so I made a deal with Lotus to give the school every product they made for $5000 annually. This covered the school’s email (Notes), office suite (SmartSuite) and web server (Domino) needs for the near future and allowed all the teacher’s to make copies of the media take home for their personal machines. At the time Microsoft wanted about three times that amount, but they’ve since learned that indoctrination of children is more important than immediate profits. Give a man a man a fish, he will eat for a day. Teach a man how to do his homework on your word processor and he’ll use it in college and at his future job, eradicating WordPerfect and WordPro. Something like that.

So I was off and running, building the school’s first web site in Lotus Domino. I had been using HTML since 1994 while working at the University of Texas computer lab but I really thought that Domino skills would be more marketable so I create the who thing in a Notes database and published it through Domino for public consumption. I would later integrate another popular product called NetObjects Fusion, which was a forerunner to FrontPage and much better in my opinion. The company died a few years later but I still have their t-shirt and wear it proudly to the confusion of my fellow nerds. (I’ve since heard someone else bought the company and still sells the product)

Next up, I had to learn all about email. What the heck is SMTP? How do I configure a gateway? Should I worry about anti virus software? Maybe later. After a few days we were up and running, receiving our alloted pile of spam sprinkled with useful messages here and there. Nice.

And so it went. Need a grading system to track and print report cards? I’ll write that in Lotus Notes. I learned enough during that endeavor to eventually get hired by PricewaterhouseCoopers as a consultant, writing Notes apps for one of the fanciest department stores in the world – NM. During the PwC interview, I found that they were much more interested in what I knew how to do with a computer than with my newly minted MBA. I continue to see how experience and skillsets are exponentially more important that what degree you have or where you got it. Bill Gates will pay top dollar to anyone who can beat Google, regardless of whether they come from Dartmouth or DeVry.

Next the school also asked me to create a website for a k-12 educational association so I took that opportunity to learn Cocoon and XSP. The site was really powerful on the backend but the my artistic skills left the frontend a little barren. πŸ™‚

A few years ago, we needed to rework the main website again so I sat down and learned how to run the whole thing from a content management system named InfoGlue. The idea was to let the teachers update their own pages, but the software was free and therefore a little bit more complicated than the average teacher was interested in mastering. We’ve since moved to a professional website service which has taken over these duties. Now the employees can maintain their own pages, allowing me to focus on writing cool internal apps for the school.

I later re-wrote the grading system two more times. Around late 2000, the second version allowed me to try out my Java skills, using JSPs and Servlets along with SQL Server and Tomcat to let the teachers fill out their reports from the comfort of their own homes. I wanted to add some dynamic data representation so I used JavaScript to talk to the backend and dynamically rewrite the content in layers, showing new data on pages that were not manually refreshed. Today this is what AJAX is all about, but back then it was a nameless way to shoehorn cool features into a clunky browser. This experience is also the main reason I’ve avoided AJAX ever since. It is a maintenance-intensive beating of the highest order.

The third version had to be something spectacular. In 2003, I picked up a book called Reality J2EE, written by Steven Webster. What a badass. The book rocked and I still think it is a great guide on how a software project should be run. I immediately set to work building the whole grading system in Flash with a J2EE backend. Before I could get it out the door, I stumbled onto Laszlo (later to become OpenLaszlo). I was a few months into creating a Laszlo-based grading utopia when I heard about a projected called Royale at Macromedia. By the time this had morphed into Flex, I had made the move to Adobe’s newly acquired platform. As Flex 2.0 hit the market, so did my grading system, complete with a Flex UI, full Flex Data Services integration (limited to one CPU of course), a Spring Framework middle tier, Acegi authentication, a Hibernate DAO layer, a MySQL datastore and an Apache/Tomcat container. I had also added a spell checker (thanks to Hilary Bridel who gave me the code months before he released it to the public; what a pal) and I had implemented the ability to generate the reports as dynamic PDFs using the iText toolkit. Cool deal.

So here I sit 13 years later, taking stock of what I’ve learned while working for this little K-12 institution in my spare time: Novell Netware 4, Netware Directory Services, Windows 95, Windows 98, Windows NT Server and Client with NDS4NT, Windows 2000 Server and Client, Windows 2003, Lotus Notes, Domino, 3com hubs, Cisco routers, Ascend ISDN modems, RAID configurations for the servers, RJ-45 wiring, T1 line connectivity, Javascript, DHTML and AJAX, JSP/Servlets/Java, SMTP gateways, Antivirus software, Linux Offline Registry Editor (to crack lost Windows passwords πŸ™‚ ), Cocoon, XSP, NetObjects Fusion (farewell, we hardly knew thee), MS SQL Server, MySQL, Spring, Hibernate, Laszlo/OpenLaszlo, Tomcat, Apache, Intel NIC drivers, Windows Network Boot disks (always have a couple handy in 1995), firewall configuration, InfoGlueCMS, and Flex!

I’ve extensively worked with every single one of these items and I think it is amazing that I learned all of this from a school that I’ve never even attended. πŸ™‚

2 thoughts on “Wanna learn? Get a school of your own.

  1. Matt White

    What an excellent article Bill. I always find it interesting to know how people got to where they are in their computing lives and it seems like you’ve had a good mixture there.

  2. Bill Post author

    Thanks Matt. I agree and I think it is amazing how the small decisions you make can affect your long term situation.


Leave a Reply

Your email address will not be published. Required fields are marked *