Sign in with
Sign up | Sign in
Your question

software engineering

Last response: in CPUs
Share
September 3, 2007 12:22:24 AM

hey guys...i wanna get into software engineering as i am hoping to study it in college...wondering if you had any suggestions on books or tutorials that could help me get started. Also, i am seriously considering buying a macbook pro and using the parallels program to go on windows when i do this stuff. does anybody know if that works well or if another laptop could be a good choice for me. all your help is appreciated

More about : software engineering

a c 102 à CPUs
September 4, 2007 2:17:29 AM

Quote:
hey guys...i wanna get into software engineering as i am hoping to study it in college...wondering if you had any suggestions on books or tutorials that could help me get started.


I learned how to code simply because I had to. Some of my classes required that I do some programming and I learned pretty much on-the-fly. I do have a manual, Deitel and Deitel's How To Program C, Fourth Edition. But once I got through the basics, the manual is a reference, as is the GNU website as I code on a Linux machine.

Quote:
Also, i am seriously considering buying a macbook pro and using the parallels program to go on windows when i do this stuff. does anybody know if that works well or if another laptop could be a good choice for me. all your help is appreciated


Why in the world would you want to buy a more-expensive MacBook Pro to just pay yet more money to buy a full copy of Windows to run it in emulator at reduced performance? If you want to program in Windows, get yourself a laptop that has Windows already installed. Save yourself a bunch of money.

But depending on what kind of programming you intend to do, you'll probably want to have access to some sort or UNIXy machine to do C and possibly no-GUI C++ and Java on. That is what the classes at my university did- the guys who ran Linux, BSD, Solaris, or MacOS X (with the GNU toolchain installed, it's not be default) could just program on their own computer rather than having to ssh into a server and deal with either SFTPing all of your files to the local directory on the server after every save or using a CLI text editor in the ssh session. Needless to say, many people at least dual-booted one of those OSes if they didn't run it outright and leave Windows behind.
September 4, 2007 10:36:45 AM

I graduate with my degree in software engineering at the end of this month. Clap Clap Clap :)  Anyways, hands down everything you need to learn can be learned online. No questions asked. I have about 30 reference books that I have collected over the years and I rarely touch them. The majority of them are poorly formatted for anyone who is just starting out. Especially considering the multitude of community forums out there.

I agree with MU_Engineer that there is no reasoning on getting a Macbook. I would 100% recommend a notebook running Windows native. As much as people liked to beat up on Microsoft Visual Studios (I am talking < 2003) it has proven to be just about the best IDE on the market. In addition its c++ compiler is just as accurate in regards to ANSII standards if not more as the GCC GNU compiler and it is hard to beat the backing of the power house know as Microsoft.

Very important to remember Software Engineering is by no means %100 percent coding. There is a lot of design theory and development approaches to be learned. Also, C++ is by in large the most commonly used language. To me learning C is almost to the point of being counterproductive. But that can be argued to high hell. :) 

Regards

Chad
Related resources
September 4, 2007 3:36:08 PM

Ok, if you're going to get into an industry built on knowing how to program and knowing the internals of a computer, why would you buy the fischer price model? Apples are fantastic - if you surf the internet, write e-mail, and don't really know what a CPU is. If you play games, program, etc., you'll want a Windows based machine.

Yes, most colleges will probably run Unix, since colleges are typically ultra-liberal, hate big business (so Microsoft, in this case), plus Linux is cheap. However, guess how many businesses use Linux instead of Windows...ya. If you're learning c++/java/Oracle on a Linux system, but you're also learning .NET/SQL Server on your own or through classes as well on a Windows system, you'll be in high demand after school. If you limit yourself to the *nix world and you don't have a Windows based machine to at least play with, you'll find a lot of doors closed in your face.

Plus, it's college. Unless you're taking a nice TV with your 360 or Wii, you need that Windows system for games :-D
September 4, 2007 4:05:30 PM

Get one with a widescreen display. And others have said, you'll likely want a Windows notebook. You won't do anything that you'll need OSX for in college. And most college's run Windows, not Linux. Professors might prefer Linux, but the university themselves will likely use Windows. I went to Florida Institute of Technology in Melbourne, FL (good, little known school) and they actually switched to Macs for the CS professors university machines (the IT guy was Pro-Mac and convinced them).

Many schools might teach you Java to learn Object Oriented programming. Java is good, but the job opportunities are far fewer so make sure you get a good background in C/C++. Learning .NET helps too but I doubt many software engineering programs are going to actually teach it. You shouldn't be learning it anyway when you start to program.

I graduated with a BS in Software Engineering in Dec. 2005. Now I do DOORS Database Administration for an Air Force contractor and write custom tools in DOORS' scripting language to make other people's jobs easier. Finding a niche like this is a good way to make sure you have a job in the future.
September 4, 2007 4:35:42 PM

