PDA

View Full Version : C programming career advices



Pages : [1] 2

ting
03-04-2008, 10:45 PM
Hey people,

I am about to graduate from an university, but i don't know how much I worth, and how to talk to employers during my interviews. Can some good nature veteran programmers share your knowledge that you wish somebody had told you years ago that could help you tremedously later on.

I am not smart, but i have a solid understanding about c/c++ and oop. i am most interested in c/c++ low-level to intermediate programming. I just began to learn about MFC & Win32. I don't know ODBC but knows JDBC better. I also have a beginner level opengl understanding (taking a comp. graphics now). During 2nd & 3yr i worked lots of c/c++/java projects.

Any good resources on the internet that you can recommand?
Anything i should know about employers before i apply? interviewed?
Anything i should avoid? be cautious? be aware of?
What's appropriate to say and not to say during an interview?

--TING

Prelude
03-05-2008, 10:40 AM
>I am about to graduate from an university, but i don't know how much I worth
That's simple. As a recent graduate, you're worth nothing unless you can boast real experience on a real project such as some of the open source software. The hardest part of looking for a job is trying to convince an employer that you're worth hiring without prior experience.

>knowledge that you wish somebody had told you years
>ago that could help you tremedously later on.
Languages and APIs are fleeting. Make sure that you have solid fundamentals (in programming, design, people skills, and business sense) and you'll always be a strong candidate for any project.

matsp
03-05-2008, 10:46 AM
Job markets are different across the world. But finding a good place to "start out" will be the challenge. Many small/medium sized companies prefer people with experience. Large companies sometimes take on new-grads just because that means they can get them trained to the "company standard" - mostly because large companies have a greater ability to take on "untrained people" and get them trained, where a small or medium sized company haven't.

--
Mats

DavidP
03-05-2008, 10:54 AM
Does your school have a career center and career fairs? At my university we have career fairs where potential employers come purposefully looking for college students who either want internships or are just about to graduate and are looking for a full-time job.

Most employers understand that you are a student and that you won't have much real-world experience, but they still want to see as much experience as you have to give them. If you have been lucky enough to have a programming-related job while being a student, talk about the work you did at that job. If you have done any programming-related stuff outside of just your school work, talk about it. You should also talk about the really cool projects you did for school. They will also show your talent and ability.

I find it interesting that in most interviews that I have been in, the potential employer almost always asks questions that are related to your basic data structures and algorithms knowledge such as sorts, searches, hash tables, trees, linked lists, grammars, and that kind of stuff. If you are solid on your knowledge of those things, you should perform well in a lot of interviews.

Many companies (especially those that work with C/C++) will ask you questions relating to performance improvement or bitwise operations. In my interviews I have been asked at least twice to do some simple bit masking tasks, convert a 4-byte field from big endian to little endian, and also write a fast routine that can tell if a given point is inside a circle.

In reality, none of the questions that I have ever been asked in an interview have required knowledge beyond that of a 2nd-year university student. You just need to have that knowledge solidified in your mind.

Daved
03-05-2008, 11:00 AM
>> As a recent graduate, you're worth nothing unless you can boast real experience on a real project

I disagree with this. As a recent graduate, you are worth something if you show potential to be able to succeed. For some employers, showing that you can go to university and do well is important. If you can show that you understand what you've learned, even if you learned it in a class several years earlier, then that is important. You can apply for a job that wants you to write Java despite learning C and C++ in school, as long as you show that you learned and retained the knowledge.

I'm not saying real-world projects are bad. In fact, if you can work on some that is an excellent boost to your resume and your experience. But if you haven't then that doesn't mean you can't get a job.

>> the potential employer almost always asks questions that are related to your basic data structures and algorithms knowledge such as sorts, searches, hash tables, trees, linked lists, grammars, and that kind of stuff.

I agree. We always ask about these kinds of things, and we are looking for real understanding and ability to apply that understanding.

esbo
03-05-2008, 05:37 PM
Train to be an accountant :D

mike_g
03-05-2008, 06:57 PM
ting: Why not be your own boss? Then its just a matter of finding a client and/or something to do. For my college project I'm making an epos system for the chinese where I worked doing deliveries. Basically its just using old refurbished dells + a printer running on some java software I'm in the process of making, but it will sell for a fraction of the cost of what the rest of the stuff on the market does and can (hopefully) be sold on. Its only recently become apparent to me that there loads of opportunity to make stuff for small businesses and it means you wont get stuck with a 9-5, you just have to ask around.

esbo: You're in no position to rip into the OP here. Its not like anyone would give you a job as a programmer. Or if they did then they would deserve all the disaster they can get ;)

