My Newfound Love of Linux

Recently, on the CodeNewbie Discourse forum, a new community member, John_Minor, posted the following:

I guess I’m newer than a newbie as I have yet to write any code. I stumbled on the Hour of Code site, then stared researching computer programming/science and wanted to learn more. My daughters in college, and son in high school have commandeered my computer so I’m in the process of selecting a new laptop. Once that purchase is made I will start learning. Python will probably be the first language I will explore, then maybe Scheme/Racket. Does it matter which OS is used write code? I was thinking about using Linux/Ubuntu, but would Windows be better for a beginner?

I look forward to the adventure of learning and being an active participant here at CodeNewbie.

This post kicked off a lively discussion about selecting an OS for development. I joined in the discussion with my thoughts, and following Scott Hanselman’s suggestion on Episode 17 of CodeNewbie, I am going to post my response (with further commentary) on my blog, so that it may exist for all eternity.

I am a long-time Windows user, and began my coding journey there, but soon switched to Linux, as I wanted to get more familiar with the command line and the LAMP stack in general. Not wanting to worry about dual-booting one of my existing machines, I purchased an off-lease laptop on eBay for less than $200. I wanted to jump in deep into Linux, so I chose the ArchLinux distribution, which is very minimal and customizable, but not very user-friendly to install or maintain (though the tutorials, wiki, and community are a great resource). I got my feet wet with this and learned the basics. I taught myself bash commands, vim, git, how to set up an Apache server, etc. However, I also made some mistakes along the way that caused the machine to be very unstable. I eventually wiped the drive, and installed Ubuntu, and am loving it so far, aside from a few hiccups.

I personally love to get my hands dirty with computers, and have been loving Linux so far. Everything seems to be geared to developers in general, with all the tools you need available out of the box (or a sudo apt-get install away). I enjoy the environment of my development laptop more than my other Windows machines (our family computer and the computer at my teaching job), not necessarily because it is a superior system, but because it is a system that I built, tweaked, and maintain; there is a certain amount of pride I feel in working with my dev machine.

If you don’t mind tweaking, tinkering, and getting your hands dirty, I highly recommend a Linux distro. It is a low cost option that will teach you a great deal in the process of using it.

I wanted to expand on this post a little bit, with a little more history of how I got here.

I’ve been a devout Windows user since Windows 3.1. I was never interested in Apple computers, mainly because of the price tag. I wanted something affordable that I could play and tinker with. I didn’t really care what it looked like, or even how it performed. In fact, I secretly liked it when things stopped working, because it gave me the opporunity to fix them. I loved upgrading, tweaking, customizing, completely trashing, reformatting, and reinstalling my systems. I built my own computers, followed the upgrade cycle of MS-Windows, upgrading and building new machines as I went.

In college, my roomate, who shared my love for computing, had a Windows system that dual-booted Linux (not sure which distro, whatever was popular in 1999, I guess). I thought this was a neat idea, but didn’t quite see the point. My Windows 98 system was running great and got the job done.

At this point, I was a music education major in college, and though my love of computing has always been present, my focus was on my major, and my goal of becoming a music teacher. Computers became a tool, rather than a toy to me. I just wanted a system that worked. I stuck to Windows, because that was what I knew (and what was affordable), bought several Dell and HP machines as the years went on, and I began teaching.

In the summers, I would play around with the computers, but my curiosity about tweaking and tinkering faded, as I was afraid I would break something, and not have the time to fix it. I dabbled with a few distros of Linux here and there on old machines, but just couldn’t get into it. I was busy refining my craft as a teacher.

However, recently in the last year or two, my goals, interests, and what generally makes me happy have shifted, and I have been embracing that tech side of me that I had in high school. I now love building, experimenting, tweaking, tinkering, trashing, reformatting, starting over, customizing, you name it. My Linux machine lets me do this. It isn’t always easy, and, I will admit, sometimes it can be frustrating, and hold back what I actually working on. But I don’t care, it’s me, it’s what love doing.

As a quick side note before I finish here, I want to thank Joel Smith at P’unk Avenue in Philadelphia for pointing me in this direction. Joel was awesome enough to sit down with me and pick his brain about what it was like to be a front-end developer. He gave me a lot of great advice, including a recommendation to learn Linux. I thank him for that advice, because this has been a huge step in my learning process. It was neat when I ran into him a few months later at a JS Meetup, and showed him my system, and got to thank him personally for the advice.

Well, thanks for listening. Any other new or old Linux lovers out there? Any haters? I’d love to hear from you all in the comments!

1 Comment

  1. My dev machine is Ubuntu on a Dell Vostro. You can get that for a USD500(In India). I used a Mac as my primary machine at my previous workplace (for more then 7 years). Macs makes good development machines(and all the cool kids are using it!!). When I started on my own, I first wanted to go with a Mac but they are just costly here in India. There was no way I would go with a Windows as a development machine. So, I chose Ubuntu. And I am glad I did. Especially, since the servers we as web developers are mostly Ubuntu\Linux and using same environment at both ends means there is lot less context switch and the skills you learn at one end are beneficial at the other.

    Unless, a developer is into developing native apps, I will always recommend Ubuntu as the dev machine.

Leave a Reply

Your email address will not be published. Required fields are marked *