I have a masters in software engineering and I work for private money lender.
Know this well enough to do it in your sleep:
(OO) C++/Interfaces (not GUI type yet)/Templates (generics in C#), the full software development life cycle, verification and validation, CASE tools, Databases queries in the database environment and in the programming environment, multi-thread programming and delegates.

Then after you master all that, then you can specialize in .NET, Linux, etc. Get certifications (MCSD, etc). The schools don't teach anything like in the real world (I did everything in a UNIX Shell), so you need lots of experience anyway.

Also, FINISH a 4 year University - don't shoot yourself in the foot. Some good programmers didn't finish college, their potential is greatly reduced and they are probably paid less (since companies can get away with it).

Just get any Windows notebook is good enough since they all have a LAN, modem, USB, etc connections. Mac users typically need special applications for graphics or music.
September 4, 2007 5:39:13 PM

wolverinero79 said:
Ok, if you're going to get into an industry built on knowing how to program and knowing the internals of a computer, why would you buy the fischer price model? Apples are fantastic - if you surf the internet, write e-mail, and don't really know what a CPU is. If you play games, program, etc., you'll want a Windows based machine.

Yes, most colleges will probably run Unix, since colleges are typically ultra-liberal, hate big business (so Microsoft, in this case), plus Linux is cheap. However, guess how many businesses use Linux instead of Windows...ya. If you're learning c++/java/Oracle on a Linux system, but you're also learning .NET/SQL Server on your own or through classes as well on a Windows system, you'll be in high demand after school. If you limit yourself to the *nix world and you don't have a Windows based machine to at least play with, you'll find a lot of doors closed in your face.

Plus, it's college. Unless you're taking a nice TV with your 360 or Wii, you need that Windows system for games :-D

Ya, most colleges do run UNIX. But I think it has more to do with UNIX and UNIX apps change very slowly. It will be hard for professors to re-learn everything every few years, like with Microsoft programming. UNIX is also a VERY good multi-user OS. It was Multi-user, Multi-tasking, Multi-processing 20 years before Microsoft. I got lots of core-dumps programming C++ with dangling pointers, the UNIX terminal window didn't even blink. I also agree colleges hate Microsoft and other big business, but I don't call it ultra-liberal (Since UNIX and Universities was doing advanced work decades before Microsoft), so I call it conservative. Companies still use Microsoft and you have to know visual studio unless you work for some large defense company that avoids Microsoft. Also, like others said, don't expect a lot of games on the Mac.
Linux is used a lot in web-work. Around 50% of the worlds web servers are Lunix. So if you (software engineers) are doing web applications (not web-pages), learn Apache and IIS. You need to be good with databases anyway.
September 4, 2007 5:56:25 PM

I think it's much easier to learn from resources online than out of a book. There are so many tutorials and sample code available online, using a search engine to navigate is much easier than thumbing through a book, and you can cut and paste code.

I'd start off learning C++ and programming from a UNIX-like command prompt, rather than some OS specific programming environment. This is probably where you'd start in school. Use g++ (GNU c++) as your compiler and a text editor such as emacs. You can run these from a command prompt on Linux or Mac, or by downloading Cygwin for windows. Start off by following the tutorials at a page like http://www.cprogramming.com/tutorial.html#c++tutorial

Then once you're comfortable with the basics of the language and of programming in general, start trying to make a real program. Do something that's fun or interesting to you. Things like object oriented design, modularity, verification and design, databases, etc. might be practical for a professional software developer, but are dreadfully boring. So don't worry about those types of things starting out, and just try to do something fun so you can keep motivated. Getting general experience programming, analytical thinking, and troubleshooting is most important thing.

Start off by taking sample code similar to what you want to do from online, then compile and run it. Then start trying to modify it or combine it with other sample code online. For example, if you are interested in making games, you could stay cross-platform and learn OpenGL from a site like http://nehe.gamedev.net/
September 4, 2007 6:08:29 PM

moocow said:
I think it's much easier to learn from resources online than out of a book. There are so many tutorials and sample code available online, using a search engine to navigate is much easier than thumbing through a book, and you can cut and paste code.

I'd start off learning C++ and programming from a UNIX-like command prompt, rather than some OS specific programming environment. This is probably where you'd start in school. Use g++ (GNU c++) as your compiler and a text editor such as emacs. You can run these from a command prompt on Linux or Mac, or by downloading Cygwin for windows. Start off by following the tutorials at a page like http://www.cprogramming.com/tutorial.html#c++tutorial

Then once you're comfortable with the basics of the language and of programming in general, start trying to make a real program. Do something that's fun or interesting to you. Things like object oriented design, modularity, verification and design, databases, etc. might be practical for a professional software developer, but are dreadfully boring. So don't worry about those types of things starting out, and just try to do something fun so you can keep motivated. Getting general experience programming, analytical thinking, and troubleshooting is most important thing.

Start off by taking sample code similar to what you want to do from online, then compile and run it. Then start trying to modify it or combine it with other sample code online. For example, if you are interested in making games, you could stay cross-platform and learn OpenGL from a site like http://nehe.gamedev.net/



I agree with 100% percent about learning from online resources. What I have found school to be good for is it tells me what I don't know. Once I figure that out the internet has all the information that I need to fix that problem.

I regards to starting out on g++ from emacs. Ehhh....I am not sure if I agree. There really is no benfit to a new comer. To me it actually makes things harder because you don't have the assets avaiable in a good IDE. Espically something like Visual Studios and the debugging enviroment it offers. At one point < 2003 I would say yes because how much more strict g++ was then vc++ (s) compiler. But that is just not the truth anymore.


a c 102 à CPUs
September 4, 2007 6:14:51 PM

Quote:
Ya, most colleges do run UNIX. But I think it has more to do with UNIX and UNIX apps change very slowly.


I think that's more of an issue with large companies that used to run or still run a lot of big-iron servers, especially IBM units. The rest of the legacy stuff is Win32/DOS rather than UNIX.

Quote:
It will be hard for professors to re-learn everything every few years, like with Microsoft programming.


The GUI parts change frequently, but the non-GUI parts don't. You can use GCC just as easily as Microsoft's compilers to compile the code, and it's much cheaper to have a few Linux/BSD/Solaris machines around that are supported by the existing IT staff than to buy a bunch of MS licenses. This is much more of an issue in colleges where there isn't a university-wide all-of-our-products site license.

Quote:
UNIX is also a VERY good multi-user OS. It was Multi-user, Multi-tasking, Multi-processing 20 years before Microsoft. I got lots of core-dumps programming C++ with dangling pointers, the UNIX terminal window didn't even blink.


This is another reason that it's popular. I personally much prefer to work with UNIX-type systems due to the fact that they'll tell you much more of what's going on and handle crappy programming better than on Windows. I also have dealt with forgetting to free pointers and my Linux machine handles it waaaay better than the Windows machines.

Quote:
I also agree colleges hate Microsoft and other big business


I don't. My university and several others in the state that I know their position on *love* Microsoft and don't like the free UNIXes very much outside of the Web server and network traffic handling role. There are a handful of Linux machines around campus and one server that handles all of the CS SSH traffic as well as SAS/SPSS and file serving. Almost everything else is Windows- Exchange, IIS, etc. There are a fair number of Macintosh computers around, but most of those are x86 units that dual-boot Windows. They only exist because of the journalism school and for some reason the biology department is all Macintoshes.

Quote:
...but I don't call it ultra-liberal (Since UNIX and Universities was doing advanced work decades before Microsoft), so I call it conservative.


I would agree that universities that deploy mostly UNIX and UNIXy machines are conservative- financially conservative. MS licenses are not cheap and you always run the risk of getting audited by the BSA if some disgruntled employee wants "to get even." Even if you're 100% legit- and with thousands of computers, you'll likely have at least a few that aren't- it's still a pain in the butt and expensive in terms of lost productivity. You are also beholden to their license agreements and any increases in fees that they deem you should pay. The open-source UNIXes do away with almost all of that. There are also no fees to pay for antivirus subscriptions and the UNIX OSes are generally thought to be more reliable, reducing the number of IT staff that you have to pay to administer and fix the machines, but that's just icing on the cake. So I'd consider the liberal choice to choose to run more expensive software that has a much greater liability in running it, and that's MS, not the UNIXes.

Quote:
Companies still use Microsoft and you have to know visual studio unless you work for some large defense company that avoids Microsoft.


It depends on what you want to do. There are a lot of UNIX machines out there- mostly as servers- and *somebody* had to develop applications for them and administer them. Also, it's becoming increasingly common to encounter non-Windows machines being used in businesses for the reasons I outlined above, and again, somebody will need to develop for them. The bottom line is that it's good to know how to do work with several kinds of machines as it makes you more versatile and thus more attractive.

Quote:
Also, like others said, don't expect a lot of games on the Mac.


That's completely irrelevant to the argument about universities. I haven't seen any games on any computers owned by any university that are more complex than Solitaire or Pinball, so the argument is moot. This might be more important to a student, but if you want to game, consoles are less expensive in the long haul than computers.

Quote:
Linux is used a lot in web-work. Around 50% of the worlds web servers are Lunix. So if you (software engineers) are doing web applications (not web-pages), learn Apache and IIS. You need to be good with databases anyway.


Linux is also *the* HPC OS, as well as being extensively used for databases (especially large ones), file serving and e-mail. Windows servers tend to be used more frequently to run MS-only programs like Terminal Services or Exchange rather than the uses mentioned before, although IIS is used extensively for corporate intranet pages. Generally Windows servers will be used for file and Web serving if there is really only need for one server and you have to run Exchange or Terminal Services, so it's more of a "hey, we have this server already" kind of bit than a choice to use it. Of course there are exceptions, but this is what I've seen.
September 4, 2007 6:17:34 PM

I'm in the same situation. I'm waiting for the MacBook (non-Pro) refresh, which should allow me to drop 4gb of memory and a nice 250gb hard-drive into the laptop without a problem. Also, slightly better intergrated video offering SM 3.0. (I'm not a gamer, I just want something for OpenGL or another library, if needed).

The build quality of MacBooks is much better than any laptop I've seen out there - LED backlighting, longest battery life on WiFi (802.11n), quiet, next to no failures for most people, and the magnetized power charger. Although Dell is significantly cheaper, the build quality of their laptops isn't as good.

Thirdly, I like how small and light the MacBook is. All I need is a small screen (12") with a decent resolution. No dedicated video or large (15"+) screens for me.

Why can't one just use Boot Camp with Vista/Linux?
September 4, 2007 9:18:46 PM

These are great responses. The only thing I would add would be that in my experience, nothing has replaced classroom and books for learning the basic concepts of programming (conditionals, loops, etc) which then can be extended by using online resources to learn the actual syntax. I think it's important to use the text which has been well thought out to learn all the intricacies of these constructs before applying them to real programs. That's why I always tell people to start with something like qbasic to learn the basic structures, then they can use that as a jumping off point to C or perl or whatever.

I learned the basics when I was 8 or 9, writing basic on a commodore pet and commodore 128.

From there, it was easy to just learn syntax to create javascript, VB, php, perl, etc.
September 4, 2007 10:05:32 PM

I agree with the idea of learning the basics first (i.e. non-graphical C++), and then expand into other realms after having that under your belt. I was kind of surprised to hear that some colleges do little C++ and go straight to Java, as I feel you learn more of the underlying structure of the system by doing C++ than by using Java.
September 4, 2007 10:08:41 PM

I would echo what others have said about learning C++, maybe even C (easier and more fundamental even, and stricter syntax). I am a sucker for Stroustrup (author, also creator of C++), but many think it's a bad starting point - too advanced to be the first read. May be the case; when I picked it up I was comfortable with C...

Basic is the easiest to learn, but I would advise against it for various reasons like loose syntax etc. It is best to learn strict syntax first, and then move on.

I would also suggest an IDE. Much more readable code organization and superior debugging tools (and you'll need them at first because of a lot of logic errors, etc.). Edit: I am not suggesting to use extensive GUI when learning, but to use the IDE tools while writing basic non-GUI oriented code.

Also, try to find a good book on algorithms and data structures. They are the basis of good programming. I find online resources to be a good reference tool but a poor learning tool, personally.
September 5, 2007 12:01:50 AM

Some people on this forum really need to stop with the infantile Mac bashing especially since they don’t know what they are talking about in the least. FUD corrections are as follows:

“Why in the world would you want to buy a more-expensive MacBook Pro to just pay yet more money to buy a full copy of Windows to run it in emulator at reduced performance?”

Boot Camp is not an emulator and Windows runs at native speeds on Apple hardware. There are some reports that claim that Windows RUNS FASTER on Apple hardware. Seeing as Apple has totally embraced PC hardware from their Intel CPUs to their ATI and nVidia GPUs to USB 2.0 to EFI that was developed by Intel, Macs are as much PCs as … well … PCs.

“…why would you buy the fischer price model? Apples are fantastic - if you surf the internet, write e-mail, and don't really know what a CPU is. If you play games, program, etc., you'll want a Windows based machine.”

Funny, I remember when Windows XP was called the Fischer Price model! I repeat again, Macs use the SAME DAMN INTEL CPUs! Moreover, Macs run Windows natively which means GAMES! Jesus, how many times are people going to repeat this FUD?

Lastly Macs can run all three major operating systems from Windows XP (native and virtualized), Linux (native and virtualized) and of course OS X. Moreover, Leopard is fully UNIX compliant. Certification means that software following the Single UNIX Specification can be compiled and run on Leopard without the need for any code modification.

The only argument against getting a Mac is that they are usually more expensive than your basic Dell. NOT insanely more expensive but more expensive nevertheless. With Dell’s coupons you can pay at least $200 dollars less than for a comparably feature laden Mac. But of course, you do get what you pay for and Macs definitely have a better build design than a Dell. And this is coming from a guy with two Dells who has used, installed and programmed on Windows since DOS.



Relevant links:

http://www.apple.com/macosx/leopard/technology/unix.htm...

http://www.apple.com/macosx/bootcamp/
a c 102 à CPUs
September 5, 2007 3:35:57 AM

Quote:
Some people on this forum really need to stop with the infantile Mac bashing especially since they don’t know what they are talking about in the least.


LOL, infantile Mac bashing. Since that was my message that you quoted below, I'll let you know that I am *not* an "infantile Mac basher." I'm not an absolute expert on OS X since I don't use it on a daily basis, but I've certainly used it enough to get a decent feel for it as well as being skilled enough to help people who are regular Macintosh users set things up or fix them.

Quote:
Boot Camp is not an emulator and Windows runs at native speeds on Apple hardware. There are some reports that claim that Windows RUNS FASTER on Apple hardware. Seeing as Apple has totally embraced PC hardware from their Intel CPUs to their ATI and nVidia GPUs to USB 2.0 to EFI that was developed by Intel, Macs are as much PCs as … well … PCs.


First off, most Macintoshes are personal computers and always have been- the Xserves and the old-school PPC and 68k beige-box servers being the exception. So drop the "Mac vs. PC" bit or we'll have to hit you with a clue-by-four until you do.

Secondly, I didn't see anywhere I said that Boot Camp was an emulator at all. It is in fact a BIOS emulator, but that makes virtually no difference to the OS once it is running as the OS assumes control over almost all of the hardware functionality. Something like VMware, QEMU, and Parallels are emulators, but that wasn't being discussed. What was being discussed is installing Windows on the bare metal of an x86 Macintosh (using the Boot Camp BIOS emulator.) It achieves the same effect as any other Windows laptop but at a generally higher price and requires that Boot Camp be installed. That's what I said was a little goofy- it pretty much defeats the purpose of buying the Macintosh in the first place, which is the OS. The only other difference between a Macintosh and any other computer is the hardware, and you just said that it's the same as any other computer. So there isn't really a logical reason to spend more money to get a Macintosh. If you get a Macintosh just to install Windows on it, you probably did so for some other reason- brag to your friends, you like how the Macintoshes look, etc.

Quote:
“…why would you buy the fischer price model? Apples are fantastic - if you surf the internet, write e-mail, and don't really know what a CPU is. If you play games, program, etc., you'll want a Windows based machine.”

Funny, I remember when Windows XP was called the Fischer Price model! I repeat again, Macs use the SAME DAMN INTEL CPUs! Moreover, Macs run Windows natively which means GAMES! Jesus, how many times are people going to repeat this FUD?


The previous quote was a little dumb, but your response simply reaffirms what I said above: if you want to buy a Windows-based computer, it's easier and cheaper just to get one set up that way.

Quote:
Lastly Macs can run all three major operating systems from Windows XP (native and virtualized), Linux (native and virtualized) and of course OS X. Moreover, Leopard is fully UNIX compliant. Certification means that software following the Single UNIX Specification can be compiled and run on Leopard without the need for any code modification.


Technically, an unmodified x86 Macintosh can only run Linux, BSD UNIX, and MacOS X as no other OS has EFI support. But the same OSes will run on a PowerPC Macintosh too, so there's no big deal there. You can hack the EFI to allow OSes without EFI support like Windows XP and DOS to load and that is the big deal with the computer. But you can run Windows, Linux, and OS X on any other x86 computer with SSE3 support. There's no technical limitation, only that Apple DRM'ed some of the core components to prevent this. It's not an "it won't run on any other machine" situation, it's a "they won't let me run it on any other machine, but it will in fact run" situation. The OSx86 guys found that one out pretty quickly.

Yes, MacOS X is UNIX compliant because it is a BSD UNIX distribution with a proprietary graphical subsystem in place of (and sometimes alongside) X11 and a proprietary DE. You can compile UNIX applications for a Macintosh without any code modification if and only if you can gather and install ALL linked-to libraries on your system. I can send you the source code for another UNIX's program, such as GNU Octave, and you won't be able to compile and run it until you install X11, GTK, and a whole host of other libraries. It is possible, but it can be difficult to the point that an application is effectively non-portable.

Oh, and one more thing: the above is referring only to programs where you can get all of the needed libraries. This means that a GUI program you write on your Macintosh might technically be UNIX compliant but be impossible to run on my Linux machine as I cannot get a hold of the Quartz or Cocoa libraries that I'd need to compile and run the program.

Quote:
The only argument against getting a Mac is that they are usually more expensive than your basic Dell. NOT insanely more expensive but more expensive nevertheless. With Dell’s coupons you can pay at least $200 dollars less than for a comparably feature laden Mac. But of course, you do get what you pay for and Macs definitely have a better build design than a Dell. And this is coming from a guy with two Dells who has used, installed and programmed on Windows since DOS.


Macs are more expensive- I've been saying that all along. But the build quality bit is very subjective and the dozens of people I know that have owned Macintoshes, especially MacBooks, have had plenty of problems and the build quality has sucked. The original Core Duo MacBooks ran far hotter than my old flamethrower P4-M laptop did. MacBooks invariably look terrible after several months once the keyboard rest either turns skid-mark-brown (white models) or the black paint flakes off (black models.) The metal-case MacBook Pros wear better, but they are *much* more expensive than the basic Dells and HPs and compete with the corporate-class machines. I've seen Dell Latitudes basically thrown around for a couple years and not look the worse for wear, ditto with many ThinkPads (exc. some x60s, the screen bezels are crap) and HP/Compaq business machines. I'd say that the others are as good or better as the Macs from what I've seen, and I've seen hundreds of notebooks over the last several years.

Plus, Apple has a very narrow range of notebooks and a very limited feature range. They have a 13.3" consumer unit and a 15" and 17" corporate unit. Most other OEMs have 12.1" and 14.1" units in addition to the sizes that Apple has, and a few have 11" and smaller units and 19-20" behemoths. Many also have tablet PCs, which have some traction in certain fields such as education and medicine. Apple has very limited hardware features in their computers, too. None of them have a straight HD-15 RGB port on them for projectors- the Pro models have DVI-D (you need a DVI-D to RGB adapter) and the consumer models have a proprietary port and require that dongle that most people forget when they need to hook up to a projector. No Apple notebooks have a memory card reader, something that's pretty handy and almost ubiquitous on other notebooks. The notebooks also can't handle an extended battery as they battery sits directly underneath the middle, so battery life is limited. Other notebooks have a wide range of battery sizes and some really take advantage of the ability to poke out of the back or front of the unit. These traits commonly make Apple notebooks as a whole less than desirable for the money once they're compared with comparably-priced units from other OEMs.
September 5, 2007 4:21:13 AM

Here is the deal...

Knowing how to write code in C++ is only a small part of the battle.

Knowing what effects you make to the system with that code is another large part of the battle that is oft forgotten these days.

Get yourself a UNIX INTERNALS book and have a good read. From there install any distro of LINUX on your newly acquired Windows machine and go to town.

Why Linux? Because windows developers tend to make less money than those who work with/Know Unix variants.

Things you learn in the Linux dev world will directly apply to your Windows dev world (.net aside). Then learn a JAVA. YOu acn even use Eclipse as a Graphical Development Environment within Windows AND Linux.

Most Devs these days have little to NO understanding of what is happening under the covers. How to optimize code. What word alignment is and why it is important to certain machines and not so important to others.

Many devs probably do not know what an inode is anymore. They don't know why they should or should NOT inline something.

ANd many certainly do NOT know how to efficiently design code let alone a parallel application.
September 5, 2007 4:23:36 AM

Well, a lot of the responses in this thread were senseless Mac bashing. I've never owned a Mac myself, but buying a Macbook and running Windows as a virtualized OS, as the original poster mentioned, is a perfectly reasonable thing to do, if you have the money to do it. I know a lot of people who are software engineers, or computer science students, or physicists that do a lot of coding who own Mac laptops. Usually the reason is that they are used to using Linux, but some things in Linux like power management often doesn't work very well on laptop hardware. Since OSX is UNIX based it offers many of the tools they want.

What it essentially means is that you are paying money for software-- the OSX GUI and its core programs, the command prompt and UNIX functionality, etc. These are the things you will use most of the time, and if there is a Windows program you simply have to be able to run, then you can run it in a virtual OS. Perfectly valid thing to do if you are running native OSX apps more often than Windows apps. I don't see how people can be so opposed to paying more to be able to run OSX and Windows, and then suggest that this poster go spend at least $250 to buy Microsoft Visual Studio.
September 5, 2007 4:26:20 AM

Just say NO to MVS!!!
September 5, 2007 5:30:21 AM

ches111 said:
Here is the deal...

Knowing how to write code in C++ is only a small part of the battle.

Knowing what effects you make to the system with that code is another large part of the battle that is oft forgotten these days.

Get yourself a UNIX INTERNALS book and have a good read. From there install any distro of LINUX on your newly acquired Windows machine and go to town.

...


I would argue with you in that you need to crawl before you can fly. I agree with your larger point, but first it would be good to understand the language, and then go an understand Unix. Unix is not trivial.

Ultimately, of course, you are right. In order to be an efficient programmer you really need to know the system you are programming for / on. That holds true regardless of the platform; knowing how Windows works is required to write effective Windows code. Yes, yes, C (and I believe originally it was C and not C++, but do correct me if I'm wrong) go hand in hand, but I would suggest that things need to be taken in order, and the language is probably step 1. You probably still go back to the language.

And another thought; knowing the system is one more advanced parts of programming and thus should be one of the latter considerations. If the program logic is poor, no matter how well you know the system, it will remain a poor program. So I would say a good program comes from an effective combination of logic, understanding of the platform, and good coding practices.
September 5, 2007 10:44:13 AM

ches111 said:
Just say NO to MVS!!!


So do you care to give some reasoning to your statment. You might not prefer MVS but it is kind of hard to deny just about one of the best IDE's out the market as an option all together.
September 5, 2007 10:49:10 AM

russki said:
I would argue with you in that you need to crawl before you can fly. I agree with your larger point, but first it would be good to understand the language, and then go an understand Unix. Unix is not trivial.

Ultimately, of course, you are right. In order to be an efficient programmer you really need to know the system you are programming for / on. That holds true regardless of the platform; knowing how Windows works is required to write effective Windows code. Yes, yes, C (and I believe originally it was C and not C++, but do correct me if I'm wrong) go hand in hand, but I would suggest that things need to be taken in order, and the language is probably step 1. You probably still go back to the language.

And another thought; knowing the system is one more advanced parts of programming and thus should be one of the latter considerations. If the program logic is poor, no matter how well you know the system, it will remain a poor program. So I would say a good program comes from an effective combination of logic, understanding of the platform, and good coding practices.



I would also suggest sticking with one language for a while instead of jumping around. A lot of colleges like to keep throwing new languages at you without ever letting you get your feet wet with just one. There is soooooooooooooooooooooooOOOOooooo much to be learned in regards to c++. Not saying you have to learn it all but it is of benefit to at least become well versed. Once you get you head around one language the majority of ideas will translate to most other languages. The reason why I recommend c++ over others is that it encompasses just about every idea there is out there.
September 5, 2007 10:57:56 AM

ches111 said:
Here is the deal...

Knowing how to write code in C++ is only a small part of the battle.

Knowing what effects you make to the system with that code is another large part of the battle that is oft forgotten these days.

Get yourself a UNIX INTERNALS book and have a good read. From there install any distro of LINUX on your newly acquired Windows machine and go to town.

Why Linux? Because windows developers tend to make less money than those who work with/Know Unix variants.

Things you learn in the Linux dev world will directly apply to your Windows dev world (.net aside). Then learn a JAVA. YOu acn even use Eclipse as a Graphical Development Environment within Windows AND Linux.

Most Devs these days have little to NO understanding of what is happening under the covers. How to optimize code. What word alignment is and why it is important to certain machines and not so important to others.

Many devs probably do not know what an inode is anymore. They don't know why they should or should NOT inline something.

ANd many certainly do NOT know how to efficiently design code let alone a parallel application.



It would seem this way....

I think it has to do with the fact that people are often put into the "Specialized" role in the work world. I can't count the amount of people I have come across that carry the "developer" title but could not code some basic data structures or like you said optimize based off the platform. Which is all fine and dandy with me because it makes me more money in the long run.

Bottom line...anyone who is thinking of entering the wonderful world of software development in any of its multiple forms needs to realize that there is a hell of large dedication to learning the needs to be had. There is flat out no way one person could ever learn everything there is to learn. Find a niche and role with it. But by all means don't limit yourself to the high level explanation of things. Dig deep and search for those low level answers.
September 5, 2007 1:22:23 PM

ihateibuypower said:
hey guys...i wanna get into software engineering as i am hoping to study it in college...wondering if you had any suggestions on books or tutorials that could help me get started. Also, i am seriously considering buying a macbook pro and using the parallels program to go on windows when i do this stuff. does anybody know if that works well or if another laptop could be a good choice for me. all your help is appreciated


Forget all the Unix vs Microsoft stuff - it doesn't make any difference. Here's what you need to do

1) Pick a language to use for learning - personally I would stay away from C initially - too many issues with pointers etc... I learnt on pascal in mid to late 90s. However java or C# are solid modern languages.

2) Do simple command line programming - e.g. Hello World.

3) Learn how to declare variables etc...

4) Start learning simple constructs such as if statements and loops. Write simple apps like converting temperature from C to F or F to C, or KM to Miles to Miles to KM.

5) Move onto more complicated structures such as case statements, arrays and so on. Then start looking at doing simple things like file access.

