HACKER Q&A
📣 hnthrow12345

Help, my boss wants to us to use laptops from 2011 for development


I work at a coding school, and some of our participants don't have their own hardware.

My boss wants to give them 11 year old laptops that have been donated to us. The specific model is HP EliteBook 8460p.

I keep telling him that these laptops are not suited for modern dev work, even for beginners. We do Java backend work, so we need IntelliJ and docker.

He says that as long as they work at all, it will be fine. It's ok if beginners wait a bit longer for things to compile. He's non technical by the way.

I don't know what else I can say to him to make him understand that these devices are not enough. Please help.

Posting this from a throwaway for obvious reasons.


  👤 potamic Accepted Answer ✓
People were probably doing enterprise java development on those very laptops in 2011 just fine. Not much has changed with respect to toolchain since then. You should be fine. You will want to go frugal on software installations to conserve memory. I would do a fresh install of linux, disable all non-essential plugins on intellij or heck, even install an older version from 2011, and disable multi-process mode on firefox. If possible, get 32-bit versions of softwares to conserve more memory.

You gotta do with what you gotta do. I'm not sure where you are from, but people in third world go through education with much lesser. And in other fields where hardware can be super expensive or inaccessible. Making smart use of what resources are available is very much an integral part of learning.


👤 Jtsummers
They've been donated, you don't seem to have much choice or you wouldn't be relying on donated hardware.

You could solicit money or other hardware donations.

Perhaps find out the system specs and purchase additional RAM and SSDs to eke out the best performance (IME, the issue with hardware like that can often be brought to a more than reasonable level by just addressing those two elements).

Set up a server for the heavier weight stuff like dealing with Docker and server instances.

If the alternative is they have no way to participate, you don't really have many other options.


👤 japhyr
I have dealt with this directly, so I'll share a bit of perspective from experience rather than just saying "deal with it".

I was teaching high school math and science in the late 2000s, and I wanted to start teaching some introductory programming classes. But at that point in time we had an aging fleet of 10-year-old Windows machines. There were 30 of them sitting on the edges of our classrooms, and about 3 of them worked reliably. In one semester, I taught students how to install Linux on these machines, and then I taught an introductory programming class. It worked because I had 8-12 students to work with, and they were eager to learn about how computers work; they weren't focused on programming in particular. Our whole school (~30 students in a small alternative school) ended up using Linux for two years until our district reinvested in new machines, and in ongoing maintenance.

This is a nice story and everyone feels good hearing about it. But the reality is, there was about a 50/50 split between time spent focused on programming and time spent focused on fixing old hardware and maintaining Linux on that older hardware.

This kind of solution is not as scalable as many people like to think. Sure, random people can take an old machine and choose to run with it. And you can do this with groups on occasion. But if you're mixing people with new machines and people with 10 year old machines, you're almost certainly going to lose many of the people on the older machines. Things will take 2-4 times as long for them, and if you're slowing down to support them you're going to lose the people who are on the newer machines and ready to focus more on the content of the course.

There are other solutions. For a coding school, I would want to identify the lowest-spec new or recent machine that will work well for the given curriculum, and find a way to get enough of those machines to loan to students.


👤 sumanthvepa
If you cannot convince your boss, I suggest changing your workflow. Don't use IntelliJ. I love it and pay for the commercial version, but I use Emacs and Vi for lots of things, including Java code. You can use a more light weight editor like VS Code etc. If you are on Windows, Notepad++ etc are also good options. You don't need IntelliJ to learn Java. Indeed it will hinder your students learning of the fundamentals.

👤 dimitar
The processors in there are still probably fast enough, they will just be hotter and consume more battery power (and the battery capacity is diminished). If they have more RAM and maybe an SSD + run Linux they'll be fine. A modern OS (windows 10 or Linux is a must). I have a laptop from 2011 and it runs fine.

Maybe devise a test which you can do with your boss? Write down 10 common tasks and try them out on one of the computers.