brewbuck
03-05-2008, 07:23 PM
I am 100% certain I would never have been able to break into the C industry if I had not started out with an internship. All the C jobs around here require over 10 years experience as well as systems programming experience. Nobody is writing brand new stuff in C if they can avoid it. It's either a driver of some kind or some multi-million line legacy system.

Oddly, C is an extremely common choice in Open Source circles. I don't quite understand why. But as others said, contributing to Open Source is another great way to demonstrate your proficiency.

This makes C a potentially lucrative language, but it is also extremely hard to get hired. If you can, get an apprenticeship or internship as soon as possible.

ting
03-05-2008, 07:32 PM
Thank you!!! These are Gems. Thank you all (Prelude, the Code Goddess; Matsp, the Kernel Hacker; DavidP I'Anziano; Daved, esbo).

I am shocked !!! I've already tried as hard as I can yet never seem to be enough for the real world. I am an average person who does average in school, but I study hard everyday to stay sharp in programming in c/c++; I am learning MFC & Win32 outside of class (school doesn't teach us about that), and more subtle points in c/c++ compiling & linking errors everyday after school. I like to tackle bugs from all angles and find satisification in doing so in the process. Can these personal attributes work towards my advantages when I am applying a decent c/c++ job?

I am quite confident that I can answer most c/c++ question right with some interview preparations. I also have solid training in oop and java, backed up by 4 to 5 school-project experiences.

Please do post feedback(positive or even negative), i'd really appricate it. I really want to pursue a career in c/c++/java and i need to know the challenges ahead. Please feel free to bombard me with the reality; I want to be bombarded, because the reality is what matters.

I've learned that in realtiy:

1) Schooling worths little or nothing; project and real work are the 1st thing employers look for
2) Understanding of STL and data structures are crucial for interviews
3) This forum is full of gems advices and good people, i'd like to contribute back when i become a veteran programmer (hopefully sometimes soon =.=)

I still have a few questions:

1) Do i stand a chance if I want to apply for a c/c++ job that offers $36,000CAD?
2) $40,000 CAD?
3) $45,000 CAD?
4) What websites/resources would you recommend?

--TING

ting
03-05-2008, 07:34 PM
Also Thanks to mike_g and brewbuck comments !!! I just saw your posting.

--TING

ting
03-05-2008, 08:51 PM
it will sell for a fraction of the cost of what the rest of the stuff on the market does and can (hopefully) be sold on.

Can you explain? I don't quite understand the previous sentence.



Its only recently become apparent to me that there loads of opportunity to make stuff for small businesses and it means you wont get stuck with a 9-5, you just have to ask around.


Thanks for this tip. I think i get it. what would you recommend for a bunch of new graduates that are thinking of starting a company. something that you hope somebody had told you before you opened your own business?

i heard some very bad thing about contact binding & its legal consequence. what do you think i should know before i sign a contract, for employments or taking on a project.

Everyone is welcome to comment as well.

--TING

esbo
03-05-2008, 08:56 PM
ting: Why not be your own boss? Then its just a matter of finding a client and/or something to do. For my college project I'm making an epos system for the chinese where I worked doing deliveries. Basically its just using old refurbished dells + a printer running on some java software I'm in the process of making, but it will sell for a fraction of the cost of what the rest of the stuff on the market does and can (hopefully) be sold on. Its only recently become apparent to me that there loads of opportunity to make stuff for small businesses and it means you wont get stuck with a 9-5, you just have to ask around.

esbo: You're in no position to rip into the OP here. Its not like anyone would give you a job as a programmer. Or if they did then they would deserve all the disaster they can get ;)

I was not ripping into the OP just suggesting the programming might not be a great career.

novacain
03-05-2008, 09:00 PM
When looking at a graduate I am more interested in their work ethic, enthusiasm and thought process (as I understand we will have to 'mould' them).
I will ask questions to see if they consider 'edge' cases (how the code can fail) and what to do about it. I listen to what questions they ask and if what we do excites them.
I see if they find my jokes funny....

Being willing to learn, excited by the work, able to work in the team and having common sense are the factors I use to decide between candidates (who usually have similar education).


IME...

Big firms usually have better mentoring programs (experienced coders have more time to help you).

Small firms are more interesting to work for and value employees more (your knowledge of their systems is an important asset to the company).

Coders here are in such short supply we are importing them. Last time we hired we did not have one local applicant and hired someone from the UK (who then immigrated to Australia).

esbo
03-05-2008, 09:16 PM
When looking at a graduate I am more interested in their work ethic, enthusiasm and thought process (as I understand we will have to 'mould' them).
I will ask questions to see if they consider 'edge' cases (how the code can fail) and what to do about it. I listen to what questions they ask and if what we do excites them.
I see if they find my jokes funny....

