3 ms·
Serious question here. I come from a game industry background and am /very/ comfortable and productive in a Windows environment. However, I have recently setup
by Goosey 17y ago
Serious question here. I come from a game industry background and am /very/ comfortable and productive in a Windows environment. However, I have recently setup my system to dual-boot into Ubuntu largely because I am serious about entering the world of web development and my impression is a *nix core is a must (either OSX or linux).
I am finding the learning curve to be rather steep, but I have prepared myself to pull through and come out the other side a Linux guru.
The question is this: Am I doing it wrong? Given that I am already comfortable and productive in Windows.. is it idiotic of me to try to force my square peg into a round hole? Should I at least go the middle-ground and use a VM so that my 'normal computing' is in my familiar environment and I can just drop into Ubuntu for testing/deployment?
One last bit of context: I am bootstrapping a web startup in my evenings so time is rather premium. My day job is still windows centric so context-switch issues might occur.
- gcampbell 17y agoIf you have the spare RAM, I'd say a VM is the way to go. I've tried the dual-boot approach, and found that the annoyance of having to reboot to switch between environments was high enough that it usually deterred me from doing it at all.
- bphogan 17y agoI would agree with this, but also, snapshots are great. If you goof up your VM, just revert :) Great when learning how Linux works, and much faster than a wipe and rebuild.
- Goosey 17y agoGood point about the snapshots! Also given that getting the dual-boot setup correctly with Windows 7 and my "FakeRAID" hard drives already consumed a weekend I wish I had thought of the VM route sooner..
- bphogan 17y agoHonestly I think there are many benefits to Linux especially if your plan is to work on Python or Ruby development. If you're looking to do C# stuff, Windows is gonna be better. When it comes to a lot of open-source languages, Windows is kind of an afterthought, and while it often works, the non-Windows solutions end up being faster, and more likely what you see when you deploy your apps. It can help greatly if your dev platform mimicks your production platform, but it's not necessary. I just taught a day long Ruby / Rails class in Feb and we had Windows users mostly, with some Mac and Linux folks too, but we all deployed to Heroku.com without issues. My advice is to use what makes you productive now. Learn many things, but learn them one at a time or you'll frustrate yourself. Switch from Windows to Linux when Windows starts slowing you down if that makes you more comfortable. Programming should be fun. :)
- Goosey 17y agoThanks for the advice. I am planning to use a Python/Django/MySQL/nginx/EC2 stack initially.
- peregrine 17y agoWe have a very similar situation and here are my experiences. - Command line will give you the most bang for your buck every single time. Learn one small thing at a time and build upon it, you will be amazed at how much more productive and quick you will become from understanding simple commands. - Start using Vim/Emacs. Doesn't really matter which one, the gains from using a powerful editor will (in the long run) pay for them selves. These editors combined with the command line have shown the greatest gains in my productivity. Now that said learning the editor will be up hill for a good chunk of the time until it clicks, so it may make sense to use something like geddit in the mean time. There is no magic bullet with any sort of Development. Using unix like systems isn't going to make your website better or you more productive if you don't actually take some time and learn it. If you come over to Ubuntu but only use the GUI you will likely loose productivity. Besides who cares what you write your site in as long as you -write- it.
- Goosey 17y agoThanks for sharing your experiences. I have found I really _enjoy_ doing work from the command line. It just feels natural even if I am still reaching to my "How Linux Works" book every 2 commands. :) I suppose right now a much more difficult thing for me is coming to grips with more fundamental differences in the OSes. For example, if I install a program on windows it goes into /Program Files/ and I know how to interact with it. If I apt-get in ubuntu its often unclear to me where to modify it's configuration, how to launch it, etc. This is best illustrated by the 4 hours I burned getting nginx up and running. I am certain that this is just me not being used to the conventions but.. Well I don't know what my point is, honestly I think I am just venting now. :) edit: Question on the VIM/Emacs suggestion. I started dabbling in VIM, but as a long time VS.NET user (I can navigate through a visual studio environment like a fish through water) it just felt.. Small. I assumed I would be better off going to an IDE (I am using python, so there are plenty to choose from). Do you have any comments on this? Is an IDE a 'drug' I could benefit from learning to break off?
- drmohundro 17y agoI'm a .NET dev by day and a Rails hobbyist by night, but I agree with the prior comment regarding learning Vim or Emacs. I can relate to your experience with it feeling small in comparison to VS, but there are tools out there (ViEmu, VsVim) that will let you use the Vim knowledge gained in VS and it will make VS better. I started learning Vim a couple of years back and it was the best decision I made. If you choose Emacs, I believe VS has Emacs key-binding support built in.
- ddemchuk 17y agoI switched to Ubuntu as my main OS a few months ago. I still run a WinXP VM so I can run a few windows apps and Photoshop. It's an ideal situation, I definitely recommend it.
- zooey 17y agouhm but people using your webapp won't know/care the way you built it (tools/language/OS), so if the time is so precious to you and other than for learning new things (that is always good, I don't say the contrary), why are you using linux instead of windows to develop your software?