cover image for Start Programming

Start Programming



After my class the other day, I realized that many beginners get overwhelmed with the environment setup and the variety of choices available. I'd like to share some resources with you, and my thoughts on what you should use based on your situation.

If you have a laptop or desktop computer, you can use Visual Studio Code, this is what I use on a daily basis. Why I use it? simply, 100% free and quality of life, there are a few added functionalities of this product that makes it worthwhile for me.

  • Built in terminal
  • GitHub integration
  • Extensions
  • Settings sync

I will include my list of extensions at the end of this article.

If you don't have a laptop or desktop computer, you are not out of luck. If you have a mobile device or iPad for instance you can use one of the following options,

CodeSandbox, a cloud based IDE (Integrated Development Environment), enables you to code from anywhere. So even if you're stuck on vacation with just your iPad, and you want a fee solution, this is it. The other benefit is there is no sign up to get going, just hit the start coding for free button, and your right in a live environment.

Second option, but with one caveat, it requires an account, replit. A free in-browser IDE that allows you to code in 50+ languages, without needed to spend a second on setup.

Now I will point out, if you have a laptop, you don't need all three, just choose one of these that suits your situation the best.

I also use GitHub, for me the overall experience with git and the other free functions, I like it. Of course, on your PC or Mac, you also need git, a free and open source distributed version control system.

Speaking of Mac and PC, the war will never end, but I also use on a regular basis, GitHub Desktop, as software engineers, sometimes with so much to do, it's ok to be a little lazy. GitHub Desktop simplifies your development workflow.

Ok, on to hardware. For the past year, I have been using this Mac mini, the 8GB 256GB SSD version. I have to admit, at the time, I should have purchased the version with 16GB ram. Having said that, my productivity level increased at least 60% when I switched to the Mac ecosystem. Now I'm not going to outline all the why's, but I will say, I've had the best development experience as an engineer on a Mac. I am just as comfortable with Linux and or Windows, but when I used the preview a while ago before purchasing my Mac, I didn't like it, and I knew my PC days were over.

OK, ok, enough of my Mac propaganda, onto resources.


Over a year ago, I got myself a subscription at Packt>, and I have to say, this has been one of the most valuable subscriptions, I have ever purchased. They have an exponentially vast ecosystem of books and videos, laid out in a simple UX, and the best part is that every month you get a free book! Sometimes the subscription goes on sale, and if you know me, I always say that Knowledge is the most powerful asset, you can ever have.

Browser of choice? Google Chrome, I build all my web apps with Chrome.

HTML Cheat Sheet HTML Cheat sheet

Resources for developers MDN

Alternative to MDN

W3Schools W3

WayBack machine

VSCode extensions


Tailwind CSS IntelliSense

npm Intellisense







ES7+ React/Redux




My current theme Tokyo Night


Auto Rename Tag

GitHub Pull Requests


Better C++ Syntax

CMake Language Support


Node.js Modules


.NET Install Tool


Remote Development

CMake Tools


C/C++ Extension Pack

C/C++ Themes

React Native Tools

Material Icon Theme


Live Server

Night Owl

Code Spell Checker

A simple theme with bright colors Ayu



JavaScript (ES6) code snippets

Keep in mind, not all these are required, this is just a list of what I have currently installed, and or used over the past year, your mileage may vary, depending on the project you're working on, or what you code on the day to day.

And if you're super leet, you could just use vi like this fine fellow, building a Gmail-like UI with React Native, in Japan! Needless to say, I am jealous xD

Thank you for reading.