There’s never been a better time to be a programmer.
Technology isn’t slowing down. Neither will the demand for innovative solutions to solve new challenges or take advantage of new opportunities. The key differentiation in the marketplace is often the one with the better technology. And companies are willing to pay big bucks for it.
Not only are there new challenges and opportunities, but there are also better systems today to support programmers. Languages, code editors, libraries, automation tools, platforms, and services are all continuing to evolve and improve.
I have to admit I am a little jealous of people who are getting into programming today. Sure, there will be challenges and frustrations, but newcomers to programming may never know the struggles and pain some of us have endured a decade ago. Or, just a few years ago.
Oh, and learning? You can choose from books, blogs, social media, real-time chat, on-demand video training, free meetups, and insanely inexpensive conferences. It’s almost criminal more people don’t take advantage of the learning opportunities available!
There’s never been a better time to become a programmer.
Why am I a Programmer?
I’ve been a software developer for more than 20 years. Here’s the short list of why I love programming and will continue doing it:
- I love learning. There’s never a shortage of new technologies to learn or ways to improve my skills.
- I love challenges. There are always new problems to solve.
- I love getting creative. There are infinite ways to compose software and solve problems.
- I love sharing. There are numerous ways to get involved in the developer community to benefit others, and yourself in the process.
BONUS: Watch Jeff Atwood’s keynote from Iterate 2018 on the human side of being a programmer!
Get Your Playground Ready
Create and Modify Code with a Good Editor
On macOS or Linux, I recommend you first install nvm and use
nvm to install Node.js. On Windows, I recommend you use Chocolatey.
npm installto install packages,
npm initto create a
package.jsonfile for a project,
npm runto run scripts defined in a
Manage Software Projects with Git
Think of writing code as playing a video game with checkpoints. At certain times in the game, a checkpoint saves your spot in case something bad happens. Using a version control system like
git gives you the ability to save the current state of the software you are writing. If you end up going down the wrong path, you can always revert back to a saved checkpoint.
git will not only help you protect your own code but enable you to interact with other software projects. Most open-source projects and many organizations today use
git to manage source code and host their projects on services like GitHub or BitBucket.
eslint-config to find an appropriate set of rules to add to your projects. My personal favorite is
Software developers spend a lot of time reading and understanding code. For this reason, programmers can be very opinionated about how code should look. For example, where to place braces around blocks of code, how to indent blocks of code, and the use of spaces around words and special characters.
Prettier is a utility that modifies code based on style “rules.” These rules are designed to make your code more consistent and readable (for humans).
prettier can automatically format your code to conform to a standard style. You will learn how to write better-looking code, and anyone who reads your code will be grateful you did.
I hear you saying, “ENOUGH with the words already! Just tell me where I can go to get started!”
Here are a few resources I personally trust to help you get started. Most of these are free. Good video training is usually not free, but there’s a lot of value for not a whole lot of money.
- You Don’t Know JS: ES6 & Beyond by Kyle Simpson
Tutorials and Community Sites
- Build a Basic App with Vue and Node.js
Frontend, Backend… Which End Do I Choose?
My two personal favorites are React and Vue. React is arguably the most popular and valuable front-end skill to have right now. However, I think Vue is easier to learn and use, and continues to gain momentum in the developer community.
If you are interested in creating software that serves (or hosts) web applications, you may want to learn more about “back-end” programming. This includes Node.js and frameworks built for Node.js. Express is the most popular framework. FeathersJS is a new framework that is rising in popularity. My favorite Node framework is hapi.
Electron is a great way to build cross-platform desktop applications that can run on Windows, macOS, and Linux. Visual Studio Code is one example of an Electron application. Watch one of my introduction to Electron talks to learn more about what you can do!
React, mentioned previously under “Front-end” technologies. So, by learning
React, you can apply your knowledge to both front-end and mobile applications.
Want to program robots, control lights, or create cool gadgets? Check out Johnny-Five, Cylon.js, or Node-RED.
Command-Line Interface (CLI) Utilities
Want to create CLI tools to run in the terminal or command prompt for yourself or other tech-savvy pros? Look to Node.js with a good command-line module like yargs. I’ve built lots of CLI tools to automate tasks and deliver custom solutions to my colleagues and customers using
yargs and nexe to compile a CLI script into a stand-alone executable.
ES5 and ES6 are the names of specific versions of ECMAScript. When ES6 was released in the year 2015, Ecma International decided to rename ES6 to ES2015, and for all future versions of ECMAScript to be versioned according to the year of its release. Not confusing at all, right?! So far, ES2016, ES2017, and ES2018 have been released. “ES.Next” has become a popular term used to refer to the next version of ECMAScript under development.
In 2019, Focus on ES2015 and Beyond
- Arrow functions
- Asynchronous functions using
- Declaring variables with
As I mentioned before, one of the reasons I love being a programmer is the supportive community. There are amazing people out there who believe in sharing their knowledge and experience with others by:
- Answering questions on forums or social media,
- Creating and maintaining open-source projects,
- Writing articles, tutorials, and books,
- Recording videos,
- Speaking at meetups and conferences,
- And the list goes on and on!
- @reverentgeek <– That’s me!
A Note on Impostor Syndrome
There are a lot of smart and experienced people out there doing amazing things with software. It’s natural to feel intimidated. It’s hard to ask for help or share your experience when it seems like what you’re doing is basic or insignificant compared to others.
Here’s the secret. Everyone experiences impostor syndrome.
For those of us who really care about programming and the community, we get it! Learning new things is critically important to survive as a programmer. We are all a beginner at something. The community by and large are understanding, gracious, forgiving, and have loads of patience for newcomers. Making mistakes is one of the best ways to learn!
Believe it or not, if you choose to invest in becoming a programmer, you’ll soon have the opportunity where you can choose to help others who are new to things you know!
Get Out There and Be Awesome!
Learn More About Security and User Management
Take the worry out of managing your application’s user logins and accounts! Check out some of our amazing content:
- What the Heck is OAuth?
- Add Authentication to Any Web Page in 10 Minutes
- Use TypeScript to Build a Node API with Express
- Simple Node Authentication
Follow us for more great content and updates from our team! You can find us on Twitter, Facebook, and LinkedIn. Questions? Hit us up in the comments below.
Okta Developer Blog Comment Policy
We welcome relevant and respectful comments. Off-topic comments may be removed.