Getting to the Problem

Everyone has problems and would like solutions. Sometimes a solution is discovered and now there is a problem implementing the solution. In software development, you get this all the time. I’ve had people admit that they give requests in the form of a solution instead of providing a problem and letting someone come up with the answer. Sometimes they just think they know better.

Someone needs a website where they can enter a column of numbers and get a total. Seems simple enough. Any number of developers could start working on this project. The problem may be the solution.

The first step is to backtrack through the discovery of the website solution. You may have to ask a lot of questions since the user may not remember all of the mental gymnastics involved in this path of discovery. Start with the website itself. Why do we have websites and in particular what is it we like about them? What need do they fulfill. Do others need secure or unsecured accesss? Do you need to access this from different computers? Do you want to avoid installing software on multiple computers?

If none of these are a problem, a spreadsheet can be recommended using a locally installed application. Sharing may be accomplished by incorporating a website to handle files.

I use StackOverflow quite a bit. Often some answers/comments on questions are “Why do you have to do it that way?” or “Why are you doing that at all?”  Techies are not known for their tact especially when speaking to other geeks.

A key point will be to ephasise trying to understand the problem better. There can be a point where there is no rational reason for an answer. Sometimes people just get fed up with the questions or they’re embarased that they don’t have an explanation, but just pull rank anyway. Expectations need to be managed here. Like the website request. You could ask if it is all right if it is slow? You won’t be able to have some features that you would find in Microsoft Excel. Is that OK?

As you work with people over time this usually gets better. Make sure you continue to read their reaction to your questions. If they feel you’re being to tedious, start with the project, but stop along the and pose the questions. Sometimes breaking the time up can help.


BASIC Programming for Teachers

This was my first programming course. The biggest advantage was the instructor was a teacher and not just a programmer. There’s a big difference. A lot of people know how to do things, but not teach it. The draw back was the BASIC language does not take advantage of more robust and modern design principles like Object Oriented Design. Some say you develop bad habits that cannot be broken. You can’t change the way you do something if you don’t learn something different. There are so many bad habits that programmers have because the people in charge don’t make them do it right – that is another post.

In the class we had to share computers. My poor partner. I’m sure I hogged the keyboard. Since it was close to the holidays we had an assignment to make a multi-media Christmas card. Graphics on the Apple II were drawn one square/line at a time. You could do some loops and automate some of the drawing. There was a screen mode where you could have a graphic at the top and text at the bottom. I recall having the ability to have the text scroll across. This was where we put some greeting message. The image was of a fireplace with stockings hanging. I decided to take it a little further and have the fire animate. Using random numbers, I was able to get the flames to go up and down and alter the colors: red, yellow, orange.  Pretty crude by today’s standards.

That project really pulled together everything we learned in the class. The professor was pretty impressed. It should have been an early warning that I should have taken my father’s advice and “got into the computer thing” much earlier than I did.  Oh well, still no regrets.

From FORTRAN to Visual Basic

Every programmer has a story on how they ended up developing in a particular language. You learn some in school. I had BASIC for the Apple II. That was pretty much my foundation. In graduate school I was exposed to FORTRAN on a miniframe. In my mind it was, I already know how to do that in BASIC, so how do I do that in FORTRAN?

Then I ended up in the real world with a real job with responsibilities and deadlines. There was some need to duplicate some of the prices for annuities we were importing to more than one code. I wrote a little app in FORTRAN that would scan the price file and create some additional records with the same price. Nothing to difficult until we upgraded out computers to Windows 98 and my app died. Seems the old Microsoft FORTAN compiler had some issues with the new version.

No time to panick. I printed my code and ran over to a contract programmer we were using. I had Visual Basic (VB) 4.0 on my computer. All I had to do was convert my code to the new language. With this guy’s help it worked out pretty good. I got to expand my knowledge of a new language. My code worked. We were back in business on getting our annuity prices; everyone was happy.

I never wrote another line of FORTRAN again. To this day I do a lot with VB in all of it’s various forms (VBA, VB.NET).  I’ve looked at some of the newer languages like Python and Ruby, but my job requires that I do t-sql for Microsoft SQL Server. Hey, follow the money.

First Teaching Job – No Computer, The Least Of My Problems

Went back to my home town, Gary, Indiana, to take my first coaching and teaching job straight out of college. Coaching was great. I went straieght into two-a-days observing the varsity for a week. Then began as the assistant freshman football coach. We had a talented team; this job was too easy.

As easy as the coaching job was and how much I enjoyed it, the fact is, that is not how I paid my rent. That required teaching. I found myself  in a grade school class room for students with learning disabilities. Behavior problems are in this territory as well, but I was prepared. Not really – that’s what I thought.

Day 1: I don’t know what I’m doing. My students asked if I paddled. Of course I do not. I don’t believe in it. They informed me that the class would be chaos (that wasn’t the word they used). My fine teacher’s education had empowered me with the greatest of nurturing tools at my disposal.

