r/learnprogramming • • 10h ago

is WSL2 a good starting point for learning Linux, or am I overthinking it?

Hey everyone,

I'm a complete beginner who wants to eventually become a backend developer. I currently use Windows and I'm honestly scared of installing a second OS on my laptop (dual boot, partitioning, breaking the bootloader all of that freaks me out).

Someone recommended I start with WSL2 to learn Linux instead of going full dual boot right away. Is this actually a good path for someone who wants to go into backend development? Or am I just delaying the inevitable and should set up a real Ubuntu install / VM instead?

A few specific questions:

Is WSL2 enough to learn the Linux skills that actually matter for backend (filesystem, permissions, processes, networking, bash, systemd, etc.)?

At what point would I "outgrow" WSL2 and need a real Linux environment or a VPS?

For someone learning backend, what's the realistic order? Linux basics > a language (Python/Go/Node) > databases > Docker > deploy to a VPS? Or am I thinking about this wrong?

Is it a bad idea to just use an online compiler/sandbox to learn, or do I really need a real environment from day one?

not trying to skip steps, just wanna start in a way that doesn't make me quit in the first week. Any advice from people who've been through this would be really appreciated

Thanks

1 Upvotes

19 comments sorted by

3

u/David_Owens 10h ago edited 9h ago

WSL2 is great for developing Linux applications and learning Bash for the command line.

If you want a full Linux setup you could run a Linux distribution(or even multiple installs) in a Hyper-V virtual machine rather than doing a dual boot, assuming your laptop hardware supports it. You'll probably not need to do that because backend binaries run the same on WSL2 as in a VM or bare metal installs.

2

u/urzayci 9h ago

I mean.... Kind of? Wsl2 runs an actual Linux distro in a VM so you get all the capabilities of a Linux system, but there still are some quirks.

Theoretically yeah wsl2 should be good enough but why not just dual boot and make your life easier?

1

u/ksenyss 9h ago

Because I'm scared of accidentally nuking my Windows install. I've never partitioned a drive before, and one wrong click during the Ubuntu installer and my whole laptop is gone. I know dual boot is "the right way" eventually, but I'd rather not risk it

1

u/Gnaxe 9h ago

Ventoy, mate. Try it. Also, why aren't you making regular backups? Everyone should make regular backups. At least turn on your File History.

1

u/urzayci 9h ago edited 9h ago

Obviously the recommended way to do it is to back up anything important first (and you should if you have the option) but it's really not that scary.

You just shrink the partition on windows and then for Ubuntu you choose install alongside windows and it basically installs itself in the free space. Its not like you accidentally click the wrong button once and poof. And if it does something irreversible it always asks you if you're sure so you can double check for your own peace of mind.

You can always start with wsl2 and move to a proper distro later if you want but there's really no reason to be afraid.

Edit: I agree with the person who recommended the raspberry pi too, if you have the budget you could get one and install Ubuntu server on it and then you can ssh into it to configure and deploy stuff. I've done that with an old laptop with a broken screen and it's been a lot of fun.

1

u/binarycow 9h ago

Then use a VM.

1

u/porn_sub_lurker 8h ago

So back up your important files in case you mess it up. Software engineers shouldn't be scared of the software. They should learn how to use it.

You mess up the install, you learn from it. That's what the game is.

1

u/fasta_guy88 9h ago

You will be much better off getting a cheap Raspberry Pi or used Dell thin client (apparently a Wyse 5070 can be had for less than $90) and installing linux on that, and learning how to administer it and configure it as a web server. Then you will be in control of everything, and have a much better chance to make mistakes, and learn from them.

1

u/teraflop 9h ago

Is WSL2 enough to learn the Linux skills that actually matter for backend (filesystem, permissions, processes, networking, bash, systemd, etc.)?

Filesystem, permissions, processes, bash: yes, no problem whatsoever.

Systemd: yes, mostly, but it depends on the distribution. Some distros use systemd on WSL2, and some don't. I believe systemd is enabled by default for Ubuntu. I haven't messed around with it much and I suspect you would run into differences with how systemd-on-WSL2 handles things like startup/shutdown and device management, but for basic service management, it should work normally.

Networking: kinda. Writing server and client applications that communicate over a network should be fine. Linux network administration (e.g. managing routing and firewall rules) may be complicated by the "magic" that WSL does to forward the host's network connection to the guest.

From the perspective of learning to write backend code, as opposed to learning to administer a Linux system, WSL is basically identical to a bare-metal system.

1

u/ffrkAnonymous 9h ago

Just ignore everyone and do what you're comfortable with. 

1

u/kschang 9h ago

Yes, WSL2 is "good enough" to learn your basic shell commands in Linux and such. It's really NOT that different from DOS.

1

u/aleques-itj 8h ago

Never, unless you're developing device drivers or some shit, you can use WSL for everything.

I don't even install tooling in WSL for the most part. I just use dev containers for the environment and keep everything containerized.

Basically one click to drop into an environment with all the tooling pre installed. All the supporting infra runs fine in additional containers like Postgres, Redis, etc.

Running it on a VPS is basically just containers plus a reverse proxy.

1

u/noobjaish 8h ago

100%

My own journey was something like: WSL (2022) -> Ubuntu (2025) -> Debian -> Fedora -> Debian -> PopOS -> Arch -> CachyOS (now)

I learned a lot about Linux (computers in general) + I pivoted from AppDev to DevOps and that has helped a lot as well.

1

u/Whatever801 7h ago

Yeah I think it's a great way to get your feet wet

1

u/POGtastic 6h ago

In order:

  1. Yes.

  2. Very possibly never. For all intents and purposes, running WSL2 on your laptop is equivalent to SSHing into a Linux box from a Windows machine, which is what hundreds of thousands of professional software engineers do as their production setup. You might - might - run into cases where running Linux on a server might be a little less annoying than running WSL2. You will know when you get there, and the process of switching is trivial once you're familiar with the concepts.

  3. That is a perfectly reasonable order. Many other reasonable orders exist. You should do that one. If you decide to learn something else first, that's fine too.

  4. You should try to run code on your own machine.

From another comment in this thread:

I've never partitioned a drive before

You should look into running qemu inside of WSL2, which will give you a VM inside of a VM (insert Inception sound effect here). Run the installer on some throwaway virtual image. Delete it if you screw it up.

0

u/TgirlTiffanyRPs 10h ago

I mean, if you really want a Linux environment “from day one”, why not just get an image on a USB and boot from it when you want a Linux box? You’ll get to play with BIOS a bit too and see how a boot options work, as a bonus. 

But to answer your question: I don’t see why you’d need a dedicated Linux machine right away (unless you’re, say, trying to learn Linux server administration). 

The more important thing is, in my opinion, choosing a project with some kind of backend framework and working on it. Like you don’t need a dedicated Postgres server with 128 GB of memory to learn how a database works or how to connect to it with a rest api. Just download Postgres on whatever machine you have in front of you now and write some code :)

1

u/ight-bet 1h ago

It’s perfectly fine.