I am studying Computer Engineering (2nd year). I would like to buy a laptop but dont really know anything about the laptop market.
I was wondering if a Mac would be recommended for me to use for my programming work?
Any avice would be appreciated. Thank You.

Mac's are definitely very common among computer science or computer engineering students. I'm not sure they're really the best.

I would recommend a PC laptop on which you install Linux for a dual boot with Windows. Windows is better than Mac for using the engineering software you might need for your courses and projects. And Linux is a much better development environment (for programming tasks) than Mac, although Mac isn't bad either, anything is better than Windows in that department. And at the end of the day, a PC laptop will be a lot cheaper than an equivalent Mac laptop, and I assume that for you, as a student, money is a factor.

I even know people in this field who bought a Mac, thinking it would be appropriate for their work, and ended up replacing Mac OSX with Windows, and installing Linux on the side (dual boot).

My wife is a staff physicist in the computing division of Fermi National Laboratory, doing serious software development for high-energy physics research. Her development systems are Macs, but the code she writes has to be cross-platform to Linux and Unix as well. The GNU compiler, Clang, and such are all available for the Mac, which under the covers is running BSD Unix.

Member Avatar for iamthwee

If by programming you're gonna do .net then you're pretty much fubared with a mac.

@iamthwee - well, Microsoft is releasing the source code to .NET and the CLR needed to run C# applications. Graphics? Well we shall see! :-) At this point, I think that Mono runs on the Mac.

Member Avatar for iamthwee

@iamthwee - well, Microsoft is releasing the source code to .NET

Are they? Wow.

At this point, I think that Mono runs on the Mac.

I must admit it's been a while since I looked at the mono project and it was too sucky to do anything seriously at the time, looks like they've come on a bit.

Still if you're intent on using something as bloated as dotnet java is still a better option for cross platform as it is mature and has always been the intention of working across multiple platforms.

In my opinion dotnet will always be just for microsoft and there is nothing wrong with that at all seeing as they have the market share.

I supppose the OP could always install a Microsoft virtual machine or possibly bootcamp their mac... Still I personally think the OP is fishing for reasons to buy a mac because they're highly desirable.

Point in fact as an engineer, I wouldn't imagine a mac would serve you any better than a windows laptop, or one with it wiped with linux.

75% of the devs in our shop use MACs, split between mavericks and yosemite.
The other 25% run Ubuntu or Mint. We have no devs running windows as the primary OS at all. Windows is relegated to the Assistants, the C levels and VPs, and accounting basically.

A mac is good. A pc running a linux distro is also good and much cheaper.

I'm about 2 months late. I'm sure the OP has bought something now. When I was in college, the language courses generally centered around a specific development environment. I would talk to professors, or students that have already taken the classes and see what environments they are using.

I'm pretty platform agnostic and I code on whatever hits me. I have XCode on my Mac, A DOS VM with old DOS development tools, a Dell D610 running Linux with development tools for C/C++, web development, and Java, as well as a PC running Visual Studio 2013 and Progress OpenEdge.

If the C++ class is built around Microsoft Visual Tools, then at the very least I would run either a PC or a VM on a Mac.

Although C++ is pretty generic, what I have experienced is some curriculum tend to center around development toolchains. Most colleges will center around the Microsoft toolchain, even though for the most part you'll be creating console applications, which in theory can be developed in UNIX or Mac OS.

The end result is basically comfort. If you know your development toolchain (XCode, GCC, Borland C++, etc) well, you can probably adapt the class to the tool. The ultimate goal is the output UNLESS you have one of those instructors that like to compile your code to verify you know what you're doing.

Standard libraries should be the same, but any compiler specific includes/routines (for example, Borland C++ had a clrscr() routine that Microsoft had eliminated) would either need to be blocked in a conditional define, or commented out/rewritten to work in the specified tool.

As MAC has got wonderful UI and it is nix based you must go for Mac device for programming purposes..

My Mac came with Python3 and the IDLE IDE.
For scientific work I downloaded the free Anaconda3 package (Python with many modules preinstalled, the Spyder IDE and IPythonNotebook).
Apple's Xcode IDE (free download) gives you easy access to C, C++, Objective-C and Swift.
Another interesting graphics package called Shoes uses Ruby.
A am also running Google's Go language with the LiteIDE.

Linux is tough in learning but rich of features and learning, Mac is simple for start programming and good to go.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.