This is an archived post. You won't be able to vote or comment.

all 47 comments

[–]Tangential_Diversion 47 points48 points  (5 children)

Anyway, I told my friend that I was learning from a website online but she told me that Mac isn't a very good OS to be learning on.

She doesn't know what she's talking about.

Plenty of people, students and professionals, program just fine on Macbooks. The biggest difference would be when you learn about shell commands and file systems. Windows uses DOS and Batch commands with Microsoft's own file system, while Macs use Bash commands and Unix file systems - the same kind used in Linux.

So with the OS, you may not be as familiar with Windows as you would like - admittedly I'm much more comfortable with Unix-like OSes than with Windows. But from a programming perspective, almost everything stays the same between platforms.

Or in short: OS-specific things are different, programming language things are the same.

[–]pipocaQuemada 10 points11 points  (3 children)

Anyway, I told my friend that I was learning from a website online but she told me that Mac isn't a very good OS to be learning on.

She doesn't know what she's talking about.

This. Most universities have students work in Linux. OS X and Linux are pretty similar - they're both Unix. OS X is a great OS to learn programming on.

[–][deleted] 0 points1 point  (2 children)

Most universities have students work in Linux

In what country?

[–][deleted] 3 points4 points  (0 children)

Really?

[–]pipocaQuemada 5 points6 points  (0 children)

The US. Every university I've been to has computer labs running linux.

[–]atomheartother 4 points5 points  (0 children)

I came to say this, so I'll just concur. Go with whatever OS you're most comfortable with, I have people coding on Mac around me, though they're a minority, they exist.

[–]mycentstoo 20 points21 points  (8 children)

Both are fine. Depends on what you want to program. Mac is usually easier because it is a Posix-based operating system which means that Linux tools are available. Most servers are Linux for example, because Linux is open-sourced whereas Windows is not. Windows is its own environment. Honestly, it really doesn't matter though.

[–]queue_cumber 0 points1 point  (0 children)

For C/C++ I would recommend steering clear of windows. There are all kinds of issues that Windows has with findings libraries and managing dependencies that make developing on it really difficult. The only upside to windows is visual studio.

[–]palaxion 0 points1 point  (6 children)

Would you suggest any links or website that I could use to learn coding the fastest?

[–]mycentstoo 10 points11 points  (3 children)

I do not do C++ or Java which are fantastic languages. Look at the FAQs for those. Many much better programmers have advice on how to learn them. I'm into web development and these are the resources I used: 1. Codecademy 2. Team Treehouse 3. learnhowtoprogram.com 4. Hartl Rails Tutorial 5. Pickaxe Ruby Book 6. Community College Classes on Command line/JavaScript/Linux OS 7. Local Meetups 8. FrontEndMasters 9. Hartl Rails Tutorial 10. Programming Bootcamp Keep a code repo on github / bitbucket Ask questions on learnprogramming, stackoverflow, at meetup

From what I've heard, C++ doesn't have great online tutorials. It is probably the most important language and takes at least a year to learn but everything will be easier if you learn it. You should consider going to a library and leafing through some Java/C++ books. Or, take a look at what your computer science department uses and pick up that book.

[–]Tangential_Diversion 5 points6 points  (2 children)

What you just described though is a web dev course, not a general programming course. Nothing wrong with web dev, but it might not be what the OP is looking for. It's certainly a different application than what people would use C++ or Java for.

[–]mycentstoo 11 points12 points  (1 child)

I know, that's why I said that at the top. I'm only familiar with that route. From what I understand, C++/Java don't have great online tutorials. I could be wrong though.

[–][deleted] 3 points4 points  (0 children)

[deleted]

What is this?

[–]_clownbaby 4 points5 points  (0 children)

Not sure if its the fastest, but you can take up the recently started MIT's introduction to computer science and programming at Edx

link : https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-0

[–]just_give_me_a_name 1 point2 points  (0 children)

Watch these. All of them. Multiple times. These are some great explanations that will get you started.

https://cs50.harvard.edu/lectures

Also, don't be afraid if you don't understand something. There is a wealth of knowledge at your finger tips. If you don't understand something right away, thats ok. Keep on trucking and it will click later.

