CIS Degree -- after 4 long years..my take on it all...
hey everyone,
So...it's been 4 years since 1650 -- the class where we learned how to compile java using notepad and command prompt...
Looking back over these 4 years, I have to say I don't have many ill-feelings towards how I have obtained my degree. That being said, it's time to get a job .. and I feel almost mentally handicapped...
I'm not what you would call a bad student, nor am I the greatest student. I used the word student instead of person, because university is about marks...As much as some people here want to learn, they come to get marks. But marks don't get you hired -- knowing how to apply those marks will get you a job..What point am I making here?
Ok...taking a quick look at most of the jobs that are posted online (either workopolis or monster), almost every job requires experience with databases (sql or whichever)..just generic knowledge of a database...
I won't mention .NET or php or other scripting languages, because the notion of us not knowing scripting languages has been mentioned before yet people have debunked that argument before.
So why am I bringing up databases? Well...over this 4 year journey, we've had 1 (one) database course...and what did we learn in that course? Well from what I remember, it was extremely theoretical topics on databases...such as syntax and such...
We spent one maybe two weeks using oracle...That was a good little beginning lesson on how databases are implemented and maintained (and by a database I mean a table that has maybe 10 entries in it)...
So when I go for an interview and I am asked how well do I know databases...I say, not extremely well. I've had one class in it, I've programmed in .NET (on my own time) and I know how to use MySQL db's .. however I admit that I use VisualStudio and it deals with the majority of any of my db queries...
I am not blaming...I am not saying I regret going to Guelph...but why are we taught things that are theoretical that we cannot apply it to the "real world"....most of the stuff we learn we can't use unless we had careers within a research institution (i.e. a university). That's the problem...
We are being taught by people who live to research..I am not attacking profs or anyone..not at all...but if we were taught by let's say someone who worked for Microsoft at developing certain applications using let's say Eclipse. That person would give us their extremely biased lessons on using Eclipse developing microsoft applications...anyways not quite sure what point i'm trying to make....
But I do not like going out for interviews and giving Guelph a bad name. This is a great university...our degree is great as well...but I don't feel prepared...not in the slightest bit...and that's sad..maybe that's my fault...i dunno....but what I do know is that I do not play teh school game..I do not sit outside of Calvert's office getting an extra mark on a game programming quiz...i don't care about that....i care more about a course that i learn something b/c i want to learn ... case in point Judi's trends class...we have no midterms no final...yet everyone goes to the class b/c they genuinely want to learn...
i wish every class taught me that much..then i think i would feel much more prepared...and much more confident with my degree...
cheers
amir
- Login to post comments

