Long ago (in 1983) I stood in front of this huge line printer (shown below) outside the closed door at the end of a hallway in my high school. It was Career Day and I’d selected Data Processing (Computer Programming) as a career I wanted to know more about.
Before we stood in front of that printer at the end of the hallway, we had all sat in a classroom and listened to a teacher who explained what Data Processing was. As the teacher blathered on and waved his hands, it was completely obvious to all of us that he had no clue what Data Processing was.
The one thing the teacher was stuck on though, was the connection between Math and Computers.
“You have to be very strong in math to do a career in Data Processing,” the teacher said. “If you are not good at math then you have no chance with computers.”
I slumped down in my chair. I already knew I was terrible at math. “They” had told me.
At the end of the 30-minute lecture, the teacher walked us over to the high school’s Data Processing room. Finally, I would see people sitting at computers and actually doing programming. I’d get a glimpse of their computer monitors and see what a Programmer actually does. No.
As we stood in front of the huge printer the teacher said, “The programmers put this printer out here so they don’t have to hear it all day. It’s loud.”
Someone in the group pointed at the closed door and asked, “Well, can we go in and see what they do?”
The teacher shook his head and said, “Well, we can’t bother the Computer Department so we can’t go in. They need a lot of quiet to do their work. But here is the printer that they use.”
So that was it. I looked at the giant printer for a moment longer and frowned.
As I stared at the giant silent monster (it wasn’t even printing at the time, so boring) I thought, “Ugh! Well, this kills the idea of Computer Programming for me. I’m bad at math and Data Processing seems totally boring.”
Here in 2023, I have worked in IT (Information Technology) for 32 years (still working) and I’ve been a Software Developer since 1999 (over 23 years). I’ve stayed employed continuously in IT since 1991. It’s kind of a big deal because I’ve been able to support my family with something that the high school teacher assured me I’d never be able to have success in.
That teacher so long ago was off base about math being so important. Math can be helpful in becoming a programmer. But, it isn’t absolutely necessary. It’s too bad he didn’t know what a person really needs to be a good (or great Software Developer).
I gave up on the idea of ever becoming a Computer Programmer but I started to play with computers.
Coleco Adam
My first computer was a Coleco Adam (wikipedia) which I got in 1984. The Coleco Adam was built by the same company that created the Colecovision game system (used the same cartridges for games). The Adam had a built-in Word Processor and a BASIC programming language that you could load from a high-speed cassette.
Image By Andrew Lih.
Tried BASIC Programming
I would faithfully type in programs from listings in Family Computing magazine but invariably I would type something wrong or there would be something printed wrong in the magazine and the programs never worked.
This seemed to confirm what the teacher had told me, “You’ll never be a computer programmer because you don’t know math.”
Amazingly enough, one of the original programs I tried to type in has actually been archived by Archive.org at the following link (this is the actual Family Computing magazine I read back in 1984).
Here’s a snapshot of the code that I actually tried to type in:
TRS-80 - Tandy Radio Shack model 80
Then the next year (1985) I took a programming class in my senior year of high school and learned some BASIC on the TRS-80. I remember copying some other students’ code for the final project so I’m not sure I learned or understood much.
1986 Commodore 128
Finally, in 1986, I bought a Commodore 128 at a local department store and I started playing games on it. I had to learn how to load games and back then you had to read manuals to learn things.
But along the way, the thing that happened is that I noticed that I started having a really good memory for all the commands I was using. I was just having fun and playing games so I didn’t think much of it.
As I continued to play with computers I began gaining a much better understanding and began to feel comfortable with them. I wasn’t thinking about what the teacher had said and I wasn’t worrying about my lack of math skills. I was learning but I didn’t even really know it.
Then around 1989 or so, after trying various college courses and having no real success I finally took a few computer classes and noticed that the things I was learning were making sense.
But I also needed to make some income so I took a job in the Community College’s Computer Lab and I started helping people who didn’t know how to get a word processor started or how to save their files to a floppy disk.
Two Years of Community College Was Enough
I took two classes on COBOL (Common Business Oriented Language) and it was meh! Really boring. I was about to graduate with an Associate degree in Applied Science Computer Info Systems but I was burned out so I stopped before finishing just three classes.
I still haven’t finished the three classes:
I went to work for a local computer shop. We built and sold IBM-compatible PCs (386s & 468 Intel processors were out and they were running Windows 3.0).
In 1992 I took a job doing technical support for a specific software package at a large Corporation. That was the real start of my career because something happened. I noticed that all my skills came together. I also started concentrating on writing little programs that would run on Windows. I began learning C++ Programming.
Stopped Thinking About Math Requirement, Started Writing Software
So, instead of worrying about what that teacher had said in the past, I began focusing on producing something. I worked on things that I enjoyed and again it was like “playing”.
My job required that I understood how to get people set up on DOS (configuring himem.sys in the config.sys file) so I was learning how PCs worked along the way.
Of course, all along the way, there were gatekeepers. As I began writing programs, the developers I worked along side would often make fun of my lack of knowledge and poke holes the programs I wrote, reminding me that I had much to learn and that it would be unlikely that I would ever be a Programmer.
It may sound like I’m whining or opining about a sad difficult life, but I’m not.
Or, it may sound like I’m bragging about what I’ve done. It’s really not that. It’s actually that I’m amazed that even though I had zero skills I have been able to build a career in Computing.
I’m attempting to reveal three things in the article:
However, I’ve noticed that there are a couple of things that will help you succeed along the way.
The first one cannot be given to you by any person or University. But it doesn’t mean you don’t have it.
Fortunately, as I crawled my way into (and through) the IT World, I stumbled upon things that helped me the most.
If You’re Starting Out & Feeling Discouraged
Maybe I can reveal a few of these things and they’ll help you continue on your path if you are starting out and feel discouraged.
What I’ve Learned About Software Development & Learning
Over the years I discovered a few things that have helped me stay in the IT World (without burning out). These things have helped me move forward even though I have very little formal training (no University degree).
The first thing you need to know is:
Learning anything is difficult and learning a programming language or technology can be extremely difficult. Learning new technologies and languages can make you feel overwhelmed and powerless at the end of each day. You may feel like you never have success as you struggle with getting a program or functionality working. But, the important thing to ask yourself is, “Do I really like to do this? Do I really like the challenge of figuring things out?”
If you honestly do, then even if you’re stuck and feel like you’ll never understand it, then you’ll get through.
Please understand that I’m not saying that you have to be head over heels in love with everything you do. There are programming languages I’ve had to use in the past that I loathe (PERL, hate it!). There are ways to get through the parts you don’t like.
Sometimes when we are overwhelmed by technology (or anything that we don’t understand) it is actually because the technology makes us feel stupid.
Normal people don’t say what I just said out loud so let me say it again.
Technology often makes us feel stupid. We begin to question ourselves, our knowledge, and even our lives. “What is wrong with me? Why can’t I understand this? I must be stupid.”
I’ve Lived Most Of My IT Life Feeling Stupid
The IT Industry is constantly changing and so at times we are all thrown into situations where we don’t have knowledge of the things we are working with. This is a lack of knowledge.
Lack of Knowledge Feels Like a Weakness
This feels like a weakness. We are working from an unknown place in an unknown technology and it’s hard to get our feet under ourselves. The IT Industry shifts so often and so quickly that we are often working from a place of weakness.
Understand That Many People Feel This Way (But Won’t Voice It)
Many people in the IT Industry feel this way but they will not say it out loud, because they feel like exposing this apparent weakness could cause them to lose their reputation or even their job.
You have to give yourself the freedom of not knowing things while still feeling like a valid person. You do not have to know everything and knowing everything is impossible anyways.
All this learning can become extremely overwhelming and drive us into feeling terribly weak. The weakness often turns into malaise as you become bored with the subject. Your brain rebels and says, “We don’t need to learn this garbage. I don’t even like learning this stuff.”
All you have to do in that moment is:
If you’ll concentrate on building the thing that you want then you’ll get some energy and it’ll carry you through the difficult parts.
If you can’t quite build the thing you want, then find an example that does something close and get it working and concentrate on changing that example into what you want.
You’ve got to do your own thing so you feel empowered by controlling your own destiny.
Instead of concentrating on only what you’re learning (which is often quite boring) switch your concentration to how you’ll use the technology to get what you want. It’ll energize you and you’ll break out of the Tutorial Malaise.
If you’re feeling overwhelmed and feeling like quitting:
I release all my software to Open Source and you can check out all my projects at my GitHub.
You can check out the source, pull it down and make alterations.
Link to app => https://cyapass.com/js/cya.htm
Link to source code (ElectronJS runs natively on (Linux, Mac, Windows) => https://github.com/raddevus/CYaPass-Electron
See the app in the Windows Store: https://apps.microsoft.com/store/detail/cyapass/9PFD82D1Z7RW?hl=en-us&gl=us
See the app in the Snap IO store (for Linux distros) : https://snapcraft.io/cyapass
Read in-depth article about how it works at linkedIn (Destroy All Passwords: Never Memorize A Password Again)