End of First Grading Period: I know I don’t know what I’m doing. My supervisor is on my back and I have no intention of failing. Out to my father’s garage I went (The specifics are for another blog.). A plank from an old bowling ball floor held in a vice and a draw plane in my hand, I forged a paddle much like the baseball bat in “The Natural” sans the burned in lightning bolt.

Day 1 With My New Paddle – Not sure who the first victim was. Somone said/did something and I brought out the paddle. There was shock, awe, and jokes and laughs. The jokes went after I beat the first ass. God only knows the beatings these kids suffered. And there I was dishing more. Someone referred to the paddle as a “fingernail file”. Turns out after a few “filings” that kid ran out of the school the next time his turn was up. The other kids never let him live that down.

The class room impoved. The paddlings were less frequent and probabl during the last grading period they stopped. The school year was coming to and end. One student was able to claim that he was the only one who didn’t cry. I was more impressed by him when on time he very respectfully informed me that it was all right to call him “Son” but not “Boy”. I never did call him boy, and I don’t remember how it came up in conversation. I always respected him for that and thought it showed a lot of maturity.

End of the First School Year – my students seemed to like me. Why? In some ways I became just like their other teachers. I was a horrible teacher (OK, maybe I’m being a little hard on myself.). I always thought that I cared. Maybe they could see that.  Up until now, I never realized that we never had a computer. I wish we did. There were some kids that would have been great at it.

I moved on to teach at my old high school. And never paddled anyone again.

College Course – Intro To Computers

All through college I kept Special Education as my major. I decided to be a coach and to be a coach I had to be a teacher. The best way for me to get a teaching job was to go into Special Education (As much as I would rather had been a gym teacher.). I don’t remember if the Intro To Computers  was part of my major or an elective. It was offered through the Elementary Education Department.
Had a good professor who was pretty interested in computers but not in a techno-geeky way. His passion was probably more for teaching and computers were an interest. He actually tried to teach. There was a concern that the student learned something and were not being put up to a test. I didn’t realize how competitive a real computer class would be like those in the Computer Science Departments. We leanred to operate and evaluate software. The Apple II (With some letter version ‘c’ or ‘e’. I wasn’t much a hardware guy back then either) was the computers of choice for education back in the early 80’s. They came with dual 5.5″ floppy drives. I think I put every file I ever created on one disk.
Some of the educational software had game components that were a reward for doing the lesson. One key point we learned was not to create any visual or auditory reward for getting an answer wrong. We might think that the kids wouldn’t want to see their plan crash due to a failure to calculate a math problem, but if you make the plan crash look too cool, they’ll get the problem wrong on purpose. This is where I also discovered the word processor. I think this device saved my educational career and actually has led to my love of writing.

Directories? On a floppy?

Remember floppies? Not much point in having a lot of directories; just get another floppy (And label it, and put it in one of those boxes…). We don’t bother with that any more. Directories make sense. They even look like little folders. That is today, but back in the ‘DOS Days’ they were pretty mysterious to me.
So how did I learn about them? They’re kind of abstract. Reading about them in a book and not having any use for them, just doesn’t cut it. The motivation is not there and this is too complicated. I never had any formal training on the subject. Then along came John Madden Football for the PC. Yes, it ran on floppies and if you wanted to load different teams or create your own playbooks, you had to know which directory to go to. So that’s what they’re for! Now I need to learn the cd.. , mdir, and embrace the back-slash. That’s the one that gets confused with the forward-slash (Not to be discovered until the internet thanks to those UNIX folks.).
The game had somewhat of a graphical interface to move around and load things. I wanted to copy a playbook and them make changes. This really brought out the coach in me. Each play had it’s own file. I could copy the file and tweek it for another play. No way was I going to build the play from scratch. The programmer/lazy computer user part of me just had to find better/more efficient ways.
Once hard drives became more common, this whole directoy & sub-directory thing made perfect sense to me. After all, I had John Madden Football on floppies.

The Atari 2600

