software engineering

Page 2 - Seeking answers? Join the Tom's Hardware community: where nearly two million members share solutions and discuss the latest tech.

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....
 
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)
 



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.
 
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.
 


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.
 
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.
 


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...
 
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.

 
@ 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-documentid=5394486&imageindex=4

http://tech.msn.com/products/slideshow.aspx?cp-documentid=5394486&imageindex=1
 
@ 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.

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?

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.

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.

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!!

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.

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-documentid=5394486&imageindex=4

http://tech.msn.com/products/slideshow.aspx?cp-documentid=5394486&imageindex=1

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_quad_processor_notebook_arrives.html

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.
 
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.
 
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.
 
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...
 
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.

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

Nope, my enthusiast rabies vaccinations are up to date 😀

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.

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.

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.

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.

Oh BTW, not that you would believe me but I took stats at Stanford University over 13 years ago. [/quotemsg]

Good for you.
 
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.
 
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.