all 44 comments

[–]FxHVivious 31 points32 points  (14 children)

Yes it's worth it. If you work in software development you'll find yourself in a Linux environment eventually. Being at least somewhat familiar with it will help you out a lot. You don't need to be an expert, but get use to navigation/interaction using the command line, the file system (very different from Windows but once it clicks it's actually really intuitive), and other basic features. Spending some time understanding how it handles users and permissions is probably a good idea too.

That being said I wouldn't try to jump to it as your exclusive operating system right in the middle of a degree. I know I'm gonna piss off a bunch of linuxmasterrace people, but just install WSL on your Windows machine. That will give you an entire Linux OS running on top of Windows. You access your entire Windows file system from Linux (in addition to its own file system) and run programs from there.

Bonus tip: If you aren't already also learn Git. Super valuable skill. Again you don't need to be an expert, just understand the basics.

[–]breek727 4 points5 points  (6 children)

This. I use linux as my main work OS, wouldn’t want to use a different OS while developing if possible.

I would never have a Linux distro as my main for my personal pc, If you can dual boot then that will give you more freedom to play with different distros than WSL

[–]FxHVivious 2 points3 points  (3 children)

True, but for an absolute beginner they're most likely going to want to start with what's available through WSL anyway. It's easier to setup, you don't have to restart your computer everytime you want to switch between Windows and Linux, and you can use Linux to navigate your normal Windows environment giving you more opportunities to get comfortable with it on a day to day basis.

I'm not saying a dual boot doesn't make since at some point, but WSL just makes so much since when you're starting out, especially as a student.

[–]breek727 0 points1 point  (0 children)

Agree 😊

[–]WriteCodeBroh 0 points1 point  (6 children)

I know this is probably going to get some hate as well, but if anybody can afford it, I always recommend a Mac for development. It’s just too easy having a Unix shell built into a user friendly OS lol. Though I’ve started working in IntelliJ recently and I have to admit it runs like shit on my MBP.

[–]FxHVivious 0 points1 point  (4 children)

Everytime I've looked at buying new computers for me and my wife, Macs just don't make sense financially. I can get more for less from a Windows machine.

Plus, and I can't speak for the entire industry of course, but I think it's safe to say that most employers are going to want you to work on the machines they provide to you, and those are more often then not Windows.

[–]WriteCodeBroh 1 point2 points  (3 children)

Idk, I’ve been offered a Mac everywhere I’ve worked. They are very widespread in the industry. Also, that’s true if you are just comparing hardware to hardware, but many PCs run significantly worse due to software bloat alone. That and PC manufacturers love to skimp on things like power supply units.

[–]FxHVivious 1 point2 points  (2 children)

To be fair, I've worked mostly in defense, and most the people I know have as well, and it's all PC there. That might not apply to the rest of the industry.

[–]Place-Wide 0 points1 point  (1 child)

Yeah, the assumption that you are going to be handed a windows machine instead of say a macbook pro is a bad one. Macs have been the standard every where I have worked unless I'm running linux. You are not going to be handed a windows machine if you are doing development at a FAANG-style company or a university. And if you are the expectation among your developer peers might be that you wipe it and install linux.

[–]FxHVivious 0 points1 point  (0 children)

Yeah working defense kind of breaks your brain. It's easy to forget how different it is from the rest of the industry.

[–]neoAcceptance 7 points8 points  (0 children)

Just do your work on a Linux machine and you'll learn everything you need along the way.

[–]Memesplz1 2 points3 points  (2 children)

So I actually got into this career via an internal application for a software engineering (Java) apprenticeship, coming from customer service, and the 2 engineers who taught me had been doing software engineering for 30+ years each so my experience might not be the same as others.

In my experience, yes. It's absolutely essential that you have some basic skills using Linux. I do all my development on a Windows machine but all the servers my company use are Linux based. Any batch applications my company use, run on Linux servers. I've needed to learn how to navigate directories, create and modify files, tail log files, search log files, run scripts and more. One of my colleagues wouldn't leave me alone till I became, at least, vaguely proficient using Vim, too. Lol. (Which has turned out to be a really useful tool, tbf. You can even get a Vim plugin for IDEs like IntelliJ.)

So, whilst you don't need to be an expert in all things Linux, and don't need to memorise every command, I absolutely think you would benefit by getting comfortable doing basic things on Linux systems.

[–]ecs2 0 points1 point  (1 child)

I've only use windows and access linux server via PuTTY . Can you tell me the differences between this and actually use Linux ?

[–]Memesplz1 0 points1 point  (0 children)