Once you have learnt all of these, you will have a solid grounding. This is where I was after 1st year Uni

Then you start learning things like OO programming, GUIs, database programming (SQL) and so on.

A Uni degree is normally structured to teach you in steps - you end up taking lots of little steps.

Then you go and get a job and learn all sorts of things they don't teach you at Uni. It will not be a 5 minute process.
September 5, 2007 2:33:41 PM

hassa said:

1) Pick a language to use for learning - personally I would stay away from C initially - too many issues with pointers etc... I learnt on pascal in mid to late 90s. However java or C# are solid modern languages.

That's an interesting debate. I would still suggest starting with C. Yeah, pointers are not an easy thing to get a handle on, but that is also more or less a non-language issue. For example, Pascal has pointers, too. And that is a nice, structured language; too bad it's dead. C, on the other hand, is the foundation of most of the modern languages; one could even argue that the modern Basic is the evolution of the traditional basic into something that is more like C (well, maybe Pascal, in that it differentiates between funcs and procs, if I recall correctly).

Anyway, C is structured enough to force somebody into strict syntax (C++ to a lesser extent), and you could stay away from pointers and memory management initially, which is how most books are written anyway. And one can never hide from complicated issues forever...
September 5, 2007 3:49:27 PM

chadsxe said:
So do you care to give some reasoning to your statment. You might not prefer MVS but it is kind of hard to deny just about one of the best IDE's out the market as an option all together.