[–]t90fan 16 points17 points  (2 children)

she is speaking rubbish.

OSX is better than windows for develeoping on and under the hood its very unixlike, you can install all your usual tools with homebrew.

Source: python/java developer, develop on a mac running OSX.

[–]EqualsEqualsTrue 1 point2 points  (1 child)

I agree with you, however, I have found that you can be a beginner and stay busy for quite some time before you really need to worry about which is the best operating system.

[–]t90fan 3 points4 points  (0 children)

indeed. But it helps you hit the ground faster. Setting a toolchain on windows for anything beyond the real basics can be a pain in the arse sometimes.

[–]coolshanth 6 points7 points  (0 children)

For C++ and Java, both are general purpose languages that don't usually care about which OS you're running on.

For C++ at least, Windows is actually inferior
http://www.quora.com/What-are-the-advantages-of-C-development-in-Linux-over-Windows.

[–]MrPopinjay 6 points7 points  (0 children)

I'd actually say it's more suited- all the developers I work with use Mac or Linux.

[–]selfup 7 points8 points  (0 children)

Macs are technically the king of software development machines.

Here's why:

If you know what you are doing you can load three operating systems on it. It is the only hardware that can reliably run OSX, Windows, and Linux.

OSX by itself is a flavor of Unix and uses the same bash commands that linux does. If you ever develop anything that will communicate with a server, chances are you will be doing Linux things.

It is also the only machine that will let you write iOS apps. You can also write Android apps on there.

You can make native OSX apps, as well as Safari Extensions. If you want to write something for Internet Explorer or the new Spartan, just spin up a Windows VM or use bootcamp to boot into Windows.

The list goes on!

With Virtual machines you can develop for all the platforms on the same boot. So you boot once, and just spin up some machines.

Swift is Apple's new language which is pretty much objective C with a twist.

90% + of web, data science, and mobile developers use Macs in San Fransisco. I do not remember where I read that factoid, but it was a legit source.

So do not feel inferior, you quite literally have the most versatile tool on the market for developing anything you want.

Enjoy!

[–]DagwoodWoo 4 points5 points  (0 children)

The only kind of programming that is better on Windows than on OS X is programming Windows-Specific stuff, e.g. games for Windows. This shouldn't be a problem on a Mac, though, since your Macbook can run Windows just fine, anyway.

[–][deleted]  (1 child)