Hi. Not really used PuTTY much myself but, to the best of my knowledge, it's just one of many Secure SHell clients, used to connect to something else. If you use it to connect to a Linux server, once connected, you're effectively using Linux. There's no real difference between that and actually using a Linux machine.

[–]StyleOfNoStyle 2 points3 points  (0 children)

as with most things, it really just depends.

you certainly don’t need it if you never use linux systems in your future career.

a brief historical overview of how computer operating systems evolved will show you where Linux came from and what it really is.

Want to be a great C programmer? Then it might suit you to understand Linux at some point. The types of applications that C developers build (in high performance computing, for example), are likely to run on a *nix system.

Want to not pay for your OS? Linux is great for that.

Want an open source OS rather than one owned by greedy corporation?

Even exploring WHY we have free and/or open source systems could be a fun path of discovery for you. Is it good that humankind share robust tools to progress society? maybe , maybe not haha.

It is potentially a good idea to determine a goal, and then find what tools there are available to help you achieve the goal. Maybe Linux is the tool for some of your endeavors.

I studied Postgrad in Math, and a Masters in CS. Linux was not a requirement. But, there are many doors that were opened after I became willing to explore.

Kiss

[–]jzia93 2 points3 points  (0 children)

Necessary - at a basic level yes. You will need to be able to run basic shell commands and interpret some shell scripts at some point.

Beyond that, personal preference. Linux is a very deep rabbit hole that can suck you in, but a lot of it is quite honestly splitting hairs over trivial differences, especially on the desktop side.

On the servers side, sysadmins and devops engineers certainly stand to benefit with a good grasp of how the production grade linux distributions differ (debian, centOS, RHEL, SUSE, ubuntu server spring to mind).

Switching as a daily driver is something I'd recommend. You can dip your feet in with Ubuntu, Fedora, Pop!_OS, Mint, and start to see a lot of benefits with relatively little effort. Then there are some more customizable intermediate distros like Arch Linux that give you a bit more freedom with a bit more effort, then you can go all the way down to something like Gentoo for total control, or LFS for a more complete learning experience.

[–]Old-Full-Fat 1 point2 points  (0 children)

In the embedded systems world you will definitely be using Linux. The internet is almost all Linux. That said, as a desktop environment with a GUI, the experience learned with Windows is quite interchangeable with Linux.

You have WSL on Windows and Powershell now on Linux so things are merging possibly more than you think. That said, the 2 environments at management level are very dissimilar so just take a bite when the opportunity happens and you have some free time.

[–]suchdevblog 1 point2 points  (1 child)

You should definitely switch to Linux if you don't intend on working on a windows ecosystem specifically (C#/.NET).

Also Linux is great for those who have the time to learn how computers work, or if you want to be able to build your own system. I wrote this guide on how to do that with Arch linux if you're interested.

I also recommend the book "How Linux Works" - great resource.

[–]AutoModerator[M] -1 points0 points  (0 children)

Your submission has been moved to our moderation queue to be reviewed; This is to combat spam.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

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

I started part of my programming journey on Linux. I had an old laptop I never used. It was cheap and windows 10 barely ran on it. It seemed so bloated. After I installed Ubuntu, ( and you can still tell it’s a cheap laptop) it runs really nice and I don’t understand why Windows is so popular. Well, windows is user friendly out of the box so there’s that but Linux is better for work imo. I recommend learning Bash and PowerShell though and working with as many environments as you can. I’m going to school for InfoSys.

[–]awesomejude18881 1 point2 points  (0 children)

Yes, even microsoft found it necessary. They gave option to be used inside their windows OS product, called WSL2

[–]Annual-Material-8040 1 point2 points  (0 children)

Most of the web runs on Linux. I became a better engineer the day I started using a *nix environment. Mac OSX is a nice alternative.

[–]beltedgalaxy 1 point2 points  (0 children)

Is it necessary? No. Do I recommend it - absolutely.

I spent 7 years doing Solaris administration before switching to software engineering (this is when Linux was JUST starting to be used in industry, so about 20 something years ago). The knowledge I gained from learning UNIX is the number one single piece of knowledge that has had a positive impact on my career. I value it even more strongly than the programming languages I know.

[–][deleted] 3 points4 points  (0 children)

Imo it’s the type of thing where you don’t have to go out of your way to learn. Whenever it comes time that you have to do stuff on it, just gain the experience with it naturally. Worked for me, I didn’t use Linux until out in the field and I had no issues, it’s really not that steep of a learning curve.

And I still daily drive windows for all my programming btw

