How do I get into programming?
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.
- Curiosity - I wanted to know what this was new machine could do and how to "talk" to it.
- Creativity - You could create something from absolutely nothing using a language. Your imagination was the only limiting factor here.
- Excitement - When you finished coding your first program or finding out how to achieve something in code, you felt a rush of emotions and considered yourself the greatest programmer in the world.
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."
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.
Start with HTML. It's the simplest to learn, but hard to master.
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.
- Software Architect: What It Means
- Which Microsoft Technology Should I Use?
- How Do I Get Started As A Microsoft Developer?
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.
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.
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.
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:
- If you are just getting started, there are basic tools to build code and then there's an industry's way of writing code.
- You have something to experiment on that is your project.
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.
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.
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.