Computer Science Canada

Software Engineering

Author:  klopyrev [ Sat May 12, 2007 12:15 pm ]
Post subject:  Software Engineering

I finally got my offer for Software Engineering a couple of days ago. I'm planning to accept it as soon as OUAC receives the information. Is anybody else on this forum planning to attend Software Engineering next year? It'll be nice to get to know each other before next year? If you're going to Software Engineering, say a couple of words about yourself and such.

I'm Konstantin. I'm currently a student of Richmond Hill High School and I have a passion for Computer Science. I have been programming ever since I was very small and my whole family is in Computer Science. I'm taking Software Engineering, because it is dedicated largely to computer science, but it also teaches you how to create software, because there is not a lot of money in pure Computer Science (or at least its easier to create software, than invent new concepts that sell for millions of dollars). At least that's my view of it.

KL

Author:  wtd [ Sat May 12, 2007 2:36 pm ]
Post subject:  RE:Software Engineering

Just don't drink the kool-aid and you'll be fine.

Author:  Naveg [ Sat May 12, 2007 8:06 pm ]
Post subject:  RE:Software Engineering

At Waterloo I'm assuming?

I'll be in Mechatronics (sorry Tony Wink) come September. See you then!

Author:  Skynet [ Sat May 12, 2007 8:40 pm ]
Post subject:  Re: RE:Software Engineering

Naveg @ Sat May 12, 2007 8:06 pm wrote:
At Waterloo I'm assuming?

I'll be in Mechatronics (sorry Tony Wink) come September. See you then!


Excellent. The few, the proud, the Trons.

Author:  Tony [ Sun May 13, 2007 12:55 pm ]
Post subject:  Re: RE:Software Engineering

klopyrev @ Sat May 12, 2007 12:15 pm wrote:
there is not a lot of money in pure Computer Science (or at least its easier to create software, than invent new concepts that sell for millions of dollars).

I always thought that picking out the program to pursue based on the perception of monetary gain is the wrong way to go... though it sounds like there's quite a bit of programming background involved anyways. Good luck.

Naveg @ Sat May 12, 2007 8:06 pm wrote:
I'll be in Mechatronics (sorry Tony Wink) come September.

Haha, I hope you know what you're doing Wink It's good to see you guys in UW anyways Very Happy

Author:  Andy [ Mon May 14, 2007 3:30 pm ]
Post subject:  Re: Software Engineering

klopyrev @ Sat May 12, 2007 10:15 am wrote:
because there is not a lot of money in pure Computer Science (or at least its easier to create software, than invent new concepts that sell for millions of dollars).


I'd beg to differ. Any Competent CS grad can get SE jobs, but often SE grads don't have alot of CS background to go into research. CS is the more flexible choice.

Author:  cool dude [ Mon May 14, 2007 4:37 pm ]
Post subject:  Re: Software Engineering

I sure hope your right Andy! because i am going for CS at York university next year. Waterloo is where i'm hoping to do my masters Smile

Author:  rizzix [ Thu Jun 14, 2007 3:51 pm ]
Post subject:  RE:Software Engineering

If you want to develop critical software, you HAVE to be a Software Engineer.

And take my word, developing critical sofware is one boring task, specially if you are invovled in the design phase. (and you usually are)

Author:  Andy [ Wed Jun 20, 2007 2:03 am ]
Post subject:  RE:Software Engineering

bullshit. No body from my team at Google did a degree in Software Engineering. And trust me, we ARE developing critical software.

Your degree does not teach you how to do your job, it teaches you how to learn to do your job.

Author:  wtd [ Wed Jun 20, 2007 3:38 am ]
Post subject:  RE:Software Engineering

The single most important thing any CS degree will give you going into the job market is a grasp on the basic vocabulary.

Assuming you learn that vocabulary.

Author:  Ultrahex [ Wed Jun 20, 2007 10:49 am ]
Post subject:  Re: Software Engineering

too bad software engineers don't know whats going on, look at ATI, all their drivers have gone to shit, and nothing is left of them. Really ATI needs to hire some people instead of the miserable failures that are in their company, and now they are saying they are full of the people they need what the hell is this, are they that stupid!?!

Has anyone used their drivers latetly, wow they are soooo terrible, keep crashing my PC latetly especially the newer ones!

Author:  Andy [ Wed Jun 20, 2007 4:58 pm ]
Post subject:  Re: Software Engineering

From what I heard, ever since AMD acquired ATI, their management system went down the drain. When I worked there last year, their drivers were performing quite well.

Author:  rizzix [ Wed Jun 20, 2007 6:26 pm ]
Post subject:  Re: RE:Software Engineering

Andy @ Wed Jun 20, 2007 2:03 am wrote:
bullshit. No body from my team at Google did a degree in Software Engineering. And trust me, we ARE developing critical software.

Your degree does not teach you how to do your job, it teaches you how to learn to do your job.


LOL, Google does not develop critical software. I say this based on the products google has released to the public. None of them are critical software. If google does develop critical software, what is it? Something top secret that none of us can see?

