×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Practical Experience As a Beginning Programmer?

Soulskill posted about 6 years ago | from the i-hear-google-needs-people dept.

Programming 328

LuckyLefty01 writes "I'm 21, going to college, and working part time doing odd jobs like math tutoring. In the past nine months or so, I've discovered and taken to programming (so far mostly C/C++/Obj-C). I am now looking seriously at something in this area as an eventual full time job. Since I don't have much scheduled this coming summer, it would be great to try to get a job of some sort at a tech-related company in order to get some practical experience in the field. Even if I don't have the background to get a job involving actual programming, I think that the knowledge of how such a company works would be valuable. Fortunately, I live in the SF Bay Area, so there should be plenty of companies around. I'm flexible about what I'm going to be doing, and very willing to learn just about anything anybody cares to teach me. If there's some (or even quite a bit of) boring grunt work involved, I can do that too. What type of job would benefit an aspiring but inexperienced programmer the most? What methods might I use to find such a job?"

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

328 comments

how to get a job 101 (2, Funny)

sjs132 (631745) | about 6 years ago | (#22912562)

1) post to slashdot
2) ????
3) ????
4) Profit.

I've got #3 figured out for you (5, Funny)

Anonymous Coward | about 6 years ago | (#22912792)

1) post to Slashdot
2) ????
3) Get a Job
4) Profit.

I suspect step 3 might be recursive, though.

Re:how to get a job 101 (1, Interesting)

