Best Linux laptops for programming?

Hi everyone,

I’m currently in the market for a new laptop for programming, and I want to make the switch to Linux. I’ve heard that not all laptops are compatible with Linux, so I’m wondering if anyone has any recommendations for a Linux-friendly laptop that’s great for programming.

Some things that are important to me are:

  • Good battery life
  • A comfortable keyboard for typing
  • At least 8GB of RAM
  • A solid state drive (SSD) for fast boot and load times

Any suggestions or advice would be greatly appreciated! Thank you in advance.

I would go with a conventional SATA SSD drive.
There have been reports of linux driver problems with the newer eMMC drives.

You dont really need a touch screen… unnecessary expense

A very new laptop may have components for which linux has not yet developed drivers.
Stay with last years model. Use a linux distro which is bleeding edge (example the MX “ahs” release) to get the latest drivers.

Programming is not a huge resource consumer. Any reasonable laptop will be adequate.
If you are doing numerical computations, get a core i7 processor.



Hi @George_Anderson and Welcome to “It’s Foss”.

I found this on the web;
“For over 20 years Dell has offered Linux-based workstations and laptops for businesses, engineers and scientists.”

I personally have used Dell products and have not had a problem, but I buy used items.


Depends what sort of programming you’re doing.

e.g. Linus (Torvalds) himself uses both a MacBook Pro M1 (Apple silicon, running Linux, not MacOS) and an AMD Ryzen THREADRIPPER (not cheap) to build the Linux kernel. The M1 and M2 CPU have “neural net” co-processors (I barely understand what this means, but it’s for developing machine learning and AI).

If you’re just doing Python, or Node.js or even “conventional” C - then pretty much anything less than 5-7 years old should “cut the mustard” (be satisfactory).

But - I’d be wary of advice like :


e.g. I don’t know of many laptops using actual “EMMC” - but EMMC is supported in most ARM kernels as a lot of ARM based Single Board Computers are using EMMC. So I’m not sure what @nevj is referrring to - and - don’t let this make you wary of NVMe (not SATA) or M2 SATA SSD! When I read “conventional SATA SSD” I think of a 2.5" laptop SSD drive with a stock SATA connector - most laptops don’t have these anyway - most of the newer ones have a PCIe slot on the board for an NVMe SSD, or some older ones have an M2 SATA connector (not a conventional SATA).

I’d also recommend AGAINST a “bleeding edge” distro as your first choice. You’re MUCH more likely to find answers using something as ubiquitous as Ubuntu 20.02 LTS (“FOCAL Fossa”) or 22.04 LTS (“JAMMY Jellyfish”). You can try distro-hopping later on with bleeding edge if that takes your fancy. If you decide you really do want more “Bleeding Edge” - I reckon Pop!OS is pretty good, and it really just Ubuntu 22.04 with an outer shell (I’m running it on my ~2 year old Ryzen 5 Thinkpad, and my Raspberry Pi 4B) - it’s using Kernel 6 too - if that’s what @nevj was referring to when he recommended MX.

(too long, didn’t read)
I’d recommend buying a 2nd hand Dell or Lenovo (e.g. off e-bay)… I’ve NEVER had any issues with Dell using LTS Ubuntu (Long Term Support) releases - nor Lenovo - but I’ve tried it on a wider range of Dell laptops (mostly business oriented Latitude series).

The only brand I’ve seen some people occasionally have issues with Linux on is HP, and I avoid them anyway for “ethical” reasons.

P.S. You’re lucky you’re in the UK, you can directly buy brand new Linux laptops from Dell and Lenovo - the Aussie market is not big enough for them to give a toss about us… But for my money - it’s easier (and a TRUCKLOAD cheaper) to just buy 2nd hand, wipe the SSD and install a Linux distro over it (and again - I’d recommend a recent LTS Ubuntu like 20.04 or 22.04).

I am currently running Pop!_OS 22.04 LTS and have run Ubuntu 22.04 LTS on my new-ish laptop with what I would call good luck.

~$ neofetch
             /////////////                pdecker@pop-os 
         /////////////////////            -------------- 
      ///////*767////////////////         OS: Pop!_OS 22.04 LTS x86_64 
    //////7676767676*//////////////       Host: Inspiron 7706 2n1 
   /////76767//7676767//////////////      Kernel: 6.1.11-76060111-generic 
  /////767676///*76767///////////////     Uptime: 1 hour, 21 mins 
 ///////767676///76767.///7676*///////    Packages: 2132 (dpkg), 32 (flatpak), 6 (snap) 
/////////767676//76767///767676////////   Shell: bash 5.1.16 
//////////76767676767////76767/////////   Resolution: 1680x1050 
///////////76767676//////7676//////////   DE: GNOME 42.5 
////////////,7676,///////767///////////   WM: Mutter 
/////////////*7676///////76////////////   WM Theme: Pop 
///////////////7676////////////////////   Theme: Pop [GTK2/3] 
 ///////////////7676///767////////////    Icons: Pop [GTK2/3] 
  //////////////////////'////////////     Terminal: gnome-terminal 
   //////.7676767676767676767,//////      CPU: 11th Gen Intel i7-1165G7 (8) @ 4.700GHz 
    /////767676767676767676767/////       GPU: NVIDIA GeForce MX350 
      ///////////////////////////         GPU: Intel TigerLake-LP GT2 [Iris Xe Graphics] 
         /////////////////////            Memory: 2740MiB / 15728MiB 
1 Like

All right show off, so it’s gonna be like that is it? :laughing: - I’ll see your Pop!OS neofetch, and double it with my own :smiley: :

Lenovo Stinkpad E495

╭─x@fenriz ~  
╰─➤  neofetch
             /////////////                x@fenriz 
         /////////////////////            -------- 
      ///////*767////////////////         OS: Pop!_OS 22.04 LTS x86_64 
    //////7676767676*//////////////       Host: 20NECTO1WW ThinkPad E495 
   /////76767//7676767//////////////      Kernel: 6.0.12-76060006-generic 
  /////767676///*76767///////////////     Uptime: 8 days, 22 hours, 45 mins 
 ///////767676///76767.///7676*///////    Packages: 77386 (apt), 6 (flatpak), 6 (snap) 
/////////767676//76767///767676////////   Shell: zsh 5.8.1 
//////////76767676767////76767/////////   Resolution: 1920x1080 
///////////76767676//////7676//////////   WM: Mutter 
////////////,7676,///////767///////////   WM Theme: Adwaita 
/////////////*7676///////76////////////   Terminal: /dev/pts/5 
///////////////7676////////////////////   CPU: AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx (8) @ 2.100GHz 
 ///////////////7676///767////////////    GPU: AMD ATI Radeon Vega Series / Radeon Vega Mobile Series 
  //////////////////////'////////////     Memory: 3840MiB / 13752MiB 

Raspberry Pi 4B (8 GB) :

╭─x@bebhionn ~/Videos/Movies  
╰─➤  neofetch
             /////////////                x@bebhionn 
         /////////////////////            ---------- 
      ///////*767////////////////         OS: Pop!_OS 22.04 LTS aarch64 
    //////7676767676*//////////////       Host: Raspberry Pi 4 Model B Rev 1.4 
   /////76767//7676767//////////////      Kernel: 5.15.0-1024-raspi 
  /////767676///*76767///////////////     Uptime: 4 hours, 34 mins 
 ///////767676///76767.///7676*///////    Packages: 68030 (apt) 
/////////767676//76767///767676////////   Shell: zsh 5.8.1 
//////////76767676767////76767/////////   Resolution: 1920x1080 
///////////76767676//////7676//////////   DE: GNOME 42.5 
////////////,7676,///////767///////////   WM: Mutter 
/////////////*7676///////76////////////   WM Theme: Pop 
///////////////7676////////////////////   Theme: Pop-dark [GTK2/3] 
 ///////////////7676///767////////////    Icons: Pop [GTK2/3] 
  //////////////////////'////////////     Terminal: gnome-terminal 
   //////.7676767676767676767,//////      CPU: BCM2835 (4) @ 1.500GHz 
    /////767676767676767676767/////       Memory: 2752MiB / 7757MiB 

Note : Pop! on the Pi is still using Kernel 5.15 - and I see you’re on a reasonably later x86_64 kernel than me… Timely reminder to update my Stinkpad to the latest from Pop!OS I see :

The following NEW packages will be installed:
     libllvm15 libllvm15:i386 linux-headers-6.1.11-76060111 linux-headers-6.1.11-76060111-generic
     linux-image-6.1.11-76060111-generic linux-modules-6.1.11-76060111-generic

Note : there are no Kernel 6 updates for Pop! on the Pi…

Just what I read. My laptop experience ceased 10 years ago.
Listen to @daniel.m.tripp , his laptop experience is current.
I find a desktop better for programming.


I find a laptop docked to some decent monitor(s) and keyboard mouse combo just as good (and more convenient) than a desktop.

Not that I’m a programmer, but I am a system administrator, and do often “develop” stuff in the Shell (bash shell scripts - e.g. a whole bunch of “infrastructure” using CUPS and PDF printing, and emailing those PDFs using certain “conditions”). I use either / or MacBook or Linux Desktop or Laptop, in a terminal window, don’t really bother with full blown text editor like VSCode or anything else…

Just vi in a terminal (yeah it’s probably vim, but I refused to adapt o this millennium - it always was, always will, be “VI” [VIsual Editor]). I do sometimes keep a text editor window running - usually whatever the default is for the O/S (unless its MS Windows, then I install or setup a portable app version of Notepad++) - that’s all I need.

But the OSS version of MS VSCode (can’t remember the exact name of the OSS version - someting like VS Codium maybe?) runs perfectly acceptable on a Raspberry Pi 4 - so should run sweet on a late model laptop…

1 Like

Yeah, I did for a while use a 17 in laptop for R work… but on a desk. Cant program on my lap, need paper and books and printers. Old fashioned maybe

May I suggest you get a pre-owned laptop with 8GB RAM and an Intel i7 or i5 CPU .or similar AMD CPU and an SSD or HD with easy access to the HD/SSD compartment. If with an HD , replace it with an ample capacity SSD.

My response to your query is because (not being a programmer) I currently type this message on an AD2011 HP Pavilion laptop with an 2nd gen Intel i3 CPU and a 7 years used 256GB SSD , being the 3rd user of the laptop .
The previous user had it for the past 7 years running Windoze 10
I recently erased Win 10 with Gparted and installed MX Linux 21.3 with the result that I now have a fast new Laptop , be it that some frequently used letter keys will need a sticker to make the key readable again .
It shows that reputable hardware can last a looong time .
Here in Ireland in 2018 I bought a then 5 yrs old Dell Latitude E6330 Laptop currently running Linux Mint 21 (Vera), from a local shop for equivalent US$ 270 replacing the HD with a 256GB SSD for equiv US$ 35. Again a still well running laptop…and that also because of the effective Linux OS.

Frank ( Wicklowham )


Thank you for sharing valuable information.

Great work Deby. It is highly relevant right now… see the discussion in the topic ‘Best Linux Laptops for programming?’


This reply was accidentally posted under the wrong topic…
see ‘Linux installer crashes on formatting eMMC drive’

I run either Ubuntu 22.04 or Pop!_OS 22.04 on a variety of older and newer hardware. But.

I also run Windows 10 Pro on a 12-ish year old Dell XPS tower with a first gen Core i7 and 8GB RAM. I’ve gone through a variety of spinning disks over the years and for the last couple have been using a couple internal and an external SSD drive.

My point is, Windows 10 also runs just fine on this older hardware. I always found the i7 was tons faster than the i3 and much faster than the i5. A recent generation i5 would likely run circles around the first gen i7, but still, it’s very usable for web surfing, Word, Excel, and even some classic gaming. I have updated the video card as well, though even that is older and under powered these days.

1 Like