Settings

Theme

Ask HN: Can or should I learn to code on a Windows computer?

7 points by shytey 6 years ago · 21 comments · 1 min read


I have done a few online courses in HTML, CSS and Javascript and created my first website. My next step is do a Python course and then create a small web app as a project.

Is it possible to learn on a Windows computer? Git and Python programs exist for Windows and there is a cmd line.

General wisdom seems to point towards installing a version of Linux like Ubuntu. I'd like to know your reasons why I should or shouldn't do this.

Thanks.

Someone1234 6 years ago

Use whatever you find most comfortable.

It is often best to learn skills one by one to contextualize them better. Linux is a useful skill to have, but trying to learn Linux, Git, and Python at the same time might be overload.

Personally I use Visual Studio Code (free) for Python which is available on Linux, Windows, and MacOS. It also has fantastic Git integration. But I think "learn one thing at a time" also applies to IDEs/Editors, so if you already know a Python compatible one maybe use that first.

  • auxym 6 years ago

    Definitely this. So many people here recommending linux, WSL, a macbook, etc, for absolutely no reason. There is no reason any plain old windows would not work for python.

    I learned about back around 2005, on windows, using the good ol' bundled IDLE editor/repl. I do agree however that VS Code with the Python plugin makes for a great dev environment.

    So yeah, OP, just install python and vs code right and dive into it. You can learn linux later if you want to.

lmiller1990 6 years ago

Windows is fine! It doesn't matter a whole lot, especially since you are still just learning. Make the most of what you have, maybe upgrade once you start to hit limitations.

Installing a version of Linux is an option but you are adding more complexity are more tools to learn. I think there is value in focusing on what you want to learn (python) and that alone. Good luck!

helij 6 years ago

From 2 months ago I am exclusively on Windows 10 with Windows Subsystem for Linux. Works great. I was Linux user for 19 years and 3 years on Mac OS.

I am a generation that read books about evil Gates and refused to use Windows but I sold my soul now...

  • andrei_says_ 6 years ago

    Is there a guide anywhere in setting the wsl and using it for let’s say ruby based dev?

duxup 6 years ago

If you're not already familiar with Linux I would stick with Windows for now. Really no need to include learning Linux along with coding.... unless that is what you want to do.

vo2maxer 6 years ago

If you already own a computer with the Windows OS, I don’t see a reason why you shouldn’t start learning Python on it. Anaconda is a great open-source distribution with lots of goodies. Also you can set up a VM with whatever Linux distro you fancy and run with it. Windows 10 itself comes with the Windows Subsystem for Linux (WSL). I hope this helps.

  • Gibbon1 6 years ago

    He can also use C#/.net under Windows. As far as learning curves go it's pretty big bang for the buck. Because the tools basically just work.

hurricanetc 6 years ago

The only time you will ever come to a limitation with Windows is if you want to create an iOS application.

jituc 6 years ago

Yes, that is completely fine. Unlike others I will advise you to start with statically typed language for start. No serious work just small tasks. Qbasic will be good start. Use for few weeks then jump to python or whatever you prefer.

saluki 6 years ago

I would recommend getting a macbook. Macbook air is enough power for web development.

I was using windows learning rails and kept running in to issues that would require an hour or two of searching and work arounds to get what I was trying to do on windows.

Most rails tutorials were on a mac back in the day. One night I had spent like two hours running in to issues on a tutorial. I decided to grab my wife's macbook, completed the tutorial in less time than I had been trying to troubleshoot issues on windows.

Windows 10 is a little more developer friendly, but there is a reason developers use mac, it just works and typically saves time.

So if you have access to one you can borrow I'd try it out. If you can snag a macbook air on sale it should be around $800, I think I got one for $650 once.

If you only have access to windows it will work, I think it will be more of a headache, but definitely you can learn on windows, I'd recommend developing on a mac though. For any language (other than .net).

If you haven't take a look at Rails or Laravel for developing web apps.

Good luck.

akulbe 6 years ago

You're probably going to get more bang for your buck if you go with a Windows machine.

Windows 10 + Windows Subsystem for Linux is a great setup for learning to code.

You can use VS Code and the remote plugins to do your work in the WSL environment from Windows.

PopeDotNinja 6 years ago

My suggestion would be not limit yourself to Windows, but I would recommend not just Windows. Linux dominates on the server side, and ultimately you'll need deploy/debug apps running on the server and/or in containers. And in nearly every dev job I've had, development was done on a Mac. My current company is my first dev job where I was offered a choice between Mac or PC.

For the record, I started learning on Windows, and for learning on it was fine. The thing that ultimately made me switch was all of my friends used Macs, and they couldn't help me with Windows specific issues.

  • quickthrower2 6 years ago

    I feel like I’m in a parallel universe: I’ve always done .net jobs so never been offered a Mac. Although with .net core it’s possible now but it’ll take a decade for most shops to upgrade their legacy. So windows for now. Personally I’m for best tool for the job. When playing with Ruby I installed Linux as it was too frustrating using Win.

PauseBreak 6 years ago

I have been learning how to code on windows, python can be downloaded easily from their website and is a lot easier than Java

  • speedplane 6 years ago

    > I have been learning how to code on windows, python can be downloaded easily from their website and is a lot easier than Java

    Python is a great language, but the most serious issue with it right now is the split between Python 2 and 3. If you're just learning Python now, you're probably learning Python 3. But if you get a job working with Python, you will probably have to work with their Python 2 codebase, and eventually have to do the arduous task of converting 2 to 3.

    This conversion is not difficult on an intellectual level, but it's incredibly time-consuming and boring, kind of like fixing Y2K bugs. Hopefully the Python community eventually comes out of this 2 to 3 disaster alive.

samfisher83 6 years ago

Yes you can. You can install WSL and you have an ubuntu bash shell. Or just use putty/ssh and login to a server.

  • auxym 6 years ago

    Or just install python directly on windows? There's really no need for linux, ssh or bash in OP's case

a-saleh 6 years ago

Tldr: for your first Python web-app, you will be fine. Focus on learning programming, and there are easier ways to learn Linux than installing it.

If you go for i.e. game-dev, with Unity or other game-engine with windows IDE, you will have it easier on Windows.

Certain ecosystems, like .Net with the full Visual Studio are more suited to windows development.

Certain ecostystems are very cross-platform (i.e. Java ecosystem, including the other JVM languages like Scala, Kotlin, including Android-dev here, client-side web-dev) and you don't need to care as much.

Client side in general, you will be fine.

Server-side, with cross-platform, you will be mostly fine, but you will start running into issues where not everything will work as well on windows (i.e. once I used smaller python library, and the creator never tried to run it on Win, and it worked only on linux) ... but for large projects (web-servers, database-lbiraries) you should be fine.

Windows now has some support for running linux shell with "windows linux subsystem", or you could install virtualization software (I usually opted for virtual-box) and try out various distributions there)

Once you want to run the thing somewhere public on the internet, it will in the end probably run on linux one way or other, but there are services like Heroku that simplify that to a level of "do you have a git-repo public somewhere? we will take care of the rest", and often have free-tier for people trying stuff out.

In hte end, knowing linux is very useful. But it is not necessary to start.

wolco 6 years ago

Use windows 10 and install a linux distro from the windows app store. Now you have both.

lazylizard 6 years ago

Just be aware its not posix

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection