Learn programming

This page is a work in progress- please understand that it's not done yet and contact me if you have ideas on what can be better

I love programming and want to share it with as many people as possible. When I was a kid, I had no idea what I wanted to do "when I grow up". Writing code was something that started off as a hobby and ended up being what I got into professionally.

Why?

It's never too early (or too late) to get into programming. Writing code isn't "for nerds"- it's something anybody can learn to do.

Have fun and meet great people

Going in to work each day at my current job is rewarding and I truly enjoy the time I spend with my co-workers. We work hard and take care of business, but we have a good time while we do it.
Companies will regularly reward employees with team building experiences where you get to enjoy a half day of work, a top notch lunch at a steakhouse or somewhere else fancy, and then an
activity together.

One of my favorite things about working with really smart people is that you always will be learning new things. Learning doesn't stop in school- it's a lifelong process. I know I'm pretty good
at what I do, but I regularly meet people who are better than me in different areas and this is a great chance for me to learn. I've learned a lot about technologies I haven't used before and
gotten mentoring from people that are industry experts. I've also been lucky enough to share what I know and see people grow and become better.

Sometimes just learning the technology isn't enough. I've learned about different cultures and languages. I've gotten to see things from other people's perspective, which helps me start to
understand how and why people feel a certain way. I've learned how to listen to people and understand their concerns, how to become a great team member, and also how to confront someone
constructively when an issue does come up.

Great pay and benefits

Besides having a good time, being a software engineer has great pay and benefits. You'll easily have enough money to get a nice car and a house.
Having medical insurance is one that is super important. As you get older, you'll eventually get sick and if you don't have insurance, you'll get stuck with a pile of bills that can ruin your life.

My experience: Sharing the first 10 years of my reported income

This is info that people usually won't share; talking about pay can be taboo. However, I think it's extremely important to share a real world example for folks curious about the industry.
When you view the table below, please remember that I graduated from college in May 2003 and got my first job in September 2003.

YearAgeJobReported annual earnings
199716Factory worker (part time, Comtec Polymers)$2,000
199817"$3,000
199918"$1,900
200019"$4,800
200120Student (unemployed)$0
200221"$0
200322Entry level programmer (part time)$8,000
200423Entry level programmer (full time)$33,000
200524Took part in a start-up$67,000
200625Software Engineer (Intel)$72,000
200726"$84,000

Flexible schedule, no physical work required

This can be a huge one, especially if you have any health conditions.
99% of the time, you'll be sitting down in a chair when you work. Since there is great collaboration software available (Skype, etc), working remotely or even at home is something people do.
When you work in this field, unless you're doing consulting, you aren't working for an hourly wage. If you need to take a doctor appointment, no big deal- take care of that and make it up later.
The most important thing is getting the job done, not the number of hours that takes.

My experience: What sold me about no physical work

When I was in highschool, I worked during the summer at my dad's plastics factory. It was pretty demanding;
I'd be on my feet all day, working until I'm completely physically drained. I'd be bagging thousands of pounds of plastic pellets into 50 pound bags,
stacking them up nice and neat on a pallet (used for shipping them). After we finished a run of plastic, I'd have to jump into the hoppers
used to dry the material and clean them really well. The worst thing I remember was getting fiberglass stuck under my skin.
The fiberglass is used in the Nylon 6/66 plastics to increase the strength and other properties.
I could gently use one hand and go over my other arm and it would make a scratching noise, because my arms are full of small, almost invisible, pieces of fiberglass. It would take days for the pieces to work themselves out.
I'd also work with chemicals used for coloring ABS plastic. If I wasn't careful and spilled the chemicals on myself, they were so strong that my skin would be stained for several days.
I was doing all of this for $8 - 12 / hour back in 1998, 1999, and 2000. This works out to be roughly $16k - $25k a year.

