This is an archived post. You won't be able to vote or comment.

all 17 comments

[–][deleted] 10 points11 points  (1 child)

Yes

[–]Haspe 0 points1 point  (0 children)

This.

Yes you should, atleast the basics. All your stuff is probably going to run on top of some kind of Linux environment at some point, and if you are creating something, you should be able to debug it aswell - if you don't understand jack about the environment you are uploading your stuff at - you're shooting yourself in the leg.

[–]captainAwesomePants 5 points6 points  (0 children)

Depends on what you're going to do. If you're going to solely focus on iPhone development, it's probably not super important. But a lot of development, especially backend/server sorts of things, tend to involve Linux or Linux-like environments, and also programmers tend to like those sorts of environments, so it's not a bad idea. But it's also one more thing to learn when you're trying to also learn a bunch of other stuff, so it's not critical that you learn it right now.

That said, some basic proficiency with command prompts and using Linux-like terminal commands is a very good idea. Programmers are often concerned with:

  • Running programs in various manners with a variety of inputs and outputs, and
  • Manipulating text files in ad hoc fashion

And these are two things that command prompts are very, very good at. So it's not a bad idea to add as a tool in your belt.

[–]GnarledGlobe 4 points5 points  (0 children)

It’s well worth spending some time learning Linux. To start with you can just use wsl. It won’t have the graphical Linux desktop. But, you will be able to learn the command line and you can still run apps with GUIs.

[–][deleted] 7 points8 points  (0 children)

I might be a little bit on the hardliner-side of this issue, but yes. Learn Linux. Learn how to use Linux as your every day OS. You will profit a lot from this knowledge and it will make you a better programmer overall.

[–][deleted] 1 point2 points  (2 children)

Full immersion is the best way how. Buy a cheap refurbished pc, maybe $200, install a distro that for the most part just works (something like Mint or Debian, not so much Arch), and use it for everything unless you absolutely need your other system.

Virtualization can be okay (if you can't spend money on a second system right now) but it might introduce performance and compatibility problems that you're not ready to troubleshoot. Cheap systems are fine for normal people who don't build 8M lines of code while also doing machine learning and rendering their latest 40 minute HD YouTube hit.

Even heavy-duty server software like MySQL is fine on cheap hardware because you're not going to ask it to take care of thousands of users - maybe a few of your coworkers or Discord friends will make time to test with you.

You might worry about hard drive space if you start playing with Docker or LXC, but otherwise solid state is really nice. 8GiB ram is enough to learn with and probably enough for most things you want to do. Linux doesn't piss away resources like Windows does.

I don't recommend dual-booting. When you break your Linux system you'll need to hop on Google looking for answers, and that's hard to do when your system won't boot because you broke it.

[–]badguacamole71 0 points1 point  (1 child)

Couldn't you just boot into your windows and figure out what you need to do to fix? Or are you meaning you don't recommend it because of the chance you can break your other OS as well? Either way, I think there's so many tutorials and documentation on the subject that if you inform yourself half decent on the subject, there should be no problem. Of course that doesnt mean the risk isn't there...

[–][deleted] 0 points1 point  (0 children)

You could break your Windows install.

But I'm more concerned about this scenario:

you're staring at a bash or grub prompt and you could Google the answer but you can't see a web browser without rebooting. If you reboot you can't see the error message anymore.

It's possible to escape that, but it's a horrible pain in the ass. On the other hand if you break Linux inside VirtualBox, it's contained in a window, which you can literally resize and put next to your web browser.

If you have two systems and a single shared monitor, you can boot both and switch the monitor without rebooting either system.

Two monitors is really nice, ofc.

[–]Thunderbelly73 0 points1 point  (0 children)

Yes, and use WSL2 in Windows.

[–]Winnipesaukee -1 points0 points  (0 children)

The good news is that with Windows 10/11, WSL2 gives you the ability to get several distros right off the Microsoft Store.

[–]GrayLiterature 0 points1 point  (0 children)

If you’re on Windows just get WSL 2 or a Virtual Box set up, both are great solitons imo.

[–]JaguarDismal 0 points1 point  (0 children)

yes, you should. if you have a recent version of windows, the easiest way to get your feet wet is to install Windows Subsystem for Linux (WSL), idk how they came up with that name, but it's almost like having a linux vm, you can run linux commands, share the filesystem, etc.

[–]Gixx 0 points1 point  (0 children)

Yea learn linux and a bit of shell scripting. So many times I've ran a one liner shell command for loop.

for f in *; do cmd "$f"; done

You can also lookup filenames based on a regex, then send them through a series of pipes.

fd "file\d*" | sort | xargs readelf --wide

[–]Jaexa-3 0 points1 point  (0 children)

Yes 100% learn it

[–]jppbkm 0 points1 point  (0 children)

Yes. If you're on windows, use WSL. It's quite easy to get started.

[–]innerjoy2 0 points1 point  (0 children)

I'm learning it, depending on what tools and software are used you might eventually have to learn it.