Chad,

The reason I say no to MVS is there are other options that are free to start with. MVS may be cheaper as a student but it is NOT free.

He could try Eclipse and could run its familiar DE on Windows or Linux and have it look/feel the same in either env. The plugins for Eclipse are enormous and it has growing commercial support as well.

MVS is great if you have a need for MFC type things...

So that is my reasoning....
September 5, 2007 3:53:02 PM

My comments above are easily summarized.

Take the time to understand what a SYSTEM is.

Once you understand the SYSTEM then pick up a Language.

Once you have a very good comfort level move to the Second in demand language.

My suggestions for learning in a Linux env helps to better the dev for a larger amount of work places. Also as a Linux dev you are typically an enterprise level dev which does help with salary concerns. (not saying there are NOT enterprise level devs in Windows)
September 5, 2007 4:28:48 PM

ches111 said:
Chad,

The reason I say no to MVS is there are other options that are free to start with. MVS may be cheaper as a student but it is NOT free.

He could try Eclipse and could run its familiar DE on Windows or Linux and have it look/feel the same in either env. The plugins for Eclipse are enormous and it has growing commercial support as well.

MVS is great if you have a need for MFC type things...

So that is my reasoning....



Fair enough....I guess cost is always an issue but my thinking is if he is willing to pay for school then investment towards MVS should not be an issue. Eclipse is a very solid alternative buts not as nearly as rich of an environment as MVS. Someone starting out most likely will not even be able to make full use of all the features that MVS offers until they have a little bit more experience. But on the same note they will never learn unless they try.
September 5, 2007 4:34:21 PM