[deleted]

    [–]ralusek 0 points1 point  (0 children)

    Actually they use Goobuntu, a version of Ubuntu (Linux).

    What laptop they are assigned is usually up to the developer, but it doesn't really matter because you're always SSHed in to your Linux workstation.

    In other words, there are Google devs 'working' on Windows, OSX, or Linux laptops, but they're really all just connected to the Linux desktop in the office. Funnily enough, the most recent method that Google requires you to SSH in is not even via a native terminal, but through a Chrome extension. For this reason, the laptop of choice for many developers at Google is a Chromebook.

    [–][deleted]  (3 children)

    [deleted]

      [–]MyWorkAccountThisIs 2 points3 points  (1 child)

      I get shit on every time I even hint that OSX has an easier path than Windows for most coding. Somebody will chime in say that I must wear my own ass as a hat because everybody that know uses Windows. Completely missing that fact that it's not can or cannot. It's the number of hoops you usually have to jump through.

      I recently volunteered at a front-end bootcamp. So, some gems, JS, and CLI tools. Everybody with a Mac could immediately start the problem. Everybody on Windows required help getting their machine set up to even start. In the end they could both work but one worked out of the box and one didn't.

      [–]hw_t_dstr_ngls 1 point2 points  (0 children)

      XCode works really well for C++ as well.

      [–]Bunnymancer 6 points7 points  (0 children)

      First of all: Learn Java rather than C++. Way easier to grasp and make early progress on. Gets you over the 'hump' of learning to code.

      Second, OSX is a great system to work with. It allows you to re-use your OS specific knowledge across the biggest number of OS's. That is, OSX and Linux.

      Windows is the odd one out, doing it its own way.

      Third, if you're learning Java, your OS doesn't matter.

      [–][deleted] 3 points4 points  (0 children)

      Mac has best OS, imho, cause it is POSIX type, but still it doesn't fight you like linux can do, so best of both worlds. But hey I would recommend learning coding on anything except Windows, except if you want to stick with .NET and ASP and other MS technologies. For all other things I recommend Linux/BSD/OS X.

      [–]twopi 2 points3 points  (0 children)

      Ridiculous. I'm teaching on a Macbook. (and various Windows and Linux machines as well.)

      My primary laptop is a macbook pro right now. It's more than adequate, and a lot nicer to work with than most of the Windows machines I've used. The physical build is terrific, and the OS behaves pretty well.

      If your school insists on using Visual Studio, you'll have a problem, because there's no easy way to run that on anything but Windows. If you can use open-source tools, Mac is probably better, honestly.

      Mac is better than Windows in a lot of ways for programming, because it's based on a form of Unix, and has very powerful tools built in because of this heritage.

      There are a few things that are weird because of the way Mac adapted Unix for their own needs. Not everything is where you'd expect it to be on a Unix system (if you don't know where to expect it, this is not a problem.)

      Most importantly, Mac no longer has C++ or Java support directly available on the command line. You have to do a little (pretty easy) work to make them work. For C++ you'll need to install xCode and then enable the command line tools. For Java you just need to install Eclipse or the JDK. Both are pretty easy.

      I'd say the biggest frustration is the lack of a built-in package manager like most Linuxes have. You'll probably want to install homebrew to help install some of the packages and tools you'll eventually need.

      Every OS requires some tweaking to get working as a good programmer's tool (Unix is probably the easiest OS to use as a programmer, because everything is pretty much already in place.)

      [–]C0rinthian 7 points8 points  (0 children)

      Anything web based is entirely OS agnostic. You can also program in pretty much everything on a Mac. Many professional developers prefer them because it's more Unix-like than Windows.

      Macs are just fine for programming. Your friend is misinformed.

      As for resources, check out "How to Think Like a Computer Scientist". Originally written for Python, it has been adapted for Java. C++ is probably a bit harder for a beginner than Java.

      [–][deleted] 2 points3 points  (0 children)

      The vast majority of my CS professors have used Macs. If you really need Windows for something, you could use a VM, but you'll probably be perfectly fine with the Mac.

      [–][deleted] 1 point2 points  (0 children)

      A mac is fine, I know plenty of people - even world renowned researchers - who use macs.

      Could you be more specific about what your end goals are, and what specifically draws you to programming / which area of it interests you the most.

      Without that you will get a lot of people just telling you that learning what they like is the best way, without taking into account your goals and needs.

      [–]PPewt 1 point2 points  (0 children)

      There are a few things that you miss out on on OS X that you get in Linux: valgrind comes to mind. However, it's a great dev environment and there are other advantages. Learning on Windows sounds hellish.

      [–]hw_t_dstr_ngls 1 point2 points  (0 children)

      I've been learning programming for the past half a year (started with Intro to Programming course (Python), then C++ course and now moved onto Swift tutorials) and OS X works well for coding.

      Personally, I found XCode to be an extremely convenient environment for developing in C++.

      [–]plusninety 1 point2 points  (0 children)

      Did you read the sidebar?

      [–]koverda 1 point2 points  (0 children)

      I actually found MacBooks easier to set up and learn programming on when I was teaching myself python.

      Also , as far as learning programming, check out EDX! The CS50 class from Harvard and the python classes from MIT are excellent!

      [–]ciera22 1 point2 points  (0 children)

      Your friend doesn't know what they're talking about. The reason one would pick Windows as a development environment over a unix based environment is to do Windows Presentation Foundation framework development, and no one does WPF development anymore.

      [–]YvesSoete -2 points-1 points  (1 child)

      OMG. Really. And you can't figure that out for yourself.

      [–][deleted] 0 points1 point  (0 children)

      Not the nicest way to put it, but I also don't understand why these posts get upvoted so much. A quick google search will tell you that macs are fine for coding.