Being willing to learn, excited by the work, able to work in the team and having common sense are the factors I use to decide between candidates (who usually have similar education).


IME...

Big firms usually have better mentoring programs (experienced coders have more time to help you).

Small firms are more interesting to work for and value employees more (your knowledge of their systems is an important asset to the company).

Coders here are in such short supply we are importing them. Last time we hired we did not have one local applicant and hired someone from the UK (who then immigrated to Australia).

See that the sort of attitutude, you are no longer a programmer but a 'coder'.
You have gone from an artist to a painter an decorator.
It's no wonder no one in Austraila will work for you anymore.

bithub
03-06-2008, 02:20 AM
I will say is this... It is a very good time to be graduating as a software engineer. At least here in California, we are having a very tough time filling positions.

As for experience - internships are good, but not required. If you have worked on a interesting project in the past, that will help you quite a bit. When I interview people, that are 2 main things that I look at:
1) can they code? (easy to determine via questions and tests).
2) what's their personality like? (can be a bit tougher to figure out. People tend to be nervous during interviews so it can be tough to gauge their personality).
The rest can be taught relatively easily.

ting
03-06-2008, 03:39 AM
Thank you all for reply. I find novacain & bithub's comments really really good. I am very grateful for your shared knowledge. What you said clarified a lot of things for us young undergraduates.

um, mr. esbo, if you make fun of me, that's fine. but please don't make fun of my friends here.

No offence, but you haven't said anything useful, and have already managed to offend at least 2 people so far including me. I think the problem is YOU and your twisted sense of humor.

In fact I suggest you quit accounting, because it might not be the greatest career for you. Being so poor with other people, you might want to consider a career in programming; programming jobs will suit you perfectly since programming is less likely to be dealing with people. if you do, let us know and we will give you a few hints about how to become a good programmer.

--TING

Prelude
03-06-2008, 07:44 AM
>As a recent graduate, you are worth something if you show potential to be able to succeed.
Employers are looking for a return on investment. Those with experience can show that the investment is worth it. If you have no experience, hiring you is a decision that involves high risk because the return on investment is a toss-up. If you show potential, it does little more than mitigate the risk by a small amount, but potential or not, employers won't know you're worth the investment until after they've made it.

So from a financial standpoint, recent graduates are worth less than nothing because hiring them involves a high risk for loss of money. You can talk about potential all you want, but employers are thinking about the bottom line when they hire new talent. Pretending that's not the case actually makes it harder to find a job because you're probably not selling yourself in a way that makes sense to the employer.

>I've already tried as hard as I can yet never seem to be enough for the real world.
Keep in mind that employers tend to throw out as many acronyms and buzzwords in their "desired skills" list as possible. You'll run into one of two cases:

The employer doesn't really expect the super guru they're asking for to appear. It's just a way to throw off the really bad candidates and give good candidates an idea of the direction in which their skills should lean.
The employer is dumb enough to use the desired skills as a "hire/no hire" checklist. These tend to be bad companies to work for anyway, so just move on to the next one.

>1) Do i stand a chance if I want to apply for a c/c++ job that offers $36,000CAD?
>2) $40,000 CAD?
>3) $45,000 CAD?
Yes. All of those count as a reasonable starting salary for a C/C++ programmer.

>4) What websites/resources would you recommend?
For what?

Mario F.
03-06-2008, 10:24 AM
I started my programming career with an interesting portfolio already. I'm deeply convinced it was this that allowed me to start as a professional programmer very early in my life. It was right on my 2nd job. The first was for Alcatel and my life was doing nightly backups of their ES9000 mainframe.

It was probably a little bit of luck too, but a portfolio can do wonders for your early steps because the interviewer has something to hold on to than just faith in your persona.

What can your portfolio be made of ?
Mine was back in the days. I didn't know C++ and was mostly interested in Clipper, DBase and the new thing, Visual Basic, which still had a smiley as the icon on Windows 3.1. So, I'm not entirely sure what to advise you here. But I'll wager:


On the CD:

Your personal library of odds & ends
Small snippets of code addressing issues that interest you. For example, if AI interests you, build some consequential snippets of code exploring AI
1, 2 or more full projects of which you dedicated your time and effort to conclude.
1 or 2 top projects you never concluded but feel they are worth staying in your portfolio for their worth as a showplace of your skills


On a small file:

Clips of magazine articles, web printouts, papers, whatever, of subjects that interest you as a programmer.
Information on books you own, you don't own but have read, and books you would like to own
Notes on varied programming related subjects you have collected over the time