Anonymous Coward | about 6 years ago | (#22913058)

The fact that he's posted to /. shows he's already a lost cause.

Otherwise I'd say, "Get out now!" If he quits before he starts working in the field, he still has a chance for a normal life that includes dating girls and having sex, but since he's already posted on /. I guess he might as well give up on that ever happening.

Re:how to get a job 101 (5, Insightful)

Alarindris (1253418) | about 6 years ago | (#22913380)

Since you sound pretty new to programming in general, I'd spend a few nights a week just messing around. Make a blackjack program, add graphics, create a login system with different users and accounts. Just fuck around and get so used to programming that it's like writing in English. Have an advanced math class? Make a graphing calculator and write your own syntax for equation solving, whatever you are into... and just keep plugging away looking for jobs, you'll find one.

GSOC (5, Informative)

thefear (1011449) | about 6 years ago | (#22912568)

Google summer of code is pretty good for practical experience, but the application period closes tomorrow :(

Re:GSOC (3, Insightful)

Otter (3800) | about 6 years ago | (#22913510)

There's no reason why you can't contribute to the community project of your choice without Google's pre-approval. If anything, Summer of Code, with the hand-holding it's supposed to have, is probably less representative of a real workplace than just showing up is. (Although neither really gives the sort of workplace experience he wants.)

How about.. (1, Redundant)

Idimmu Xul (204345) | about 6 years ago | (#22912584)

Re:How about.. (1)

liquidpele (663430) | about 6 years ago | (#22913102)

Or just the craigslist "gigs" section.
You can get all kinds of stuff off there to build up your resume. Just remember that if you have a house or anything else of large value and you go in as a contractor, you'll want to start a LLC or S-corp first and have yourself as an employee of that to limit any liability should the company sue you for BS reasons. Plus you can write all kinds of job related stuff off on your taxes.

Bugzilla! (5, Interesting)

ElizabethGreene (1185405) | about 6 years ago | (#22912592)

Head on over to bugs.gnome.org and start by fixing the easy ones, then work from there. Once you are comfy, take a look at OpenOffice or Mozilla's bug tracker and see what kind of help they need. You'll be saving the world AND be able to put this on your resume. "Contributing developer to the open source GNOME desktop, OpenOffice, and Mozilla Firefox." It looks really nice on a resume... though you might want to leave the part about working as a truck mechanic off there. -ellie

Re:Bugzilla! (1, Interesting)

CRCulver (715279) | about 6 years ago | (#22912654)

I've often heard it said that open source experience is useless on resumes, because then employers of developers for closed source projects (regrettably the majority of software jobs) will think you are so kind of hippie rebel and they won't trust you keeping their code under wraps.

Re:Bugzilla! (3, Informative)

Anonymous Coward | about 6 years ago | (#22912740)

I think they're more worried about their closed-source products becoming contaminated with derived-from-open-source code

Re:Bugzilla! (4, Insightful)

kaens (639772) | about 6 years ago | (#22912748)

I suppose it would depend on the company, but I would suspect that this tendency is becoming less and less of a concern as more people are using OSS in their everyday lives.

Re:Bugzilla! (1)

AnonChef (947738) | about 6 years ago | (#22912788)

I've often heard it said that open source experience is useless on resumes, because then employers of developers for closed source projects (regrettably the majority of software jobs) will think you are so kind of hippie rebel and they won't trust you keeping their code under wraps.
Explain to anyone that asks that you do open source programming to learn and get working experience.
Not to save the world.

It the only easy way for unemployed people to work on "proper code" and be able to show what you have done to others.

Re:Bugzilla! (4, Informative)

hacker (14635) | about 6 years ago | (#22912886)

The last 10 years of my resume has nothing BUT Open Source/Linux work, much of that working for big, non-OSS companies.

I just got a new job at a Fortune 500 financial firm in lower Manhattan spending my day building and debugging FLOSS applications for Linux and Solaris. Their criteria for hiring me was specifically because of my long-standing ties to the OSS community and my work on FLOSS for the last 14 years.

These companies do exist, and they DO value your OSS contributions, if you state them clearly and succinctly on your cv/resume.

Re:Bugzilla! (1)

Timothy Brownawell (627747) | about 6 years ago | (#22912984)

I thought the majority of software jobs were for writing purely in-house (neither open nor closed, since they never get distributed) applications.

Re:Bugzilla! (1)

GoofyBoy (44399) | about 6 years ago | (#22913352)

>employers of developers for closed source projects (regrettably the majority of software jobs) will think you are so kind of hippie rebel and they won't trust you keeping their code under wraps.

OpenSource is a hip new thing/buzzword and especially if its working on something that everyone in IT has heard about (Mozilla, Linux).

I would try and highlight the functional part of the software work (debugging, number of users, worked on OS kernel, code review/approval, etc) and not so much on the philosophical part of your work.

If it really concerns them, they would just get you to sign a NDA.

Re:Bugzilla! (5, Insightful)

kevin_conaway (585204) | about 6 years ago | (#22913474)

I've often heard it said that open source experience is useless on resumes, because then employers of developers for closed source projects (regrettably the majority of software jobs) will think you are so kind of hippie rebel and they won't trust you keeping their code under wraps.

An excellent sign of a company you don't want to work for. If an interviewer ever said something to that effect, I would thank them for their time and leave.

Re:Bugzilla! (2, Interesting)

NewbieProgrammerMan (558327) | about 6 years ago | (#22913790)

Yep, I think that's pretty much what I'd do unless I absolutely needed a job and there was nobody else offering. The last time I began to experience pushback about using that "hippified open source stuff that's not backed by a real company," (not stated in those terms of course, but that was basically the attitude) I decided to tough it out and keep working there. It turned out to be a colossal waste of my time, but I didn't realize it until I had put way too much time and effort into it. At least I learned to keep my eyes open for the next time, but it was still a pretty expensive lesson.

Sometimes I think the PHB fear of open source probably indicates a deeper distrust of people working for them who do stuff they don't understand. But maybe that's just my distrust of people that do all that businessy stuff that I don't understand. ;)

Re:Bugzilla! (1)

Tyr_7BE (461429) | about 6 years ago | (#22913666)

As someone who reads a fair number of resumes for software development positions, I can tell you that that is completely incorrect. If I see some sort of programming on an open source project that this person has done in their spare time, that speaks volumes about their enthusiasm and drive. Open source projects on the resume is one way to get fast tracked to an interview.

Re:Bugzilla! (1)

nahdude812 (88157) | about 6 years ago | (#22913956)

While I obviously can't speak for every company, but I have not experienced this either as a job seeker or an interviewer, and I have an open source project on my resume. Neither have I heard anyone lament their open source work being an issue with getting hired.

I and the handful of companies I've worked for have valued open source project experience highly. It shows that the person takes initiatives. It shows that they is enthusiastic about technology, and enjoy it. It shows that they have experience working in a team environment. And it shows that they have real world relevant experience in an environment where they will have received feedback on the quality of what they produce (often a someone who's been a lone programmer for their entire career has a lot of really absurd ideas about how things should work which turn out to be difficult or impossible to maintain in a team environment).

Re:Bugzilla! (5, Insightful)

Mikkeles (698461) | about 6 years ago | (#22912698)

Maintenance programming in general is an excellent place to start. There is no better way to appreciate and learn about good and bad architecture, good and bad code, and to develop understanding of those attributes which influence maintainability. It allows you to focus on how to build without the interference of what to build.

truck (5, Insightful)

zogger (617870) | about 6 years ago | (#22912838)

A good truck mechanic can make 50 grand to a hundred grand a year......

You might want to pick a less worthy job for comparison....also, hard to *outsource* a truck mechanic job, yes?

Re:truck (0)

Anonymous Coward | about 6 years ago | (#22913476)

A good truck mechanic can make 50 grand to a hundred grand a year......

You might want to pick a less worthy job for comparison....also, hard to *outsource* a truck mechanic job, yes?
Screw that. Construction.

How much money changes hands when a house is sold? That's the low end of construction. Remember the kids who dropped out of school and now work construction? That's your competition for the money that changes hands.

Of course, you have to be able to deal with those people successfully.

Re:truck (1)

uniqueUser (879166) | about 6 years ago | (#22913502)

FYI: Resume tips I work for a small firm in the Athens GA area. We are currently seeking two or three programmers but all of the resumes we have gotten recently are crap. It has been somewhat of a running joke about how many forklift drivers who have applied. Not dissing forklift drivers, or drivers of any sort for that matter, just does not make much since to put on a resume for a programming position. It implies lack of experience. Also, if you have 15 jobs listed over 10 year period, that does not look great either. If you want a programming job, you do need to get some experience in programming. Find an internship or worthy OS project. Learn the basics. From what I have seen, experience usually counts more than education for entry level computer jobs. However, with a few exceptions, you still need to get the education if you plan to do more than write login pages. Good luck.

Re:Bugzilla! (3, Insightful)

The Living Fractal (162153) | about 6 years ago | (#22913110)

I wouldn't leave the part about being a mechanic off of there. Personally, I think it shows a capacity to understand things from multiple perspectives in a cross-trained fashion. And there's nothing wrong with showing people that.

Re:Bugzilla! (4, Insightful)

mcpkaaos (449561) | about 6 years ago | (#22913418)

though you might want to leave the part about working as a truck mechanic off there
As a SWE with 15 years experience, let me give you some advice: do not leave this sort of information out, especially if it involves anything technical in an unrelated field. This demonstrates breadth of knowledge, which few programmers can claim these days. I believe that in most areas of programming, wide is better than deep (just my opinion, of course).

In any case, I wouldn't look down on mechanics. Most of "them" are probably smarter than most of "us", if you really stop to think about it.

Re: That's great, but is it practical? (5, Insightful)

Anonymous Coward | about 6 years ago | (#22913540)

I don't know how easy it is as someone with a fundamentals-only grasp of C/C++ to just jump into a major open source project and "start fixing the easy bugs". Everyone seems to suggest this and forgets that working with Open Source projects has a steep learning curve of it's own.

You have to learn version control systems, the community, what constitutes "easy", you have to learn the scale and meaning of each piece of the project, you have to learn communication and moreso, you have to know enough to actually fix things.

If you're just looking to learn, you've got plenty there. But using OSS projects to learn means a very high overhead and initial learning cost before you learn about coding or code design at all.

Tester (0)

Anonymous Coward | about 6 years ago | (#22912656)

Do product testing for a company. Find a company that is small enough that it encompasses, finding errors, writing them up in a fashion that programmers will appreciate and attempting to locate the bugs in the source itself.

Re:Tester (0)

Anonymous Coward | about 6 years ago | (#22913168)

I second this.. seeing actual code and needing to understand what it does helped me out a lot, before then all I had to go on was simple examples from the internet, stuff I wrote, crappy textbooks, and stuff heavy with specific frameworks that would have taken forever to understand.

Well... (0)

Anonymous Coward | about 6 years ago | (#22912674)

"What methods might I use to find such a job?"

Well, asking strangers on the internet is always a good idea ;)

Re:Well... (2, Informative)

h3llfish (663057) | about 6 years ago | (#22913588)

It seems to have worked pretty well for him. There are lots of good ideas in this thread. And maybe, just maybe, one or two other young younglings are in his shoes?

Volunteer (2, Informative)

TigerDawn (314322) | about 6 years ago | (#22912682)

Basically either find an open source initiative and volunteer your time. Get involved in open source, or sit down with a print out of the linux kernel and read it until it all makes sense. Then contribute.

I do not know how many CSC PHD's that just read the linux kernel, and are amoung the smartest people I have met out there.

Re:Volunteer (2, Funny)

Frankie70 (803801) | about 6 years ago | (#22913072)

sit down with a print out of the linux kernel and read it until it all makes sense.

How do I do this? I can't seem to find the "print linux kernel" button?

Re:Volunteer (1)

Chapter80 (926879) | about 6 years ago | (#22913320)

a print out of the linux kernel and read it until it all makes sense. How do I do this?
I know you worded that as a joke (which was funny)... but.... you can get the source out of the CVS archive. Also, there was a book series that had linux source code (and another with Apache, and a third with TCP/IP), which had interesting annotations and comments. Or you can just go to Amazon and order the source code on CD. [amazon.com]

intern at slashdot! (-1, Offtopic)

Anonymous Coward | about 6 years ago | (#22912696)

You'll have fun, learn what not to do, and pop your ass cherry!

Hate to break it to you (3, Interesting)

antifoidulus (807088) | about 6 years ago | (#22912706)

but, at least from my own personal experience, its pretty late in the game to be looking for a summer job, esp. if you don't have very much experience. Not that you can't, but I would look into open source stuff and just your own personal computing needs to find stuff to work on. Many people will go on in detail about open source, so I'll just speak to the latter:

Do you have any monotonous tasks that you do on your computer that you think could be automated? Well then automate them! Even if it isn't very good, it will still familiarize you with the various languages and how computer programs work to solve various problems.

Re:Hate to break it to you (0)

Anonymous Coward | about 6 years ago | (#22913006)

but, at least from my own personal experience, its pretty late in the game to be looking for a summer job, esp. if you don't have very much experience.

You don't have to be on top to start, that comes after you learn the ins and outs. For now just post an ad on Craigslist indicating you'd love a good B Job experience. You'll be amazed how may people are eager to help. Once you've gained some experience you'll feel ready to expand your team and give others good B Jobs too. You'll be ready for all sorts of web work too, especially after training from a good tag team.

Re:Hate to break it to you (1)

Eli Gottlieb (917758) | about 6 years ago | (#22913494)

its pretty late in the game to be looking for a summer job
Goddamn it. I just found out yesterday that the job I'd been angling for (an REU undergrad research position) rejected me. The prof I planned to work for (we arranged this separately from REU) said he'd have funding even if I didn't get accepted, but then it turns out he doesn't.

I'm a Comp Sci major, freshman year with sophomore standing (ie: I've taken more than Java). I know about 5 languages. Any tips on finding a job at this stage?

Re:Hate to break it to you (0)

Anonymous Coward | about 6 years ago | (#22913550)

but, at least from my own personal experience, its pretty late in the game to be looking for a summer job, esp. if you don't have very much experience.

What qualifies now as being late for that? And what "now" are you talking about... "Now" as in the time of year, "now" as in the state of the tech industry, or "now" as in the current job market situation/economy?

Learn everything! Also, move. (2, Insightful)

certron (57841) | about 6 years ago | (#22912730)

While I don't program every single day at my job, I have helped out with some Java servlets stuff using Hibernate and Spring. I've also picked up some Ruby on Rails for another project that the company had going. (Once the contractors leave, someone has to make sure it gets updated!) The trick is to never stop learning, and keeping an open mind to different languages. While I do wish I were better at Common Lisp, there's still time for that, and it was intriguing enough when it was taught in my Programming Languages course. Understanding algorithms and data structures will probably give you the biggest advantage in conquering whatever language you have to work with and bending it to your will. If the foundations are strong, you can easily get by (or even master) a new language when it comes up.

However, I'm also living in New Jersey, the state of a million suburbs. New York and Philadelphia are just far enough over the border to cause massive congestion and high property values (and taxes, and cost of living). My advice: while San Francisco may be rife with software companies and others who need development expertise, you might do much better looking outside the money-guzzling city.

I feel a little bit like I just gave you old-man advice.

Experience doesnt have to be "Professional" (2, Interesting)

CyberBill (526285) | about 6 years ago | (#22912732)

Work on some of your own stuff, make a cool game, or a tech demo that shows off something somewhat complex (some physics, AI, graphics, whatever you're into).

The experience doesn't have to be in a company, most likely its going to be VERY difficult to get a job when you don't even really know the language yet. Be sure to get experience with the more difficult programming concepts in C++ such as templates, singletons, and auto-registration (if your compiler supports it).

Re:Experience doesnt have to be "Professional" (1)

Zero__Kelvin (151819) | about 6 years ago | (#22913146)

"... get experience with the more difficult programming concepts in C++ such as templates ..."
Worse ... advice ... ever!

Programming (1, Informative)

Anonymous Coward | about 6 years ago | (#22912744)

Most entry level applicants generally don't get 'programming' positions.

Most companies like to start new grads/interns/co-ops into other positions to give them a feel how 'the company works'

You might try starting in :

-Technical Writing
-Technical Support
-IT
-Software Testing

Probably Technical Writing and Software Testing are the favorite entry level starting points for most companies. Software Testers typically don't write code, but test-cases, which should give them a much better feel of what is expected of the coders.

Start Small (1)

DangerKart (1264654) | about 6 years ago | (#22912746)

Sounds like you are you thinking along the right lines, you know you'll be doing some crap work. I would suggest looking for a company advertising an internship. They will expect that you don't have all the skills for a full time job so they will be willing to teach you and help you learn in exchange for your doing some crap work. That's how I got into the field.

C/C++/Obj-C (4, Insightful)

chaos215bar2 (1263926) | about 6 years ago | (#22912758)

If you do decide to apply for an internship or something, make sure you really mean "C/C++/Obj-C". Though C++ and Obj-C both build on C, they are quite different from each other, and each introduce several concepts that are not found in C and that you would be expected to know thoroughly if you claimed knowledge of the language. Also keep in mind that because of these differences between the languages, it is even possible to sort of offend some people by lumping C and C++ together as C/C++. Though I haven't experienced it myself, I would expect the same to be true of Obj-C.

Re:C/C++/Obj-C (0)

Anonymous Coward | about 6 years ago | (#22913324)

Unlike C++, Objective-C is a very small set of extensions on top of C. Because of this, unlike C++, it is basically impossible to do anything in Objective-C without having good knowledge of C, and any knowledge of C will help you to write good Objective-C code. There is none of this business where the language includes C but nobody wants you to use any of it because it's supposedly "evil".

Get an Internship (0)

Anonymous Coward | about 6 years ago | (#22912764)

Since you live in the Bay area, it should be easier for you than if you lived in a lot of other places. You should try to look for internships. Talk to your college guidance/job counseling service. They may have some connections. Also talk to your classmates, you never know when someone's family may have connections. In other words, do some networking in the job sense. My recommendation is that you find a company where the software development pays the bills rather than serves a support role to the other parts of the company. Joel Spolsky of Joel on Software [joelonsoftware.com] has some good recommendations. Paul Graham [paulgraham.com] has his own opinion as well.

Since you're interested in software development the world of open source has lots to offer. Pick something that dovetails with your interests and start contributing to it. You'll only learn by doing and there's are plenty of opportunities to do that with free/open software. You'll be doing this for free, but you'll be gaining valuable experience. Pick a community that is active and has good developers so that you can learn some good practices.

Finding a job.... (3, Insightful)

caffiend666 (598633) | about 6 years ago | (#22912772)

Finding a job is your first practical experience. Finding a job is the most important project which will repeat throughour your career :) I am a Perl programmer, and I get most of my jobs through Perl Mongers, directly or indirectly. Build up your personal coding experience, and build up your reputation in the local groups for your programming language. Also, when in doubt take an internship. Working for $10 an hour as a programmer keeps the lights on and ramen on the table, and builds up lots of resume fodder.

A temporary job that'll benefit you the most ... (4, Interesting)

SSpade (549608) | about 6 years ago | (#22912774)

... will probably not involve C++ development.

There are a few reasons for that. The minor ones are that most C++ / ObjC projects are big enough that it's difficult to bring an experience programmer in to work on them for just a few weeks, let alone someone with no large project experience. Not impossible, by any means, but not something that a larger company is likely to do outside of a more formal (and longer term) sponsorship arrangement.

The big reasons are that the absolute _last_ thing you need either on your resume, or to enhance your skill set is a brief job coding. The basic coding is something that you should be picking up the basics of in college, rounding out a little with some personal coding (helping out with the countless open source projects out there, for instance) and won't really bring to fruition until you're doing it full time.

The skills you're less likely to pick up there, but which you can pick up in a shorter temporary project are things like QA, marketing, sales, system administration, maybe even customer support. So look at picking up a grunt work job in the field that's not directly touching code. QA and testing (for a real software company, not EA or anything in that field) is a gig you might well be able to pick up, and which would teach you more about good software design and good software project management in a painful 8 weeks than you'd learn in a year writing software. If you can do that in an early-stage startup, and see that business process too, at least from the sidelines, even better.

Heck, if you could wangle it, working as a gopher for one of the Sand Hill Rd VC firms would be one of the best introductions to a career in the software field, I think.

Re:A temporary job that'll benefit you the most .. (4, Informative)

ChrisGilliard (913445) | about 6 years ago | (#22913138)

The skills you're less likely to pick up there, but which you can pick up in a shorter temporary project are things like QA, marketing, sales, system administration, maybe even customer support.

I see your point, but I sort of think if he wants to be a developer, he should do development. If anything offer to program at a very low rate as others have suggested. I've seen many people that want to code get stuck in QA for years. If he does take a QA job, he should definitely try to get access to the source code and try to write up much more detailed bugs than the other QA engineers and always be telling people he's interested in becoming a developer. This is definitely a delicate subject because the QA managers will probably not be happy with that. Also, I don't see this path with marketing/sales since it's really a different world and does not interact as much with development as QA or sys amdin. I have seen customer support folks move over to development on occasion too. But again, all of these take a lot of time and hard work, when if you have development skills, I'd suggest just being a developer right off the bat in any way possible (e.g. internship)

Become a Software Tester (0)

Anonymous Coward | about 6 years ago | (#22913310)

It is admittedly a boring job but one that will stand you in good stead for the future.

In the REAL (ie non academic) if you can't test it, you can't build it.

So getting an insight into how much most software testing sucks may make you develop system that can be tested more easily by grunts like you in the future.

Re:Look for a testing job (0)

Anonymous Coward | about 6 years ago | (#22913546)

Look for an internship but don't look for one programming on a large project, they are rare. But companies always need people to test code, chips, etc. Usually those testing jobs involve writing code. There are utilities to aid in the testing of the product, code to automate tests that are done manually, etc. You will end up spending lots of time working with the engineers building the product, you can learn a lot from them. (Including whether this is really what you want to do for a living.)

Last year an intern on my previous project re-wrote a debug utility that one of the engineers had created, the tool had started small and grown. The intern rewrote the thing over the summer in C#, the updated version of the tool is still in use. He got to use his C# and Windows knowledge and ended up with a very good understanding of embedded programming and wireless communications.

Don't limit yourself to software companies. The hardware and silicon companies often have software teams and associated test organizations.

Try going to the job search web sites of the companies (e.g. http://www.intel.com/jobs/jobsearch/ [intel.com]), usually they have an option to search for intern positions. It is a bit late in the year though, many of them are already filled.

Hmmm (5, Insightful)

tgd (2822) | about 6 years ago | (#22912786)

Slashdot is a bit of a weird place, in that I can just imagine the majority of the answers are going to talk about things like Google Summer of Code, or working on an open source project, building your own software, etc...

I'll tell you, those things may help you learn your language or platform better but it will not help you be a better engineer. Unfortunately only time in the trenches does that. Being a good engineer fit for a job at a software company, you need to know how to work on a team, set and meet deadlines, write documentation, etc... all the stuff that you don't tend to get doing the informal stuff that everyone is likely to be talking about here.

An internship or entry level position doing continuation engineering or a junior/associate engineer is going to get you more useful experience than all that other stuff, assuming you actually do know how to write software.

Re:Hmmm (0)

Anonymous Coward | about 6 years ago | (#22913950)

I'd advise avoiding the likes of GSOC, as the chances are it'll have zero bearing on any real life job you get.

If you really want to prepare for a career in programming, you need something that'll introduce you to clueless customers expecting you to provide moons on sticks for budgets the size of a smurf, project managers who can't manage projects, requirements about as static as ocean swell and an in-depth understanding of those most esoteric of methodologies - 'bodge' and 'kluge'.

Starting off with well-planned projects will only lead to disappointment and alcoholism when you realize they're rarer than rocking-horse shit.

I got mine (1)

niceone (992278) | about 6 years ago | (#22912822)

From a company looking for interns on the school's notice board (admittedly a while back!). What got me the job though was being able to talk about all the projects I had done on my own before.

Testing (3, Insightful)

MosesJones (55544) | about 6 years ago | (#22912824)

Start at the cold hard rock face of development. The Testers, skills required are not as sophisticated (you have to repeatedly break stuff) but it will give you a great insight into just how badly some "professional" developers code.

Testing has the added advantage of being a place where its low paid and turnover is high so its a good place to get started in IT.

Re:Testing (1)

flymolo (28723) | about 6 years ago | (#22913192)

If you can find a job writing automated tests, that would be even better. Knowing how to test someone's code is an essential job skill.

Re:Testing (1)

ThePhilips (752041) | about 6 years ago | (#22913708)

+100.

Did testing for couple of years. Really learned how to test what I code ^_^

But I did functional testing: dissecting source code into tiny pieces and then writing a program which would trigger nearly every line of code. But that's quite rare job I'd say. Generally most people get scared of working as testers - and there are many reasons to it: low pay, low profile, some amount of routine.

Good luck is also needed: testing code of some moron might add a considerable number of gray hairs. Testing good code written by good coder is rather easy and fast - fun doesn't last. Consequently most of the time one have to deal with morons who wrote the moronic code: because they are swarming you telling "code works perfectly! - you are using it wrong!!". That's one hell of boredom.

But there is nothing else what can teach one how to NOT write programs. For best results, it should be combined with some previous experience of writing actually working (and released to customers) programs: otherwise one can degrade into full-fledged boring tester, who only knows how and when to press buttons on screen.

P.S. Another positive side to testing: one learns architecture quite fast. Once you learn architecture of one system well - learning all other architectures would be much easier.

Re:Testing (1)

flymolo (28723) | about 6 years ago | (#22913748)

To learn how not to write code, try tutoring CS students. You'll be amazed what they come up with, but it's difficult to explain why their working solution is not the best one. It takes work, but at the end of the day there are two better programmers.

Help Desk... (1)

creimer (824291) | about 6 years ago | (#22912830)

Get a job on the help desk where you're installing software remotely and helping users with technical problems. You can get a broad exposure to how software is being used in the "real world" and how screwed up corporate life can be when it comes to technical issues. A help desk job might be the only job that you can get after graduation, which is what happened to me after I got my associate degree in computer programming. While I'm toiling away fixing broken users and computers, my real job at night is writing a tech novel. :)

Re:Help Desk... (1)

certain death (947081) | about 6 years ago | (#22912976)

Part of the reason you could only get a help desk job is because you did not show the commitment to complete a 4 year degree. I am not trying to be evil, but I hire programmers and other tech types, and a 2 year degree generally gets your resume' tossed into the "emergency help desk tech" pile.

Co-op/Internship (2, Interesting)

alucard963 (542262) | about 6 years ago | (#22912860)

In my time at college, I've found that the most valuable experiences I've had have been at internships with real companies. Ask around at school and see if there is any kind of Career Center or other staff for students looking for work that can help you find an internship over the summer. Don't feel held back by your lack of experience; just be honest and they will let you know if you're not qualified.

In addition to getting a feel for the real world of programming (and maybe making some money over the summer), being able to put industry experience on your resume before you even graduate from college is immensely valuable and shows potential employers that you're serious about being in the field.

And if you find that you hate working in the real world, you find out before graduating from school ;).

Profs or summer camps (1)

quizteamer (758717) | about 6 years ago | (#22912894)

Try asking your professors if they know of any opportunities or if they have their own projects they are working on...most are willing to give you some type of guidance and/or want an extra set of hands to help them with their project. If your 21 (and I'm assuming your a junior) you really try to work either with a professor or with a company. Start to build up some quality references.

Or, if you want something different, check into the different summer camps around you. I live on the east coast and there are some kids camps that get into either robot programming or something similar. It might not be a typical internship, but teaching someone to code, especially a little kid, really shows you how much you know about a subject. You wouldn't need a heck of a lot of programming knowledge but it might be a different way to apply your knowledge.

Practical work involves APIs and patterns (2, Interesting)

Kupfernigk (1190345) | about 6 years ago | (#22912896)

In order to work productively in any kind of modern programming it is not enough to know the basics of a language. You must understand its hinterland - the various extensions and their APIs, and the programming patterns to which they lend themselves. I am far from a genius programmer, in fact quite mediocre, but I have stayed employed for many years through understanding how to write code which tightly couples databases, servers and client applications, and, more importantly, why you would want to do this. I find far too many programmers who, for instance, understand at an academic level how J2EE works, but have not the slightest idea what it is useful for.

Before getting involved in an Open Source project ask yourself - and this is a difficult thing to ask - what it is going to be useful for and what kind of business might use it. Is that the kind of business you want to be in? If you don't know, do some research. Remember a valuable fact: contribution to, say, the Linux kernel is easy for anybody anywhere in the world, whereas writing code that extracts and condenses human knowledge and then turns it into a system is far easier where the relevant human beings live. If you live in the Bay Area, it should not be too hard to work out where the business opportunities lie, where automation might cut costs or have other benefits, and what Open Source projects might be relevant. Then choose one, learn it, and send your resume round to people who might be interested.

What I am describing is a lot of hard work, by the way. But you already knew that, if you wanted to succeed in programming, you were going to have to work hard.

You've got the right attitude (2, Informative)

Gorobei (127755) | about 6 years ago | (#22912912)

If you want to do corporate programming, experience in a corporation is much more important than the actual day-to-day work. You have to learn how these environments function. All to many slashdotters dismiss the entire eco-system as "lots of stupid, pointy-haired bosses."

Bad firms have bad bosses, good firms have good bosses, etc. It's hard when you're inexperienced, but aim for the good firms: being a genius at a bad firm is just damaging to your health.

1. Inventory your skills: are you a programming god or just good? do you want to work long hours, or are just willing to? do you want to build relationships or just write code? does meeting clients excite you or seem a distraction? Answer honestly, and you've got a good cover letter.

2. Hit personal relationships. No hard sell needed, just point out you're looking for a summer job and ask the person to keep you in mind. Mention the points in 1, so he'll feel comfortable in making a recommendation (last thing I want is a person telling me he wants to write code, I refer him to a peer, and the applicant spends all summer trying to meet clients, etc.)

3. Do the usual sending resume stuff. It doesn't hurt and you might find a match.

4. Write code, build on-line relationships w/ other tech people, contribute to open source projects, etc. Sure, it's not a job, but it's better than nothing. I've hired a lot of people based on their OSS participation or academic work.

You must show initiative to work hard (1, Insightful)

Anonymous Coward | about 6 years ago | (#22912916)

To make big impact in Silicon Valley, all you need to do is give 100% effort to you job, then you can't fail. If you are serious about success, and have motivation to match, people will beat a path to your door. There are plenty of gold-bricker software engineers in the Valley who have managers that are dying to swap them out for someone that actually gets things done. Be ready for *deadline oriented* action. The world is already full of people that can get anything done, eventually; but that doesn't pay the bills. If you actually want to do serious engineering, roll up your sleeves and get good at it. India is becoming fat and complacent, there is little new and emerging talent there that is still a bargain. Russia, although producing more competent programmers, is a security risk, although it's a bit cheaper than India. There is still demand in the Valley for innovators (not drones and desk warmers).

PS If the only reason you want to get into the field is to wave your hands and pontificate like a consultant (like the pikers in my office), then I suggest applying to Microsnort or dying in a fire.

Check with the CS department for Internships (1)

bziman (223162) | about 6 years ago | (#22912922)

I started with a company as a summer intern back in 1997, and it turned into a career as a software engineer. I got the internship through my college. Besides making it easy to get a job, an internship is the best way to learn all of the skills you need to prepare you for the "real world", since colleges don't seem to be too good at that, at least in the programming arena. Internships (in computer science) tend to pay pretty well, you're not expected to know much, coming in, and the sky's the limit for what you can do with it.

Check with the college first -- you might even be able to get credits for your internship. Another place to look would be craiglist [craigslist.org] or other job boards -- they have listings for internships. Finally, troll the web for companies in your area that interest you, and send them an e-mail asking if they would consider bringing you on as an intern.

By the way, when I'm reading resumes of recent grads, I'd call in a student with a 3.0 and an internship before I'd consider a student with a 4.0 who has never stepped off campus.

--brian

Data Structures and Algorithms? (1)

Colz Grigor (126123) | about 6 years ago | (#22912950)

In nine months of becoming a self-taught programmer, I suspect that you've become familiar with some syntax. I doubt that that's enough time to develop skills in creating data structures or figuring out algorithms. Because of this, if I were interviewing you for an entry-level programming position I would focus on data structures and algorithms to determine how weak your weak points are. I also suspect that someone else would interview for the position who had more developed skills in those areas, so you probably wouldn't get the job. Sorry, that's just the way competition is.

So, being this new at programming, I'd recommend that you take a job doing something else. Something that pays okay and you can handle doing for the summer while you spend your nights and weekends devouring open source projects. Not just fixing Bugzilla bugs but also reading other people's code and figuring out why they did things the way they did. Contributing to open source would be great, but your focus at this point should be to learn other ways of doing things so you can figure out for yourself which way is best in different situations.

Grump (1)

noidentity (188756) | about 6 years ago | (#22912960)

Side note: don't refer to them as C/C++/Obj-C. You could refer to the C family of languages, or name them as C, C++, and Objective-C. Saying you like C/C++ will only get annoyance from others, since the two languages are distinct and singificantly different entities. That is all.

Networking - old school style. (1)

(H)elix1 (231155) | about 6 years ago | (#22912998)

Sounds like you want an internship or something along that line of thought. You can check out postings at the university, etc, but your best bet is doing a bit of personal networking. Got any friends who already have a job? Check with them to see if there are any intern positions in there shop. Odds are, it will pay peanuts (not even the salted kind), but any 'real world' work experience is going to be worth its weight in gold. Find a job while in school! It will put you head and shoulders above a fresh CS grad who never did anything outside of the classroom.

Odds are, you also won't get to touch any real code for whatever product. Tis OK, you will get to do C++ later. More often than not, internal tools are desperately needed by the business or development - which are just the non-critical things you might get a chance to do. Most everything will start to follow a pattern of User input > mid tier going some munging on that data > stuffing, finding, and retrieving information from a database. I'd pick a platform - Java, Rails, PHP - does not really matter - be able to do web based CRUD operations, and strike when the opportunity rises. Don't be afraid to volunteer time as you build out your first end to end app. Churches, middle schools, etc, all have needs but no budget for anything. Look for non profit groups initially if you can't find an entry level/intern position. Working with a live 'user' where you are trying to sues out requirements and read minds is a valuable experience. Going end to end on something, from white board to running is a huge confidence booster.

A certification, doing self study, is probably worth your time. Again, like real work experience, having a silly cert that says you know the basics of the language (like the Java one, for instance) will help when it goes into interview time. Don't go crazy with this, however, because a full range of certs without experience is worth little (^H^H nothing - a big warning flag). One cert on the language will help with the first couple year job acquisition.

Co-Op / Internship (1)

SuperMog2002 (702837) | about 6 years ago | (#22913030)

Check to see if your school has a co-op or internship program. Where I went to school, the computer science department had an internship placement program. You just let them know you were interested, and they'd set you up with plenty of interviews. Over my five years in school, I landed three internships through that program, including one with Cisco. It's works out well because the positions you're interviewing for are set up specifically for students with aptitude but no experience. Get a few of those under your belt, and you'll have a nice advantage over all those students with a BS or MS but no real world experience.

Here's a good related question... (1)

ErichTheRed (39327) | about 6 years ago | (#22913042)

This article reminds me of a good question. I got into the IT game a little later in life, and have a lot of experience in systems administration. However, I have very little experience as a programmer. I've always been interested in development, but it's not like the old days where you could just jump in with BASIC and build something really cool.

How does someone with lots of systems experience but little development experience get started? It seems like coding Hello World takes a huge amount of work now in most operating systems. (Yes, I know it's easy to spit out Hello World to the terminal in C++ or Java. But how do I get started building something resembling a full application?

My basic problem is that there's no "Start Here" manual.

Don't become a programmer (0)

Anonymous Coward | about 6 years ago | (#22913048)

Try to become a computer software engineer.

Job prospects should be excellent, as computer software engineers are expected to be among the fastest-growing occupations through the year 2016.

http://www.bls.gov/oco/ocos267.htm [bls.gov]

There's no future for programmers.

Employment of computer programmers is expected to decline slowly

http://www.bls.gov/oco/ocos110.htm [bls.gov]

Given that the qualifications for both jobs are virtually identical ... I leave it to you as an exercise to figure out how to become one rather than the other. What seems obvious is that there isn't much future as a code monkey.

Forget open source projects... (2, Insightful)

Vellmont (569020) | about 6 years ago | (#22913056)

Since you asked about a JOB rather than "how do I learn programming", I'll skip the usual dumb "join an open source project!" response.

Personally I think an actual job is a better route, because it'll put you in contact with more people who use the software, rather than implementing some feature request someone made possibly on another continent. Plus, you actually get PAID (which is important to anyone in College without rich parents). Actual job experience looks a LOT better to most employers than working on a random, often unheard of open-source project. Not to say open source stuff isn't good experience, I'm just not certain how many employers value it.

As to how, this may be obvious to you, but many Colleges and Universities have programs to connect students with companies. Those can be quite beneficial, and you usually get paid pretty decently compared to most student jobs. Have you not looked at the various job boards, talked to your instructors, etc?

I'd also recommend just looking internal to your University. Many departments have come to use the student programmers as a cheap workforce. Scientists often need someone to do some programming for them, though they may want you to program in something quite outdated, like FORTRAN. Departments have programming needs as well. I think one summer I had three different programming gigs.

Re:Forget open source projects... (1)

pherthyl (445706) | about 6 years ago | (#22913112)

You might be right that the HR departments of big companies, or older engineers won't value open source experience, but that's certainly not true for me. I'm hiring a couple co-op students in the summer, and OSS work immediately gets their resumes prioritized. A job is just a job, and the motivation is mostly money. But OSS work shows that the person actually has a passion for programming, and is willing to do it for no money. That enthusiasm is far more important than any small skill difference in my experience.

Re:Forget open source projects... (1)

Vellmont (569020) | about 6 years ago | (#22913234)

That's true. The biggest downside of working on a OSS project though, especially over the summer, is it doesn't bring in the small pieces of green paper that let most of us do things we consider necessary, like eating.

I remember being a College student, and paying for the majority of it myself. Money was important.

Re:Forget open source projects... (1)

pherthyl (445706) | about 6 years ago | (#22913750)

Yeah. I wouldn't see OSS as a replacement for work experience. People need money after all. I just want to see some evidence that a person has done some programming without being forced to do so by school or work. That could be OSS work, a programming competition, or their own hobby project.

!OSS && !ObjC (1)

EraserMouseMan (847479) | about 6 years ago | (#22913754)

I think a good piece of advice for this young man would be to also keep an open mind about the language he makes a career out of. He could learn C#.NET and even classic Visual Basic for Applications (VBA). Why? Because corporations are filled with "Excel-gurus". These guys are essential. Now I am not a fan of trying to run my biz off of Excel like some companies and departments try to do. But you can get a job at almost any mid-sized company if you know VBA. If you're looking for experience this is a good place to start. You'll get paid for it too. And if you want to tinker with side projects or other languages after hours, you can!

You'll need to ramp up from VB to C# or Java or some other more capable language pretty quick. VBA guys don't get paid very well. But don't get stuck on Objective C or any other language. Every few years you'll be learning a new language anyway.

Right now you need to get your foot in the door at a company. .NET experience or VBA is the quickest path.

Good attitude (2, Insightful)

locokamil (850008) | about 6 years ago | (#22913134)

Someone will hire you. You've clearly got the right attitude: that's 90% of getting a job.

The other thing I will suggest is applying to many, many companies to start with. HR departments at companies are black holes in general, and it may take quite a few applications before you get anywhere.

I'm just coming off a longish job search myself, so I know how frustrating the process can be. Keep your chin up, and good luck!

Re:Good attitude (1)

tsjaikdus (940791) | about 6 years ago | (#22913504)

What is so good about his attitude? The only thing good is that some of his slashdot friends put up a massive ad for free.

avoid open source projects, get a realfreakin' job (0)

Anonymous Coward | about 6 years ago | (#22913180)

seriously, get a co-op job; contact the head of the computer department at your school and/or pester your programming instructors

avoid open source projects like the plague "I worked on trivial bug-fixes for free" is hardly a great recommendation for your resume, plus it will not give you the in-the-office interaction experience that you will need to get a real job, if that is what you want to do

if you do get a co-op job, make sure it PAYS. 'freebie' co-ops are rip-offs, don't bother with them; serious companies will pay co-op students for their work... ...just be careful that the job does not become more fun - and hence more important - than finishing school!

good luck!

Does Your College Not Offer Co-Op? (1)

scriptedfate (1058680) | about 6 years ago | (#22913220)

I'm lucky enough to have (almost) finished a Computer Science degree in a post-secondary facility that offers co-operative education. That is to say, we go 4 months study, 4 months work, 4 months study, 4 months work...

If what you'd like to do is get a job in a related industry, checking out what your college offers would probably be a good first step. Switching into a Co-op version of your degree would be a good second step.

Possibly volunteer work (2, Insightful)

plopez (54068) | about 6 years ago | (#22913222)

If you can't find a paying gig where they are willing to bring on a novice, find a non-profit and do volunteer work, e.g. creating web sites, maintaining databases of donors etc. Just avoid any controversial topics or organizations with religous affiliations, stick with things like hospitals and animal shelters.

My Thoughts (0)

Anonymous Coward | about 6 years ago | (#22913240)

I'm a Member of Technical Staff with a semiconductor manufacturer headquartered in Mountain View, CA. I'm well-educated (Ph.D. in my field), have several years' of industrial experience, and wanted to chime in with some advice.

(1) I have never contributed to an open-source project. It's not that I *can't*; it's just that when I was your age, I was either busy with school or work. (And, well, now I'm older and there's even *less* time for that :) So while there are many people, here, who have suggested that you contribute to open-source software, don't feel that it's a requirement or that it's even your best course of action. As your possible future employer, I would rather that you focus on school (and on getting a job in your off-terms), and that you spend the rest of your time socializing with friends, getting a girlfriend, and doing everything else in your power to have fun. You're only young once, and I'd rather employ people with half-decent social skills than anti-social geeks who can't communicate worth a damn.

(2) As a follow-up to (1), get a tech job when you're not in school. I did my undergraduate degree at the University of Waterloo (in Canada), where we have co-op terms every 4 months. This meant that, by the time that I graduated from university, I already had 2 years' of industrial experience -- 3 terms writing software and 3 terms doing hardware design -- as well as a patent, and a research paper to boot. My first & second co-op jobs (which I did when I was 20-21 years of age) were largely about fixing software defects, but over time, the difficulty progressed, and as my responsibilities increased, I was soon working on some major projects.

(3) As a follow-up to (2) ... If you're not in a co-op program, getting your first job is not going to be easy. The best strategy that I could recommend is to send out a zillion resumes and get any kind of work for a tech company that you can find -- programming, IT, QA, whatever. Your first job probably may not involve programming, but it may be for a company with a "good name", and by and large, that is all that will matter.

Phrased differently: You need to get your foot in the door, and go from there, since it would be unrealistic to expect any decent employer to hire you & give you control of some major piece with no experience. Even if all you do is answer calls at an IT HelpDesk for 4 months, it *will* ultimately help you to achieve your goal of becoming a software developer so long as, for your subsequent job, you work your way up the "ladder of responsibility".

Don't be afraid to just send your resume (1)

EvilKevin (26404) | about 6 years ago | (#22913382)

Given that you're in the Bay Area, you might have a chance of landing some kind of summer work at a start up. Startups, especially rapidly growing and/or early stage ones, typically have huge backlogs of work that needed to be done yesterday. With no experience, no one is going to risk their business by putting you on the critical path of key projects. But if you're smart, have a lot of initiative (and I presume that you do given that you're asking this question on Slashdot), I bet you could get someone to take a chance on you in a way that would give you interesting work and some experience you won't get at school. You risk nothing by sending your resume and cover letter out to places you find interesting.

There are loads of internships for QA interns (1)

zullnero (833754) | about 6 years ago | (#22913388)

In the past, I've worked in teams with smaller companies where we hired a high school kid to run black box test cases all day. It's not glamorous work by any stretch of the imagination, but you get to work with the team and see how things work. There usually are companies out there with tightly budgeted projects that would be eager to have someone with some technical knowledge come in and work for free, and if they're impressed enough with you, they might give you a good reference or even bring you back in later on.

Learn Politics not Technology (1)

Ilan Volow (539597) | about 6 years ago | (#22913396)

In my experience, a tech job will probably not teach you programming; that's really more the job of your hobby projects and the ensuing battlescars you get from them. It's the stuff you can't get credit for in your classes (that might drop your GPA) that you'll probably never be able to put on a resume and have taken serious, which will develop your skills.

However, a tech job will teach you the politics of IT and software development. You'll learn about how to balance competing interests, how to accept the business doing things in the least efficient, least-technically adept way, and how to subtley sneak in better ways of doing those things under the radar.

It will definitely get you used to end users interacting with your software and learning how to cope with their complaints, feature requests, and the politics about adding features (e.g. if I add feature X, are they then going to ask for feature Y, which will be totally undoable with the current API?).

Want experience? Try web development (1)

jinushaun (397145) | about 6 years ago | (#22913408)

I find jobs that require C/C++ experience tend to have hefty job requirements, which beginning programmers just don't have. Having a CS degree helps, but you won't necessarily have the 5+ years of experience many jobs look for. So what do you do?

Pick up PHP, Perl, Java or Actionscript and get into web development. I find that there are a lot more companies willing to pick up inexperienced programmers in the web development field, than in the traditional development field. However, there is one caveat: except for Java, you will often find yourself cursing the lack of more powerful programming features because most of web development is done with scripting languages. However, all the algorithms and data structures you learned in class should carry over.

If you want to get paid, (1)

coolgeek (140561) | about 6 years ago | (#22913428)

I think you will need to commit to longer than just a summer. Even fresh out of college, with a CS degree, a programmer is typically useless. It takes 6 months to get anything remotely worthwhile from someone who is, please forgive the term as I do not intend to demoralize you, green. Potential employers will want some return on that investment in your training. On the other hand, if you intern for free or for a stipend, that may change the rules of the game. That's how it went for me, and every other fresh programmer I've ever seen hired during my 25 years in this career. The only other advice I have to offer is to be honest about your skill level, don't oversell yourself. You need to come in as a newbie, and allow the more seasoned types teach you the trade. Ok, I lied. Read Knuth's "The Art of Computer Programming". Also, C.J. Date's "An Introduction to Database Systems" massively changed my perspective about programming. The title is extremely deceptive, it sounds like "how to get started with MySQL". I say it is more like "Roadmap to design and implement hardcore database server internals".

LKML (1)

ThePhilips (752041) | about 6 years ago | (#22913430)

Linux Kernel Mail List.

Even if you do not plan to use or program for Linux, the mail list has bunch of gurus often saying good thing. Try to code some driver or simple file system - anything what would look interesting to you. Try to post patches on mail list - comments often provided invaluable insight into how OS and HW function.

If you going be a system developer - Linux (or BSD) is good start point where you can participate easily. If you going to be application developer, then experience working with OS directly would prove very helpful later. In my experience biggest problem with application developer that they know sh*t about system they are using - what causes major pains later.

Another advise I can give is to train yourself for code review. This one helps to develop analytical thinking and would in future facilitate reading others code: invaluable skill for team work.

P.S. Another interesting place is BSD's libc. GNU libc - is horrific on inside. But BSD's one much simpler and easier to work with. libc contains hell a lot of knowledge about underlying system and how the system should be used. All the knowledge in easiest to consume form - source code. Also good place to gain experience.

P.P.S. I myself started with programming games. It is entertaining to write such program and very rewarding as result. Have started with x86 assembler and MS-DOS 3.1, I'm on my 7th Tetris by now - now in C++ and Qt4. Most importantly, simple projects like that serve as a perfect test ground for ideas: it is much cheaper to make a mistake in your hobby project than in million-lines-of-code commercial monster project.

And in other news... (1)

PNutts (199112) | about 6 years ago | (#22913484)

NASA is accepting applications from folks who decided they don't want to be cowboys or princesses.

A small start-up, preferably in R&D (2, Informative)

Mutatis Mutandis (921530) | about 6 years ago | (#22913512)

I suggest looking for an opportunity in a small start-up. Perhaps you don't want to associate with the proverbial two nerds in a garage, but you can learn much more in a small firm, that perhaps has a dozen people dividing all the work between them. You'll learn to do much more than programming, and working in a small firm is more fun. And besides, a small cash-strapped start-up is more likely to hire a college kid to do some coding, than a large established firm.

There may also be good opportunities in companies that aren't in the IT sector, but in research & development, for example a biotech company. Usually these companies don't have very strong IT departments (and again, you will learn more in a small team), and they will hire people on short term contracts to complete specific projects. Even a medium-sized biotech might not employ a single skilled C++ programmer on a permanent basis (the density of C/C++ programmers in this environment is around 0.3%), so they might be willing to hire you.

Or, if it interests you, look for small firms that develop hardware, such as instrumentation, robotics, or consumer electronics; or small engineering outfits that produce custom development and automation. There isn't that much C/C++ in a typical IT job these days, rather a lot of the work is now in web development, database applications, Java and .NET. But people who interact with hardware, especially if it's time-critical, still have a need for the level of detail and control that C can offer.

And probably it's best to work through an agency or consultancy firm. I don't know US practice, but on this side of the pond it IT directors who need and extra person on the team won't place adverts or look through job applications. Instead, they will send out a request to specialized agency or consultancy firm.

Parent is insightful (1)

Kupfernigk (1190345) | about 6 years ago | (#22913664)

I wish I'd added that to my own post, because that is exactly the sort of environment you need. The comment "You'll learn to do much more than programming" could be amplified: you will probably learn skills that will help you eventually manage projects, and these are much harder to outsource..

Agencies, however, will probably not want you because they will want you to be buzzword compliant to the skills list they have sold the client is needed for the job. As I suggest above, do the research, send in your CV. In my experience, heads of IT in the States are more technically comeptent than their UK opposite numbers and so are more able to make decisions. Too often, UK CIOs are led by the nose by the agency because they do not know enough to know what they need.

Internship (1)

nerdacus (1161321) | about 6 years ago | (#22913724)

If you attend UC Berkeley or Stanford, my company (and many others) regularly attend job fairs at both schools. We sometimes look for people fresh out of school, but mostly look for interns. We have found some really excellent full-time employees that way. I strongly suggest doing this. Or, you could contact me directly here by commenting and I'll see if we have just such an internship open now.

My Recommendation for Beginning Programmers (1)

Shuh (13578) | about 6 years ago | (#22913774)

My recommendation for anyone getting into programming is to watch the SICP videos. If you're completely new to programming, this subject matter may be a little deep. But if you are anxious to get past the scripting level of programming and into the methods for organising, planning, and thinking about programming, there is no better introduction.

Structure and Interpretation of Computer Programs [mit.edu]
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...