Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?
Programming IT Technology

Practical Experience As a Beginning Programmer? 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?"
This discussion has been archived. No new comments can be posted.

Practical Experience As a Beginning Programmer?

Comments Filter:
  • 1) post to slashdot
    2) ????
    3) ????
    4) Profit.
    • by Anonymous Coward on Sunday March 30, 2008 @12:42PM (#22912792)
      1) post to Slashdot
      2) ????
      3) Get a Job
      4) Profit.

      I suspect step 3 might be recursive, though.
    • by Alarindris ( 1253418 ) on Sunday March 30, 2008 @01:57PM (#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.
    • Re: (Score:3, Interesting)

      by sjs132 ( 631745 )
      OffTopic! I don't even get Funny, I get offtopic! Shhs... The kid is so digging for a job in the post, it should have been rejected from the getgo and never make it to the main stream. Must of been a slow news day. But I use slashdot appropriate humor to point out that the kid is pandering for job offers, and I get an offtopic... Slashdot is going down when it starts posing as the next "Monster." Maybe I should of included the all powerful "First Post!" but I figured I was above that... Guess not.
  • GSOC (Score:5, Informative)

    by thefear ( 1011449 ) on Sunday March 30, 2008 @12:21PM (#22912568) Homepage
    Google summer of code is pretty good for practical experience, but the application period closes tomorrow :(
    • Re:GSOC (Score:4, Insightful)

      by Otter ( 3800 ) on Sunday March 30, 2008 @02:14PM (#22913510) Journal
      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.)
    • by mcvos ( 645701 )
      Seconded. Google Summer of Code is cool. Perhaps not representative of most software development work, but a good way to make contacts with some open source community and companies that are part of that community. Lots of Apache projects are part of GSoC, and lots of companies are involved in Apache projects. Even if it doesn't land you a permanent job (it might), at least it'll get you involved in cool new technologies, which is a lot more exciting than standard code-monkey work at a standard old-tech soft
  • How about.. (Score:2, Redundant)

    by Idimmu Xul ( 204345 )
    Google Summer of Code []?
    • 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! (Score:5, Interesting)

    by ElizabethGreene ( 1185405 ) on Sunday March 30, 2008 @12:23PM (#22912592)
    Head on over to 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: (Score:2, Interesting)

      by CRCulver ( 715279 )
      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: (Score:3, Informative)

        by Anonymous Coward
        I think they're more worried about their closed-source products becoming contaminated with derived-from-open-source code
      • Re:Bugzilla! (Score:4, Insightful)

        by kaens ( 639772 ) on Sunday March 30, 2008 @12:38PM (#22912748) Homepage
        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! (Score:5, Informative)

        by hacker ( 14635 ) <> on Sunday March 30, 2008 @12:54PM (#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.

      • I thought the majority of software jobs were for writing purely in-house (neither open nor closed, since they never get distributed) applications.
        • This is the case, but they are closed source since their source code is never distributed and is not open for distribution. Even internal projects at most companies would be off limits for external distribution since it's considered to be a competitive advantage, or may expose internal workings of the company which are considered proprietary.
      • by GoofyBoy ( 44399 )
        >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 philosophica
      • Re:Bugzilla! (Score:5, Insightful)

        by kevin_conaway ( 585204 ) on Sunday March 30, 2008 @02:09PM (#22913474) Homepage

        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: (Score:3, Interesting)

          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 lear
        • by turgid ( 580780 )

          Quite. All of my jobs since leaving the British nuclear industry back in 2000 (which was very anti-Free pro-Microsoft and closedness in general) have been because of my familiarity with and enthusiasm for Free and Open Source Software.

          Most interesting projects are not done on Microsoft platforms any more. They're done on a free unix like Linux, Solaris or *BSD.

          Microsoft Windows (and .NET) is a legacy desktop platform for "office" applications.

      • 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 w
    • Re:Bugzilla! (Score:5, Insightful)

      by Mikkeles ( 698461 ) on Sunday March 30, 2008 @12:33PM (#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.
      • Maintenance programming is a tedious bore where you learn little about the thinking behind code. IMO the best way to learn programming is to write your own stuff from scratch maybe with a few CS/algo books at hand. That way you get a far better feel for coding than you ever will diving into class foobar() at line 20,000 in some finance app or whatever.
    • truck (Score:5, Insightful)

      by zogger ( 617870 ) on Sunday March 30, 2008 @12:49PM (#22912838) Homepage Journal
      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?
      • I was a truck mechanic, so no jabs against them. What I meant was be straight on your resume. If you are looking for an entry level job, don't try to BS it. List what you you've done (that is relevant), what you know you can do, and what you want to do. Anything more is too much.

        On an unrelated note, the number of ".. but wait, you are a girl .." I heard was roughly the same in IT and truck repair. LOL

    • Re:Bugzilla! (Score:4, Insightful)

      by The Living Fractal ( 162153 ) <> on Sunday March 30, 2008 @01:20PM (#22913110) Homepage
      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! (Score:5, Insightful)

      by mcpkaaos ( 449561 ) on Sunday March 30, 2008 @02:01PM (#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.
    • by Anonymous Coward on Sunday March 30, 2008 @02:18PM (#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.
      • The first bug I fixed and saw released was a Typo in the Evolution-Exchange-Addressbook module. I learned how to use bugzilla, the basics of CVS, how the patch approval process works in GNOME-land, and worked for the first time with an internationalized application. (gettext & .po files et al.) On top of all that, I actually got to make the software universe a tiny* bit better. Yes, that is a lot to go through to fix a typo in a dialog box, but it is completely relevant to the type of grunt work a n
  • Volunteer (Score:2, Informative)

    by TigerDawn ( 314322 )
    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: (Score:3, Funny)

      by Frankie70 ( 803801 )
      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?
      • 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. []

        • I'm afraid you've not tried that lately. The Linux developers now use "git", written by Linus Torvalds and freely available for numerous platforms. If you just want the source, you can download the latest tarballs at and many other mirror sites. If you want a resume enhancing project to work with, hop over to and pick anything that looks interesting.
  • by antifoidulus ( 807088 ) on Sunday March 30, 2008 @12:34PM (#22912706) Homepage Journal
    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.
  • by certron ( 57841 ) on Sunday March 30, 2008 @12:36PM (#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.
  • by CyberBill ( 526285 ) on Sunday March 30, 2008 @12:36PM (#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).
    • "... get experience with the more difficult programming concepts in C++ such as templates ..."
      Worse ... advice ... ever!
  • C/C++/Obj-C (Score:4, Insightful)

    by chaos215bar2 ( 1263926 ) on Sunday March 30, 2008 @12:39PM (#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.
  • Finding a job.... (Score:4, Insightful)

    by caffiend666 ( 598633 ) on Sunday March 30, 2008 @12:41PM (#22912772) Homepage
    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.
  • by SSpade ( 549608 ) on Sunday March 30, 2008 @12:41PM (#22912774) Homepage

    ... 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.

    • 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)
      • Re: (Score:3, Informative)

        by BitZtream ( 692029 )
        As a lead developer for a software company, I disagree. I think it is vital for developers to know how to do QA, with and without having access to the source.

        You need to be able to understand what your QA engineers are saying when they give you feedback. If you've never done it, its a lot harder to understand what they mean when they don't know the innards of how the software works.

        A developer that understands Marketing/Sales can also understand how to help those areas without comprimising the application
    • As somebody who helps hire programmers in the Bay Area, I agree that you should not be looking for a short coding job.

      In hiring somebody with a CS degree but not lot of professional experience, there are three things I look for, in increasing order of importance:
      • academic understanding - This is the stuff that your professors think is important. If I can trick you into telling me that you can write a program that will tell whether another program will terminate, or if you aren't comfortable with big-O nota
  • Hmmm (Score:5, Insightful)

    by tgd ( 2822 ) on Sunday March 30, 2008 @12:41PM (#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.
  • 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 (Score:4, Insightful)

    by MosesJones ( 55544 ) on Sunday March 30, 2008 @12:46PM (#22912824) Homepage
    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.
    • by flymolo ( 28723 )
      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.
      • +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

        • by flymolo ( 28723 )
          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.
  • 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 w
  • Co-op/Internship (Score:2, Interesting)

    by alucard963 ( 542262 )
    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 summe
  • by Kupfernigk ( 1190345 ) on Sunday March 30, 2008 @12:55PM (#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.

  • by Gorobei ( 127755 ) on Sunday March 30, 2008 @12:57PM (#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.
  • 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 w

  • 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
  • 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 fre
  • 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 thos
  • 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 i
    • As someone who in the last few months has picked up programming, coming in with similar problems to yourself (only I have no background in Systems Admin, and what's more I'm totally crap at maths), may I heartily recommend Objective-C as the language to start with.

      Cocoa is written in Objective-C. What is Cocoa I hear you ask?

      Wiki will put it better than I, but put simply Cocoa is Apple's API framework for the Mac OS X environment.

      There are many good books out there to get started in Cocoa programming,
  • by Vellmont ( 569020 ) on Sunday March 30, 2008 @01:13PM (#22913056) Homepage
    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.
    • 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 e
      • 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.
        • 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.

    • 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 p
  • Good attitude (Score:3, Insightful)

    by locokamil ( 850008 ) on Sunday March 30, 2008 @01:24PM (#22913134) Homepage
    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!
  • by plopez ( 54068 ) on Sunday March 30, 2008 @01:36PM (#22913222) Journal
    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.
  • 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 i
  • 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
  • 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
  • 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

  • by Mutatis Mutandis ( 921530 ) on Sunday March 30, 2008 @02:14PM (#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.

    • 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

  • 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 []
  • The best job/internship you could get is where you would become a junior member of a development team. This development team would follow the unified process (or some development methodology). They would use version control and bug tracking software. You would learn by seeing others work. It would be best if you were actually mentored by senior programmers (but in my humble experience this rarely happens). At worst, you learn a lot just by looking at senior programmer's code.

    If I were looking to bring
  • I've used C++ for 10 years on my own since college, and I still haven't found a job programming in it.
  • duh - be an intern (Score:5, Insightful)

    by OrangeTide ( 124937 ) on Sunday March 30, 2008 @03:44PM (#22914212) Homepage Journal
    1. You're in college
    2. You're in the bay area

    You must simply become an intern. There are plenty of resources at every college for finding out about this and applying for an internship. I've been a SW developer for almost 10 years, and it really is the second best way to get a job as a developer. (the best way is to know someone)

    Even though we're sliding into an economic downturn. Interns are so cheap (most get paid in the bay area, but not much) that companies look to them to shore up their need for employees in the rough times. Once you're done being an intern though, you will find it very hard to get a job unless you had some fantastic internships.

    There is little demand for junior developers right now(if this was 1998-2000 you would have no problem), and it is going to get worse before it gets better.

    Not sure why this had to be an Ask Slashdot.
  • I don't mean to be a downer, but you've just gotten in to programming at 21, thus presumably are not a CS major -- you don't seriously expect to be paid to write code in the SF Bay Area, do you? (At least not before you graduate). My impression is that the average code jock, as represented on Slashdot, started writing assembly at age 11, and by the time he's entered college has already mastered C and knows with utmost certainty that programming is his future and can't wait to cut his teeth on data structure
  • Don't do it (Score:3, Interesting)

    by Aceticon ( 140883 ) on Monday March 31, 2008 @04:52AM (#22919068)
    Taking software development as a job will spoil it as a hobby.

    (I should know)

    In the current market, it's not even a financially sound choice: you should have noticed by now the comments about how hard it is to find work as a Junior Developer - take it as a warning.

    If you do manage to punch through the no-job-unless-ur-senior barrier that the service outsourcing trend has raised in IT, then life isn't too bad, though nowadays, unless you're a very specialized freelancer, software developers are paid barely above less specialized jobs.

    Given the frequency of posts here on Slashdot about redundancies, outsourced jobs and in general overworking and death marches (don't get me started on that), I'm amazed nobody else has come out and said it before me: "Nowadays, working in IT sucks ... big time".
  • Career (Score:3, Insightful)

    by Fozzyuw ( 950608 ) on Monday March 31, 2008 @12:38PM (#22922352)

    I'm 21, going to college [...] I am now looking seriously at [programming] as an eventual full time job.

    I think the first thing you should do is decide if you're interested in programming as a career and not just as a "full time job". As a wise person once said, "Love what you do and you'll never work a day in your life."

  • Some Real Advice (Score:3, Insightful)

    by sribe ( 304414 ) on Tuesday April 01, 2008 @12:10AM (#22927920)

    First off, check out; it's specifically for college students, both upcoming graduates looking for permanent jobs and those further away from graduation looking for internships. Now, some comments, as a 1-person operation whose business is growing out of control and who actually has a job listed there, and other places:

    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.

    Not only does it show a capacity for understanding things, I suspect it shows an understanding of, and capacity for, hard work--believe me, that's something that smart employers understand and appreciate.

    ...but, at least from my own personal experience, its pretty late in the game to be looking for a summer job...

    This, unfortunately, is quite true. But speaking from my own personal experience, there are always employes who start looking quite late--don't give up.

    The trick is to never stop learning, and keeping an open mind to different languages.

    So, so, so true. So many schools have computer curricula that are junk and only prepare you to have your job sent offshore in a couple of years. Of course most employers look for the buzzwords of the day, but there are ones who look for signs of high intelligence and real passion--and for those people there are jobs out there that won't be offshored. Also take hard advanced math classes, particularly discrete mathematics, and get good grades in them. Then lie during your interview and tell me how easy they were ;-)

    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).

    Damn straight. Most people who claim to know C++ only know a really dumbed-down baby subset. Read Alexandrescu [], then read it again, until you understand it all. Then branch out to other books on template metaprogramming. A candidate who could explain the primary differences between Boost smart pointers and Loki smart pointers, and the rationale for the decisions, is one who's going to impress me.

    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.

    In the U.S., employers do list and actively search for the new, soon-to-graduate talent. Over here, your advice applies more to those who are already out in the job market.

Mr. Cole's Axiom: The sum of the intelligence on the planet is a constant; the population is growing.