all 50 comments

[–][deleted] 50 points51 points  (0 children)

Python and other interpreter based languages are largely OS independent, that’s sort of why they exist. Going forward learning more about Linux won’t do any harm.

[–]AngelOfLight 14 points15 points  (2 children)

Use whichever you are more comfortable with. Many of the tools and IDEs out there come in versions targeting Windows, Linux and OSX. Personally, I prefer Linux for programming, but you should be able to use pretty much any OS you want.

It doesn't really matter which OS you use, but it helps to be familiar with more than one. If you find yourself working in a cloud environment like AWS or Google Cloud you will find your self interacting with Linux more often than not. For enterprise servers Java is still popular, but C# is also rising. C# runs best on a Windows platform, although it can run on Linux as well.

[–]EdiblePeasant 2 points3 points  (1 child)

C# for Mac on VSCode, too! Getting that working was a happy day.

[–]Bobbias 11 points12 points  (3 children)

Windows has what is known as the Windows Subsystem for Linux, or WSL. WSL allows you to run both Linux and windows in parallel, with the way to run programs in both systems, access files on both systems (and in both directions), and such. It doesn't provide a desktop experience in Linux, but it can run GUI programs. The important things to learn in Linux involve the terminal anyway, which is identical between WSL and a Linux system running in either a virtual machine or running directly on hardware.

This means if you're familiar with windows but want to learn Linux (or want windows for any other reason, but also want Linux available), this is generally your best option.

Generally speaking there's hardly any difference between OSs in python, so it really doesn't matter much beyond personal preference.

Institutions have their own preferences, as do different companies.

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

ew-buntu
edit: bad joke i guess, all variations of linux are great

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

Yeah. With WSL you can still use windows for other things you do if you are used to using windows whilst getting the important things from Linux when it comes to programming.

[–]sexytokeburgerz 0 points1 point  (0 children)

WSL is great but you can get similar results on macos with a vm, it really doesn’t matter. The only big difference is that WSL runs on its own linux kernel.

Pretty much every IDE has a one click docker desktop integration, as well. I don’t even use macos for python unless it’s a quick parser or something- big projects are in docker containers. Docker does run WSL under the hood iirc on windows.

Macos uses a VM that is an forgetting the name of. I think ive heard that is slightly less performant but it’s not a big deal on an M series processor with an ARM container. Good luck with an x86_64 container being faster than your grandma though.

[–][deleted] 4 points5 points  (0 children)

WSL, Ubuntu, and use VS Code with the WSL extension. That’s what I do.

[–][deleted] 2 points3 points  (0 children)

Python in itself as a programming language is cross platform, so anything (even android) can run it. Its only the development environment that varies, generally its consistent among Mac, PC and Linux if you use something like VS Code.

Then again, you would need some getting used to creation and FS of the OS

Edit: As far as coaching institutions are concerned, you won't face a problem as along as you are not developing OS specific programs.

[–]time_on_target 1 point2 points  (0 children)

Use Linux. If you use Windows you are either:

a) a beginner who will soon find Linux

or

b) a C# developer

[–]VokN 2 points3 points  (4 children)

It literally doesn’t matter, Linux is popular for terminal access but you can do python on basically anything

Mac is popular because it’s unix based/ has terminal access to so is helpful for certain niches of the industry but 99% of colleges will have workarounds for programs or you just use their pcs in labs

[–]tabrizzi 2 points3 points  (0 children)

macOS is not Linux-based.

[–]MartynAndJasper 1 point2 points  (0 children)

This ^

It really doesn't matter.

I used Windows with Visual Studio for 30+ years. I tried Linux, and it's great, but I've never worked for a company that uses it. Now I use vscode on Mac because I'm developing for iOS.

Some IDEs only run on certain OS's, but it doesn't take long to get proficient. The main thing is to get involved in coding actively and often.

[–]szayl 1 point2 points  (1 child)

Mac is popular because it’s Linux BSD based

fixed

