Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Advice: Bridging the gap from a graduate to a professional

Status
Not open for further replies.

RealityVelJackson

Programmer
Aug 6, 2005
10
0
0
US
I have a B.A/M.S. in compsci, and one year of professional programming experience... The issue is that most of the development at my last job was in a proprietary scripting language (which was a supremely crippled version of C). Anyhow, I've written many programs in various languages throughout school (mostly C), but always used the languages to get the job done and never had the time to learn the languages inside and out. I am now seeking a programming position in C (or C++), but I find that the interviewers expect me to possess a body of knowledge that could only be acquired by solid C development experience at a company or very active hobby interest (which I am only beginning to cultivate).
So, it is pretty obvious that the best thing for me to do right now is write and test code, read books, read forums, etc... I've been doing this, but it can be overwhelming because there are so many things to learn. I have a strong understanding of C, but employers like to see that you really know what's going on behind-the-scenes.
I am wondering if anyone could suggest some short-term C projects that might help me bridge the gap between a student and a professional developer. Things like linked-lists, file I/O, parsing, memory-management and the like are pretty familiar to me, so something challenging and rewarding (that won't take weeks to code) would be great.

Thanks for the help,
Jason
 
sounds to me like you are trying to take the short road to success. you may get enough experience in the short term to bluff some but there will always be the one in the background that will see right through you. what the intervieweers may be looking for is experience and if you aint got it you aint got it. the gap from a graduate to a professional is not filled by doing a few projects
that won't take weeks to code

pardon my bluntness, but in my personal professional field
(which is not programming) we are overrun with people who hold a license and are not necessarily qualified. they just paid the price of the exam and have the memory for answering enough questions right.

I personally have been on a project of my own creation that I have been working on for 2 years now. I am building my own database engine from scratch. I do this because I like to code and because I am learning so much about the subject of databases. I also am finding out what kind of commitment large projects require. I may never be the "professional" but I will know my code.

the projects that I have under my belt are

my first database engine that I still use today
development time - 1 year

PCClock - a digital clock that has all the features of a bedside clock and can be used as a screensaver.
developemnt time - 6 months

the present database engine, with sql
developement time - 2 years so far

a backup program that I use to make my personall backups.
developement time - 4 months

an electricians calculator
developement time - 2 months

and several others with a total developement time of a year or two.

bottom line
if you aint willin to do the sweatin are you willin to be the be the prima dona

[whisper behind your back]
how the heck did that goober get the job
[/whisper behind your back]

do you want to look like the professional or do you want to be proffessional

tomcruz.net
 
by the way
if you could send me the contact for an employer who would consider a very active hobbyist I would be very interested.

please dont be offended but I only know what a 46 year old man will know who is a graduate from the scholl of hard knocks. I tell you the same thing I teach the kids that I train. do yur time. pay your dues. respect your elders.

and you will get yours when its time and you wont even have to ask for it.
 
I'll give you the benefit of the doubt and assume that you misunderstood the question... All I'm asking for are some project suggestions that others may have found insightful to sharpen my understanding of the subtle areas of the C programming language... I have a very strong understanding of the principals of programming, and only wish to learn even more about C. To suggest that I haven't put in any work to get where I am now, and completed a masters degree in computer science by "memorizing answers" and "bluffing" is absurd and pretty insulting. The reason that I don't have 2 years to devote to a project right now is that I am looking for a job, and that is my focus. I don't think that it is unreasonable to prepare for a junior developer position by writing many small programs that serve to elucidate the dark corners and subtleties of a programming language. Some constructive advice would be appreciated.

Thanks,
Jason
 
Jasom
I can see what butthead is saying and where he's coming from.
I'm sure he doesn't mean to insult you.
The problem is that guys like us see youngsters coming into our profession all the time waving bits of paper and thinking that they are "top class professionals" from day one.
Now I'm not suggesting that you are like this, I am merely trying to explain why it's easy to cause offence when you try to explain what you are doing.
From Butthead's (an my) point of view, we have done many years hard graft and learnt many painful lessons along the way.
We realise that you can't know a language byt understanding the syntax.
As an analogy, imagine you are studying to be a car mechanic and you have detailed understanding of all components that go into making a car. Does that mean you'll win races if you've never actually driven before? Does it mean that you wont screw up on your first lesson? No.
That's the problem.
Now from your point of view, I see what you're saying. You want to start climbing the ladder and you want to try to make the first few steps easier. That's admirable. But you need to understand that simple little short projects wont make much difference to your position.
You need to get a job and work. You have to put in the years and yes, I can hear you saying it, that's what you're trying to do.
I'm just suggesting that you need to realise that the only way to really change your true skills level (for what matters in the real world) is to put years of work into it.
The simplest things are often the most important.
Little things like coding style, layout structure.
Modularised and auto documented design.
Interface documenting.
Efficiency considerations for every line of code you write and possibly most important of all, error handling.
These are basics and I'm sure you understand the principles completely. The problem is that it's like driving that car. You need to do lots of it and develop your own styles over time.
I hear from people all the time that make simple mistakes and then don't know why the code doesn't work.
It's usually because they didn't consider array bounds or leaking memory allocations. Simple things that can be avoided with careful design.
I'm afraid that you only get good with things like that with lots of practice and lots of mistakes.
Would you expect to be able to fly a plane with only 10 minutes flying time? No.
This is just the same.
I think the point is (after all this waffle) that your top priority should be to get a job. Any job. Just something to get you to the bottom of the ladder.
Nothing will teach you like real experience.

I hope I have not sounded too critical, this was meant more as an explanation of why the old wrinklies like myself can be a bit short with you bright young sparks sometimes.

I wish you good luck and I'm sure that in time you'll be as good as you could ever wish to be.


Trojan.
 
Wow.
The really decent thing to do here is just throw yourself
into programming in general. C is a land unto itself that
defies geography. There are people who will defy polarity
in a paragraph of code.

If you are truly interested in C, and want to code in it
'professionally' pick up on the projects at sourceforge
and freshmeat, read the linux and bsd source, and try to
incorporate and differentiate as you go along.

I'd also suggest picking up books by Stevens and K&R,
working through the exercises, creating reusable libraries,
and whenever a problem that is hard to solve with existing
solutions appears: code one, even if it is a quick hack,
to more fully acclimate yourself with real world programming.
 
I've always thought that writing your own HTTP server is a good project - not too meaty, but also it teaches you a few important skills if you write it as a multiprocessed and or multithreaded :

socket io/file desriptors
multi-threading
IPC, shared memory
protocol interpretation

If you write it as a platform independant piece of code aswell, it'll teach you even more.

--------------------------------------------------
Free Java/J2EE Database Connection Pooling Software
 
Someother things to consider (these are things I do--as an undergrad):
- If there is a peice of software you've been wanting, scratch that itch. Not only is it 1000s of lines of code to learn from, but it'll also be something you (and maybe others) will use.
- Join an FOSS project that is managed well. This will not only teach C, and give you a working product to use (and others will use) -- but it'll teach you real world development. In spesific: working with a group, working on a project that already has a lot of code that you'll have to read through and understand before writting a line yourself, and lastly it will introduce you to people who know more than you.
- Read. Never stop reading. Read about the newest fads and buzz words, but more importantly read about development models, research, patterns and classical problems. And don't do it because your expected to, do it because it is fun.

What follows is a rant more about the other CS majors at my University. I don't mean offence to anyone on these boards, unless they think it really does apply to them.

I find it hard to understand why more CS Majors (grad and undergrad) don't code as a hobby. I find alot of them even shrink away from classes that are heavy in code. I've taken every heavy coding course I can (even taking them with the best professors if possible (even if they are harder graders)). I know there is a lot of stuff to learn about development in the real world, and I know that there is a lot of things I've to learn about the huge language that is C/C++.

I'm just now starting to worry about finding a job (preferably one that has a tution re-embersment program so I can get a MS); but, that isn't why I spend the late nights working on code and digging through references... It's because it is fun. If I was in it for the job, I would have switched majors when the bubble broke, or when I saw the 1000th slashdot comment about "all the jobs going to India." Yes, it is a marketable skill, but even if it suddenly wasn't I'd still be coding in my spare time.

I acknowledge there are people better than me, that there are people with more experience and even some with more enthuasm about coding than me... That being said, I will never stop working to surpass them.

[plug=shameless]
[/plug]
 
Excellent response from jstreich,
I couldn't agree more.
With an attitude like that, he'll always be proud of his achievements even if no-one else cares. And that's what's important since as he so rightly points out, all the IT jobs are going to India.
That's the kinda guy I like on my team!


Trojan.
 
I post my title here at tek-tips as programmer more as
wishfull thinking. I have the attitude that when I am
writing code I am a programmer. as I am a full time
electrician with 2 kids and a wife with disabilaties it
is hard for me to find the time to spend learning all the
things I should be learning. I am self taught and I sit in
front of my computer when I can because I love to
write code. I started with the dummies and the teach
yourself in 24hours books (excuse my french marsd).
this forum is my classroom as well as the web.

I approched my craft with the attitude that it is an art.
that is why I am in the supervisory position I am in now.
I know my craft and it is quite plain to any body that
talks to me. I can carry my own with the engineers if
they dont look at me as if I were just a laborer since I
do not have a degree. but I got were I got because I
cared about doing the job right and I did what was
necessary to learn my craft. I was not really a
"Qualified electrician" until about the ten year mark.
it is interesting how the article that trojan posted
mentions similiar results. when I became a journey
man It was not because I asked for it. my supervisor
came to me as a four years apprentice and told me he
would break me out. at about ten years I held my first
formans position. Not because I asked for it or because I
knew some one. but because I can do my job. if you knew
me you would see that I got a lot going against me. I aint
pretty and I dont have a lot of grace. so when I make an
advancement I know it is me, and the dues I have paid.

I know exactly how RealityVelJackson feels. he can
anticipate the rewards but he lacks some patience. He
does not realize that he really has no choice in the matter.
he will do his time and he will pay his dues and he will
become an old man with old man attitudes. just write
code, practise patience, and write more code. if you love
it it will be good to you.

by the way I did the draft for this on a text editor that I
wasted many hours coding.

I probably got no qualifications to say anything on this
forum so excuse my illiterate rant.

HAPPY CODING

Tom Cruz

 
Butthead,

You do realize that some of the most truly gifted and
innovative coders have been autodidacts or at least
taught themselves how to think?
Don't worry about how others deal with your paperwork..your code and your experience will speak much more loudly to the
discerning few you actually want to know.
 
thank you marsd

sometimes I try too hard to fit in and I just
miss the opportunity to be myself.

now, lets get back to the code.

TC
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top