Things aren't today as they used to be. The market opened. In my days you would have to give your left arm to find a programmer looking for work. Today programmers have to give theirs. However, some things never change, and while a portfolio has become pasée and even a little quaint, it is still worth a thousand interviews. Just make sure you force the interviewer to take it on your first interview. I'm pretty sure he'll snoop around.

ting
03-06-2008, 10:42 AM
Thank you prelude. I know exactly you mean. This is a generic problem existed among all undergraduates: lack of experience and uncertainty in return. I was a bit afraid of thinking about that because i have limited control over these criteria. Maybe i need to think clearly about how to make a strong argument from a economic standpoint.

4) What website/resources would you recommend? --> I meant websites (besides the generic ones like monster.ca) that could really help me in resume writing, interviewing, and mental preparation for applying job in the programming sect. If you were starting out again from a fresh graduate with no real work experience, where & how would you look for your first c/c++ job.

--TING

ting
03-06-2008, 10:48 AM
Thank you Mario, great great idea. I am going to do exactly that.

--TING

Daved
03-06-2008, 11:44 AM
>> 1) Schooling worths little or nothing; project and real work are the 1st thing employers look for
I disagree with this. I can't speak for other employers, but at our company, it is not the case. Schooling is very important. Projects and real work are also important. However, it's often hard to determine how much work and how much quality is done on a given "real world" project because those are often done in teams or with guidance. Testing knowledge that should have been learned in school is easier because you either understand it or you don't.

>> 2) Understanding of STL and data structures are crucial for interviews
STL is just an example. If you have learned it, then it is crucial for interviews. If you have not learned it, then it is not important. The underlying data structures are important. Being able to understand data structures, pros and cons, and being able to identify when to use which shows deeper understanding than many other topics might.


Prelude,
I agree with the idea of what you are saying, but in my experience I think you are taking it too far. Many employers are willing to take that risk. Recent college graduates with little to no experience are cheaper than others with lower risk. If you are able to do well in choosing your employees, then the potential is worth more than the risk.

>> Pretending that's not the case actually makes it harder to find a job because you're probably not selling yourself in a way that makes sense to the employer.

Nobody's saying "don't try to get experience". Of course students should work to gain real-world programming experience before they look for permanent employment. However, that doesn't mean it is ok to tell someone without such experience that they have little to no shot of being hired. Of course they can still get hired. Of course they should still try to get hired. It happens all the time. If you can show your potential and show that you learned from your schooling then you can get hired despite a lack of real-project experience. If you can obtain real-project experience before looking for your job, all the better.

Prelude
03-06-2008, 11:59 AM
>that doesn't mean it is ok to tell someone without such
>experience that they have little to no shot of being hired
That's what happens when you read between the lines. I never said anything of the sort. I'm simply offering a realistic perspective as opposed to the usual lies I hear about how it's just soooo easy to get a high paying job writing code.

Daved
03-06-2008, 12:28 PM
"you're worth nothing unless you can boast real experience"

If you aren't trying to say that there's little to no chance of getting hired without real experience, that's fine. Then I'm just clarifying what you're saying. By "worth nothing" you mean, "still potentially able to get a job but it will be more difficult", right?

Prelude
03-06-2008, 01:02 PM
>By "worth nothing" you mean, "still potentially able to get a job but it will be more difficult", right?
By "worth nothing" I mean that employers will see you as dead weight without an initial investment in training. This is as opposed to an experienced candidate who is perceived as being able to hit the ground running.

For example, I have no problem hiring graduates if time constraints allow, but when I do I'll always factor in about two months of lost time for the new guy and approximately a week of lost time per existing member of the team for training. On the other hand, an experienced programmer I would expect to pick up the necessary info to become useful in two weeks or less, which is a significant win over the graduate in terms of my return on investment.

Your worth to an employer at hire time is typically going to be "how much work can I get out of this guy and how soon can I get it?" versus "how much is he asking for?". At this point I would expect all of the suitability issues to be resolved. If you're willing to decide between an experienced guy and a newbie, you've already determined that both have the necessary skills and appear to mesh well with your team.

Daved
03-06-2008, 01:08 PM
But there's typically going to be a salary difference between the recent graduate that takes two months and the person with experience that is ready to work in two weeks.

Obviously you are free to hire who you want, and I completely understand the desire in some workplaces to go for the person with the actual experience.

My point is that that is true only for some workplaces. There are many others who are fine with recent graduates with or without experience and are willing to go through the training process if they feel that person has the potential to help them going forward.

Mario F.
03-06-2008, 01:15 PM
And there is even more...

There's a potential job out there for everyone in the business; be them experienced, unexperienced, good or bad. And this is so because companies are themselves experienced, unexperienced, good or bad.

Companies hire according to many factors. A company can hire in search of good and experienced professionals, while the company next door may be on the lookout for fresh blood they can tailor to their needs. Companies there are too that did the mistake or hiring a bad HR manager.

A real career boost can come from many directions. From the company who did the mistake of hiring us, but we proved our worth, to the company that doesn't even know what they are doing, but by hiring us they gave us the opportunity to carve our first notch on the experience cleaver.

What should be important is not if we can get hired by this or that company, but the location of the closest mailbox so that we can mail in the application.

CornedBee
03-06-2008, 01:19 PM
Internships are also important. Internships are where the companies filter out the really bright kids and hire them before anyone else can get to them.

abachler
03-06-2008, 02:39 PM
Ask the question 'Why would I choose to work with your team?' It might be hard to choke out when you are new, but it shows that you have confidence in your own abilities, and that you are team oriented.

Prelude
03-06-2008, 02:46 PM
>it shows that you have confidence in your own abilities, and that you are team oriented.
Or it shows that you're arrogant and probably have poor teamwork skills. ;)

esbo
03-06-2008, 05:25 PM
Thank you all for reply. I find novacain & bithub's comments really really good. I am very grateful for your shared knowledge. What you said clarified a lot of things for us young undergraduates.

um, mr. esbo, if you make fun of me, that's fine. but please don't make fun of my friends here.

No offence, but you haven't said anything useful, and have already managed to offend at least 2 people so far including me. I think the problem is YOU and your twisted sense of humor.

In fact I suggest you quit accounting, because it might not be the greatest career for you. Being so poor with other people, you might want to consider a career in programming; programming jobs will suit you perfectly since programming is less likely to be dealing with people. if you do, let us know and we will give you a few hints about how to become a good programmer.

--TING

Well first off I am not making fun of anyone, it's your opinion that I have not said anything
useful.
Anyway you may have misunderstood my comment, but basically I am just saying that
computing may not be a very good career. And that's not just my opinion quite few people
share that view point.
If you want a 'career' in programming is is pretty unlikely you will be doing much programming.
Essentially programming is the art of making yourself redundant, unless you are happy to spend
your life writing rubbish, however some people seem to excel at that so maybe you will make a career out of it.
Incidently I have probably got more programming jobs than most of your 'friends' here.

mike_g
03-06-2008, 05:26 PM
Arrogance can be good, it just depends who you are dealing with. If you can assertively confuse some grunt in HR with long words you don't understand its all good. If youre talking to another programmer tho then that guaranteed to put your foot in it :D

esbo
03-06-2008, 05:28 PM
Teamworking is where one programmer operates the keyboard and the other operates the mouse.

mike_g
03-06-2008, 05:34 PM
it's your opinion that I have not said anything
useful.
Ok, in your own opinion do you believe that you ever say anything useful?

novacain
03-06-2008, 06:15 PM
Thank you all for reply. I find novacain & bithub's comments really really good. I am very grateful for your shared knowledge. What you said clarified a lot of things for us young undergraduates.

No problem, I think Prelude phrases/describes it better.


um, mr. esbo, if you make fun of me, that's fine. but please don't make fun of my friends here.

Never argue with fools, they just drag you down to their level and beat you with experience.

Just ignore him, that is what annoys his type the most, no response to their taunts.

ting
03-06-2008, 11:21 PM
Thank you (Prelude, Daved, Mario, CornedBee, abachler, mike_g, novacain-hope i didn't leave out anyone).

What kind of entry-level work can I do with c/c++? in school we only learned to do academic exercises and never examined the pratical applications of c/c++. I don't know what I can do with the stuff I learned (c/c++/java syntax, pointer & oop, STL, data structure, search&sort, design pattern, project management, and some high-level stuff like gui & database & opengl).
I just began learning about MFC & Win32, and learning slowly on my own after school & work.

Why do companies hire people to program in c/c++? what do companies use c/c++ for mostly?
I mean like do companies really use pure c/c++, the STL, the oop, the data structure? what are they good for?

Why would any company be interested in hiring someone to program in win32 & MFC if we can quickly draw everything in visual studio and call it a day? if not, why not, why program in win32 at all? do i make some money by learning win32?

--TING

DavidP
03-07-2008, 12:48 AM
>What kind of entry-level work can I do with c/c++?

Contrary to what some might believe, you can do practically anything. There are some things that you probably will be less likely to receive, however.

I will take Microsoft as an example. Microsoft does a lot of college hiring. They are at my university at least once a month holding information sessions and other activities, and they hold interviews 2 or 3 times a school year. The Microsoft Research and Development division, on the other hand, does extremely little college hiring (from what the recruiters tell me). They told me that that particular division likes to hire from within MS (according to the MS recruiters).

So if you want a position doing web development, operating systems, desktop applications, games, embedded systems and applications, server side scripting and maintenance, teaching computer programming, or any other of the several hundred different things you can do as a programmer, then go for it. I myself am most interested in OS dev, desktop applications, and games.


>I don't know what I can do with the stuff I learned (c/c++/java syntax, pointer & oop, STL, data structure, search&sort, design pattern, project management, and some high-level stuff like gui & database & opengl).

Well it looks like you have some good stuff under your belt. Can you think of anything else they have taught you? Just out of curiousity, what school did you go to?

I am just going to throw out some topics that you may or may not have learned about (depending on your choice of courses and what your school may have offered as well):

Did you take any classes on discrete structures (graphs, finite state machines, predicate calculus and boolean logic), computational theory (turing machines, grammars, P and NP), algorithm analysis (difference equations, greedy algorithms, signal processing and the FFT, huffman encoding, dynamic programming, linear programming, simplex method), Operating Systems (processes, threads, scheduling, caches, virtual memory), internet programming[B] (sockets, client/server model, HTTP protocol, the TCP/IP stack, p2p, php, python, ruby), [B]computer languages (functional programming, grammars, interpreters). Some other options are computer graphics, artificial intelligence, neural networks, software design and testing, database modeling, computer security, and the list goes on and on.


>Why do companies hire people to program in c/c++? what do companies use c/c++ for mostly?


My answer to that is "why not?" and "see above" :)


>do companies really use pure c/c++, the STL, the oop, the data structure? what are they good for?

Sure they do. Not on every project though. Many projects use a mix of 2 or 3 languages. Other projects are all in one language. The STL is a useful library that is definitely used widely. OOP and data structures are essential.

>do i make some money by learning win32?

Win32 is good to know, but I would focus on learning many of the topics of programming before you go learning a specific API. Win32 won't be around forever. If you know good programming techniques, and how to code in general, then you can adapt to different APIs with relative ease.

laserlight
03-07-2008, 03:06 AM
Teamworking is where one programmer operates the keyboard and the other operates the mouse.
Only if you really cannot afford the hardware, I suppose :p
Noel Llopis' A Day in the Life (http://www.gamesfromwithin.com/articles/0602/000104.html) article/blog entry describes his previous company's literal teamwork space:

In addition to our own personal desk areas, we have pair-programming stations in the R&D lab, with two monitors, two keyboards, two mice, two chairs, and plenty of room for two people. All production code is written by pairs of programmers.

I found the photo quite amusing when I first saw it, actually :)

novacain
03-07-2008, 04:35 AM
do i make some money by learning win32?

Look at some job adds, see what companies want.

Most people / companies use windows (right or wrong) and so companies write for windows (and hire windows coders). The more experience you get, more choices open up.

I think I would look towards C# if I was starting now (but I wont change to that toy language.....yet).

C/C++ / WIN32 (MFC later) is a good language to learn though. If you can write in C/C++ / WIN32, you should be able to adapt to most other languages / APIs.

bithub
03-07-2008, 08:16 PM
Why do companies hire people to program in c/c++? what do companies use c/c++ for mostly?My company exclusively uses C++ right now (although there is talk of moving towards Java). C++ has its downsides, but when your code base is over 3 million lines it's really tough to move to something else.


Why would any company be interested in hiring someone to program in win32 & MFC if we can quickly draw everything in visual studio and call it a day? if not, why not, why program in win32 at all? do i make some money by learning win32?This type of question is common to people that are new to the industry. "Why use technology A when technology B does the job better?". If a company spent 3 years and millions of dollars developing a product with technology A, then they aren't going to scrap it all just because some newer and (supposedly) better tech comes out. This is why people that can program in COBOL make the big bucks. Most new programmers that get hired will working on existing projects, not brand new ones.

ting
03-07-2008, 09:50 PM
Thanks to DavidP, laserlight, novacain, and bithub for your response. Especially DavidP's insightful comment.

I go to University of BC in Vancouver,BC. I am in software engineering, but i am not in a co-op program; i gave up co-op because co-op coordinator was giving me a hard time, saying i won't get many job offers because of my average. i was a bit mad at her attitude, so i stopped begging her and was determined to find a job on my own. I realized now that was foolish, and i should have sign-up no matter what she said. i heard later on she was putting down other applicants too to avoid too much work.

Incidently i heard from other students that she died of cancer 1 yr afterward. I was shocked; i was mad at her but not that mad at her. well, what can i say? life is fragile. i hope she is in a happier place where she doesn't have to work.

