I’m scared of software when developing

For the past few weeks, I’ve been doing at least three lessons on freeCodeCamp every day. It’s been helping me build confidence in my coding skills. Right now, I’m learning JavaScript (a pretty fun language), and I’ve hit a dilemma at this point. If I’m going to keep coding, what do I use?

I’ve struggled with this question in the past before, but I never realized the question until a couple of days ago. After I complete freeCodeCamp, and (hopefully) get a job in software development, game design, or web development, how will I accomplish my job?

Some companies have a set way that they get things done. Other companies, such as Microsoft, couldn’t really care less. So, assuming I sign with a company of the latter, and even before I get a job, how will I do my thing?

In the world of software, there’s so much choice. There is no one way to do anything. It’s great, because everyone has their own way of doing things. I still haven’t figured out how I do things yet. But since there’s choice, I can pick how I want to do things. There’s so much choice. Too much choice. I feel overwhelmed looking at all the choices.

So, why am I writing this story? To give you a list of choices I’m scared to make.

1. OSes

My Windows 10 desktop.

It’s hard to write code if you don’t have anything to write and test it on. If you ask people which OS is best for development, there will be varying opinions. Generally, I’d say that 50% of people say Linux (mainly Ubuntu) is best for programming. Others say that macOS (or OSX for those on versions before Sierra) is superior. The main thing they have in common is that they’re both based on Unix. But generally, I’ve never heard someone say “Windows.” But guess what OS I’m on? Windows 10.

Whenever I do hear Windows, it’s always for something really specialized, such as game development (what I want to do), or writing software for Windows. So you pretty much want to use the platform you’re writing code for. But, I like web development, as well! Should I use Ubuntu?

Now, I have experimented with Linux in the past, and I’ve generally had a good experience with it. How come I don’t use it now? Because Linux + Virtual Desktop + 2 GB of RAM + optimization = terrible performance. Now, I know what you’re thinking, “Why not just dual boot?”. My father has forbidden me to. Why?

In 2015, on my old (and I mean really old) laptop, I had installed Ubuntu alongside Windows 10 (which I’m still surprised it supported). Now, since there are so many different distributions of Linux, I decided I wanted to try something different, Linux Mint. While I ran the installer, I thought I told it to install on the Ubuntu partition. I still don’t know whether this was a user error or a software error, but it ended up wiping my entire hard drive and installing Linux Mint on all 250 GB of space on my laptop. After distro-hopping a little bit more, I decided to finally return to Windows 10 (which, after like an hour of crying, finally happened. I knew nothing of partitions back then, but my problem was simple). Then, before Christmas, I asked for a new laptop. Then, on Christmas, I got one. One of the first things my father said to me about it was: “You’re not allowed to install Linux on it.” I was happy he said that, because I wasn’t going to. Yet here I am, wanting to install Linux.

Anyways, macOS is out of the question as well. Why? The easiest way to run it is to spend $1,000+ on either an iMac or a Macbook. It’s extremely difficult to run it any other way. Of course, there’s also another thing. I don’t really care for Apple. I believe their products are extremely elitist (which is probably a horribly wrong disbelief). I like the software, just not the hardware. If their software was FOSS (Free and Open-Source Software), I would totally go for it. But, alas, here we are.

Now, I like Windows, but generally, people don’t think about development on Windows. We miss out on some pretty cool tools to use for development. I know Microsoft is working on this, like how they’re bringing Linux terminals to Windows 10 that we can install from the store (click me!), but still. It hurts, man.

2. Text Editors

The text editor I’m using at the time I started this draft, Notepad++.

Lemme start off by saying this: I am really bad at picking a text editor and sticking with it. I’m a text editor whore. I constantly switch between four text editors: Notepad++, Sublime Text, Visual Studio Code (or VS Code, for short), and Atom.

Whenever I look for a text editor, I always look for four things:

  1. A pretty UI
  2. Customizability
  3. Speed
  4. Free

All of the text editors I mentioned above are very customizable, and all of them have a pretty UI. All of them except for Notepad++ (I’m not a huge fan of how the tabs look, and there’s no way to change it). On top of that, the only fast ones are Notepad++ and Sublime Text. Now, here’s the thing, I would use Sublime Text, but it doesn’t meet the fourth criteria. It’s not free. In fact, it costs $70 (apparently it was $20 in the past, but the price went up for whatever reason). There is an unlimited evaluation period, but eventually, at some point, you have to pay $70 if you wanna use it. I decided to stay away from Sublime Text because I knew I was never going to pay that $70, even if I did have the money.