CIS degree
Unfortunately, I don't think it's any different anywhere else. In some places it may be even more theoretical. The practical stuff is probably left to community colleges in most places. In any case, jobs mostly overspecify what they want. They can't realistically expect people to have the diversity of skills outlined... Esp. not straight out of university.
There are some of us who enjoy teaching *way* more than the notion of research. I must say I prefer developing real life image processing applications than talking about theoretical aspects full of math. How to we make the program more realistic? Hard to know. Add more guest-lecture spots from industry? Put together symposiums on topics? The reality is that adding specific apps is harder than it appears.
I started my first real IT job as a system admin, most of what I had to learn I learned on the job. Admittedly systems are a little more complex now. I've never had a software job, so I can't comment there, always systems management before I decided to go back to grad school. Maybe CS profs need to spend a part of each year in industry, observing and being involved in some process... if even to embellish their teaching with real life knowledge. 490 projects with a real-life spin? Imagine as a 490 you worked on an in-house project somewhere where a prof was consulting as well, and you also got credit for coop?
Anyways ideas are always welcome...
Michael
You could possibly make the
You could possibly make the program more realistic by forcing everyone to take co-op. Or at the very least pushing the co-op option more.
All Software Engineers at Waterloo are co-op students. In fact all Engineers at Waterloo are co-op students last time I checked. At least half of the computer science students at Waterloo are also co-op students.
Co-op gives you the real world experience that is hard to teach at school.
For the given example, I took databases and learned a bunch of theory. At my job we used a database for persistence and I learned how to use SQL Server 2005 as well as Oracle 10g. (Also Access if you consider that a database, I don't). Anybody can create tables and relationships. Not everybody can create finely tuned databases though. But that's why you have database admin's to sign off on your structure before you implement it.
I would say that the theory I learned in databases was way more important that actually figuring out how to implement them. It allowed me to create a functionally decomposed database with proper foreign key references.
Words that didn't exist on my team:
-functionally decomposed database
-candidate keys
Words that existed after they hired an industry expert:
-functionally decomposed databases
-candidate keys (instead of just puting an ID in every table)
The point is the people that understand the theories, are usually the experts in the industry. However, they only became the experts because they figured out how to implement their theories.
Co-op gives you an opportunity to implement what you've learned as you learn it.
It's just an idea for the future. More people should be made aware of what co-op brings them.
After spending 800 dollars
After spending 800 dollars of MY money to simply BE in co-op and then NOT get a job, I was left with little sensible choice than to drop co-op. I've more or less put myself through school so I literally couldn't afford further gamble. Co-op 1100 was a very good class, it taught you how to basically sell yourself(not in the dirty way)...so if not to force students into the co-op program....how about forcing final year students to take this course? Or just allowing anyone to take it, its not for a credit....and its not hard.....or even just to release the valuable info that that course gives freely...I imagine that its hosted on the co-op website but most people would never think to check there.
I know exactly what you mean about being underprepared though Amir, I recently got a job as a software developer, but honestly I am not the strongest candidate that applied....I likely just gave the better interview. My employer had me write a test, on this test were things that I have never heard of. (Call me n00b if you want but I had no idea what XSL is, nor how to use it to parse XML)
I went home for the weekend as I'm sure most of you did. I met up with 2 friends that go to UoT and UoOttawa both in CS there. From their work experiences (IBM and a private dev firm respectfully) they both claimed that their employers viewed a bachelors degree as counting as 5 years experience. So I guess what I'm saying is that employers DO ask for way too much on the job summaries on Monster.ca or what have you. The bottom line is that they are bartering...seldom does a person interview for them that has all of the skills and experience that they list...they just pick the best man or woman for the job. So we get to meet them halfway on their skills list basically. With the amount of theory that has been drilled at us, we should be able to solve any problem at this point, I feel that there is very little more theory that the university can teach me and that from here on out its application.
As far as "forcing" people
As far as "forcing" people to take coop, I don't think that's a great idea. I've worked part time throughout all of my undergraduate CIS degree, and from it I have 6 years of solid C/C++ programming, lots of SQL/db design and maintainence experience, and tons more stuff that I don't want to write here.
If I had been forced to take a coop job instead I wouldn't have the same experience, since I just do contract work. I'm not knocking coop, but mandatory is usually bad... Leave the flexibility in the program for those of us who want to beat out own path :D
In reference to the original poster... On one hand, the SQL training here is very lacking... There's almost no practical experience, and that experience was not very indicative of real SQL (the only practical portion was a few plsql functions, and most of those were meant to be written as for loops, not very real world).
On the other hand... SQL is very easy to pick up on your own. University does a very good job of introducing you to a number of topics, giving you just enough information to learn them on your own.
Anyways, that's just my two cents. In general, less "mandatory" requirements is good IMHO. It allows people to learn on their own.
That is one of the valid
That is one of the valid problems with co-op. The lack of quality employers for the number of students we have in the co-op prgoram.
XSL is one of those things that you pick up by going through a tutorial on w3schools website.
Students at Guelph generally don't have any web based background. I'll take PHP out of the equation because I've yet to see an enterprise that uses php for an enterprise level application. Concepts like JSP/Servlets, JavaBeans, Enterprise Java Beans, and J2EE are what a lot of companies are looking for if they're looking for someone to do web dev work. Not to mention Apache Struts and the new buzzword AJAX. None of these things will ever be taught to us at Guelph mainly because most of them aren't too hard to pick up, and also because historically, the web languages have evolved too quickly to ever incorporate them into a class.
I would have to hope that some professors at Guelph use Eclipse for their dev work (if they do any). I think Dr. Gardner might. If you want to get into things that they should force onto us it should be Apache Ant. 3rd year classes and higher should require Ant build.xml files for projects. Makefiles are great but they're not very helpful when you're trying to build your java application on a windows box at work. They should also force, Eclipse and Subversion (or CVS) on us too.
People would consider a Bachelor's degree 5 years of experience. I would consider it 0 years of experience. (I suppose you could convince someone that your project courses like software engineering count and add a year of valid experience). Developing a project in school is not like in industry, profs do a good job of trying to make it like industry, but until you've gone over time on your schedule for gathering requirements, rushed into development, cut out testing, only to determine you have the wrong requirements to begin with, will you actually gain industry experience.
With all this said, Guelph has done a relatively good job of preparing people for industry. We have the theory we need, we just need to figure out how to apply it, and then convince the people interviewing you that you know what you're talking about. Once you figure this out, you should be good.
Interesting. I posted some
Interesting.
I posted some similar thoughts on another thread in this group, but it didn't stir up any responses.
Rather than paste it, here is the link to my rant :)
Whoa whoa ... force is such
Whoa whoa ... force is such a strong word. Apache Ant, Eclipse, and Subversion are all great tools, but should they really be forced upon us?
Ant and Eclipse, I don't. Eclipse is an excellent tool, but I find it overkill when I need to hammer out a few hundred lines of code for one small assignment. And I don't consider the size of the projects in 375 and 320 too large for a text editor like Textpad.
However, you bring up a great point with CVS/Subversion/some kind of source control. I would have really liked to see us submit our assignments using source control, i.e. we check in code for assignments, and at the due date, a script (or something) executes and checks out / locks all the submitted files. This makes more sense to me than submitting assignments by email.
I can agree with most
I can agree with most here...
Coop is definately an excellent way to use your time in university to learn both theoretical and practical aspects. That said, Career Services offers a ton of services that Coop*1100 does. So I'm sure most of you haven't been there yet, but I strongly suggest checking it out.
Second, there's just too much to learn if you're expecting to be prepared for the real world after 4 years. CIS as well as many other programs encompass so many different things that we basically get a taste of whats out there, with hopefully enough knowledge so we have SOME type of foundation. Your databases course taught you the basics about DBs, anything more can be obtained by reading a book thats specific to a technology. If it is the case where you love to learn, it doesn't have to stop here.
Lastly, employers do over-shoot the skills that they are looking for when they post a job. If you find yourself having most of the skills, apply! If in the interview they ask, "how well do you know DBs?" and your reply is, "not very well.", then its your answers that are killing you. Employers know that the interviewed candidates don't have it all, but they want to know and see that you are taking steps to get as close as possible to that ideal. A better answer would be, "I have taken a databases course in the past where I know the foundations, but I'm also a quick learner who can step up to the challenge."
Anyways, these are just my 2cents. There's also a lot of competition right now (double cohort hitting us again) so its much more difficult this year. But keep trying, practice your resume/cover letter/interview skills, and maybe further your knowledge in a specific technology that you know employers are looking for. And oh yeah, NETWORK!
i got really lucky.. i had a
i got really lucky.. i had a job the summer before that involved databases, and so I messed around. then the next semester I had databases. I really felt it strengthened my ability to use databases a lot, I felt a lot more confident going back next summer and doing some major changes to increase the speed of the database almost infinitely (from sometimes crashing to instant).
i had an economics prof that said "you're here for theory. if you want to learn how to do something, goto college or get a job" I guess the point of that is... you knew what you were getting into.
to be honest I couldn't care less if I don't know web script or some other programming language. ya, I guess I would have liked to be forced into another database course though. but the other stuff... if you are good at school you are good enough to learn it on your own and apply it. the way i see it school's not about learning specifics, it's about learning how to learn.
in a month i'll have forgotten how to use torque, since i'll never use it again, and since we didn't learn how to use it properly so i took nothing out of that course. but in other courses where you're taught to program properly it applies to all languages.
i also feel that employers realize that. they want bright uni students, not so they can immediately make a difference, but so they can have them work a couple years and learn the industry and THEN be effective. but ya, you'll lose out to students who go out and learn all this stuff on their own and are also bright uni students... but i mean if they're going to go out on their own to learn it, as an employer i'd probably want to hire them first anyway.