
Ask HN: Can or should I learn to code on a Windows computer? - shytey
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.<p>Is it possible to learn on a Windows computer? Git and Python programs exist for Windows and there is a cmd line.<p>General wisdom seems to point towards installing a version of Linux like Ubuntu. I&#x27;d like to know your reasons why I should or shouldn&#x27;t do this.<p>Thanks.
======
Someone1234
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
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
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
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_
Is there a guide anywhere in setting the wsl and using it for let’s say ruby
based dev?

------
duxup
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
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
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
The only time you will ever come to a limitation with Windows is if you want
to create an iOS application.

------
jituc
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
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
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
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
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
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
> 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
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
Or just install python directly on windows? There's really no need for linux,
ssh or bash in OP's case

------
a-saleh
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
Use windows 10 and install a linux distro from the windows app store. Now you
have both.

------
lazylizard
Just be aware its not posix

