Laptop requirements for ICS 314

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.

1. You need a laptop. Your desktop gaming PC in your bedroom won’t work for this class.

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.

2. Your laptop should be less than three years old.

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.

3. Prefer 16+ GB RAM.

Your final project will be developed using Nextjs and VSCode. 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.

4. Your laptop needs a solid state (SSD) hard drive.

We have found that an SSD is also crucial to running Nextjs and VSCode successfully. They are standard on new MacBooks, but might be an upgrade on other machines.

5. Prefer MacOS or Linux.

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.

6. If using Windows, use Windows 11.

Once we start using Nextjs, 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 Nextjs. A few others literally spent weeks trying to get Nextjs 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.

7. You need pixels. Lots of pixels.

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 Nextjs 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.