In regards to Mac vs non-Mac, here's the crux of the argument. No one has said that not having Windows is a good thing - we all should agree that having at least one Windows based machine is a good thing.

Now obviously, yes, Apple computers can now run Windows natively as the hardware is x86 based instead of Moto or IBM. And yes, there should be no speed degredation as it's native, rather than emulated through another OS (although for awhile Apples were on the Core, rather than Core 2 Arch, while PCs had Core 2 available, so that would have made Apples slower and producing more heat).

The main point is that Vista (and even XP to some degree) is incredibly expensive. Macs in general are also expensive. So the question becomes why would you want to buy an expensive computer that you're just going to increase the cost of by having to additionally purchase the OS you really need. Mac people, really, get over it. The main point is that if you want to use Windows (and most people do), build or buy a PC (depending on the hardware you're targeting, one may be cheaper than the other). Find me a Mac laptop package for 700 dollars that can play games, install Vista Premium/Ultimate and MS Office (so 700 dollars includes the price of all the MS software). Then we can talk.
September 5, 2007 8:24:19 PM

chadsxe said:
Fair enough....I guess cost is always an issue but my thinking is if he is willing to pay for school then investment towards MVS should not be an issue. Eclipse is a very solid alternative buts not as nearly as rich of an environment as MVS. Someone starting out most likely will not even be able to make full use of all the features that MVS offers until they have a little bit more experience. But on the same note they will never learn unless they try.


