This class is an introduction to intensive software development. In order to become a productive and efficient software developer, it is essential that you have a sufficiently capable hardware. For example, if it takes 30 seconds for your interactive development environment to load, you will be tempted to take a “shortcut” and use a less functional text editor instead. The more you use a vanilla editor rather than the IDE, the less skilled you become using the IDE, and the less productive you are. The cumulative effect of inappropriate hardware will eventually prevent you from reaching your full potential, and worse yet, may negatively influence your success in this course.
Over the years, I have seen too many students struggle in ICS 314 because they didn’t understand how their choice of computer influences their ability to develop software efficiently. The following distills their experiences down to a few simple requirements. Follow them and you can avoid frustration.
Maybe you have a rocking desktop game computer at home with a 50” screen. That’s great, but around half of your grade for ICS 314 will be determined by software that you develop during class. So, regardless of what you have at home, you have to have a laptop that you can bring to class that is “developer-level”. Don’t think you can bring a junk, 10 year old laptop to class and make up for it at home. The class doesn’t work that way.
Fortunately, all laptops in the last couple of years satisfy this requirement.
Your final project will be developed using Meteor and IntelliJ IDEA. You will running both applications simultaneously, as well as a browser and a few other things. You need this much RAM to ensure that things run well together.
We have found that an SSD is also crucial to running Meteor and Intellij IDEA successfully. They are standard on new MacBooks, an upgrade on most other machines.
The Windows OS is great for developing .NET and other Windows-oriented applications, but is at a distinct disadvantage for many other forms of software development. The reality right now is that your experience as a software developer is generally better if you are using MacOS (which is a Unix OS) or Linux.
Once we start using Meteor, you will find yourself in a world of pain if you are using an old version of Windows. From past experience, students using Windows 10 had relatively little OS-related problems with Meteor. A few others literally spent weeks trying to get Meteor installed.
Note that once you are running Windows 10, you can install Windows Subsystem for Linux. This enables you to have a Linux system on your Windows laptop.
Removing bugs quickly often requires you to be able to see a lot of information at once. The more pixels you have on your screen, the more information you can see at once, and that generally means you will finish your assignments in ICS 314 faster. For example, while doing Meteor development, you will minimally want to see:
Sure, you can run a virtual desktop and switch back and forth between these four windows. You can do that, but it will take you roughly four times longer to solve problems because problems will appear in a window that you are not displaying, and it will take you seconds-to-minutes to display that window and see the error. Then you have to switch back and forth between the two windows.
Practically speaking, successful students have at least a 12” screen, and more typically a 15” screen.
I get it that lugging around a 12” laptop is not as much fun as carrying around a cute little 10” tablet. But tablets aren’t made for software development. In this class, to have fun, you need to have the right tools for the job at hand.
Due to COVID-19, we’ll be doing part of the course online. To communicate, you’ll need a microphone (at minimum) and a camera (preferred). Most modern laptops satisfy this requirement.