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.
To succeed in a class where you are learning modern software development, it is crucial to have a modern laptop. It is risky for this class to use a laptop that is more than 2 or 3 years old.
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 a significant amount of RAM to ensure that things run well together.
Some folks with a late model MacBook Pro have had a reasonable experience with 8 GB RAM, but if you can get 16GB, that would be much better.
We have found that an SSD is also crucial to running Meteor and Intellij IDEA successfully. They are standard on new MacBooks, but might be an upgrade on 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 11 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 11, 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:
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 appropriate tools for the job at hand.