Neither is ATI nor nVidia in the business of developing critical software. (Not that you have to employ software engineers only for critical software, but I just wanted to state a fact here.. Software engineers can also be trained in embedded systems, among other things)

Critical software is a completely different thing. You cannot just be a software engineer developing "critical software". You have to be specialized at something. For example you can be a software engineer specialized in developing safety critical software for pharmaceutical companies. In this case you would have to study a bit of chem and bio, thoroughly understand the hazards involved, etc,.. the list goes on. You would also be working under a company that guarantees the software developed to work. Which means you guys would have tried and tested and designed a complete system taking into account an extremely large number of runtime cases. (google most cretainly does not guarantee any of its software.. in the same breath neither does microsoft or apple either.. such software cannot be considered CRITICAL under any circumstances). I think IBM develops critical software for businesses (cost critical and mission critical possibly) under a contract basis, but I'm not too sure. NASA for sure does, but then again I don't think they develop software for anyone but themselves.

Now-a-days almost no commercial software development company bothers to develop critical software, largely because guaranteeing their software to work is a huuge risk, and almost impossible to ensure. What they tend to do, is provide on-the-spot technical assistance instead, and provide immediate fixes when necessary. Such software is not considered critical! Nonetheless there are companies that do develop critical software. They are just not heard of in the common-consumer market.

Author:  Skynet [ Wed Jun 20, 2007 10:08 pm ]
Post subject:  Re: Software Engineering

^ Damn, he beat me to it. The growing need for "critical software" is one of the reasons behind the development of the software engineering degree.

Just so things are clear:
Ontario Professional Engineers Act wrote:
“practice of professional engineering” means any act of designing, composing, evaluating, advising, reporting, directing or supervising wherein the safeguarding of life, health, property or the public welfare is concerned and that requires the application of engineering principles, but does not include practising as a natural scientist;

Note the "safeguarding of life, property, etc", also the "not include practising as a natural scientist." This does not imply that software engineering is better than CS, only different in its aims. A SE isn't just someone who knows how to lay out and implement a large scale project, they're the people who are trained from the moment they set foot in university that things like this need to be avoided. True, one can interpret "engineering" in a few different ways, but the "Engineering" referred to in the SE degree includes the duty to the public.

Speaking as someone being trained to develop similar systems and who has worked in automation & controls for all of my work terms, one develops a different mindset to programming once system crashes become more literal than most people would like. Though it doesn't seem like much, the approach of an engineer is fundamentally different to that of a computer scientist. We (engineering students) care less about theory and derivations, true. We devote more time to the understanding of the entire system, so that this doesn't happen too often.

Of course, the CSers out there can learn this mindset, just as I can learn epsilon-delta proofs. The difference is is that when an engineer gets his ring and takes his oath, he'll already have spent five years with this mindset being thrown at him, and it'll be just as much a part of his design approach as F=ma or "free energy doesn't exist".

A few examples of critical software, for any prospective software engineers:
QNX
Rockwell Automation Safety PLCs
Canadarm
TRIUMF
Hydro One Distribution
Boeing 787

Author:  Andy [ Thu Jun 21, 2007 6:04 pm ]
Post subject:  RE:Software Engineering

Um, incase you haven't noticed, Google is more of a business company than technology.

Google owns over 40% of the internet advertising market, and the number of sales reps are in the same scale as that of the engineers.

The software released to the public may not be critical, but the financial backends definitely are. In fact Google has better security for the customer's personal informations than most banks.

Author:  Dan [ Thu Jun 21, 2007 9:05 pm ]
Post subject:  RE:Software Engineering

This is based soly on my obvseratiosn, but all the software engeiners i know tend to have less traning in the aucatal programing side of things then computer sci grads. I know computer sci is not just about programing but about algortim delvopment too, howver it seems along the way computer sci grads get the knowalge to make software just fine.

I have take serveral software engering corces and know many software engering magors and i have to say that most of them do not know that much about aucatal programing. They thend to study more the planing and devlopment theroy and energering.

Honstly i whould not trust them to do much coding, never mind coding cirtical software. They just don't have to take the corces they need to be able to aucataly code such a system safely or know the theroy behind it.

It whould probly be a good idea to get a bunch of them in at first to help find the requerments and do some of the planing, but do the aucatal coding? I whould be worried about ever having to use that software.

Now obvesly i am extreamly basied being on the CS side, and i am shure there are software engeriners that can code and make algorithms just as good as your avearage CS gard but from what i have seen of the corces they are more of a planing/eraly delvopment program then coding at all.

Also there is some debate in my mind of thess eraly plans are even worth it by the end of the project since requerments and desing can change so much in real life devlopment.

Author:  rizzix [ Fri Jun 22, 2007 7:57 pm ]
Post subject:  RE:Software Engineering

Andy: If Google provides safe secure software good for them. I'm sure their technical support is fantastic as well. But google does not provide critical software as you mentioned. And that's the difference.