Now, I really like VS Code. I love VS Code. The only problem is, that it and Atom alike, are built off of a technology by GitHub called Electron. For those of you who don’t know what it is, it’s a way of making apps easier to build and develop by simply writing them with three basic languages: HTML, CSS, and JavaScript. But, here’s the ugly secret behind it: whenever you install an Electron-based app, you’re essentially installing another version of Google Chrome (We’ll talk about why that’s bad later). But here’s the short version: Google Chrome = more RAM usage + slow performance + little battery life.

But, I’ve tried the crowd-favorite Vim once. I spent around an hour customizing it (by that I mean finding a theme I like and setting my font, font-size, tab spacing, tab-to-spaces, and similar things), and then ended up deleting it the next day. Why? So…many…hotkeys. Literally everything you do in Vim is controlled by a hotkey. Want to change the position of the cursor? Hotkeys. Want to highlight text? Hotkeys. Want to delete text? Hotkeys. Now, this is pretty useful sometimes, but I’m not used to NORMAL and INSERT modes. Sometimes, in normal mode, I’ll try to type and end up doing something I didn’t want. Then, when I’ll try to go back to NORMAL mode, I’ll forget I’m in INSERT mode and start hitting keys that mess up my code. So, I’ve moved on.

Right now, I’m just using Notepad++. Because it’s the only thing that really works right now.

3. Web Browsers

The web browser I’m using at the time of this article, Firefox.

I am also a web browser whore. I can never stick with one browser. I’m always switching between either Google Chrome, Mozilla Firefox, Vivaldi, or Opera. In a web browser, I look for:

  1. Speed
  2. Customizability
  3. Web support

None of those web browsers offer me all three criteria. Only Firefox comes close to offering all of them. It’s very customizable, with thousands of themes and extensions (I came out with a theme the day I started the draft of this article), as well as several configurations in about:config. It also supports many popular and upcoming web technologies. It just lacks speed. Now, it can load web pages pretty quickly, but they only recently came out with E10, which essentially allows for multiple processes to help make Firefox run faster. In fact, while I was writing this story, I realized one of my extensions disabled E10 for some reason, so I had to mess around in about:config in order to enable it.

Now, I would like to be using Google Chrome, but, it’s essentially a gigantic RAM hog. Whenever I open Chrome, I’m pretty sure my laptop just slowly dies. More RAM usage generally translates into slower performance for everything else, but depending on what else I have open, it can also translate into slower performance from Chrome itself. It also means less battery life, so it sucks whenever I browse on the go.

I also really like Opera and Vivaldi, but they suffer the same fate. Why? Because they’re based on Chromium, which is essentially the open source version of Chrome that Chrome is based on. So, this also translates into more RAM usage, slow performance, etc.

If I could have it my way, I would use Chrome for everything, but I, unfortunately, can’t. I use Firefox for taking care of mostly everything. I only keep Chrome around because I use it for school work since it has the best profile support, and for whenever I need to cast anything to my Chromecast. So, for now, I just use Firefox and Chrome in tandem.

4. Terminals

My Command Prompt on Windows.

Now, I know that for what I want to do, I generally won’t have to use a terminal all that much, but it will still be helpful to use. In fact, this is the thing I’m worried about the least, but still worried about nevertheless. Now, I know that a Unix-based OS could solve this issue, but, again, since I’m on Windows, I have to ask this question.

Now, I know there’s a lot of terminal emulators out there for Windows, but I would prefer something native. Again, there are different Linux distros coming to the Windows Store that I can use, but I’m thinking about right now. One of my favorite terminal emulators is Cmder, but it’s not native. I also could change some options and enable the Ubuntu command prompt for Windows, but the fact that I have to change some options to do it is kind of irksome.

If I could, I would just use the Command Prompt, but in order to get everything I want, I would have to install some other programs such as Git.

So, for now, I guess I’ll just have to keep on experimenting and keep on tinkering to find out what works best for me. If you guys have any idea on what could be great for me, comment it on the article, as well as some (polite) criticism! Thanks for reading!

You can read my first story here.

Thank you for reading my first ever article on Medium. I’m currently training for a half-marathon for Team World Vision to raise money to get clean water for kids in Africa. Every $50 (50 USD) gets enough clean water for 1 kid in Africa. Donations are essential in helping me achieve my goal of $1,310 (1,310 USD). If you would like to make a donation, please click here. Thank you.