The road to making software
When I first started making things in code, I was 12 years old. I had a terrible 56k modem connection that I used to read tutorials online and implement them using notes on windows, among other terrible means of writing programs. This story is about how I became a software engineer.
As with most of the things I write, they tend to be cathartic exercises for me. But I hope you get something out of this, as I think it actually can lead to a “level up” of sorts.
When I was 12, my mom decided that we were going to move to Oregon from San Diego, CA. Her reasoning, as far as I know, was “I hate San Diego”. Looking back now, that statement is absolutely insane, but I digress.
My mom was a country girl. She liked horses, rugged men, and trucks. She was happiest when she was riding a 1 ton animal with enough kicking strength to kill you in a single blow. San Diego with its endless beaches and scandalous women was not her pace. She wanted the outdoor life for herself and me. So after I finished the 5th grade, she moved us to Oregon.
We initially moved to Eugene, OR. The house we moved into was actually… hilarious. Looking back it was so comedic I can’t help but smile and laugh. It was a big house with a 100 foot long driveway, front yard, back yard. The works. The caveat? The landlord ran a hair salon in our garage. It wasn’t uncommon for me to take out the trash and interrupt a hair salon chat that was going on. It smelled like a chemical plant, so bad that I would be scared to light a match thinking that the whole place might explode.
After living in Eugene and realizing that the job market in Eugene was absolutely terrible, my mom accepted a job in Lincoln City managing a casinos restaurant. Life there was great actually. We had a nice apartment on the shore of devils lake, I enjoyed school (first time ever), and I more or less felt like a kid.
Lincoln city was also special in the way that it was the place that I typed into Google (yes I’m young): “How to make a website”. Ultimately leading to where I am today in my career.
Google, never disappointing, responded with http://davesite.com/. My favorite part about this website is that it’s still exactly the same as it was when I was 12 years old. It still has the classic word art logo, old school tutorial layout, it’s in my opinion, perfect. It did exactly what it promised and nothing more.
This was a big deal for me. I was learning how to create something that required almost no capital. I didn’t have money to buy legos, knex, or any other “create something” toy. My make something toy was HTML. And I loved it.
“How do I get a user to login”
This question was terrible looking back. Login using what? Cookies? Devise? JWT tokens, what about session signing? I can sling these phrases now, but as a 12 year old that had to call his mom while she was at work to use the dial up, this was a fucking hard question.
I quickly found about the then popular server side language, PHP. I learned how to install it on my local machine and program small little websites around it. I then found out how to game the system for “free website hosting” on PHP servers, but the statute of limitations hasn’t run out on that yet 😏 ( I think, why risk it ).
All in all, I started making dynamic websites. However, I made dynamic websites that implemented a learning technique that I wasn’t aware of at the time. The “You don’t know anything until you try to teach it.” saying. Holy sweet jesus what a true phrase.
You see, my website at the time was a tutorial website. I populated the content of my website by reading other people’s tutorials, trying them out, and then ultimately writing my own version of the tutorial and publishing it on a (held together with glue and hopes and dreams) website that I had made called “Forged Tutorials”. But what I didn’t realize I was doing was cementing everything I was doing. I would do the tutorial, write about it, and publish it. I was teaching myself how to program by sharing knowledge. I remember almost everything from these days.
Forged Tutorials was my baby. I had several tutorials posted on it, and even got to the point where others could create an account and post tutorials on it and get statistics on their tutorials. It was, for a 2004 13 year old me, a piece of art.
My favorite part of my endeavour to be an engineer, is that it’s actually fairly well documented. I used to answer and ask questions on a forum on tutorialized.com. And they still have my posts. Tutorialized has hundreds of thousands of forum users now. My sequentially updating user ID? 75. Here it is: http://forums.tutorialized.com/member.php?u=75
I love this so much because it has posts that I asked and looking back I say “Good lord, what a silly question”. But the important thing to remember is as an aspiring expert is that “this person is attempting to be better, and the that is better than most of the world, so therefore I cannot discount any question they ask.”. You want an example? Here is a question I asked about 11 years ago: http://forums.tutorialized.com/c-and-cpp-116/password-protection-question-3876.html
On the last page, I respond to myself on the same account, about 10 years in distance from the first post to the reply. Right now, I can answer that question in my head in less than a second. But the 13 year old version of me didn’t know up from down, right from wrong, security from obscurity. But 13 year old me asked and made myself vulnerable.
The only way from here was up. I graduated high school and my first job was at a consultancy in San Diego called Comentum. They, for whatever reason, thought I was a good hire. My very first job was making websites. How cool is that? I got my dream job in my first interview ever. I often attribute my success to my luck in shaking the right hands, smiling at the right time, and skipping high school homework to make websites. In all 4 years, my only A+ in high school was when I presented an ecommerce website I made in my economics class. The assignment was to make a fake company and present the economics of it. I went up in my 1 person group ( I didn’t like group assignments )., and showed real software that I had made. It was the only A+ I ever got in high school.
Working at Comentum gave me a harsh reality: I didn’t know shit. But there’s very few industries where that is awesome. They allowed me to learn, become better by the day, and be a contributing member of the team. Comentum is a massive reason why I am where I am today. One of the coolest things about software is that it’s not like other engineering jobs. If a building architect screws a support column up by a foot, you have to find a work around. With software, it’s possible to move that column back to where it should be, assuming you have the proper deploying mechanism.
So if you’re getting started, brace yourself. Software is constantly invalidating itself. Which is great if you like never being perfect. Software is the challenge that never ends.
I don’t have a solution for becoming an engineer. I can only share the experiences that worked for me. But it really boils down to:
- Make things. All. The. Fucking. Time. Who cares if people use it? Who cares if it’s your best work? Just make it. It’s not for others, it’s for you.
- Ask more questions. Somewhere in the last few years we stopped asking questions on forums / chat. It’s somehow beneath us. People love showing you their smarts, take advantage of that.
- I can’t stress this one enough, but have fun. The moment software isn’t fun for you anymore when it used to be, take a break. Go somewhere else, go fishing, travel, anything. Take a break. If your company gives you flack, Namely is hiring. Come work with me.
As a closing note, if you’re reading this as a beginner, curious entrepreneur, or CEO, treat software like a well crafted table. The people making software went through more than they can properly explain to get to where they are. Believe in your peers and always offer a helping hand. Our industry is too young to be “too good for you”. We’re all in this together.
Thanks for reading. Now go make cool shit.