I think it's better for a person who is just starting out to not use MVS or any IDE. If you have never programmed before and start off using MVS, you will spend about half your time learning the programming language and half your time learning the IDE. Most books/tutorials for beginners will say "here's some code, compile it." The easiest thing to do will be just to put the code into a text file and then tell it to compile the file from a command prompt. If you start off using MVS, you might get confused searching through all the controls and menus, knowing which type of project to start, dealing with automatically generated code and files, etc. This is essentially useless knowledge as you are just learning how this particular GUI for Microsoft's IDE works, which you probably won't use while in college. If you start off using a command prompt, it will help you learn useful fundamental knowledge about how compiling a program works.

I like using MVS ok. The general interface for managing files, editing code, compiling, and debugging is good. I don't think the interface for designing GUIs and other things that automatically generate code is very well done, intuitive, or easy to learn, though. Maybe this is because the way it has evolved as a series of hacks on top of APIs that are 15 years old. If you're someone who designs commercial windowed applications, you pretty much have to use MVS because the majority of people have Windows and are used to the look and feel of applications compiled using MVS.

My main problem with MVS is that it tries to force developers to use Windows APIs and libraries that are no better than cross platform alternatives, which make it difficult/impossible for developers to port their code to other systems. So developers make their application only for Windows. This in turn forces users who want to use that application to buy Windows. Which in turn forces developers to design more applications only for Windows. In the meantime, using MVS tries to force developers to start using other Microsoft services and libraries that are very expensive even though there exist free alternatives that are at least as good. My main annoyance with MVS is not that it is necessarily a bad IDE--it is ok, it's just that when possible I like to avoid letting Microsoft make me their bitch.
September 5, 2007 8:47:01 PM

I don't think anyone was suggesting that he use MFC, just the editing / debugging features of the IDE. It does help to make the code much more readable. It does have a tremendous reference built in. It does have good debugging tools.

And if you can't find Compile and Run in the menus - well, maybe software engineering is not for you after all.

OP: do follow moocow's advise, though, and do not get into MFC. Learn the language first. But by the same token, don't be handicapped by the rudimentary text editors. Most of the editors within the IDE's are specifically designed to help you with a particular programming language.
September 6, 2007 3:31:58 AM

russki said:
That's an interesting debate. I would still suggest starting with C. Yeah, pointers are not an easy thing to get a handle on, but that is also more or less a non-language issue. For example, Pascal has pointers, too. And that is a nice, structured language; too bad it's dead. C, on the other hand, is the foundation of most of the modern languages; one could even argue that the modern Basic is the evolution of the traditional basic into something that is more like C (well, maybe Pascal, in that it differentiates between funcs and procs, if I recall correctly).

Anyway, C is structured enough to force somebody into strict syntax (C++ to a lesser extent), and you could stay away from pointers and memory management initially, which is how most books are written anyway. And one can never hide from complicated issues forever...


You're right - it might be a bit hard to get a copy of pascal these days. Though I'm sure I could find some old books somewhere :) 

But addressign the general discussions that are occuring here, I think alot of people are missing the point here - you are too busy arguing religion. EMACS vs VI, Mac vs WinTel etc... The OP was asking about learning Software Engineering and what machine to get to do that. In the end, the machine is irrelavent as long it can run the development environment the person is using. If they are using a gcc compiler, then a 486 running linux could handle that.

FIRST learn programming constructs THEN learn tools, such as Visual Studio or whatever you end up doing.
I do a lot of programing with PowerBuilder - I bet most people haven't even heard of it. And I am really good at it. But I didn't learn it at Uni - what I did learn at Uni was a solid programming background using Pascal, C, some Java and even assembler.... I then learnt PowerBuilder at my first job, where I was fortunate to have a brilliant mentor - he used to be a Sybase instructor before he setup a small firm that specialised in PB.
The point I am making is that while I would personally I would get a windows machine, that should be a secondary consideration to learning how to program properly. Alot of people can program, but most of them cannot be called programmers as they lack any formal training and do all sorts of awful, unmaintainable stuff. Learn your basics establish a solid foundation and build from there. Lots of small steps. When you then look behind, you will be surprised at how far you ahve come...
September 6, 2007 4:43:25 AM

I am a Software Engineer and I will be the first to tell you that there is a very large gap in the "quality" of developers. I highly suggest that you study in a UNIX environment using primarily C/C++. It will make you learn things that are often taken for granted, such as linking... Many students these days get by with learning C# and some Java, and maybe even a bit of dynamically-typed languages, but most of them end up as web programmers, and that's fine if that's what they want to do. But you will be infinitely better off learning all you can in a lower-level language such as C/C++. Everything you learn will make you that much better at higher-level languages too!

And just as a note, UNIX shell commands are incredibly powerful. Learn them, and you will see why developers really like the UNIX.

As for books, it all depends on your knowledge level. Assuming you can write some programs and understand them, take a look at the following books:

Computer Systems, A Programmer's Perspective
(by Randal E. Bryant & David O'Hallaron)
*Great for a solid low-level foundation. It will teach you:
- x86 assembly
- memory representations
- optimizations
- processor architecture
- caching
- concurrency theory
- low-level network programming

Code Complete
(by Steve McConnell)
*Teaches best practices and aesthetics. This book is a must.

That first book may be a bit much to soak in at first, but if you really study it, you will be well on your way to being a fantastic software engineer. Then you can get into all sorts of cool things like reverse engineering.

September 7, 2007 10:51:06 PM

@ MU_Engineer

“That's what I said was a little goofy…”

“The previous quote was a little dumb…”

Your words not mine. I said it before and I will say it again, Macs can run all three major operating systems natively and virtualized and subsequently all of their respective applications on the same hardware. That aspect alone should make any budding software developer drool. All that nitpicker bullshit you posted about Macs not having a card reader, an extended battery or some port you need is overcompensation. You know damn well a 30-in-1 USB card reader can be purchased for $15 bucks or some adapter is available for whatever port you might need. And you sure as hell didn’t point out the hardware features that Macs have that PCs don’t like the illuminated keyboard, MagSafe connector, etc… And as far as the expense argument goes, the price difference isn’t abysmal unless you are going for the bottom of the frigging barrel non-brand name notebook. And there is nothing wrong with that especially for a college student. Apple doesn’t make cheap stuff! Deal with it.

@ wolverinero79

“Find me a Mac laptop package for 700 dollars that can play games, install Vista Premium/Ultimate and MS Office (so 700 dollars includes the price of all the MS software). Then we can talk.”

LOL!! I tell you what, FIND ME A PC LAPTOP FOR $700 DOLLARS that can play today’s games with Vista! You fools kill me with this race to the bottom but I am reaching for the stars bullshit! If you want a laptop, ANY LAPTOP, that is going to do all that AT A DECENT SPEED MUCH LESS FAST and allow for coding projects, you definitely are going to pay more than $700 dollars. And as far as Vista and Macs go, take a look at what PC World had to say about it.


PC World’s Most Notable Notebooks of 2007

Fastest: Apple MacBook Pro

The fastest Windows Vista notebook we've tested this year is a Mac. Try that again: The fastest Windows Vista notebook we've tested this year--or for that matter, ever--is a Mac. Not a Dell, not a Toshiba, not even an Alienware. The $2419 (plus the price of a copy of Windows Vista, of course) MacBook Pro's PC WorldBench 6 Beta 2 score of 88 beats Gateway's E-265M by a single point, but the MacBook's score is far more impressive simply because Apple couldn't care less whether you run Windows. Full review

http://tech.msn.com/products/slideshow.aspx?cp-document...

http://tech.msn.com/products/slideshow.aspx?cp-document...
a c 102 à CPUs
September 8, 2007 3:07:07 AM

Quote:
@ MU_Engineer

“That's what I said was a little goofy…”

“The previous quote was a little dumb…”

Your words not mine. I said it before and I will say it again, Macs can run all three major operating systems natively and virtualized and subsequently all of their respective applications on the same hardware. That aspect alone should make any budding software developer drool.


Or swear, because it's very widely known that OS X x86 runs on x86 hardware not made by Apple. Thus there is a barrier to entry for programming for a Macintosh that is simply contrived and there is no technical reason for. It's not like in the past where MacOS ran on PowerPC chips and with the exception of Genesi's little PPC machines and smaller IBM servers, Apple was the only one selling PPC workstations and desktops, so you had to have their hardware to code for their machines. Any software developer or sysadmin or CFO- especially CFOs- should be very, very wary of vendor lock-in. And if there's something that Apple's known for, it's lock-in. They are much worse than Microsoft in this regard, and Microsoft is terrible about lock-in.

Quote:
All that nitpicker bullshit you posted about Macs not having a card reader, an extended battery or some port you need is overcompensation.


Overcompensation for what?

Quote:
You know damn well a 30-in-1 USB card reader can be purchased for $15 bucks or some adapter is available for whatever port you might need.


Buying and carrying around dongle-type adapters is not only more expensive, but a pain in the butt. The lack of an RGB connector in a laptop is a major fault as it's rather common to hook up a laptop to an external monitor or projector. I can't remember how many times I've seen people with Apple notebooks forget those damn dongles and have to give a presentation sans their slide show. The card reader is a more minor issue, but it's handy to have a reader built-in if you do much with a digital camera. Not to mention the internal readers are almost always much better than the crap you buy for $15 somewhere. The decent external card readers are much more than $15 and not all that portable as they are generally boxes roughly the size of smallish 3.5" external HDD.

The part about the extended batteries is a *major* issue with quite a few people, myself included. Students who use their notebooks as notebooks and take notes with them in class need a significant battery life as outlets are pretty scarce in all of the classrooms and auditoriums I've been in, and that's a lot of them. They also tend to have classes in a row, so the battery has to last through all of them without a recharge. When you're working, it's common to be doing work for a long time away from an outlet, such as on a flight or in an airport. Or even sitting in some conference rooms, especially if you're not the first one in there and snag one of the one or two outlets in the rooms for your charger.

Quote:
And you sure as hell didn’t point out the hardware features that Macs have that PCs don’t like the illuminated keyboard, MagSafe connector, etc…


A backlit keyboard? What good does that serve? You're really not supposed to look at your keyboard when you type anyway, so it's just a distraction. And not only do you have a machine without the capability of using a very large or multiple batteries but then you want to drain it quicker by backlighting the keyboard. Oh, and the keyboard being lit makes it harder to see the screen at a dim level, so brighten that up to see it, and oh, the battery dies fairly quickly. Imagine that.

And talk about being nitpicky, you're going on about the kind of tip the power supply has. Well, I suppose it makes sense because you'd be the guy that needs to string a power supply across eight seats to reach the outlet because your battery went flat because of its small size and the keyboard backlighting sucking power. In that case, having a quick-detach power supply cord might make sense. But meanwhile, people who bought other computers have plenty of life left in a large, extended life battery or a second battery and sidestep the whole mess.

Also, that power connector guarantees that when it gets damaged, you *have* to buy a replacement from Apple, likely at a quite overinflated price, while everybody else can just buy a generic one and be done with it. Ditto for travel/air chargers.

Quote:
And as far as the expense argument goes, the price difference isn’t abysmal unless you are going for the bottom of the frigging barrel non-brand name notebook. And there is nothing wrong with that especially for a college student.


First off, the only non-name-brand notebooks are those made by a large ODM supplier such as Quanta. These units are sold to OEMs for rebranding, unless the OEM is their own ODM like MSI or ASUS, or does at least some assembly themselves. Oh, wait, Apple isn't an ODM, are they? You mean somebody else sells them no-name notebooks that they simply put the HDD, RAM, and CPU in? So Apples are actually no-name-brand notebooks underneath the logo?! Say it ain't so!!

Quote:
Apple doesn’t make cheap stuff! Deal with it.


I did. I bought another make of notebook, one that had a card reader, built-in RGB port and card reader, as well as a battery that's twice the capacity of the usual one, good for about seven hours of use. That and it cost me roughly as much as a MacBook but doesn't burn up or get those ugly brown stains on the keyboard rest.

Quote:
PC World’s Most Notable Notebooks of 2007

Fastest: Apple MacBook Pro

The fastest Windows Vista notebook we've tested this year is a Mac. Try that again: The fastest Windows Vista notebook we've tested this year--or for that matter, ever--is a Mac. Not a Dell, not a Toshiba, not even an Alienware. The $2419 (plus the price of a copy of Windows Vista, of course) MacBook Pro's PC WorldBench 6 Beta 2 score of 88 beats Gateway's E-265M by a single point, but the MacBook's score is far more impressive simply because Apple couldn't care less whether you run Windows. Full review

http://tech.msn.com/products/slideshow.aspx?cp-document...

http://tech.msn.com/products/slideshow.aspx?cp-document...


My god, the MSN guys suck. First of all, if a laptop with a T7700 and an 8600M GT won as "fastest" then it was up against a pretty weak field. Try putting it against one of these guys and watch it get its backlit butt handed to it. It's about 10% more expensive than the MacBook as MSN tested it.

http://www.ubergizmo.com/15/archives/2007/08/core_2_qua...

And anyway, I guess the MSN guys haven't taken a stats class, and neither have you. There is such a thing called "statistical significance" that needs to be taken into account. The difference between the MacBook and the Gateway was one point out of 88 on one benchmark. For that small difference to be statistically significant, it needs to be repeatable many times with a small standard deviation between the scores of the machine. But hey, math is hard! Better to run the benchmark just once and call it a day.
September 8, 2007 4:53:34 PM

MU, why do you even bother?! Apple fanatics take the "fanatics" part to the new highs...You will never convince them with rational arguments. Let them enjoy the <10% market penetration...
a c 102 à CPUs
September 9, 2007 2:20:02 AM

russki said:
MU, why do you even bother?! Apple fanatics take the "fanatics" part to the new highs...You will never convince them with rational arguments. Let them enjoy the <10% market penetration...


I'm actually trying to hone my skills in shooting down overzealous Mac fanboys and fangirls. There are a few absolutely horrible Mac fanboys and fangirls in my classes. I'm not trying to convince them they're misguided (that'll work about as well as squeezing blood from a stone). I'm trying to convince everybody *else* that they are. That absolutely needs to be done as just about everybody has had it up to here with them and is looking for somebody to take them down a bunch of pegs. I'm "the computer guy" so I'm looked on as the one that will have to do it.
September 11, 2007 4:50:55 AM

1. Hey Russki and MU_Engineer, I DON'T OWN A MAC...YET! Linux and XP over here running on old Dell desktops. Did you even read my comments? Or did you read “Mac” and just start foaming at the mouth? But go ahead and lump me in with the fanboi crowd, it really bolsters your argument. You are definitely the idiotic, overzealous "computer guy" that EVERYBODY hates because you “think” that if they are not doing things the EXACT way you are, it’s wrong and misguided. Did you even get the gist of that SNL sketch? Apparently not.

2. So that's all you got huh, RGB connector, 3-in-1 card reader and a battery that runs for *maybe* an hour longer than Apple's battery? Oh and brown stains. This is your main knock on Apple laptops. Like I said before nitpicker. So tell me oh great one, what exact make and model of notebook do you use? It must be PERFECT, RIGHT? But seriously, give me the make and model because I am compiling a list for purchase and so far the MacBook Pro is winning. HERE IS YOUR BIG CHANCE TO STOP ME FROM MAKING A BIG MISTAKE! Don’t let me down.

3. The statistics crack is hilarious! The MSN guys are just morons because you are the **** engineer right? LOL!! Oh BTW, not that you would believe me but I took stats at Stanford University over 13 years ago. Moreover that Vista speed comment wasn't even addressed to you but whatever.
September 11, 2007 3:35:24 PM

You know what bolsters our argument? You foaming at the mouth at our replies.

I still fail to see why its a great idea to get a mac. Most apps you will want to use are on PC, and why would you buy a piece of hardware with a pre-loaded OS to have another OS installed on it? Costs aside, what is the reason for the aggravation? And why do you need to learn how to program on all three OS's? Don't you think learning just one should be the first step? And if it is just one, then shouldn't it be the one that is most wide-spread (not to mention more intuitive to use with better application support)?

Anyway...
a c 102 à CPUs
September 11, 2007 7:00:11 PM

Quote:
1. Hey Russki and MU_Engineer, I DON'T OWN A MAC...YET! Linux and XP over here running on old Dell desktops. Did you even read my comments?


Yes, I did. The thread started off with ihatebuypower wanting to know what computer would be good for him to take to college. He said he was going into software engineering and wondered if a MacBook would be the best choice. I said probably not. Then you came in later with the whole "infantile Mac bashing" bit and dragged the thread off of software engineering into a Macintosh debate.

And it sounds like you don't have a Macintosh or a notebook- your computers are old Dell desktops running XP and Linux. Experience with the kinds of computers you are recommending to people does make for a much stronger recommendation as you'll find things that you like, don't like, and wish you would have done differently, and can pass that on.

Quote:
Or did you read “Mac” and just start foaming at the mouth?


Nope, my enthusiast rabies vaccinations are up to date :D 

Quote:
You are definitely the idiotic, overzealous "computer guy" that EVERYBODY hates because you “think” that if they are not doing things the EXACT way you are, it’s wrong and misguided.


Not really. If somebody asks my opinion of something that would be best for them, I give my opinion of what I think would be best for them. I am not a zealot by any means- I can't say I have recommended anything very similar to what I run for anybody else (see what I run below.) And yes, I've even recommended that at least one person get a Macintosh computer- she was going into the journalism school here at MU and everything they run runs on Macintoshes (but she did not know that until I told her.) You obviously like Macintoshes and from what you said, one would be the perfect computer for you based on your usages and preferences, and I'm not going to try to persuade you otherwise. What I will do is debate with you if a Macintosh is the best unit for somebody else with different wants, needs, and usage.

Quote:
2. So that's all you got huh, RGB connector, 3-in-1 card reader and a battery that runs for *maybe* an hour longer than Apple's battery? Oh and brown stains. This is your main knock on Apple laptops.


That and they are expensive, which is a pretty major deal for an incoming college student like the OP.

Quote:
So tell me oh great one, what exact make and model of notebook do you use?


Gateway S-7125C tablet with the 1.06 GHz C2D U7500, 3 GB RAM, and Ubuntu 7.04 x86_64 as the OS.

[quote[It must be PERFECT, RIGHT?[/quote]

Nope, I'd have liked to have seen an ATi or NVIDIA IGP chipset inside instead of the old Intel 945GM that this machine has. That and S3 mode to be usable when the machine is plugged into the wall.

Quote:
But seriously, give me the make and model because I am compiling a list for purchase and so far the MacBook Pro is winning. HERE IS YOUR BIG CHANCE TO STOP ME FROM MAKING A BIG MISTAKE! Don’t let me down.


You have done the research FOR YOU and if the MacBook Pro is at the top of your list and you've done plenty of research, then it means that it is the best FOR YOU. I'd not be helping you any one bit by trying to tell you otherwise. But what's best for you is not necessarily best for everybody else.

Quote:
Oh BTW, not that you would believe me but I took stats at Stanford University over 13 years ago.

Good for you.
[/quotemsg]
September 11, 2007 7:41:26 PM

MU, how do you like your tablet? (btw is it wacom?) I thought 12" would be too small and got an R1F, but it does have its problems. And even that, I feel, is too small if typing is your preference... Particularly writing code, I like a lot of real estate. But a tablet would actually be a perfect choice for a sudent, now that you mentioned it...They are expensive, though.
a c 102 à CPUs
September 11, 2007 7:57:05 PM

russki said:
MU, how do you like your tablet? (btw is it wacom?) I thought 12" would be too small and got an R1F, but it does have its problems. And even that, I feel, is too small if typing is your preference... Particularly writing code, I like a lot of real estate. But a tablet would actually be a perfect choice for a sudent, now that you mentioned it...They are expensive, though.


It's a pretty decent machine. It does have a Wacom tablet, one of the new multitouch (touch + digitizer) units. The unit is about the right size and weight for taking notes with. The tablet is pretty handy as I've wanted to be able to scribble little diagrams and stuff in my notes for years and now can finally do so. Typing is just fine as the letter keys are full-sized, even if they are a tad lighter than I am used to (have an old-school IBM buckling-spring keyboard at home.)

I totally agree about the screen real-estate area bit. I would certainly want to use an external monitor if I used the little tablet as my only computer as one 1280x800 screen really only makes do in a pinch for doing a lot of work. It's perfectly fine for taking notes, writing papers, and that kind of stuff, but the heavy work is why I also have a desktop at home with two 20.1" 1600x1200 LCD screens at home.

The price wasn't all that obscene as I waited until I could get a $200 off sale on the unit. I only got a few options: 2x512 MB RAM -> 1x1 GB RAM, 8-cell battery, and paid $10 to go from the 60 GB HDD to the 80 GB model. It cost me a little under $1500 tax paid ($107- Have to love the 8% sales tax rate!) and shipped ($50.) I did spring for a 2 GB memory module from Newegg and that cost $120 shipped. So all in all, it was about $1600. That is a pretty decent price on a 12.1" notebook and a very good price on a tablet, but a little more than most people spend on notebooks as they tend to buy larger, heavier units that are less expensive.
September 11, 2007 10:09:22 PM

MACS

Pros: UNIX origins. Powerful shell commands. Well-designed and look nice for the most part. Apple stands behind their products.

Cons: Extreme vendor lock-in. Hideous user interface (let's face it... that's why most of us hate macs.) Over-inflated cost. And you can forget ever playing games.

How will this affect software development? For school, probably not a ton, a*suming you can get by with using gcc.

I still say buy a good non-mac laptop and put Linux on it. Save the extra $1500 and invest it in a docking station with a 30" monitor to hook it up to. If you ask me, that's WAY cooler than having an expensive, trendy mac.
!