o yeah I did os, it was in 3rd year when i was still quite naive about what a programming is really like. in that yr i really had a taste of system programming (almost drowned). I also learned about Reg. Expression and state-transition in a compiler theory course (all the glorious detail of the flex&bison parsing) and a vhdl course (i like this better because it is actually simpler, just lots of work). I took discrete mathematic and understand predicate logic quite well. i am doing computer grahics now and will have a demo game after 1 months.

I am going to take network programming and lots of project courses in 4th yr. i can not take non-mandatory courses like algorithms because i am paying tutions myself.

I am not the brilliant kind of programmer, but i tend to be proactive and systematic when i work, and i really work hard initially to make sure each integration and testing happens in each iteration and all members are effectively utilized and synchronized. at the end (with cooperative teammates) i usually get around 70% to 80% in project work.

I also learned some white/blackbox testing, agile development, and so other softskills not directly related to programming. But i'm not strong in these area. I don't like to do estimates and planning because they are so boring, but i do it for the sake of clarity and goal-setting.

I still have 3 questions:

* What are the do's and the don't's in writing a c/c++/programming resume? I tried out 3 different professional help (or so they call themselves), and they all rewrote the format & content from what the last person suggested, and claimed that his/hers is the better version. Now I just want to write a simple one that has 1) goal 2) skill high light 3) education & courses taken 4) projects work 5) certificates earned, in 2 pages. how does this sound?

* During an interview, what questions would i be asked? I know some posting has already post answers and I read through them all; i would like to hear more response from different people though so i can be better prepared for all kinds of weird questions that may pop up.

* A head-hunter company approached me claiming that they can find me a better job than if i do it all by myself. The only catch is that i have to pay $4800 up-front to receive their training package (pcmg-premeire career management group something in vancouver), and they showed me an job offer of a past client who they claimed was not as a good product as i am, yet obtained a job offer of $50,000 from the olympic association after going through the training. The representative was constantly boasting about the client's success with the package, and told me straight into my face that, with the kind of resume i have and the interview skills i've got, i will never make it into their rank and be somebody. I disliked his attitude but still wondered whether there is any value in it; if it does, maybe i will sign up; but i really feel that the whole thing is just a big scam that will turn out to be a normal job offer. Why do you people think?

--TING

Daved
03-07-2008, 10:31 PM
I've never heard someone say anything other than keep your resume to 1 page. I think you can do 1 - 5 in one page and let the interviewer ask you questions about specifics on your resume. The 1-5 sound good though.

>> The only catch is that i have to pay $4800 up-front to receive their training package.
I would never do something like this. How many jobs have you applied for? Unless you have tried and are unable to find work there's no way you should believe someone who's trying to get $4800 from you. Even if I looked for work for a year without success, I still wouldn't do that. My guess is either a complete scam or just not worth it, either way it doesn't sound good.

DavidP
03-08-2008, 12:31 AM
I agree with Daved. Do not give your money to that man. It sounds pretty scam-like to me. Does your department have job listings anywhere? You should check them out and see what they have.

Sorry, I make a lot of assumptions about what other universities are like based on my experiences at my university, so I don't know what your university might have available. Here at mine they have job fairs every once awhile where employers come from all around looking for people, and students go to give their resumes to the employers and schedule interviews. They have these job fairs for both non-technical and technical majors. The CS department here also has its own job board with job listings of local companies who are looking for people.

See what your university has available in terms of this kind of stuff.

Make sure to keep your resume to just 1 page. I only have a 1 page resume, and so do most other people. Employers don't want to keep track of 2 pages - they could lose one. Make your resume simple and easy to read, and make sure that the most important stuff is on there that will highlight your skill set the best, but remember to never lie about your skill set. The best resumes are not filled with "eye candy" that distract potential employers. The best resumes are simple and elegant, and allow an employer to easily get familiar with who you are.

I have a bunch of interview questions I could post. Being a college student myself, I have been in a lot of interviews this year, because I too have been looking for a summer internship. I'll post a lot of the questions that I have been asked, so that you can get an idea of what questions other companies might ask.

(I don't think it's a sin to post what questions you have been asked in interviews previously, do yall?)

VirtualAce
03-08-2008, 12:35 AM
Make sure to keep your resume to just 1 page. I only have a 1 page resume, and so do most other people.


Due to the frequency of people changing jobs in current times it is perfectly acceptable to have a 2 page resume. Very few people can get enough job history on 1 page. I would certainly never go over 2 pages or would put some type of note stating more history was available if it was needed. The 1 page rule is a bit outdated but some may still abide by it.

And most companies will keep your resume in electronic format and print it if necessary. I seriously doubt if many companies keep hard copies of every one's resume. One of my former companies did not and one did so it really depends on the company.

