I waited waaaay too long to get a new computer by Anelise N. '19
Finally, a development environment I can work with!
My old computer and I had a complicated relationship.
We spent three years together, and they were three of the most formative years of my life. I bought my computer off eBay in 2015, right before going off to college. A secondhand Lenovo ThinkPad T420. 4.78 pounds, supposedly indestructible, and according to the Internet a solid development machine. It had been retrofitted with an i7 processor, 256 GB of SSD storage, and 16GB of RAM (those are solid specs, in case you’re not a computer person) and I paid around $450 for it, which is like way less than what I would have paid for a new computer with comparable specs. Also it ran Windows 7 which was cool because I was not about to use Windows 8.
We had some really good moments, my old computer and I. That laptop submitted my first coding pset at MIT and every pset afterwards for three years. It ran my first programs in Python, Java, and C++. It delivered my first internship offer. It was with me the first time I went abroad and has been to as many countries as I have. I trained neural networks, wrote a dynamic language compiler, and designed a poster for my first conference on that laptop. I even composed my first blog post on its screen.
We definitely had some dicey moments as well. There was the time I dropped it down the back of my bed onto the tile floor…and it survived with nary a banged-up battery. Or that time in 6.01 lab (that’s the introductory class in Electrical Engineering and Computer Science) when someone picked up my computer and walked away with it because it was basically the same model as the ones in the lab. Or the time I tried to install Ubuntu and instead deleted the boot drive (the software that turns on the computer) because I followed stupid advice on the Internet and ended up bricking it, and then had to go to MIT’s tech support desk who told me that they couldn’t fix it and I was out of luck, and then they took it into a back room and came back with it working like new anyway…and then I did not attempt to install Ubuntu on it ever again.
But recently, the bad moments started to outnumber the good ones. There was the realization that the amazing new Bluetooth noise-cancelling headphones that I’d gotten from a summer internship would not connect to my much older laptop. Or the time I went to a company info session and was trying to submit the attendance form on my last few percentage points of battery and it look five minutes to boot up and connect to WiFi and then five minutes for the form to load fully and then I hit submit and the computer died. Or the time it took multiple hours to get a simple piece of software (the Heroku CLI, if you’re curious) working on Windows for a research project…or the time I spent literally ten hours trying to get a piece of hardware to play nice with it for a class project…or the time I tried to do some machine learning on it and it took soooooo loooooong to run that I spent the rest of the evening setting up a computer in the cloud instead and I was behind on the rest of the mountain of work I had to do…or the time I told someone I was an MIT Computer Science student and they shot an incredulous look at my laptop.
Finally, last summer, I reached a breaking point. I’d spent the summer working with a brand-new itty-bitty laptop for my internship. It was so light that sometimes I had to take off my backpack and check that it was still in there. I went weeks without touching my ThinkPad. And then one day I had to open it to, I don’t even remember, buy some plane tickets or send an email or something, and in between picking up the computer, all ~5 pounds of it, and connecting to Gmail (which was a longer period than you might think), I decided that it was time for us to part ways.
And so…hellooooooooooooooo from my new laptop!
It’s NEW and it weighs 2.62 POUNDS and it TURNS ON INSTANTLY and it has UBUNTU!!!
God it’s such a relief I can’t even tell you. This week, I installed the Heroku CLI (which took like 2 hours with the last laptop) and it took all of two minutes. I almost cried tears of joy.
My new machine is a Lenovo Yoga 730 (the newest model :O). It’s got an i5 processor with 256GB SSD and 8GB of RAM. I bought it new with Best Buy’s student discount because I didn’t want to deal with a refurb. It’s also got a touch screen and it folds into a quasi-tablet (hence the name Yoga) but honestly I don’t use the feature that much, except for sometimes pretending I’m reading papers on an iPad. I went for another Lenovo because people generally seem to like them, and also my Dad and brother recently got new Yoga 720s and seemed to really like them. Also it was way cheaper than a comparable Mac. I think I paid $730 + tax.
But getting the new computer was only half the battle in the war for a pain-free development environment. The computer came with Windows 10 as the operating system. Windows is pretty decent for web browsing and making presentations and word editing and stuff, but it’s not ok for coding. The Windows command line (that little black and green window that you see in 80s movies, which is the primary and most powerful way that software developers interface with the computer) is totally different from the command line of a Mac or Ubuntu computer, which is what most developers use. To the point that on my old ThinkPad, I had installed two different command line programs whose only job was to mimic Ubuntu. To further illustrate, one time for a class I went to a tutorial where the TA was doing an introduction for how to code in C++, and he asked the students what operating system we were using, and I was the only one who had Windows, and he literally just looked at me and said “I’m sorry.”
So Step 2 was to dual-boot. That’s where you install two different operating systems on your computer–in my case, Windows and Ubuntu.
I attempted dual-booting shortly after buying the computer, so that just in case I messed up again I could just do a clean reinstall of Windows without losing anything. But this time, I managed to install Ubuntu without ruining anything!!! There was a lot of trouble-shooting involved, and I made sure I understood what I was doing while I was doing it, but it worked! In fact, I’m writing this post from inside my Ubuntu command line. :)
(I actually wrote up sort of a guide on how I dual-booted, so I wouldn’t forget and so that my brother could use it as a reference. This comes with a STRONG DISCLAIMER that this is quite specific to MY LAPTOP and you should NOT FOLLOW THESE INSTRUCTIONS without understanding what you are doing, but in case it’s helpful and at your own risk here’s the guide :D)
Also, ironically, I’m taking a class on Operating Systems this semester in which I learned intimately why deleting the boot drive last time was such a bad idea.
My setup is so much better now. When I need to make a PowerPoint for my communication class or Skype someone (why do people still use Skype?) I open up the Windows part of my laptop. When I want to work on research or technical homework, I open Ubuntu. I often go all day without having to charge. Also, did I mention how fast and light my computer is?
I feel like I should end this post by giving some advice for selecting a good laptop, especially for freshmen who are looking for a good machine to bring with them to college. But honestly, reflecting on my experience with my ThinkPad and my new Yoga, I’m not sure what the ideal strategy is for buying a college laptop.
On one hand, purchasing an old refurbished computer was maybe not the best idea. Keeping it for so long was definitely not a good idea. I let my old, slow computer, which wasn’t really equipped for the work I wanted to do on it, become a daily annoyance almost without realizing it. Even worse, it became an obstacle to doing research and homework efficiently. If you’re going to do something hard–like being a Computer Science student at MIT–you should give yourself the benefit of having the tools you need to get the job done.
On the other hand, dropping a ton of money on a fancy machine before showing up to college, before you really know what you’re going to need it for, before you’re even sure what you’re going to major in, does not seem smart either. Laptops are not cheap. Even my refurb was not cheap, and new machines with good specs can be exorbitant. And there does not seem to be common wisdom as to what kind of computer is ideal for an MIT student. I see a lot of Macs among Computer Science students, whereas I have heard from my friends studying Mechanical Engineering that they really need a Windows computer because design software like SolidWorks only runs on Windows.
So I guess my advice would be to defer judgment, if possible. If you have a serviceable computer already, bring that for the first year or so. Or buy a moderately priced machine that you would be ok replacing in 2-3 years if you need to, once you have a better sense of your requirements. You may have noticed that the specs on my new computer are actually worse than those on my old laptop. I’m ok with that because after three years of being a CS major, I have a much better sense of what my laptop needs to handle. I actually don’t do a ton of intensive computation on my computer. If I need to do something intensive, like training a machine learning model or running a lot of data analysis, I will use my lab’s high-powered server or I will set up a computer in the cloud using Amazon Web Services. For my daily life, it was more important to me that my computer be light and hold a decent charge and boot up/connect to the Internet in a reasonable time frame and not do weird things like shut down randomly in the middle of my homework. Basically, I chose newness over specs.
So if you’re looking for a new computer, I wish you all the happiness that I’m experiencing with mine :)