1

I am a Windows user, but I want to become a better programmer, and since a lot of languages are best done on a Linux system, I would like to get experience with that, but I heard that it's hard to be new to Linux because it's more DIY and therefore harder to get rid of viruses. My income isn't really disposable enough to keep getting my computer fixed every time a virus comes my way while I'm still too inexperienced to fix it myself, so what I would like is a way to use Linux for programming and Windows for day to day computer use. Is there any way to do this?

5
  • 2
    Your rationale don't make sense to me, but sure, you can run Linux in a virtual machine. virtualbox.org
    – mquander
    May 28, 2011 at 19:38
  • 2
    Can you learn to speak Spanish without speaking only Spanish?
    – Matt Ball
    May 28, 2011 at 19:39
  • 5
    You are misinformed. There aren't any known linux virusses in the wild - you don't need any AV-software. It isn't hard to get rid of viruses, but to get hold on viruses on linux. May 28, 2011 at 19:45
  • 1
    You want to become a computer programmer, but you are afraid you'll have to to keep getting my computer fixed?? Confused. Fix it yourself, already
    – sehe
    May 28, 2011 at 20:28
  • oh man, =)) Virus on linux ? You should do a research first and you want to better programmer ? Get your hand dirty and find a beautiful nick instead! May 28, 2011 at 22:27

8 Answers 8

3

I would suggest using a free Virtual Machine software like VMWare Server and installing Linux on there. That way you don't have to mess with your Windows installation but you can use the Linux machine as if it were installed directly on your machine.

Here is the link to VMWare Server (which is free):

http://www.vmware.com/products/server/overview.html

I would recommend either SUSE Linux or Ubuntu because of their ease of use for Linux newcomers.

You could also use a LiveCD, which boots and runs off of a CD or USB disk. This turns any PC into a Linux machine without changing anything. Once you turn off the computer, all of the changes you made are gone and the system returns to normal.

3

First I think your entry point should be Ubuntu which is the easiest Linux distro out there and remember that even though these are indeed DIY OSs there's plenty of documentation, tutorials and people willing to help, if you go for Ubuntu you can always check the Ubuntu Forums.

If you don't wanna quit Windows you can run the OS on a virtual machine such as Virtual Box or you could use Wubi that will install Ubuntu directly on your hardware and give you the option to choose which to boot (dual-boot), it's advantage is that getting rid of Ubuntu will be as simple as uninstalling it.

You should also know that these are in fact very secure OSs (of course, as with all other OSs, only as strong as the weakest user) so viruses and the like should come to be of no concern to you, no need to even install an antivirus (unless you gonna store some serious important information there).

I'll still have to disagree on the programming part because if you want to learn how to program, IMHO, your entry point should be C or C++ both of which run excellent on Windows. One of the reasons for me to think this way is because this languages don't do much of the hard work for you (contrary to must high level languages nowadays) and thus you have to work through algorithms to code good programs, and that's where I think everybody should start.

5
  • 1
    "C or C++ both of which run excellent on Windows" I teach C and C++ on a University and strongly disagree with this statement. May 28, 2011 at 20:05
  • 2
    I won't argue the fact that they might indeed run better under Linux but, though I'm no expert on the subject, I think they run pretty well for learning purpose, so unless @fahfbweigbwidhb plans on building some scientific application I think he/she'll be just fine.
    – PedroC88
    May 28, 2011 at 20:19
  • 2
    Its Wubi, not Woobi (don't have edit perms and its < 6 characters; bureaucrats)
    – sehe
    May 28, 2011 at 20:30
  • Sorry, but seriously... wtf means "they run well"?
    – akappa
    May 28, 2011 at 21:16
  • @akappa As I said in my first comment I am no expert on the subject whatsoever, but seeing that Windows is more abrasive on resources that might impact the performance on running applications (even if the code is unmanaged) therefore the app might run better under Linux. But I strongly doubt that such difference would be a problem if you're only learning instead of developing high-demand applications.
    – PedroC88
    May 28, 2011 at 22:08
2

Most linux distributions support a 'dual boot' mode; in this mode both Linux and Windows will be installed, and you get to choose which to use whenever you boot.

1

Cygwin is (from their website):

  • a collection of tools which provide a Linux look and feel environment for Windows.
  • a DLL (cygwin1.dll) which acts as a Linux API layer providing substantial Linux API functionality.

That's probably your best bet.

1
  • 3
    Using cygwin for development is a terrible, terrible idea. The software included in cygwin is ancient. May 28, 2011 at 20:08
1

It's not the full environment by any stretch, but using something like MSYS or Cygwin within Windows, will get you used to the some of the command line options.

1
  • 2
    MSYS yes, Cygwin definitely no. May 28, 2011 at 20:08
1

With the exception of missing drivers (which is something I encounter extremely rarely lately) Linux is actually much easier to maintain then Windows. Each distribution comes with a software repository, therefore you won't run into the risk of installing unverified 3rd party software that will make your installation unusable.

If you are interested in buying commercial license, then you can pay for a license that actually covers real online and telephone support.

There aren't any viruses for Linux (apart from some academic experiments), so you definitely don't have to worry about that.

If your machine is powerful enough (mostly enough RAM, all non-ancient CPUs are good enough) it is a very good idea to try Linux using a virtualization software like VirtualBox. This way, you don't even have to care about driver problems since the system will only see the virtualized machine. Plus you will have a chance to try the system and when you don't like it, you can simply erase the directory with the virtual machine and you are done.

If you want to try a more direct approach, you can try dual boot. That will install the Linux side by side with Windows. You will probably need to change the sizes of your partitions, therefore this isn't as trivial as virtualization.

From the major distributions, you could try Ubuntu or OpenSuSe. I can't really recommend other distributions for a first-time user, since they are either for a more experienced audience, or have a small user base and therefore a low community support quality.

1

I would echo Matt Ball's comment: Can you learn to speak Spanish without speaking only Spanish? but with two slight changes I can describe with regular expressions

s/Spanish/Linux/g
s/speaking/thinking/

In other words, you have to think Linux because it's a different way of doing things.

Sure, Linux comes with a GUI these days and you can use it pretty much like Windows — but learn to use the command-line to get the maximum benefit of the tools available in Linux.

My use of regular expressions above was a bit contrived, but I think it illustrates how pervasive command-line techniques can become.

I disagree with Let_Me_Be's assessment of Cygwin, but that's because I find it a very useful platform for shell and perl scripting on Windows. I've never compiled an application using Cygwin.

-1

Just playing around with the docs and tutorials over the web! Try installing Linux on a virtual machine or another PC (even a Pentium 3-4 machine) ^^

2
  • 1
    The OP is hardly going to become a better programmer simply by "playing around with the docs and tutorials over the web", and the idea of using a VM was suggested four years ago. Jun 26, 2015 at 7:02
  • 1
    This duplicates another answer and adds no new content. Please don't post an answer unless you actually have something new to contribute.
    – DavidPostill
    Jun 26, 2015 at 10:05

You must log in to answer this question.