DavidP
03-08-2008, 01:12 AM
We are talking about college students, Bubba. As a college student, employers rarely want to see more than 1 page.

Obviously if you have been in the industry for several years, you might need more than one page.

Eventually after you have been in for awhile you can make a curriculum vitae which is several pages long.

vart
03-08-2008, 04:01 AM
Due to the frequency of people changing jobs in current times it is perfectly acceptable to have a 2 page resume. Very few people can get enough job history on 1 page. I would certainly never go over 2 pages or would put some type of note stating more history was available if it was needed. The 1 page rule is a bit outdated but some may still abide by it.

And most companies will keep your resume in electronic format and print it if necessary. I seriously doubt if many companies keep hard copies of every one's resume. One of my former companies did not and one did so it really depends on the company.

I had once my resume build on 2 pages. The result was - interviewer got only the first page from HR department when he got to interview me. Since then i always make only 1 page resumes...

whiteflags
03-08-2008, 07:02 AM
I heard that employers are only interested in the past fifteen years, otherwise alledging that you forgot the older stuff you did or the work was outdated.

VirtualAce
03-08-2008, 09:50 AM
Well I'm not a college student and I've not been in this industry for a few years but have been in several others. I couldn't fit fifteen years on 2 pages. So I normally go back 7 years which puts me at exactly 2 pages and then leave a note stating more history is available upon request. More history has never been requested.



(I don't think it's a sin to post what questions you have been asked in interviews previously, do yall?)


In my opinion it's ok as long as you don't get extremely specific about the company on the forums.

Mario F.
03-08-2008, 09:54 AM
Exactly as I used to do. The first page I would give my personal details, academic background and skills. The second page had my chronological professional experience. All in Serif 12pt and formated in tables for easier reading

DavidP
03-08-2008, 10:30 AM
Well, here are some questions that I have been asked in various interviews with companies:

- Given a problem, how would you go about choosing an algorithm to solve that problem? What factors play into your decision?

- You are assigned the task of coordinating elevator movement in a building. There are several floors to the building, and there are several elevators. How would go about scheduling which elevator goes to which floor?

- You are assigned the task of creating a plan for a city's waste disposal system. In short - they need more trash cans. There are not enough trash cans around the city, and so it is getting dirty. Design a plan to install trash cans, and state what factors into the decisions that you make.

- Given this series of letters, where would you go about placing the next letters in the alphabet?

AEF
BCD

- In morse code, letters a represented by a series of dots and dashes (. and -). Assume that there is no break in the code between two letters. (Refer to http://en.wikipedia.org/wiki/Morse_code for a table of morse code symbols).
Assuming no break between letters, the string "ABC" would be: .--...-.-.

Given that information, how would go about interpreting a string such as this: ......


- What is a hash table? What is a binary tree? What advantages does each have, and in which cases would you use each?

- What is CGI? How does it relate to server-side scripting?

- What is the difference between TCP and UDP?

- You are given a function rand() which returns any random number in the entire range of 32-bit integers. Now write a function random(int min, int max) that makes use of the rand() function in order to return a random integer somewhere between the values min and max.

- Given a singly linked list, how would you go about detecting whether this singly linked list is cyclical? Write a function to do so. The function will look like: bool isCyclical (node *headNode);

- Write a function to perform a binary search on a sorted array.

- You are asked to delete a node that is part of a singly-linked list. You are given a pointer only to that node, and you have no knowledge of any of the list that comes before that node. Delete the node in such a way that you do not break the list. (I.E. links are maintained) The function prototype is: void deleteNode (node *pointerToNode)

- Given a 4-byte data field, how can I obtain the value in the 2 bits that are located 6 bits away from the most significant bit? Write a function to do so.

- Given a 4-byte data field, write a C/C++ function that will change these 4 bytes from big endian to little endian.

- Write a function that will return true if a given point is found to be within a designated circle, or false if it is outside of the circle. THe function prototype is: bool isInCircle ( point circleCenter, int radius, point arbitraryPoint );

The distance function is: distance = sqrt ( (x2 - x1)^2 + (y2 - y1)^2 )

After you have written the function, take a look at it. The client for whom you wrote the function says it is too slow. How can you speed it up, and still have it work correctly?

- We will define the value of a binary tree to be the value of the parent node plus the value of its left subtree minus the value of its right subtree. Write a function to calculate the value of a binary tree.

CornedBee
03-08-2008, 10:42 AM
In morse code, letters a represented by a series of dots and dashes (. and -). Assume that there is no break in the code between two letters.
You have been asked that? Morse code without pauses between letters is ambiguous. For example, it's not possible to distinguish between EE and I, which could be embarrassing if you require a sheet of paper ...