How do I get into programming?

May 5th, 2021

With this pandemic causing so many problems, should I switch to a programming position? In today's post, we review a friendly discussion I had and offer some tips for learning how to program.

As the pandemic continues, there is definitely a shortage of jobs. With India becoming the number one country with the largest number of COVID-19 cases, performing remote work is taking center stage. 

Last week, I had someone reach out to me and ask if it would help if he changed his career to an IT background.

Sir, I am a Geologist but due to this pandemic, there is a lot of shrinkage of jobs. So I want to know that if I change my field and get a programming diploma/course, will it be helpful?

After talking through this and giving my initial thoughts on the topic, I took a step back and felt this was meant to be a greater discussion with the community of how someone could break into programming.

Hence, today's post. :-)

How to Approach Programming

As I look back when I first started writing code on a Commodore VIC-20, my initial emotions were curiosity, excitement, and creativity.

While these emotions may not encapsulate your feelings when you first get into programming — which I'll add frustration to the list — your list should be similar to mine and encourage you to examine why you are looking at getting into programming.

Of course, there is always the overall reason of learning how to program: necessity.

When the industry isn't cooperating with your career decision (i.e. this pandemic), it may be time to look at other options.

EVERYONE Uses a Computer

Back in the 80's, I would always mention to my friends from high school: "I don't care if you were a ballerina, you NEED to know how to use a computer."

Now?

I have no friends (kidding).

Now, EVERYONE uses a computer. Don't agree?

What's that in your pocket? Your smartphone and, yes, it's a computer.

Now my mantra has lately become "I don't care if you're a ballerina, you NEED to know how to program." Over the years, I found others who felt the same way as I did like Marc Andreessen in his post titled "Jobs fight: Haves vs. the Have-Nots."

In his post, he mentions 

"The spread of computers and the Internet will put jobs in two categories," Andreessen says. "People who tell computers what to do, and people who are told by computers what to do."

This is from September, 2012.

While I'm not suggesting everyone go out and learn how to build a Microsoft Word, at least start with HTML, then CSS, then JavaScript. These are the basic building blocks for the web and what I consider the Trinity of the Web.

Start with HTML. It's the simplest to learn, but hard to master.

Then CSS.

Then JavaScript. Since JavaScript is considered a client-side and server-side language, mastering this one will put you on the fast track to a programming career. It's also the hardest to master as well. 

Leverage, Not Replace

Let's examine my friend's message again.

One of his comments is wanting to "change" his career.

For those who know me, I've always said always know at least two skills in your career.

What this means for you is that it makes you more marketable and sought after. It doesn't matter what industry you're in, you can leverage your geology skills with your fresh computer skills.

I don't know of many geologists who program, but building a website (or application) specifically for geologists would be a great opportunity in their industry.

This also doesn't mean you have to become an absolute expert in writing code, but at least have an understanding of how code works and what's possible.

How Do I Start Programming?

We continued our discussion by mentioning a number of posts I wrote in the past to help him out, but I wanted to provide a step-by-step of someone who wants to approach programming with fresh eyes.

1. Determine Which Field Excites You

While this post focuses on Microsoft technologies, it can easily be adapted to other technologies.

Are you looking to create websites and don't care what happens behind the scenes on servers? Then you are looking to become a Front-end designer.

Want to optimize databases? Look to a Database Administrator (DBA).

Create a full-blown website and want to know how it works? Full-Stack Developer.

Trust me. There are a number of other titles for almost the same thing. Each company has their own definition of architects, developers, and designers.

References:

2. Finding a Language

We continued our discussion on LinkedIn with him asking

Which languages are popular and in demand?

This is extremely important since picking a language determines whether or not you'll be effective as a developer in a company to gain more experience.

While I won't say "<blah> is the best programming language out there," I will put on my consulting hat and give the proverbial "it depends."

My response to him was to find a language you felt comfortable using and could build and complete something relatively quickly AND is in-demand. 

References:

3. Learn To Learn

The next topic we got into was going to a college for a computer degree.

He mentioned he inquired to some colleges and they now require you to have a background in computers before you can attend.

At this stage of the game, colleges need to rethink their strategy.

Case in point: Google is now offering a Google Career Certification to get you started in an IT career and this approach could disrupt colleges.

There is also Pluralsight, Udemy.com, Linda.com, Coursera, and a ton of other training sites to get you into an entry-level, if not intermediate-level, opportunities.

However, once you have the skills, you should always be "sharpening the saw" and always improving your skills further.

Basically, become a life-learner. Always be learning.

References:

4. Create a Basic Project For You

At this point, we ended our conversation, but I want to continue with some career experience advice.

You may be thinking "why would I create a project at this point? I need to find a job."

While this is true, learning a language is one thing, but understanding the tools involved in creating a project is another.

This gives you a two-pronged approach:

Back in the 90's, I created a simple website with the ability to modify the content so I didn't need to upload changes all the time.

This has morphed into my CMS that I use to this day (yes, you're on it). It went from numerous language updates over the years and is currently being updated again.

There is nothing like creating a project built out of necessity (or curiosity) and claiming it as yours.

The benefit of this is when you experience a related concept or technique, you can experiment on your project.

If it doesn't work, revert the changes. If it does work, commit!

Either way, you gain experience from the experiment and it helps you grow.

5. Examine the Remote Work Landscape

Again, with the pandemic, remote jobs are slowly becoming the new "normal" since this proves IT workers can work from anywhere so long as they have a laptop and a WiFi connection. 

Job sites are pivoting to building "Remote Jobs" sections while niche-specific sites focus only on remote jobs continue to flourish.

Browse the listings from these sites. Find an opportunity that fits your qualifications. If you find a skill in the listing that you don't know and it interests you, head over to a training site and learn it. Congratulations! You know have beginner skills.

This also allows you to see what the market is interested in and how you can fine-tune your skills to match what the market it looking for.

References:

6. Keep Up With Trends

Of course, you don't want to fall behind, but this is why they call it work. ;-)

Keeping up on trends can be as exhausting as much as a fulltime position.

When I was out of work for six months when the Internet bubble burst, I had a hard time pivoting into something new because I thought both skills would at least find a position SOMEWHERE.

If you are someone who's always "heads down" and working, sometimes it's good to take a step back and see what's happening in the world so you're skills (and you) don't get left behind.

References:

Conclusion

I wanted to capture everything I could from our discussion into this post to help beginners start a career in coding.

If you already have a non-IT skill, the key take-away from this is to leverage, not replace your existing skillset since the world now runs on technology, no matter what your career is.

To my friends from high school...I told you so. ;-)

What advice would you give someone interested in learning how to write code? Did I miss something? Post your comments below and let's discuss.