Even though I was in good physical shape and was able to do the job (once I got settled in), it was still physically demanding. What's even scarier was that I worked with a few folks that were in their mid or late 50's. These people were doing the same physical job that I (a teenager) was doing. Would I be able to do this same job, 40 years from now? What happens if you break your leg and weren't able to do the job for a while, would you get fired? Even if you're in great shape now, it's going to be really hard to do manual labor for your entire life.

Solve problems that matter to you

You have a chance to make a difference in the world. People rely on technologies and services like email, Skype, and Facebook to keep in touch with their friends and family. Software is an important part of how people do business in this day and age- whether it's accounting software like TurboTax, apps for your iPhone or Android, like Uber. You have a chance to not only make a difference and have a positive impact to a large number of people's lives, but you also have an opportunity to be the one coming up with the new ideas and technologies that will take our society to the next level.

You can always start your own company too- Once you have a solid idea, you can put together a business plan and look at securing funding. When you start and own your own company, you can decide what hours you work, what your employees work on, and focusing on making a big difference in the world. Who knows? Maybe I'll be reading about you in Forbes Magazine, with you being alongside Mark Zuckerberg and Bill Gates.

How do I get started?

Start off with web development

Web development is a great way to start because it's really easy to get started. Any computer you use is going to have a web browser (Safari, Chrome, Edge/IE, Firefox, etc). To get started, you just open a text editor and start typing. You can use a very basic text editor, like Notepad... or you can use a more advanced one, like Sublime Text, Visual Studio Code, or vim.

Here's the bare-bones skeleton for any web page.

<html>
  <head>
  <title>Title goes here</title>
  </head>
  <body>
  Content goes here
  </body>
  </html>

Start making your different pages

If you get stuck, the great thing you can do? Right click > Inspect (or View Source). You can view the HTML, CSS, and JavaScript for any web page to get ideas. While you're getting started, you can just test your web page on your home computer. Drag the html document into any browser and it should load right up.

Get a domain name, a hosting account, and share your site!

Having a domain name gives folks an easy way to remember your website. Once you purchase one, you just need to "point it" at your hosting account.

Hosting is where your web pages will be stored. Basically, it's just someone else's computer which has internet access. If you don't fully understand what hosting is, please take a minute to check out this article I wrote to find out more (and feel free to ask questions in the comments)

April 15th, 2016 - An introduction to hosting

If you're wanting to try out a hosting account so you can experiment and learn more about web development and you can't justify buying one yet, please contact me and I'll help get you set up with one for free while you learn.

Become an open source enthusiast

Sign up on GitHub

GitHub is a great place to store code for your personal projects. Anyone can see it on the internet, which means you download it from anywhere and you can share the code with friends (Twitter, etc). Since it is publicly available, someone might discover your project and start submit a patch with changes.

My experience: Helping someone with a game

Here's an example- DragonWarriorJS. Dragon Warrior was an old Nintendo game I really enjoyed as a kid and this person was re-making it for the web browser. I found this project on GitHub, found things that were missing, and just started contributing. I was able to add a lot to the game and I submitted my changes to the original author for Christmas in 2014 (which took him by surprise!). Here's a link to the game if you wanted to check it out.

Are web pages boring? Consider getting into game programming

Grab a copy of Visual Studio Community

Visual Studio is a complete programming environment available to everyone for free. You can download it here.

Check out MonoGame or Unity

Check out Steam Greenlight

Once you have something up and running, you can consider targetting Steam's Greenlight.

My experience: Releasing Magicians and Looters

More info soon- in the meantime, check the game out at mal-game.com

Keep on learning

Learn more about the web

Learn about business

Once you get started and have a grasp of programming, it opens all kinds of doors. Learning business skills can enable you to start your own business, become a successful program manager or product owner, or a salesperson.

Help!

You are always welcome to write me a message or (hit me up on Twitter). I can't promise that I'll help, but I can promise to listen.

Having someone to talk to can really help, especially when you're first getting started. You might also check out these resources:

Meetups

Meetups are a great way to meet folks with the same interests as you. You can share what you know and learn a lot from the other people attending. Here are some meetups local to me, here in the Phoenix AZ area:

IRC

...