Its just that software engineers work differently. Effectively both provided the same thing. The difference is that the software engineering firm would guarantee it.

Dan: Software engineers are trained to do the higher level job of designing such systems, not necessarily programming it. Yet they do need to know fundamentals of programming since that is essential in designing such systems. They need to know where things can go wrong. Either way the software engineers I know are pretty good programmers, unlike the way you describe them. They are trained to be very acute in their observation. They quickly notice the tiniest of details in the source code (stuff that I overlooked). Which amazed me. Smile

Author:  md [ Fri Jun 22, 2007 8:31 pm ]
Post subject:  RE:Software Engineering

Software engineer or computer science grad it doesn't matter; neither degree is (apparently) proof that your not an idiot.

I know of graduates in CS who could not tell you the difference between a template and a class; and I've known engineers who could not tell you how a pointer works. There are always idiots, and unfortunately they out number the rest of us. The trick is to look at the brightest people not the basest.

And google most assuredly does not write critical software, nor do they write their own in-house accounting packages.

Author:  Andy [ Sun Jun 24, 2007 2:59 am ]
Post subject:  Re: Software Engineering

HAHAHAHHAA, and you'd know because? I"m working on the moneta team at the moment, and we do write most of our own accounting packages. Some tax info and actualy transactions are done through BFS, but we have a mirror of everything in their db.

why the heck are people telling me what i'm working on and what i'm not???

Author:  gbert90 [ Mon Sep 17, 2007 7:42 pm ]
Post subject:  Re: Software Engineering

Hey guyz!

I was wondering if entering the field of software engineering is really worth it? I am in grade 12, and am thinking of taking SE in waterloo next year. Someone please explain..as I am a newb Sad

Author:  Euphoracle [ Mon Sep 17, 2007 9:21 pm ]
Post subject:  RE:Software Engineering

I was originally looking at SE, but after reading a few of the threads on this board, and a brilliant blog entry on Tony's blog, I think what I'm looking for is CS, rather than SE. I prefer to be the 'code monkey'. I enjoy programming, as weird as it may be for some people, I like the challenge.

Very interesting thread and discussion you have going here. As for Google, I wouldn't necessarily consider them as makers of Critical software.

Author:  Naveg [ Mon Sep 17, 2007 10:45 pm ]
Post subject:  RE:Software Engineering

actually, i think the google algorithm is one of the most critical pieces of software in the history of computing

Author:  Skynet [ Tue Sep 18, 2007 7:01 am ]
Post subject:  Re: Software Engineering

In the context we're talking about, critical software = someone can get physically injured/killed if the code's wrong. I posted a few links higher in this thread as examples.

@gbert90 Regarding if it's worth it...in what way. You'll certainly get a job, if that's what you're worried about. If you're talking about making the 'wrong' program choice, Tony's blog has an excellent entry which describes the differences between some related programs.

Author:  Euphoracle [ Tue Sep 18, 2007 2:44 pm ]
Post subject:  Re: RE:Software Engineering

Naveg @ Mon Sep 17, 2007 10:45 pm wrote:
actually, i think the google algorithm is one of the most critical pieces of software in the history of computing


I don't understand how a search algorithm is a life-or-death piece of code. I'm pretty sure people's lives aren't depending on whether or not they get the most accurate results to their web search >_>

Author:  gbert90 [ Fri Sep 21, 2007 6:41 pm ]
Post subject:  Re: Software Engineering

thanks guyz.. i was wondering about how it is to be a software eng. like, What is an ideal day in a software eng's life...sounds like a blunt question..lols..but plz tellme if anyone knows... Smile

Author:  TheFerret [ Fri Sep 21, 2007 11:36 pm ]
Post subject:  Re: RE:Software Engineering

Euphoracle @ Tue Sep 18, 2007 2:44 pm wrote:
Naveg @ Mon Sep 17, 2007 10:45 pm wrote:
actually, i think the google algorithm is one of the most critical pieces of software in the history of computing


I don't understand how a search algorithm is a life-or-death piece of code. I'm pretty sure people's lives aren't depending on whether or not they get the most accurate results to their web search >_>


It's not the fact that it's life or death but the fact tha without this piece of code, where would the Internet be without it, I would say it's pretty critical since without the Internet and computing would be far different than it is now...

Author:  Dan [ Sat Sep 22, 2007 12:44 am ]
Post subject:  Re: RE:Software Engineering

TheFerret @ 21st September 2007, 11:36 pm wrote:

It's not the fact that it's life or death but the fact tha without this piece of code, where would the Internet be without it, I would say it's pretty critical since without the Internet and computing would be far different than it is now...


Yahoo?


Google is an admazing search engeion but i am not shure if the hole internet whould be that diffrent with out them, there are other search engions.

However you could say that there software is cirtical in that if it goses down, they stop makiing money from ads. It could probly add up to a tone of moeny per time invernal there search is down. Google deftaly treates there search engion as critical software.


: