I have been using Windows my entire life, but since I got my Steam Deck I’ve been considering trying to get into Linux.
I obviously don’t have much of an idea where to begin, other than that I’m currently also trying to learn Javascript. I'd like a basic workstation I can code on and mess with, that doesn't run more than a couple hundred. Could use some recommendations for hardware plus where to begin.
Worth noting that you don't necessarily need new hardware, you can install Linux on your currently Windows PC in either a dual boot configuration (both OS installed) or replace Windows. You can also run Linux in a virtual machine to test the waters.
For a decent, x86_64 PC for Linux, the Steam Deck is ironically a pretty good deal for what you get. The Deck will run VSCode just fine, maybe just add a monitor and keyboard/mouse.
Linux can be pretty lightweight, it runs beautifully on my cheapo netbook from a couple years ago: WinBook CW140. I've done a good chunk of professional web work on that thing. The Deck beats it in every way, but it does web dev perfectly fine.
You don't even need any hardware to get started. Fire up a virtual machine in VirtualBox or VMWare or use WSL. Start playing around, find a distro/DE you like and start learning.
After some time, look into dual booting your existing machine. You can try this in a virtual machine first before making any changes to you hardware.
I should add that I’ve been interested in getting a small, portable notebook for coding separate of this, and making it Linux seemed a good idea at the same time.
Something thing to keep in mind when getting started is to manage your expectations. You've spent all this time using Windows so you already know where everything is -- for Windows. In a lot of respects you are going to be starting over from scratch, learning new ways to install software, get around the desktop, and doing simple things like changing your settings. Don't get discouraged, you've done this before, you can do it again.
One way to cope with the initial frustration is to start out loading up something like VirtualBox on your Windows desktop, and installing a linux distribution there. Then you can play around, take your time to find a desktop that's right for you, and learn how to actually DO things in linux that you already do daily in Windows. That way you eliminate the pressure of trying to figure out how to do everything at once.
Another reason to start with a virtual machine is that there are a LOT of possible linux distributions to choose from. There are also quite a number of different desktop environments to choose from. It pays to take a bit of time and play around with different options to find out what you like. You also need to decide if you want something running the cutting-edge releases, or if you prefer stability with slightly older software. For example, Ubuntu is a good choice for the absolute latest releases but can introduce bugs that the devs refuse to fix. On the other hand, Debian (which is actually the base system that Ubuntu is built on) only releases slightly older software that has been tested over the past few months. However in all cases, you will always get immediate patches for security issues.
As already mentioned, any old computer laying around is a viable candidate for Linux. Until last year I was running internet-facing web servers on 1GB of memory and a single core. If you have something built in the last 20 years it will work for your purposes. Hell my desktop is someone else's throw-away because under Windows they considered it "too slow to get email or browse the internet". I use it for writing arduino code and building models for my 3D printer.
If you have PC that can run virtual machines I recommend starting there so you can see how Linux works. Use it for a longer period of time and try doing some stuff there that you would normally do on Windows.
Recommendations for hardware: A relatively normal computer. I would avoid exotic hardware. If you've got an old computer kicking around, give it a try on that. Or, eBay is full of used corporate Dells that will do the job for pocket change.
I'm a fan of Linux Mint; I've been daily driving it for a decade now, but really don't worry that much about distro or DE, if you're really looking to get into programming and such you'll probably spend a lot of time in the terminal anyway.
Oh I almost forgot: Welcome to the Linux community!
Seconding all the previous comments recommending Linux Mint: since you come from Windows, you'll probably feel most at home there. It is also possible to do all common tasks without ever opening the terminal.
Mint should run fine on any hardware, but to be most safe, try to use something that is at least 1-2 years old and stay clear from dedicated GPU as first (in particular Nvidia).
I'd also advise that the packaging situation for distributing software in Linux rn is somewhat messy. Thankfully, multiple format (apt, Flatpak) are directly available in the Linux Mint Software Center. In case you need to use some proprietary software (Chrome, Spotify, idk), you'd probably want to go with Flatpaks.
Probably Linux Mint (https://linuxmint.com) will be the best experience for you. If you have newer hardware or you're not sure scroll down to the bottom on the download page and download the "EDGE" iso since it has newer software than the default versions and more hardware support. If you have older hardware, you can probably install the Cinnamon iso too but if that doesn't work install the XFCE iso. Finally flash it onto a USB drive with https://etcher.io/ and boot into it, testing if some things work like audio and video. Software like VSCode etc. are already on the software manager so you won't have much trouble with writing JS.
Debian + Gnome. The debian wiki is full of great documentation. If you prefer watching, there's so many great (and not-so-great) courses on YouTube. I personally found tutoriaLinux's series helpful. Please understand that is merelyy what helped me at that point in my journey not necessarily the best tutorial series for you or anyone else.
My biggest tip is, regardless of the teacher or the lesson: follow along. Learn by doing, not by watching someone else doing. If you find yourself thinking anything like "couldn't I have done this" or "but what would happen if I changed this parameter": Do It. Try it out. Seee what happens.
Coincidentally, my second biggest tip is: use a test environment to do anything that you don't fully understand. Even if it's only a new folder with a bunch of empty files to practice file manipulation commands, it's way better than losing your important files. Anything that affects software configuration should be backed up first, anything that affects the OS should be tested in a VM
If you want to go low budget and play around there's lots of SBCs that can run Linux. Check here for example : https://www.armbian.com There's also ones that come as light weight keyboard, for example the pi400 Easy to carry around and put into a HDMI monitor. A drawback is that when using ARM there is sometimes software which only runs on amd64 family though that does not happen very often. Other option is to look at refurbished laptops. If you skip the chromebook ones (Which can be cumbersome to run plain Linux on unless you want to play with Linux and Android on top of ChromeOS) you can find them for 90 Euros or more.
There will be lots that will make you feel lost, because of the design language differences and the widely different philosophy, but you got this. Just take it at your own pace, one web search at a time and you'll be grand!
Also would recommend trying out the distros before you install them in a virtual machine since it's easier to try multiple distros without the hassle of setting them up. Since you are in windows at the moment, you probably should try virtualbox
Edit: ventoy is a pretty cool project for when you want to setup a pen with the installation isos to the baremetal.
Your first hurdle will be to figure out how to install VS Code. Double clicking the downloaded .deb file often doesn't work. You'll need to follow the instructions on the official page under "Debian and Ubuntu": https://code.visualstudio.com/docs/setup/linux
Specifically the part about 'sudo apt install {distro}.deb'. The other parts are not needed.
Follow the first few steps of this guide to download Linux Mint, create a bootable USB, and live boot into it.
You can now play around with this like it's a real system. Nothing will be saved when you shut down.
When you are ready, you can continue with that installation guide to either dual boot, or completely wipe your disks to use linux. (To start, I recommend dual booting. You never really know when you'll need it as you're transitioning.)
Hardware wise, you'll be hard pressed to find any even half-way popular computer that can't run some form of Linux. So I'd say just get something that's within your budget. Those x86 APU-based mini pcs that you can find for ~$200 are becoming pretty popular for projects these days. Something like a Raspberry Pi or Orange Pi or whatever might also be fine depending on what you want to do with it, just keep your power expectations in check. If you want to spend more money on something with graphics hardware, I'd recommend going for AMD over NVidia, just because the drivers are built into the kernel and essentially no-hassle.
When it comes to software, especially if you're on x86, just arbitrarily pick one of the reasonably popular distros like Ubuntu, Fedora, PopOS, or any of the other ones you've probably heard of. One of the first things to learn about "Linux" is that there's a whole ecosystem of software projects behind it, and there is a lot of overlap between the software that each distro runs. Yes, there are some meaningful differences between, for example, Ubuntu and Fedora, but I think they are much less meaningful to a noobie (who is just learning the basics of Linux) or an expert (who probably knows enough to bend and customize just about any distro into whatever they want).
Small caveat #1: If you prefer to have a desktop that more closely resembles Windows (like the one of the Steam Deck's desktop mode) you might want to pick a distro spin that uses the KDE Plasma desktop. On the other hand, if you want to play around with something that's a bit different than what you're used to, it might be worth checking out a distro spin that uses the Gnome desktop. I can recommend them both for different reasons, so you might want to check out some videos of them to see what you're more into before picking. (Other desktops are available, these are just the two big ones! So there truly are a ton of options to explore here if you want to.)
Small caveat #2: At this point in time are you more interested in stability or customization? If you want a truly rock-solid Linux system that's hard to ever break, you might want to consider one of the new "atomic" distributions like Fedora Silverblue/Kinoite (or others), though you might find some of their limitations annoying. On the other side of the spectrum, if deep customization and flexibility is what you're looking for, then you might want to venture into the deep end with things like NixOS or ArchLinux, just keep in mind that they can be very technical and overwhelming for noobs. Personally I have been using Fedora Silverblue for a couple years now and I love the stability of it, and I can work around it's limitations with distrobox.
Another thing to consider is just using what you already have. For example, playing around with Linux in a virtual machine, setting up a Linux-based server on one of the popular VPS services, or just plugging your Steam Deck into a dock with a keyboard and monitor attached and playing with something like distrobox (which you can probably find a guide on how to set that up for your deck).
I recently bought a used LG Gram to install Arch on after a few years of not having Linux…so recently did similar research, albeit with more Linux knowledge. I do NOT recommend Arch as a first distro unless you are willing to put in time for troubleshooting. That said, looking up a model of laptop you are considering + Linux in a search engine can be valuable in determining how much ease you will have getting basic (trackpad, Bluetooth, webcam, WiFi) items working. I dabbled with a CD distro as a gateway to Linux and the “live disk” option is still the best way to experiment. Nowadays it is on a USB stick. This method allows you to play around without actually installing. Others here have already given good advice. If you go the USB stick route, do be careful with anything related to disk partitioning and formatting. I accidentally wiped my dad’s hard drive once when I was not being careful!
You can essentially use any hardware. If you already have an old pc or laptop, you can (probably) use that. If you get a new one, the only major recommendation for usage with linux is: don’t get something with a nvidia graphics card.
And where to begin: Probably some linux distro like Linux Mint or Pop_OS. They‘re reasonably beginner friendly. But, if you have some more specific questions (or need more help finding hardware or don‘t know what a distro is), feel free to ask.
The beauty of Linux is that it'll run on almost anything. I recommend second-hand office desktops for your use-case, you might find a good deal and get peripherals with it. If you somehow manage to come across GPUs at your price bracket, avoid Nvidia; poor drivers, support, corporate hostility etc.
My first distro recommendation is going to be a bit different from the usual, purely based on my experiences with other popular go-to distros. I'd recommend you try Fedora KDE, Fedora is a wonderful distro that always makes you feel welcome. KDE is a lot less resource demanding than Gnome, and is the desktop that ships with the steam deck. Personally I don't like Gnome since it's a bit Fischer-Price my first DE for me, but I encourage you to try everything.
I'm using the Budgie DE by the way, it's a good middleground between Gnome and KDE. Fedora provides "Spins" for all major desktops.
If you're feeling brave I'd like to quickly mention a version of Fedora called Fedora Kionite, it's whats poorly named an "immutable" distro (Atomic is a better name but don't worry over that right now). Very basically these distros restrict access to the core, or base, system files; which massively improves security and reliability. I use Fedora Onyx which is immutable with the Budgie DE, Kionite is KDE. Immutability is very new in the pseudo-mainstream and very much in it's infancy, so it will annoy you at times if you choose this path. But it has massive benefits and, I think, is the future of the Linux desktop.
I'm assuming this is your absolute first adventure into the FOSS world, which I know is probably wrong since you're on Lemmy, but I'm also still going to mention you should use the Firefox web browser as you said you were doing JavaScript. Firefox is the absolute most popular browser on Linux and has amazing developer features.
We're all eager to help budding penguins on their journey, so feel free to message me directly anytime for support or make posts right here.
Linux mint is a really easy and simple starting point. Fedora and openSUSE tumbleweed are a tad more advanced but allow more selection on your desktop environment (mint uses cinnamon, while Fedora and SUSE have both KDE and Gnome options) and thus can potentially support things like variable refresh rate and, when it gets support from KDE later this year, HDR.
For peripherals, if it's razor or Logitech, it'll just work and have community apps made to configure them. I personally like Keychron's stuff so that's what I use and that's fully Linux compatible, it does require some setup to work though. HDR is unsupported for the time being, but variable refresh (gsync/freesync) is in the KDE Plasma desktop environment under Wayland. On the topic of Wayland, if you want to make use of this new display protocol you'll need an AMD graphics card, as NVIDIA has been slacking with their Linux drivers. NVIDIA is getting better but it's not stable enough on Wayland for the laymen. In the case of only having an NVIDIA, X11 works fine, but it's just missing some features.
Also you won't need JavaScript, 90% of what you do will be through the GUI (depending on the distro), especially once you're set up. I know Fedora needs to enable rpmFusion, NVIDIA repos if on NVIDIA, and install codecs for hardware accelerated playback. Mint doesn't have these issues for the most part, though you'll want to enable flatpak's and consider disabling snaps. Mint already includes a graphical installer for NVIDIA and includes the codecs needed for hardware accelerated playback
I use the steam deck as my main computer running the stock steam os.
I'm currently using distro box to set up different programming environments. This is possible on steamos, which has the system directories as read only, by installing podman into the home directory. Distro box have a guide for steamos setup.
I run neovim but I would think you could run vs code if you use it. Haven't tried running a web server on it yet, but again, should be possible. Or, you can get yourself a cheap vps from digital ocean or linode if you really want to learn Linux the hard way!
Debian! As far as hardware you'd probably have an easier time with an AMD GPU but otherwise most everything works. Get intel wifi if you can/want wifi.
bunches of refurbished t-series thinkpads out there - t480, t430, etc. apparently the 490 is one to avoid. I got a t470 some months back for $150 - put mint on it and have been very happy with the performance.
I'm adding to the pile of Linux Mint recommendations, though I recommend the XFCE version, as it's lightweight. For hardware, if you want a laptop, definitely go with a refurbished ThinkPad. If you're wanting a desktop, look for something cheap and used. If you aren't gaming, the specs aren't super important
Hey for me it was the same. For Hardware you can use anything. The optimal is a full AMD build Or Intel AMD build but Nvidia could give you a headdic. For distros I recommend something Arch based like Manjaro or EndeavourOS. As DE I recommend Kde Plasma because out of the box it looks pretty much like Windows but is highly customizable.
My current Windows PC isn’t what I’m looking for; it’s a big and powerful gaming laptop from a few years back. I’m looking for something light and portable, but with a full keyboard for coding.
Pricewise I’m looking for something around $350; if this is unreasonable let me know.
As I understand it, Steam Deck uses KDE, so I’d like to stick with that for now.
But literally any PC that’s within your budget. OK maybe that’s not true, there might still be some crap WiFi cards out there with weird firmware that don’t support Linux very well. Find an older name-brand PC within your budget. Before buying it Google “[make and model] Linux WiFi” and see whether there’s tons of complaints about the WiFi. If not, go ahead and get it, put Ubuntu or Linux Mint on there, start banging out JavaScript projects, profit.
Start anywhere, being interested in it is all you need (and a decent search engine, and learning how to describe the problems you have to the search engine). Whatever you do, I think it's a good idea to pick something that will be your project on Linux so that you have a concrete goal that makes Linux useful.
For hardware I'm a cheapskate so I recommend using whatever you already have, but I'm sure others here will point you in the right direction 😹
I recommend dual booting at first with grub, so it's more of a departure from windows. Using a VM like Virtualbox or Hyper-V is a bit safer and easier, but you're probably not interested in Linux for safety or ease of use.
We're lucky to live in a time where if all you have is a Linux tty (no gui, just a text mode shell) you still usually have a phone with Internet to look for help. It's a good exercise when you have the time to try and get the system back up in those situations without external help for at least a few minutes. Most distros still install manpages just for times like these (man and info commands view them)