By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,919 Members | 1,043 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,919 IT Pros & Developers. It's quick & easy.

What book should I study before a new job.

P: n/a
I know this gets asked all the time but.....
I am a fresh grad. I have taken a year of java and 1/2 year of C++ and
OO Design and Analysis. I have strong Java skills and I have done
projects in c++. But I am pretty sure that I am getting this job as a
java/C++ software engineer. I want to put out a good impression since
it is with a real good company and a great opportunity for me with
real smart people. What book do you rec. that I study before?

I am currently reading C++ Gotchas: Avoiding Common Problems in Coding
and Design.

Thanks, looking forward to your replies.
Aug 14 '05 #1
Share this Question
Share on Google+
5 Replies


P: n/a
Congret for your job you found! Which company is that if you don't mind
telling us?

For coding and design, I surely learnt a lot from Code Complete 2nd Ed.

For avoiding writing Java in the (More) Effective C++/STL are very helpful
(any a joy to read).

For a lot of random (but valuable) articles get a load of C++ Users Journals
(prolly can be found in local library...).
Aug 14 '05 #2

P: n/a
opistobranchia wrote:
I know this gets asked all the time but.....
I am a fresh grad. I have taken a year of java and 1/2 year of C++ and
OO Design and Analysis. I have strong Java skills and I have done
projects in c++. But I am pretty sure that I am getting this job as a
java/C++ software engineer. I want to put out a good impression since
it is with a real good company and a great opportunity for me with
real smart people. What book do you rec. that I study before?

I am currently reading C++ Gotchas: Avoiding Common Problems in Coding
and Design.


When I interview, I look for a solid basic understanding of sofware
development in these areas.

1. Basic computer science
2. Experience with collaboration tools (CVS, subversion)
3. Build experience (make, ant etc)
4. Knowledge of some standard libraries and tools
5. Evidence of "passion" for software development

As for basic computer science, there are a number of very basic things
that very unfortunately, many programmers just don't know.

e.g.
a)
int * p;

what is (p+1) ?

b) ( !a && !b ) == !( a || b )

c) System design issues - reference counted objects and cyclic reference
counts.

d) What is a sufficient condition for susceptability to deadlock.

etc etc
Aug 14 '05 #3

P: n/a
On Sun, 14 Aug 2005 09:59:07 -0700, Gianni Mariani
<gi*******@mariani.ws> wrote:
opistobranchia wrote:
I know this gets asked all the time but.....
I am a fresh grad. I have taken a year of java and 1/2 year of C++ and
OO Design and Analysis. I have strong Java skills and I have done
projects in c++. But I am pretty sure that I am getting this job as a
java/C++ software engineer. I want to put out a good impression since
it is with a real good company and a great opportunity for me with
real smart people. What book do you rec. that I study before?

I am currently reading C++ Gotchas: Avoiding Common Problems in Coding
and Design.
When I interview, I look for a solid basic understanding of sofware
development in these areas.

1. Basic computer science

They did that2. Experience with collaboration tools (CVS, subversion) Got CVS export/import checkout tagging and branching3. Build experience (make, ant etc) Both but ant usually done for me by IDE in java. Used make before but
would only know real basic questions. I will review that too before.4. Knowledge of some standard libraries and tools I know iterator, list, stack, string, vector sstream off the top. But
will review this as well.5. Evidence of "passion" for software development
That is me, and I let them know that.As for basic computer science, there are a number of very basic things
that very unfortunately, many programmers just don't know.

e.g.
a)
int * p;

what is (p+1) ?
This is an error since p does not point to anything, it must point to
something first. However is p pointed to an array int object then it
would now point to the next item in the array.b) ( !a && !b ) == !( a || b )
This is demorgans law. We can use boolean algebra or a truth table to
show that they are both equalc) System design issues - reference counted objects and cyclic reference
counts.
Used for garbage collecting. When keep track of the total references
to a object. When the count is zero it is ready to be deleted. Cylic
reference count is the count of a ref b and also b ref a.d) What is a sufficient condition for susceptability to deadlock.
Threada has a lock on resource1, and is waiting on resource2 before it
releases its lock on resource1. Threadb has a lock on resource2 and
is waiting for threada or is waiting on resource1 before is releases
resource2. =Deadlock since everybody needs the other to finishetc etc


Would that be good? Do you have some more interview questions?