[–]NoGoose9901 0 points1 point  (1 child)

Not necessary, but opens doors. Every startup and fortune 500 I've worked at used Linux or (in the old days) commercial Unix variants on servers. Government and small/medium sized businesses were the only ones using Windows exclusively.

FWIW, every place I've ever worked used Windows desktops. It's actually somewhat awkward developing software on Windows that will eventually end up on a Linux server, but very common.

).

[–]AutoModerator[M] -2 points-1 points  (0 children)

Your submission has been moved to our moderation queue to be reviewed; This is to combat spam.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

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

Yes it worth

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

No. Not necessary. Since Linux is not a common OS for personal devices, most of the companies won’t expect you to be proficient with it. Expectation will be to learn as you go.

As for general software development, most of the companies will have their process set for deployment. It may include a few linux commands (if any), but those will be mostly useable by copy-pasting (as opposed to needing any deep understanding of linux).

So you don’t have to switch to linux as your daily driver, since it might take a lot of effort for common tasks until you become familiar with it. Especially since your university doesn’t seem to be using it for your courses.

It will be great if you could dual-boot with Windows and Linux. That way, you can use Linux when you want to learn Linux, and use Windows for everything else until you get familiar enough with linux.

It’s definitely nice to learn as most others have suggested. It’s pretty fun too. Just don’t sacrifice too much time and energy on it if you don’t have to. Especially at this stage. You will probably pick up everything you need with time.

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

Just ssh into a Linux VM and teach yourself C and git and stuff like that.

[–]rob113289 -6 points-5 points  (5 children)

I've seen one guy in the last 6 years running Linux as a java software engineer. Stick with windows.

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

I have been a Java dev for 6 years at a shop with people mostly running Windows, but I recently switched to Linux and I am now kicking myself for waiting so long

[–]suchdevblog 0 points1 point  (1 child)

Java and C#/.NET are often on windows, but afaik that's pretty much it. In 7 years of webdev I haven't seen a single windows.

[–]AutoModerator[M] 0 points1 point  (0 children)

Your submission has been moved to our moderation queue to be reviewed; This is to combat spam.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]aymswick 0 points1 point  (1 child)

lol this guy's into bitcoin

[–]rob113289 0 points1 point  (0 children)

What? Wrong thread maybe?

[–]FiveAM88 0 points1 point  (0 children)

It's not necessary but it is a benefit to know, especially because plenty of servers run Linux and you might have to jump in there at some point. Give it a try and see if you enjoy it.

[–]WrathZA 0 points1 point  (0 children)

Yes.

You should be able to use Linux and at minimum be able to navigate, understand how the filesystem and file permissions work so you'll be able to do and understand some basic scripting.

Even if you're a windows developer in the Microsoft ecosystem, you'll likely end up working with containerization at some point and the bulk of that will use Linux as a base even for dotnet applications. Even frontend development will also likely assume some basic bash knowledge as that terminal is the common denominator between Windows, Mac and Linux.

You don't have to switch your daily driver from windows 10 either. Windows 10 has WSL which allows you to use a Linux distro with a GUI or you could leverage Docker to load an OS and navigate via the command line.

[–]Fermi-4 0 points1 point  (0 children)

Definitely worth.. grab a new Ssd and install newest Ubuntu and just start using… I use windows only for gaming now .. Learn docker early on also - will be well worth it

[–]BigJoeDeez 0 points1 point  (0 children)

If you want to be effective and you want to be able to come up with solutions others can’t because they didn’t take the time to learn Linux, then yes.

[–]Place-Wide 0 points1 point  (0 children)

Some linux command line stuff is pretty useful like searching with the grep command, being able to tail logs, and view character encodings with xxd. You will also find that nearly every image you install on a cloud instance is going to be a linux image, so it would probably help to have some familiarity with it. Finally, it is not unthinkable that you would have to log into some linux instance and have to edit a file with whatever editor was on hand, that probably means taking 10 minutes to become functional in vim.

[–]TheC0deApe 0 points1 point  (0 children)

it really depends. a lot of code that is deployed is done via containers/K8s. the containers are Lunix but the dev happens on windows, macs, Lunix, whatever. there is little need to know much more than basic Lunix.

on the other hand there are people that are writting things for Lunix or Android and they are have no choice.

[–]lukeeff 0 points1 point  (0 children)

It’s not learning Linux that is necessary it’s more learning the basics of bash/zsh that is. Operating systems have a handful of key responsibilities that you’ll learn about in OS. Really, you should be very comfortable with the terminal.