Computer Science Canada Co-op Jobs |
Author: | Will [ Fri Aug 21, 2009 1:20 pm ] |
Post subject: | Co-op Jobs |
Hey all, I'm a student at the University of Windsor, going into the second year of the Computer Science Co-op program. I was just wondering about the amount and variety of job opportunities by geographical area, like Windsor vs. London - Toronto - Ottawa area for instance. Keep in mind that this will be my first co-op term. Also, I'm wondering what some other people did for their first co-op jobs, who they worked for, what they did, etc. Any observations about co-op in general are welcome. Thanks |
Author: | Tony [ Fri Aug 21, 2009 3:02 pm ] |
Post subject: | RE:Co-op Jobs |
Toronto (GTA to be more specific; Markham's tech park is quite far away from the downtown core) has significantly more tech jobs than elsewhere. Though there's also more competition for such jobs, as few students are willing to go to more obscure locations in smaller towns. A typical first co-op term would be along the lines of QA, or if you have sufficient software developing skills from elsewhere -- possibly development of simple internal-use tools (my first co-op; many of my friends started in QA though, and moved up from there). Be open to relocating to a new area, be willing to try something new; look for a job where you can learn the most. |
Author: | monkey [ Fri Aug 21, 2009 9:22 pm ] |
Post subject: | Re: Co-op Jobs |
What kind of co-op job could a Waterloo Computer science student get in their first work term? I'm guessing CS 135 and CS 136 are not sufficient for QA (I could be wrong). I don't think Scheme is used much outside of educational facilities. First-years learn some C, but it's only for half a course (half of CS 136). I'm guessing in order to get a CS-related co-op placement, one would need a significant amount of programming skills not taught in class. What skills would you recommend a first-year to learn outside of class in order to get a CS-related /programming co-op placement? |
Author: | DemonWasp [ Fri Aug 21, 2009 9:29 pm ] |
Post subject: | RE:Co-op Jobs |
CS135 and 136 make you overqualified for QA. After exactly one term of university (in which I took the now-defunct CS134), got a job developing a web-app for internal use. I was working on the front-end, but it was still fun and interesting code. Admittedly the work environment wasn't so fun, but at least the code good times. You are correct in thinking that Scheme isn't used much outside of education. The languages that are used frequently include Java, C#, C++ and VB, and occasionally C. In older environments you get COBOL and in scientific computation you tend to get FORTRAN. For work, the most important thing to learn that isn't covered in class is probably version control systems, particularly CVS (the grandfather of most of these systems). Newer places use SVN, my workplace uses Perforce (P4), and IBM-loving companies use ClearCase (avoid! danger!). |
Author: | monkey [ Fri Aug 21, 2009 10:00 pm ] |
Post subject: | Re: RE:Co-op Jobs |
DemonWasp @ Fri Aug 21, 2009 9:29 pm wrote: CS135 and 136 make you overqualified for QA. After exactly one term of university (in which I took the now-defunct CS134), got a job developing a web-app for internal use. I was working on the front-end, but it was still fun and interesting code. Admittedly the work environment wasn't so fun, but at least the code good times.
You are correct in thinking that Scheme isn't used much outside of education. The languages that are used frequently include Java, C#, C++ and VB, and occasionally C. In older environments you get COBOL and in scientific computation you tend to get FORTRAN. For work, the most important thing to learn that isn't covered in class is probably version control systems, particularly CVS (the grandfather of most of these systems). Newer places use SVN, my workplace uses Perforce (P4), and IBM-loving companies use ClearCase (avoid! danger!). Thanks for the advise. What's the best way to learn about version control systems? |
Author: | DemonWasp [ Fri Aug 21, 2009 10:06 pm ] |
Post subject: | RE:Co-op Jobs |
Install them and start putting your code in them. Move your code to a backup and try getting the code from the version control server. Learn to use diff tools to figure out how two versions in the history of a file change. Learn to restore to an older version when you (invariably) muck up a file beyond hope. Learn to use the history to figure out who broke it so you can ask them to fix it (nicely!) Try out a few different ones, from different families. I'd try SVN first (similar to CVS minus some headaches) and then something like Bazaar or Git, which are becoming increasingly common now. |
Author: | Tony [ Fri Aug 21, 2009 10:17 pm ] |
Post subject: | RE:Co-op Jobs |
While knowledge of how software is made and how code works will likely give you an edge in guessing at likely places for bugs to be found, most QA positions involve going through the checklists of actions. Ideally such would be completely automated by a comprehensive test suite, but sometimes this is not trivial (anything that's not a text output, such as graphical renders). In a way, you are solving complex CAPTCHAs all day, but hey... at least it's work with technology. (Try to interact with developers; learn from the sidelines). For the languages (for first-year perspective): - Java/C# cover quite a large spectrum of possible projects. - C/C++ are likely performance-conscious and might desire upper year students - VB are likely old legacy projects. It's also VB. Be prepared for your own version of 4 month hell. - Python/PHP are popular in web-dev projects. Ruby has seen a lot of growth in the industry, but not that many student-level jobs. Ultimately a lot of programming concepts are easily transferable between languages, although you might need to defend such a position. Regarding tools: I second DemonWasp on version control. It is the single most important part of software development. - CVS is old, there's something about the company that's preventing it from moving on to use better tools. - Subversion (SVN) is still a decent choice. - Git; the company is either on the ball with their tools, or is eager to jump onto new trends. - multiple copies of files on a shared server is not a version control system; but I guess you can regularly submit articles to DailyWTF. |