My brother and I get an Atari 2600. I don’t remember if it was for Christmas or not. We got the game much later because Activision was already making games for it. I was surprised at how much more I lked all their sports games. I even wanted to send a best time in downhill skiing by taking a photo of the TV screen. Took the photo, but never sent it in.
I put a lot of time into this thing as I guess all kids do whether or not they turn out to be computer programmers. Many games I just about memorized how to win. With my extremely poor memory skills, I had to play quite a bit. It just seemed like a puzzle to be solved. Other games had computer opponents who were terrible. I mean I could just kick the computer’s ass in boxing. Turns out, I kicked about everyone’s ass I played.
The Decathelon was a game that presented physical factors into playing the game. The 100m dash; keep flipping the joystick back and forth as fast as you can for the 10-15 seconds it took to run the race. 400m Dash – 45-60 seconds. Blisters began to apear the first day. We tried wearing gloves. Vaseline on the joystick (Wow does that sound bad.). Nothing worked. Running the 1600 meters nearly killed you probably how it does most decathelites. Not sure why but I managed to take one of the joysticks apart and noticed some pretty simple connections. What would happend if I could use some other button system to over-ride this? My father, the avid electronic junk collector, had this old desk top calculator. The ones with the roll of paper that people in accounting still use to this day. It had large enough buttons. I cut them off the board. Nice little configuration of two buttons to simulate the back and forth/running with the joystick and another buttton set a little further apart to use for the jumping and throwing actions. I even found a plug and socket with enough connections to detach this when not in use. This came from an old operator switch board they were throwing out at US Steel and my father brought home for the parts (The cabinet became my work bench and one of the hundreds of parts ended up in my Atari joystick.).  Well this think worked. No more blisters. No more pain. I think I broke the world record in every event. Not really fair so the game was no longer a challenge.  
Then there was football. Early on I was not very good at Atari’s crappy version of football, but soon beat those who had more experience. Activision’s football had this idea that you told each player what to do (All 4 of them) instead of calling a set play. It was a lot more like sandlot football. “OK, everybody go deep on one. Horrible kid, you stay in and block.” In our college room, I ruled this game. Finally, one of my friends finally beat me. Everyone was there. It was the Super Bowl of computer football. Could someone “finally” beat Jeff. It happened. My reign of terror was over. I don’t think anyone ever played again. What was the point?

Most Useful Class in High School – Typing

Probably one of the most useful courses I took in high school. As a programmer this is invaluable. Not that you need it to type code as much, but for communication and documentation it’s a must. My only regret is not really learning to touch type numbers. Just didn’t have the motivation at the time. I don’t have any 10-pad skills either. I may have developed this if I studied accounting in college.
Sucky handwriting is another reason. I have nice handwriting when I take my time. It’s just to inefficient. I think my grades suffered in school (Especially in creative writing.) because of my penmenship. 
Manual typewriters solved the handwriting problem. The actual typing was fine, but the editing was horrible. Whiteout. That onion paper stuff that you were suppose to be able to erase on. No way was I going to redo it. And my writing suffered. I had one college professor who suggested I go to the writing lab and get my skills in order. Talk about a shock. The man was basically saying I couldn’t write. For all practical purposes he was right.
During my final paper in college I used an Apple computer at the grade school where I was doing my student teaching. The word processor was called “Bank Street Writer. I would get my thougts down on disk. Go back and edit. Still nothing printed yet. I wrote the paper as I went along instead of wasting an entire weekend trying to crank it out at the last minute.
If you havn’t learned to type, get started. There’s lots of software out there to use for a teaching aid.

A Subtle Hint of Fatherly Advice

Being the youngest child and arriving over 15 years after my parent’s marriage, I was subjected to career advice in a much toned down fashion than my siblings. Growing up in Gary, Indiana during the 70’s meant you saw the steel mills die a slow death. There was no hope of ever getting a job at the company that hired three generations of my family.

I have a positive look on this misfortune because it forced me to go to college and eventually get out (I did teach there for 3 years after college.). I really enjoyed playing high school football. I was intrigued by the strategy of the game. I often referred to it as Violent Chess. I had a brother-in-law who encouraged my brother and I to choose special education as our major since we both wanted to be teachers anyway, might as well pick an area where it would be easy for a male to get a job.

I don’t even remember when it happed. It was really unexpected. My dad just blurted out, “If I was a young man today, I think I’d look into computers.” Or something to that effect. My mind was set on coaching and teaching. I didn’t think it was a bad idea. It just wasn’t for me. I have no idea how I would know whether I would like it or not since I had no clue what it meant to work with computers. Maybe it was the idea of a desk job just sitting there doing the computer thing that turned off a 17 year old boy who had a small amount of athletic success. He didn’t have any comeback to my rejection. I guess he felt it was his duty to at least say something.

Well here I am. It took me 9 years after college to get into the computer thing. I guess father knew best.

Meeting My First Hacker

It must have been my sophomore year of high school. Possibly freshman – doesn’t matter. My math class gets invited to see some sort of demonstration by the computer class. I guess they were promoting/recruiting. The teacher (One of many in my educational career who was in their last year of teaching before retirement.) gave some pitch about computers which had no impact on me.

There was one student in the class that was an aspiring hacker. Smart, really smart. Pale skin. Hair: long, a little messy and on the greasy side. In their demonstration code, he managed to slip in a line that made the computer “ding” eight times. Not necessarily computer genius by today’s standards, but it was the fact that he put it in there without the teaching knowing. She didn’t punish him, but let it be known that she was not aware of this. The little imp! Here was a kid who made an effort to learn something and had the balls to put it out to the public and say, “Look what I can do.”

That wasn’t me, but it in a way it was. That’s something I would do. If I either stumbled on something in my studies or was directly looking for a way to do something, I would look for a way to be able to make that statement, “Look what I can do.” That never happened because, I did not take the accelerated math.  Didn’t take math my senior year. Avoided taking physics because I was certain the teacher was a homosexual. Many issues in a series of choices to underachieve. In time, I came around.