Job Research Questions
Author |
Message |
trickz
|
Posted: Thu Nov 12, 2009 8:12 am Post subject: Job Research Questions |
|
|
Hey guys, I'm trying to do some research on a computer programming career to see if it is really what I would like to do, so I have a few questions here for anyone that designs/codes software or games, thanks for any help!
What do you do in a typical day?
What do you like and dislike about your job?
How would you recommend someone prepare to enter this type of work?
What education is required to get a job in this field?
Do you recommend any schools or courses?
What days of the week do you work? What are the typical hours?
Did you require experience to obtain this job? If so, how much?
What programming languages do you work with?
Thanks again for any help, guys. Sorry for the number of questions, but I'm taking a class thing and I need to do research on a job I'm interested in and do a basic presentation on it. |
|
|
|
|
|
Sponsor Sponsor
|
|
|
DemonWasp
|
Posted: Thu Nov 12, 2009 9:24 am Post subject: RE:Job Research Questions |
|
|
I work in a team writing high-performance database software for large financial corporations. My official title is something like "Co-op Software Developer".
What I do on a typical day depends on what phase of the release cycle we're in. When it's early in the release cycle, I'm generally cleaning up code, working on our developer-setup utilities, or cleaning up the test suite. Sometimes, I get to modify engine code or figure out how to compile in libraries (speaking of which, log4cxx is a bad plan). When we get further along in the cycle, I'm usually assigned to fixing minor bugs that crop up in the product or installing new database drops to be tested.
I like writing code. I dislike running the test suite, watching it fail, and being unable to understand why it failed because all it says is "Segmentation Fault; core dumped" (dammit C++!). Worse is when the database won't stop or won't start (did you know it's possible to have a rogue process that root can't kill -9 ? It is!)
Learn C++. I hate the language, but it's what we use so there's really no way around knowing it. Learn about the memory hierarchy, operating systems and compilers. Brush up on SQL, though a rigorous understanding isn't required.
As a co-op student, I'm about half-way through my undergraduate degree (in Computer Science). I've had a job since I was 4 months in. Education is somewhat trumped by thought process, creativity, interpersonal skills, or existing code examples.
From UWaterloo, I would recommend CS241 (intro to compilers), CS251 (intro to CPU hardware), CS350 (operating systems). If you're not well-versed in object-oriented design, I would also recommend CS246 (software abstraction), though I found the course exceedingly boring. UWaterloo is, of course, the standard go-to for Computer Science students in Canada; that said, there are several other competent schools, particularly in southern Ontario.
I work Monday to Friday, 9 to 5, except when I don't. We have flexible hours here, which means that I only really need to be there for "core hours" of 10am to 3pm as long as I work my other hours at some point. I can even swap weekdays for weekends if I wanted to ask nicely (and give up my weekends).
Minimal experience required. I had literally worked only 8 months when I applied to this job. Ever. This particular company has a habit of hiring co-op students and keeping them around until they graduate, whereupon they become full-time employees, so it'd just be the co-op experience required for that route. I wouldn't know about trying to get a job here as a full-timer without having been a co-op.
Java, C/C++ (often a mix - that's bad), JSF/JSP, HTML, Javascript, CSS, SQL, Ant scripts (XML), BASH / SH scripting, Jam, make. |
|
|
|
|
|
jbking
|
Posted: Thu Nov 12, 2009 9:55 am Post subject: Re: Job Research Questions |
|
|
My title is "Web Developer" though there are some career planning work going on that may change that over the next year.
I don't have a typical day, really. Some days I'm fixing bugs, others implementing new features, others I'm handling support requests, or there is the end of sprint work that is a day unto itself with a demo in the morning and iteration planning meeting that afternoon. Most days I have a daily standup where each person answers 3 questions: What did you do yesterday, what are you doing today and what obstacles do you have that'll prevent you from doing those?
I like that I have a good deal of freedom in my job. I can pick where UI work and really like the team that suppport me and I support them. I like knowing that I'm putting something in place to help the company perform better and look better to the world as I'm on the project putting in a new CMS. I like using Scrum and Agile processes so that I'm never too detached from what is around me. I like that my job gives me flexibility in when I work and has some formal processes so that it isn't a cowboy coding environment where the work motto was, "Git-r-done."
I dislike that my work can be tedious and repetitive at times. I dislike that I run in circles potentially when the business keeps flip-flopping on what they want. I dislike that my manager sits nowhere near my team and that builds a bit of a disconnect at times.
My suggestion would be to play around with building web pages and seeing which server-side technologies suit one and seeing if some part of the overall stack appeals more than the others. By stack I mean a few different things as there is the server side software(IIS or Apache usualy), server side programming language(Java, C#, PHP, or Ruby), database language(Oracle, MS-SQL, and MySQL to name a few) and front-end languages(HTML, JavaScript and CSS being the common ones but also Flash or Silverlight are also possible). My current work is in an IS department which may be different from those that develop software from a product development view.
The typical education is having a Bachelor's degree in some techincal area like Computer Science or Electrical Engineering. Knowledge of various web components is also required generally, e.g. what is HTML, XML, CSS, JavaScript, and so on.
I would recommend anyone that is an English speaker to take a couple of different language courses to gain an appreciation of what a mess English can be. In my case I took French and Russian and both provided some insights for myself. I also happened to be in university before a lot of web material could be put into the curriculum in some ways.
I usually work Monday to Friday, generally from 7:30 am to 5:00 pm. There is an hour for lunch and that is an 8.5 hour work day because of an Earn Days Off program where I work that means by working that extra half hour I get a day off per month that can be useful given my rather lengthy list of doctors that I see about various conditions I have.
I believe that a few years of experience would be required for where I am now. There may be times where a more junior person is hired though so it isn't a big thing if one has little experience. Since I've been doing Web Development since 1998 except for an 8 month hole where I didn't work, I tend to have a fair bit of experience that can be useful when trying to get a job. There are some out here that prefer to work as contractors rather than full-time employees is another distinction to note where I am an FTE.
As for programming languages used there are a few different ones depending on what I working. C#, VB.Net, VBScript, JavaScript, XSLT and T-SQL are the main ones I'd note. There is some HTML, XML and CSS that are also used but I don't view those as programming languages. I tend to program using Visual Studio 2008 for the IDE, Subversion for version control with Visual SourceSafe used for legacy code generally. |
|
|
|
|
|
trickz
|
Posted: Thu Nov 12, 2009 2:26 pm Post subject: Re: Job Research Questions |
|
|
Thanks guys, a lot of useful information there, I really appreciate it. |
|
|
|
|
|
|
|