👤 stonecharioteer
To be honest with you, what I'm going to say has been said by other commenters here. It sucks, yes. But it's not the end of the world. I learnt to code on an emachines netbook that had 1 gb of RAM, when 4 GB was the norm. Nothing would open. Heck, I am posting this from an 8 year old desktop. While it is true that your students would benefit from new, better machines, using older hardware will make them better developers. Like the other guy said, use lightweight editors. Vim is a great choice. Install Linux on them, so everything will open much quicker than with Windows. I personally recommend Linux Mint XFCE for such machines. Your students might think they're older hardware right now, but eventually, the code they right will have much less bloat as well, since they cannot depend on the faster, shinier processors for better runtime.

This will be hard to swallow, since you want to give your students the best equipment, but oftentimes, the best equipment isn't best suited for teaching. Don't start them off with IDEs, teach them using nano or vim or emacs. Let them learn how to code from first principles. Older machines come with many problems that help them understand how computers work. It's a joy to work with old hardware. I once compiled postgreSQL on a Raspberry Pi 2, and it took hours. It was amazing once it ran, because I still know stuff about compiling PGSQL that no one I work with does. It might not help me today, but it is knowledge that is part of me. I get paid well now, so I can afford a fancy Ryzen 9 CPU with 64 cores. However, that doesn't mean I'm still not tinkering with older tech.

Please let them use these without shoving "these are slow machines" down their throats. Instead, teach them to realize that this is training for the real game.


👤 SamReidHughes
That’s Sandy Bridge architecture, so unless they’re limited on RAM or have a spinny disk, they’ve got plenty of performance. They should be upgradable to 16GB of RAM.

👤 giggly_gopher
Not sure what you're going to do to convince your boss.

Though the machines might not be suited for the course, slapping a lightweight Linux distro on the old computers and giving them to parting gift to students without hardware would be a serious act of kindness. Not having your own hardware sucks.

If your boss is motivated by the desire to give charity and to not waste donations, this suggestion might be comforting to them. Then you need to convince them to buy some loaners so the students can complete the course.


👤 xenopticon
This reminds of a 17yo boy in Brazil who learned how to program on broken smartphones.

The phones were seriously broken. One had a faulty touchscreen in the middle and the boy could only use it upside down with a reduced screen size. He described in a Twitter thread[1] all the struggles he had with the broken phones.

His story got picked up by the media[2]. He was hired by one of the biggest fintechs in Brazil and has been working there since then. He also got many donations, which helped him buy a new computer and finish reconstructing his family house.

[1] https://twitter.com/cezarpauxis/status/1343934072440156160 (pt-BR)

[2] https://www.bbc.com/portuguese/brasil-56337365 (pt-BR)


👤 errantmind
I use a Thinkpad from 2010 as one of my laptops, upgraded with an SSD and 16GB of RAM. It isn't bad at all, but it is a bit slow for compilation, as my only complaint. I wouldn't want to use a laptop without an SSD though and the RAM though.

Perhaps, if you can't get new laptops, your boss would spring for upgrades. SSDs are cheap these days, so is the RAM. If you have some experience you could knock out the upgrades for all the laptops in a couple of days, likely spending less than a few thousand dollars


👤 truenamenofame
I am kind of fascinated how people without computers end up at a coding school. Are they paying to attend?

That said, I have an elitebook 8470p and assuming they have ssds and enough ram, they should be fine considering the situation. If the 8460p is like the 8470p, the CPU is even a socketed one, so there's room for upgrades too, assuming they aren't already maxed out. Learning to make do with older, limited hardware can be a very educational and even enlightening experience.


👤 AnimalMuppet
He's a non-coder? Fine. He's a beginner. Have him sit in a beginner class and try to use one of the laptops to take the course.

Now, others have given several suggestions on how to make them at least somewhat usable. Those are good ideas. But even after doing them, there may still be a problem. If you want to show your boss the problem, he has to feel the pain of using one of those 10-year-old machines.