Thanks for the tips on the books too. I am liking Effective C++ Third
Edition 55 Specific Ways to Improve Your Programs and Designs. I also
subcribe to C++ users journals so I have the last 2 years laying
around. That is good to know, I will start reading more of the
articles.

Aug 14 '05 #4

P: n/a
opistobranchia wrote:
....
5. Evidence of "passion" for software development

That is me, and I let them know that.


I'd be looking for evidence: i.e Did you write any open source code ?
Are you a member of an open source project? Have you filed any bugs on
open source projects ? Do you have any pet project you have worked on ?
Have you answered any questions on comp.lang.c++ ? Do you attend ACCU
meetings (or other associations or UGs) ? Which journals do you read ?
As for basic computer science, there are a number of very basic things
that very unfortunately, many programmers just don't know.

e.g.
a)
int * p;

what is (p+1) ?

This is an error since p does not point to anything, it must point to
something first. However is p pointed to an array int object then it
would now point to the next item in the array.


50% of people I interview (phone screen) do not know that.
b) ( !a && !b ) == !( a || b )

This is demorgans law. We can use boolean algebra or a truth table to
show that they are both equal


Sure, I'm still astounded to see lots of code that looks like :

if ( !( !a && !b ) ) .... :-( // some of which I wrote myself :-((
c) System design issues - reference counted objects and cyclic reference
counts.

Used for garbage collecting. When keep track of the total references
to a object. When the count is zero it is ready to be deleted. Cylic
reference count is the count of a ref b and also b ref a.


So what happens when there is a cyclic reference using reference counts?
d) What is a sufficient condition for susceptability to deadlock.

Threada has a lock on resource1, and is waiting on resource2 before it
releases its lock on resource1. Threadb has a lock on resource2 and
is waiting for threada or is waiting on resource1 before is releases
resource2. =Deadlock since everybody needs the other to finish


d) What is the minimum sufficient condition for susceptability to deadlock.

I mis-wrote that - the *minimum* sufficient condition. You wrote a
single condition. Or said in another way: "If I have N resources and T
threads, what do I have to guarentee *not to do* to avoid any
possibility of deadlock."

etc etc

Would that be good? Do you have some more interview questions?


Not handy. There are plenty of web sites - some of them have very very
poor questions (where some of the questions are plain wrong). Actually,
the FAQ for comp.lang.c++ is excellent.

Thanks for the tips on the books too. I am liking Effective C++ Third
Edition 55 Specific Ways to Improve Your Programs and Designs. I also
subcribe to C++ users journals so I have the last 2 years laying
around. That is good to know, I will start reading more of the
articles.


Good luck !

Aug 14 '05 #5

P: n/a

Gianni Mariani wrote:
I'd be looking for evidence: i.e Did you write any open source code ?
Are you a member of an open source project? Have you filed any bugs on
open source projects ? Do you have any pet project you have worked on ?
Have you answered any questions on comp.lang.c++ ? Do you attend ACCU
meetings (or other associations or UGs) ? Which journals do you read ?
You sound like one who is overly strict and would never have given
yourself your first job. It does, of course, depend on the role you are
recruiting for but you seem to expect too much.

By the way, I have never taken part in any formal open-source project
that I have posted code for general use and answered many questions
here and on CodeGuru.

I don't subscribe to any journals.
So what happens when there is a cyclic reference using reference counts?
Then of course your reference counting will never go down to 0 and
you'll get leaks. It's good design that will ensure that does not
happen. Good design does not mean having played with the right CASE
tool for the sufficient amount of time. It means having brains and
using them.
d) What is the minimum sufficient condition for susceptability to deadlock.

I mis-wrote that - the *minimum* sufficient condition. You wrote a
single condition. Or said in another way: "If I have N resources and T
threads, what do I have to guarentee *not to do* to avoid any
possibility of deadlock."
Again, good design. It's easy enough to say you must obtain resource A
before B etc. You can possibly even enforce that. You should implement
RAII properly.

But if the interviewee doesn't know what RAII means then prompt him
because he may have been using it perfectly for years without using its
name. I have failed many interviews for not knowing the flashy names
for techniques I have been using for years (particularly design
patterns).
Not handy. There are plenty of web sites - some of them have very very
poor questions (where some of the questions are plain wrong). Actually,
the FAQ for comp.lang.c++ is excellent.


Yes and I know it very well. Perhaps I should subscribe to the journals
too. Though jobs that require C++ and little else are few and far
beyond.

Aug 15 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.