I want start with python but I don’t know what operating system and tools to use. I have a 6 RAM icore3 180 GB hard disk Notebook laptop running Linux mint. I plan to save up to Buy a PC in the future but for I have to make due my old laptop
I am also wondering how does the programming market look like in terms of operating system. Does it matter which operating system you use? In terms of programming institutions (universities bootcamps, etc…), do each institutions have its own preference or does it let its student choose?
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person’s post makes sense in another community cross post into it.
Hope you enjoy the instance!
Follow the wormhole through a path of communities !webdev@programming.dev
You’re overthinking this. You can almost always get by with whatever system you already have available, until you get a full job, at which point the job will probably provide you with a machine.
You don’t need any kind of special computer to learn programming. Find an introduction to programming course in Python that works for you and just go for it. Eventually a nice laptop will be useful but you’re not writing the kind of code that’s going to take hours to compile for the first couple of years anyway.
A lot of courses online now provide sandboxes to code.
For example, freecodecamp - you can learn web dev without ever leaving the browser.
Today, no matter where and how you write your code, there’s almost 100% chance that the place it will run is on Linux. Even the places it can run that don’t look like Linux, are - in most cases - Linux.
Source: I’m a connoisseur of places code can run that aren’t Linux, and they are becoming fewer and farther between every day.
What are some places that don’t look like Linux but actually are?
I’d think most PC games and other desktop GUI software runs on windows and looks like it runs on windows. And I’d imagine that a web browser on windows isn’t secretly a Linux environment.
But yeah, I’ve written way more code that runs on a web browser or a Linux server than runs on windows.
Amazon Lambda, Azure Automation, GitHub Actions, Amazon CodeDeploy, Azure DevOps, anything Android (not GNU, but runs a Linux kernel), SteamDeck, almost every miniature gamesystem (Genesis Mini, PlayStation Classic, etc), and a variety of the smallest chips that usually run raw C code are gradually getting powerful enough to have a Linxu kernel (I E. Raspberry Pi Zero replacing Arduino in various recipes).
With the SteamDeck’s recent rise here’s also been a shift towards video games being written first for Linux, then cross-compiled for Windows and much later ported to Nintendo Switch.
I don’t know if we have confirmation on whether PlayStation and XBox or Switch run Linux under the hood yet.
Switch almost certainly doesn’t (or at least not a recognizable version) or we wouldn’t see the release delays we currently see.
It seems like the vast majority of portable hardware above very low power stuff runs a Linux kernel now, even when the rest of the OS is unrecognizable. Mostly via Android, but in exceptional cases with a custom OS.
Right.
Most PC games currently run on Unity, which doesn’t care whether it’s running on Linux or Windows. I’m not aware of whether PlayStation runs a Linux kernel, but I would bet it does, since they wouldn’t get a good price from MS on OS bulk licenses. When the game is installed on a Windows PC, it’s obviously running on Windows. When a game is on any of the various (non-Microsoft) game consoles, odds are it’s actually running under a Linux Kernel.
True. I would argue that’s running half on Windows, of course. The other half, the server, had about a 99.7% chance of being Linux, today. Mostly Amazon Linux running in AWS. Even websites recently developed entirely on Microsoft libraries, and served in Microsoft’s cloud service Azure, are largely running under a Linux kernel.
Depends, What kind of programming are you interested in and what do you want to do with it?
Low level microcontrollers (PLC’s, Robotics, Control systems, ROS, Automation, etc)
Higher level systems (Software Engineering, Enterprise Software, Networking, etc)
UX programming (Graphical User interfaces, human-machine interfacing, websites, etc)
Video Game Programming
AI Programming, Machine Learning, Prompt Engineering, maybe Data Processing, Vision systems, Simulations, etc
All depends on what you want to do with your programming. You’ll need to narrow down and focus on what you hope to do with it.
… though if you’re just starting to learn Python, any machine with a web browser and a keyboard (like a Chromebook) is enough to get going.
Any operating system can run Python just fine. That being said, your laptop would benefit from a light weight system like Linux with Xfce or Lxde. I’ve never heard of a programming course requiring a specific OS (aside from courses on OS specific tools, like Cocoa).
If all you want is to familiarize yourself with some basic programing concepts, programming language constructs (types, expressions and control statements like if and while) and was able to solve some simple problems with basic algorithms, I think your current setup is enough. You can learn all these on your 6 GB RAM laptop.
But if you were gonna learn programing in certain domains, for exmaple, most of deep learning things is both computing intensive and IO bound, you might be forced to consider upgrading your PC.
Start with an interpreter just running on a website. Low barrier to entry is key at the start
Doesn’t depend on programming language but something with visual debugger. You know that stuff when you can see current line of your source code highlighted, press a key to step into, step over and so on. You can see values inside your variables. You can also change your variables mid-run right form the debugger.
Because you spend 20% of your time writing bugs and the other 80% debugging them. At least make it pleasant experience (no printf-style debugging).
Back in the day I was using Turbo Pascal, Delphi, Visual Basic, C#, Java, PHP with Zend, Java Script, today I’m using Visual C++.
@MarekKnapek That’s something that people love to ignore even if it’s important as heck. It means nothing if someone can code in +10 languages, or if someone can type 100 lines of code in 20 seconds, and how skilled a beginner or an experienced programmer is means nothing if they do not know how to debug. I quit print-debugging almost a year ago and decided to learn to debug properly, and since then I no longer spend days trying to find any bug at all, and in general I’m a better developer.
Yes but how are you going to leave a printf(‘oh noes I fucked up!’) statement in by mistake, for someone to find in production ten years down the line when the planets align and a strange set of circumstances occur?
That’s half the fun :)
The OS won’t matter much in the beginning, though it helps that you’re already using Linux as you likely already have Python and GCC installed.
I don’t think you need a better PC than what you already have if the only goal is to learn programming, so I’d spend that money on something else.
I’d suggest you go through Harvard’s CS50 if you’ve never been exposed to computer science before: https://www.harvardonline.harvard.edu/course/cs50-introduction-computer-science . You can audit it for free, you don’t really need to pay for the certificate (which IMO doesn’t have much value at that level anyway).
Also, try to get into a computer science degree if you want to do that as a career, bootcamps and MOOCs are nice additions but will never replace a real degree.
This will hold true as long as OP doesn’t trash his IDE’s performance with too many plugins where even smaller project might run into performance issues if this mistake is made. But it doesn’t mean OP has to distract themselves with learning a modal TUI editor, although it’ll probably be beneficial for their productivity if they persevere and better to do that early than waste time hopping IDEs just for the sake of it. Tip for staying somewhat flexible if you still haven’t decided yet is using something like vim plugin to vscode or vice versa, trying Neovim “distributions” (see awesome Neovim for some examples) and switching to a more feature-rich, GUI-based IDE.
I also liked Harvards course. I got to like chapter 8 then I switched to start learning Rust because I liked it more than Python.
deleted by creator
Your mint setup is fine to start learning, as others have said. Start with something simple : python, javascript, …
For programming, there are tools available on every OS. However I have found that those tools are easier to use on Linux. Okayish to use on MacOS. Programming with Windows, on the other hand is, well… it certainly is possible, but… see for yourself.
For instituitions it varies depending on each one of them. Usually they have their own tools because it is easier to organise a class if everyone works on the same IDE but if you get good enough it does Not matter what is your OS/IDE of choice. VSCodium is nice but anything like kwrite/kate/gedit/geany is good enough. Hell, even nano can get the job done.
Depending on how much you want to work on servers later, getting used to vim might be worth it. With neovim there’s also a modern take on vi, that can fully replace any IDE.
Just use what works for you. Only downside to IDEs is you might not graps all the magic going on in the back, so take your time to understand the ropes of the build and deployment systems before you let your IDE handle it for you.
I started using vim to learn rust. It’s awfully powerful and I fully understand the hype.
However when I started to program, vim was NOT a good option to learn. Because you have to learn how to code and how to use the coding tool at the same time. It can be too much to take in.
Yeah, I understand that. I myself stayed an emacs user up to today because it was easier to get into it (the rabbit hole starts tumbling down some time later with emacs). But in these days eclipse was the shiny new star of IDE (cringe). However, when you face rolling out somestuff or setting up your own first services, the afternoon needed to get basic grasp of vim is well spend.
It really doesn’t matter. Literally a Raspberry Pi will do for a beginner.
Use the OS you are most comfortable with. When it comes to programmming try and learn 1 “thing” at a time. If you trying to learn Python and how to use Linux as well as Python then you learning 2 (or more…) things at once so stick with what you know for now. If you are comfortable with Linux (or Mint as you say) then stay with that because I have found running Python on Windows is a Pain but that could just be the environment we are using. Good Luck and Have fun!
Linux on an old laptop is perfect for learning Python. You’re set for ages.
Programming has very low hardware requirements, much lower than web browsing. Just don’t get sucket into the whole maelstrom of people trying to convince you that you need a bunch of complicated tools. If you are just stating out, Gedit or equivalent will work out just fine.
In terms of operating systems, if given the choice professionals tend to congregate around Linux and MacOS as the development experience historicaly has been much better due to having access to a proper terminal. This is something you want to familiarize yourself with if you haven’t already. Other factors may apply, especially in professional environments, where clients / employers mandate the use of Windows or something else, but this probably does not apply to you.
Universities usually have their curriculum, which is rather narrow in the beginning and widens in later terms, especially in masters classes. When it comes to teaching fundamentals, language and tools really does not matter much. It’s more about keeping things manageable for the teacher.