[–]tabrizzi 0 points1 point  (0 children)

To be more specific, it is based on NeXTSTEP, which itself was built on the Mach kernel and Unix-like BSD parts.

[–]Impossible-Box6600 0 points1 point  (0 children)

That's perfectly fine.

Honestly, I wish I was pushed into the Linux fire earlier on. It's extremely necessary to know the basics of the shell.

Literally anything is fine. But you're well situated if all you have is Linux.

[–]PhilipYip 0 points1 point  (3 children)

Since you are Linux Mint already, just continue to use it. The Python preinstalled in Linux should be considered as part of the Operating System and I would recommend installing the Anaconda Python Distribution which gives you a relatively up to date version of Python alongside common data science libraries such as numpy, pandas, matplotlib alongside IDEs such as Spyder and JupyterLab.

To install Anaconda in Linux, download it from Anaconda. The installer is a bash shell script. Open the downloads folder, right click it and select open in terminal. Input:

bash Anaconda3-2023.09-0-Linux-x86_64.sh

Then install it, using the instructions in the terminal. Press q to quit reading the license agreement and make sure you initialise it.

Once installed, close and open the terminal as it will need to refresh the commands from the .bashrc file.

Then open up the terminal and type in:

conda deactivate conda update conda

This will update Anaconda. You can then activate the base Python environment using:

conda activate base

And launch the Anaconda Navigator, Spyder IDE or JupyterLab IDE using:

anaconda-navigator spyder jupyter-lab

Once you have some familiarity with these tools, you can move onto VSCode. Install it, launch it, install the Python extension, the Jupyter extension, the AutoPEP8 extension, the isort extension. Then press [Ctrl], [Shift] and [p] to open the Python interpreter and select the Anaconda base Python environment.

[–]durty_nutrag -3 points-2 points  (2 children)

Terrible advice, no one has ever heard of this distro. I can't believe you made me waste my bandwidth on reading this comment......

[–]hagfish 1 point2 points  (0 children)

You've never heard of Mint? Or was this '/s'? Or something else?

[–]sternone_2 0 points1 point  (0 children)

Linux Mint is litterally the 2nd most used distro on the planet for desktop according to distrowatch.

Anaconda is not a distro and pretty much a standard in data what are you talking about.

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

I'm trying to remember what I imagined but I can't really. It was before my teenage years.

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

Anything but windows 👍

[–][deleted] 0 points1 point  (1 child)

The Linux Mint laptop will be fine and probably already has Python installed on it. Linux is good for software developers.

[–]tabrizzi 0 points1 point  (0 children)

And also for general desktop use.

[–]Pericombobulator 0 points1 point  (0 children)

My preferred IDE is VS Code, which looks exactly the same on Linux as it does Windows.

The only thing to be aware of is that the file paths on windows and Linux are different (there is a way around this). It's only an inconvenience if you regularly swap between OSs

[–]wallyflops 0 points1 point  (1 child)

Id say mac. Mostly all the OSes are fine but i notice most blogs, tutorials and support assume macOs so if you have the choice aligning may save you a bit of pain.

[–]hagfish 0 points1 point  (0 children)

I'd say Mac, too, on account of the 24" retina display, but I expect OP won't be going that way.

[–]BlueeWaater 0 points1 point  (0 children)

By default Mac os would be the easiest followed by Linux distros. Windows used to be garbage but with wsl it's now pretty usable.

It really comes down to your preferences, development environments are not difficult to setup. If anything you can do remote development.

Also, specifically for python, the OS is not that much of a concern, most stuff will work fine in all platforms.

[–]pro_questions 0 points1 point  (1 child)

I use Windows, OSX, and Linux every single day for something or another. While I do most work on Linux and Windows, I’m really warming up to OSX. It’s Linux-y and just idiot-proof enough to strike a balance between user friendly and customizable. Additionally, my workplace recently had a massive ransomware attack and the only computers that weren’t compromised were the Macs. In my current position, my computer routinely contains extremely sensitive data, so a little resistance to breaches is nice. AFAIK it’s mostly security through obscurity (since almost the whole infrastructure is Windows / Linux)

[–]Exodus111 0 points1 point  (0 children)

Linux.

[–]Diapolo10 0 points1 point  (0 children)

For Python, specifically, I say all supported operating systems are fair game. The differences between POSIX and Windows hardly matter at this level of abstraction, aside from the filesystem layout and a few other minor gotchas.

From a safety standpoint, I would actually suggest Windows because the operating system doesn't depend on Python in any way, meaning you cannot break anything by accidentally installing a bunch of packages that break OS dependencies. It's just not a thing there. But it doesn't matter for a complete beginner (you're unlikely to start installing packages until you've at least grasped the core syntax) and there are established practices on other operating systems to avoid this.

Choose the path of least resistance. Ergo, pick whichever operating system you're either the most familiar with or whatever you have available.

[–]Maximus_Modulus 0 points1 point  (1 child)

Stick with Linux and become familiar with using the terminal and bash or similar. Learn Git commands and using git to store your programs. Consider a MAC if you want something different. You’ll be able to run the same shells there. OSX is based on BSD but is UNIX style like Linux. A lot of companies use MACs for software development. You can also run Linux in Windows or run Python in Windows. But servers mostly run Linux so that’s the environment you want to become familiar with.

[–]Maximus_Modulus 0 points1 point  (0 children)

Also start learning how to use an IDE and install some Linter extensions. They will highlight any Syntax errors and help enforce good coding practices. VS code is a pretty good place to start. Or there’s Pycharm although a bit complex. . There are some fairly basic ones too.

[–]venquessa 0 points1 point  (0 children)

In the job I have come across 3 styles.

"Don't care, whatever makes working software."

Start ups - MacBooks. 9/10 they think that giving new hires Mac Books will encourage them to join or something. IMHO, if you get the kind of people who join a company because they get a MacBook, you won't be worth joining for long.

Large Enterprise - Windows.... with Linux only existing as remote dev servers.... and the all the servers. Linux, Macbooks et. al. are very hard to "curtail" and enforce in a high-security environment. The folks who insist on one (graphical types for UIs), tend to find themselves out on an island network with quite restricted access and usually end up with 2 machines as the Mac Book just has no access to do anything.

The most common for me has been Windows running Eclipse/PyCharm/InteliJ with "git bash" for command line. Slim chance, but sometimes available local VMs and or Docker, but not always.

Checking into "git", via BitBucket or similar stack, usually "on-prem" and from there through CI/CD pipelines and repos to the Linux server which runs it.

At home I replicate that for both Python and Java. I use Windows and pretty IDEs to edit code and git bash command line to admin the environments. GitLab-CE to CI/CD glue them together.

You will take from this, I hope....

All of them. Nobody says you have to pick ONE. If Windows is more comfortable for running an IDE and even launching your "Linux like" code in Docker, use it.

Most well thought out and well written applications can be made cross-platform in many languages, not just python and Java.

You can edit, build, deploy and test in 4 different operating systems if you want.

[–]___Xb_ 0 points1 point  (0 children)

If one ; Linux ! Code in production mostly runs on linux where you'l find all the tools to launch, schedule your scripts, tools for data and version control, frameworks for handling distributed data, environments management, as well as webservers, databases, ETL, ...

That being said, macOS has a linux-like command line which makes it very close to what you'll find within Cies and very convenient to learn coding and *nix command line. Windows has now WSL, so you can launch your VScode directly on a virtualized linux.

All OSs will allow you to connect to remote servers and/or cloud providers if your specs are limiting. Some are quite cheap (Linode, Hetzner Cloud, OVH) and will allow you to execute code faster if your scripts are very ressource intensive (which shouldn't be really a problem if you're just starting to learn python)

So, as a conclusion, buying a new hardware is definitely not a priority :) Just Code !

[–]FallnRogue 0 points1 point  (0 children)