👤 bjourne
Make the best of the situation and learn how to use Emacs or Vi and write custom build scripts in Ant. It will still be painful, but not as tortuous as using IntelliJ. Btw, I use a desktop from 2010 (AMD Phenom II X6 1090T Black Edition with 8gb ram) that runs Arch Linux and it is totally fine for development. Desktop computers generally remain performant much longer than laptops in my experience.

👤 __oh_es
I do sympathise where you coming from and faced a similar issue when a previous company installed monitoring software on the dev machines. I noted the difference in feedback loop times (from a few sec's to well over a minute) and how often I would compile/transpile in an hour. I used those stats to let the company know how much of an impact it was on my workflow. I also provided a script for IT to run so they could test fixes.

Recently I blew a laptop while travelling and ended up using one of the new Raspberry pi 4's. While not Java with IntelliJ, it didn't impact my workflow significantly and I found it quite easy to work with.

Creating a small set of test scripts could allow you to test your options. I also like the PI idea as you may be able to include it as part of the admission fees to your bootcamp.

Overall your issue impacts the amount of time students have to learn in the classroom. Unfortunately they don't necessarily know any better. If you can prove this impacts being able to cover the course content sufficiently that may be more understandable to a non-tech.


👤 Chyzwar
These should work fine,

  - install 32bit Linux distro with lightweight DE
  - disable mitigations, experiment with zram/swapp off
  - install 32bit versions of IntelliJ and Chrome. 
As long, they limit the number of tabs in chrome and use low resolutions screens, they should be fine. If you could upgrade RAM to 8GB and add SSDs these would be decent machines.

I am typing this from i5 2500K from 2011 and work great for me. In most cases it is snappier than my work machine. At the very least, you should try.


👤 orbifold
I think overall it is completely reasonable to learn Java programming on a system that old. Waiting a bit for programs to start is not the end of the world.

👤 jlawer
Any chance of a beefy server and use them as terminals?

AliExpress has some cost effective x79 / x99 Dual Xeon Mobo / CPU / RAM combos. System would be Sandy Bridge / Haswell. But 24 cores and 128gb of ram can go a long way and whole system cost would likely be under $2K USD. A few Sata SSDs and you could easily host a classroom on a single box.

Not Cheap if you don't have the money, but likely cheaper then a new laptop fleet.


👤 max_hammer
I would suggest to install Debian, it's very light and stable disto. Also, you won't need a VM software for Docker.

For IDE, use VIM or VS code


👤 jstrebel
IntelliJ and Docker are nice productivity tools, but I am not sure they are the best tools from an educational standpoint. If I had to learn Java (and probably J2EE or Spring), I would start from the bottom: - bare-bone, locally installed JDK - lightweight IDE - central build server - central deployment server configured for multiple projects.

Why do you need docker locally?


👤 sloaken
My first instinct is to ensure each machine has at least 8G. IMHO for a beginner course any more would be a waste. The stock version appears to come with 4G, an additional 4G (it has 2 slots), seems to be about $25.

My second instinct is to go virtual. There are plenty of companies that provide desktops as a service. Makes clean up at the end of the class very easy.


👤 readonthegoapp
Use a cloud IDE?

👤 CinematicStudio
Ouch, that sucks big time. Probably the only thing you can do is to have your boss at least buy (or ask for donations for) SSDs. That would speed up compilations quite a bit.

More RAM could help, but since they're so old, not sure how easy it will be to find it now.


👤 CodeWriter23
More like wait longer for each keystroke to be echoed in the editor.

👤 throwaway019254
Replace HDD with SSD, upgrade RAM to 8GB, and you are good to go. Much cheaper than buying new laptops.

👤 machiaweliczny
Those are good enough, with lighweight linux should work fine.

👤 failwhaleshark
Try it first until it breaks from a nonfunctional# requirement-perspective.

# Requirements other than correct functionality: fast, responsiveness, appearance, easy-to-read, etc.

Slap a cheap/fast SSD and more RAM in them if they're worth it.

Everyone should burn the website buyafuckingssd.com in their brain. Do not use spinning rust for almost anything except archival.