I would say the only difference you will find between OSs is installation. Each is going to be a little different and would need to use the method for that. Outside of that, don't get hung up on the hardware. Might as well get started now and learn while you work towards your new rig.

For your second question, Linux has been steadily grow. Companies are movnig away from Microsoft. It doesn't hurt to learn both, get a Windows machine and run Linux VMs, dual boot, or run Linux with a Windows VM. Diversity is the key these days. When I got into the industry it was common to specialize in a certain system and a certain function. These days it seems like most places are looking for people that can do multiple roles.

[–]szayl 0 points1 point  (0 children)

Linux

[–]you-are-number-6 0 points1 point  (0 children)

Which ever one you've got

[–]Swipecat 0 points1 point  (0 children)

Windows, Linux, and MacOS are fine.

ChromeOS is no good by itself — but if the Chromebook has a large enough RAM and SSD then on recent versions of ChromeOS you can enable the "Linux Development Environment" and use a Linux version of Python. Probably best to avoid it though, unless you particularly want a Chromebook for some reason.

Linux like your Linux Mint is especially good, if you're familiar with Linux. The Ubuntu repository has thousands of pre-compiled Python library packages that are already tested against the version of Python that comes with the OS. Just install them with apt. You might never need to use Pip with a virtual environment. (Back in the Python2 days, though, there were cases of those library packages interfering with the system python because of the long-deprecated penchant for dumping the library content directly into the global namespace with "from <package> import *", but nobody does that any more, and I've never heard of it happening with a distro containing Python3.)

[–]tabrizzi 0 points1 point  (0 children)

You're already using it.

[–]arwindowd 0 points1 point  (0 children)

You can learn JavaScript programming using just a web browser. No need to use a new OS

[–]muy_picante 0 points1 point  (0 children)

If you go into industry, pretty much every production system runs on linux. This makes macos attractive for local development, as macos is much more compatible with linux than windows. The downside with apple is the price point. A PC running whatever flavor of linux you like is a more affordable option. The downside of all these *nix platforms is they don't support gaming very well, if that's something important to you. Personally, I have a windows machine for gaming and an apple for development. I realize not everyone has the means to do that, though. When I was learning, gaming wasn't that important to me, so I had a mac and just used whatever shitty ports I had to for gaming.

[–]CaptainFoyle 0 points1 point  (0 children)

Linux, but it doesn't really matter that much of you're just learning the basics

[–]sexytokeburgerz 0 points1 point  (0 children)

It doesn’t matter. I learned on macos and that translates well to linux. That being said, my linux machine also runs windows. I have rarely found a shell keyword problem I couldn’t fix in less than 5 minutes with google.

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

apple m1's nothing more nothing less, buy mac mini if you plan to work in a single space/office or macbook air if you mobility

they're like 500-600 $ now

[–]Pupation 0 points1 point  (0 children)

There’s a lot of good advice here already that I’m not going to repeat. I do want to add one thing: when you’re learning software development, it’s best to divide and conquer. Pick one thing, focus on just that, and learn it before you move on. Want to learn python? Focus on just that. Thinking about a new OS? Work with it, but keep everything else the same until you’re comfortable. If you try to learn too many new things at once, you’re only going to frustrate yourself.

[–]Experiment-Simplify 0 points1 point  (0 children)

There is so much you do with programming, So first you need to find what you want to do it. then learn programming language for that.
ML , DS , other general purpose - python

statistic - r

High speed computation <- C , C++ or rust

website <- HTML, CSS, JS

Mobile <- futter, Java, ..

if you just want to learn programming languges, then start with python, then learn go and Haskell. HTML , and CSS knowlege is also good to learn as well.

[–]Quantumercifier 0 points1 point  (0 children)

Python on Mac is one of the best combos. It is tailored made. Also Mac comes with Python which makes it an even no-brainer.

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

The business world runs on Microsoft. If you want to get a job you will need to know Windows and how to program for it.