Slashdot Mirror


Open Source as Programming Exp. for College Students?

texatut asks: "With the computer industry in a slump, many college CS students nearing graduation are looking at pretty meek prospects. While 'formally' educated, few actually have concrete experience dealing with development of software. Many would like to have something concrete to put down on their resume or application to graduate school. However, starting their own project is a hard and time-consuming task. Obviously, the Open Source community is a perfect place for us to get our hands dirty. My question is, are there any resources that can help people with varying levels of experience connect with development teams in a way that would benefit both the project and the students?"

21 of 410 comments (clear)

  1. Check sourceforge by nate1138 · · Score: 4, Insightful

    You could always check sourceforge, they always have listings for tons of projects that need testers, coders, documentation folks, etc. Good way to get your "hands dirty" and help out the community.

    --
    Where's my lobbyist? Right here.
    1. Re:Check sourceforge by hillct · · Score: 5, Insightful

      SourceForge is a good place to start if you wanted to get involved in OSS development, but I would question whether such experience is truly valiable in the job market. While it looks good on a grad school application (maybe) it really doesn't demonstrate an ability to work in a close knit team, to meet deadlines, to solve problems, enguage in project management activities (in the more treditional sense).

      It's true that working on an OSS project may give you experience in the actual work of software development in that you will be producing code, vary few of the software development skills msot companies look for are really developed or evaluated in the OSS world, unless you think a hiring manager at any company would actually be influenced by your code-fu rating as listed on SourceForge or Avogado. While in the strictest sense it may allow one to sharpen one's coding skills, I seriourly doubt whether it would significantly effect a hiring decision at any large company. On the other hand, if you want to start building up a consulting business it could never hurt to say you were a lead developer on OSS projects A, B, and C.

      --CTH

      --

      --Got Lists? | Top 95 Star Wars Line
    2. Re:Check sourceforge by Macrobat · · Score: 3, Insightful

      You may be right about what SourceForge or OSS development doesn't add to your resume. Realize, though, that nothing that isn't a job itself exactly replicates a job. What work on an OSS project demonstrates is that you are self-motivated (because nobody's forcing you to do this), that you work well with people even if you don't see them day-to-day (because you are working on a distributed project) and that you have the ability to finish a project and create a working piece of code. All in all, an intelligent employer should recognize the benefit.

      --
      "Hardly used" will not fetch you a better price for your brain.
  2. Not just experience by www.sorehands.com · · Score: 5, Insightful

    The problem that some employers have with new grads is not just the lack of experience. It is also the lack of experience on large projects. Writing and maintaining a 2k-3k utility, even at a job, is very easy as compared to dealing with a small portion of a 250,000 line program.

  3. Senior Design by Dr.+Bent · · Score: 3, Insightful

    Many 'Senior Design' (aka Capstone) courses are ideal for open-source projects. You gain valuable experience, contribute to the open-source community, and get course credit! Plus, sometimes these projects translate into actual jobs when you get out of school.

    Many professors will let you work on O.S. projects if you find one than can be completed in the alloted time, and if it's relevant to some of your other coursework. Of course, this depends greatly on the professor, but you'll never know if you don't ask.

  4. Academic Research by slcdb · · Score: 3, Insightful

    Although, not all students will get positions on research staff, and it usually doesn't pay all that great... research staff positions are available at most universities.

    Plus, (at the risk of getting flamed) most commercial software companies will give more credence to someone with a research background than to someone who worked on the latest Open Source project.

    --
    Despite what EULAs say, most software is sold, not licensed.
  5. subversive advertising by prockcore · · Score: 5, Funny

    "Frank, sourceforge needs more hits... we'll need to buy a few banner ads"

    "Nah, I've got a better idea, why not post an Ask Slashdot question where the most obvious answer is 'sourceforge'? Like 'where can I find a bunch of open source developers?'"

    "Great.. I'll get right on it.."

  6. Re:sourceforge and freshmeat by room101 · · Score: 4, Informative

    Sorry to reply to my own post. But really, the secret to getting started in the OSS biz (yeah, biz, that's funny....) is to be willing to really get your hands dirty. That is, be willing to fix bugs and such. There are too many people only willing to work on new code. (yes me too) Many projects have too many cooks in the kitchen, too many "neat" little side projects that don't fit into what the main project is all about. Also, they add too many features and the same bugs are listed in each release.

    Talk about really making the project lead's day, as for a prioritized bug list and get cracking on that.

    --
    room101 -- how much can you stand before they break you?
    (they always break you eventually)
  7. I've done this kind of mentorship by sphix42 · · Score: 5, Informative

    DISCLAIMER: I'm not currently looking for more help.

    While my site (db.etree.org) is not (all) open source, I have mentored a student (hey Eric) while he developed code now used on my site.

    His school assignment was designing and implementing something from start to finish. He asked to work on top of the work (adding new code) I had done as his project. I hooked him up with a shell and CVS and we had quite a few phone conversations where (I hope) I taught him quite a bit.

    We both benefited from the relationship in the end. Eric contacted me directly with a plan to enhance my site. This method worked very well for us...that is, someone looking for experience came up with a plan for an existing project and asked to do itand, in return, I mentored him.

  8. View from the "other side" by gwernol · · Score: 5, Interesting

    As someone who has hired a large number of software engineers in the last decade, I'd like to give a little perspective on this issue.

    It is a very difficult market for engineers. There are far fewer companies than there were 24 months ago and those that remain have cut hiring right back. When I can hire I get flooded with applications, many of which are from people with a lot of relevant experience. A newly minted graduate is going to come up short against someone who has been building commercial software for 5-10 years.

    Getting on a successful open source project and showing you can make a real contribution is going to help you stand out from the crowd. Choose your project wisely - if you want to be an operting system engineer then getting on board with one of the core Linux projects will be much more impressive than building yet another Quake level editor, and vice versa. You'll need to have people on the project who can vouch for you and the contributions you have made. The higher the profile the project and reference it provides you the better: having Linus tell me what a great job you did on the kernel extensions you built will help you a lot.

    Bear in mind that to really make an impact on a substantive project, whether its commercial or open source, is going to take a while. Spending a week adding a couple of printlns isn't going to cut it.

    Be aware that a good commercial software engineer has more than just technical skills. You need to be able to work under pressure, to a deadline and in a team. Just being a great hacker isn't enough. Use your time to demonstrate that you have these skills in addition to your coding abilities. One of the disadvantages of an open source project is that many (not all) of them aren't run with the degree of close teamwork and tight deadlines that are the staple of commercial software development. And of course, the one's that have established teams working on them may be the hardest for a newbie programmer to get into.

    Yes, its rather Catch-22, but it takes a while to build up the reputation that will carry you into the better companies, roles and projects.

    --
    Sailing over the event horizon
  9. I would suggest ... by gewalkeriq · · Score: 3, Funny

    If I was trying to help a college student
    get a real job. I would suggest ...

    Get some real coding experience, preferably paid, but volunteer if needed. People pay more attention to paid experience. Nothing wrong with open source for experience (its just another form of volunteer work), biggest problem compared to other vol. work suggested below is that it does not have a local presence, but it tends to use more hot skills than some of the local work.

    Call local software companies and and if you can have any fixed-bid job that can be done off-site, and do a good job on them, including being done on time.

    Volunteer some programming work for the church, or the local youth center, or whatever you prefer -- just make sure it's real programming experience. Do a good job, and have that person vouch for your work. Some volunteer organizations are run by people with lots of solid business contacts.

    Join some local programming user-groups to match your interests. There is likely to be Linux, Windows, Java, C, Delphi, etc. groups in your area. Volunteer to help, make presentations, etc. Make contacts with these people.

    More generally ...

    Be flexible, if the job involves knocking off some VB screens, do it well. The boss remembers that you did a good job, more than he remembers you did a good job with some VB screens.

    Learn more and work harder and faster than the next guy. Listen more than you talk.

    Be friendly. Brush you teeth. Use mouthwash if necessary. Take regular showers. Wear clean clothes without holes.

    Use common sense.

  10. Difference between open source and real work by lkaos · · Score: 5, Interesting

    I actually have always been a geek and programmed heavily before actually getting a job. In fact, I had more programming experience than most people at the first job I worked on.

    But that didn't make me more productive. Working on a team in a production environment is very different than just programming on your own. I have always been told to leave Open Source stuff off of my resume. That doesn't mean you can't use it to refine your skills. I learned most of what I know on my own.

    Now, by the same token, most college curriculums suck as far as CS is concerned. Realize that if you only rely on college to teach you how to program, your essentially going to an employer without knowing how to program.

    I don't want to discourage OS programming, but do not do it with the expectation of having it help you get a better job. Do it because you either believe if in or because you really enjoy it. The last thing the OS community really needs are people who are just looking for resume builders (especially ones with little useful experience). If your really concerned about getting a job, get a co-op or internship.

    --
    int func(int a);
    func((b += 3, b));
  11. Re:Open Source development *IS* a job by furiousgeorge · · Score: 5, Interesting

    >>Income from Open Source means Consulting
    >>and Services.

    in other words, make your software so shitty and unreliable that people need to pay you so they can keep it functioning? And people bitch and moan about MSFT's subscription policies.... this is the same thing.

    Here's a real world example:

    The last company I worked for, we produced a very high end, specialized application with a limited user base (it is used for doing movie special effects). When we launched a new product recently, it was the work of about 40 developers, working full time for almost 4 years. That doesn't count people writing documentation, QA testers, support staff, the people that clean the toilets, etc etc etc. All told, probably between 150-200 people. So lets *conservatively* estimate the development costs at $15 million (and that is VERY conservative).

    Now this work took FOUR YEARS. So when it comes time to release it, we should just give it away and expect and there will 'magically' be money to pay the rent and food for all these people? Cmon already. Should they survive on happy thoughts and good wishes?

    This shows the mindset why Eazel was such a beautiful failure. They were paying these developers to produce work and had NO way to generate money.... they didn't even sell t-shirts. Yes it's very altruistic and benefits the community, but sooner or later it's going to flame out because it can't last forever - the money will run out.

    If people want to give away their work for free -- more power to them. I write code for a living 9-5. And i also produce open source code after hours that I give away. And that works fine. I don't see any differentiation between giving away code you write and going down and volunteering at your local community center. People can definitely benefit from it, but don't expect that it's going to pay your rent. And don't declare that there is no right/future in charging for your work.

    Software costs money to produce - you can't debate that. If you don't want to pay for your software, you're free to use the stuff that people give away and thats good. Same thought process that you don't have to pay for your groceries - you can go to a soup kitchen. Thats all well and good, but you lose the right to complain if you don't like whats provided.

    I'll give you an example. We PAY to use Qt for our development. Why? It's an excellent toolkit. Sure we could use gtk for free --- but for the headache that Qt saves me $2000/year is a BARGAIN.
    Same with compilers --- the open source crowd loves gcc. Hate to step on any toes but gcc is pretty sucky. Yes it is good for retargeting code, but the performance is terrible. To build the latest release of Qt on Win32 took about 45 minutes. On linux (exact same hardware) took 3-1/2 hours with gcc. Over the course of a year, the $200 we spend on Visual C will more than pay for itself. GCC will be going into the crapper as soon as somebody produces a good fast compiler for linux.

    Closed source isn't dying - it's doing very well. Don't be a hypocrite/bigot. There's room (and NEED) for both commercial and free software in this world.

  12. Re:Open Source development *IS* a job by Salamander · · Score: 5, Insightful

    Wow. Slashdot is pretty full of people with lots of ideals and no skills or experience, but you completely take the cake.

    There are plenty of legitimate and highly stable ways to make money writing free software.

    Bold claim. Got any proof? Got any numbers for how many people are actually doing it? How many programmers actually make a living doing open-source programming full time today? How about a year from now, if the economy doesn't pick up? How many total programmers are there in the world? This "phenomenon" you rant about, this wave that's going to overwhelm us all, was barely even statistical noise even at its peak, and that peak has passed.

    Find some buddies who are also into Open Source and form a consulting group

    Been there? Done that? No, didn't think so. Open source or closed, your zealotry would be fatal in business. Those few people who are making money off open source have survived by learning not to piss off the guys with the money with that kind of extremism.

    There is absolutely NO need for ANY proprietary software in this world.

    You might actually be right there. "Need" is a funny word. No, the world doesn't need proprietary software or copyright law. But they exist, and people - real people, not just big corps - benefit from them. You haven't provided any compelling argument that society would be better off without them. Heck, far better programmers and writers than you have tried to make such arguments, and they haven't succeeded either.

    Those who argue otherwise do so only because they have a vested interest in proprietary venues and are afraid

    That, my friend, is called argumentum ad hominem and it's frowned upon as a fallacy. I'm not just nit-picking either; logic and debate are essential skills in the business world, regardless of whether your source is open or closed. There are myriad reasons why people participate in the creation of open source. Lambasting them all as parasites or cowards is as absurd as characterizing all open-source programmers as thieves. There's a grain of truth in each case, but no more.

    Choose your sides.

    Even if I were the most ardent advocate of open source - and I've probably done more for open source than you ever will - I'm too much of a pragmatist to back the losing side in any fight. You'll find that such pragmatism is a common trait among real engineers.

    --
    Slashdot - News for Herds. Stuff that Splatters.
  13. Open research forums. by Capt.Smirk · · Score: 3, Insightful

    As I approached completion of my undergraduate degree, I was lucky enough to get a graduate student level internship at NASA. While I was there, I learned that I could make important contributions by applying the theory I had learned in school; essentially doing graduate level research while still an undergraduate. Speculating that there were others out there like me, I came up with the idea that we could come together to form a online research society. The society would differ from the open source community in that it would be based around a process. People would submit proposals, contributors would then offer resources for implementing the proposal, and the project would start when it had enough resources. The only constraints on the project proposal would be that it describes its goals, the process it will use to acheive these goals, and that it would have a deadline. The society would track proposal status and require a postmortem at the end of the project duration. This system is somewhat similar to the (failed) commercial ventures CoSource and SourceXchange, but would be not-for-profit.

    While I understand that such a system is hardly any kind of substitute for a "real" job, the research would be public, and citation of such material would be valid resume fodder. Of course, you could be lazy like me and look for work in your school. What started my resume was not the internship at NASA, but work I did for a professor, namely C++/Win32 application development at $6/hr!

    Save the Wild Thoughts and Ideas! -wildideas.org

    -smirk

    P.S. I just checked the link to find it didn't work anymore...then I found out that I had let my name registration lapse! If the above link doesn't work, wait for the DNS change to propigate. Thx.
  14. Yee ha! by ansonyumo · · Score: 5, Insightful

    First, let me qualify my post:
    * I regularly evaluate candidates for employment in a disciplined software development environment.
    * I fully support Open Source Software.

    That being said, the open source code that I have reviewed has been of low quality in the areas that I look for in evaluating candidates, including:
    * strong OO principles
    * rigorous design
    * excellent documentation

    The few open source projects that I have tried to contribute to (freenet being one) actually scoffed at these points, claiming them to be the stuff of over-educated highbrows, stuffed-shirt engineer etc.

    If that is the culture of open source software, then so be it. However, in the world of commercial software development, these are very real, very important requirements. The best hacker is useless if he creates an unmaintainable system.

    The point is that, from my experience, OSS projects and commercial development are two very different environments (granted, many commercially-developed codebases are poorly engineered, hackfully constructed and are devoid of documentation). OSS projects will get you acclimated to integrated your work with that of other developers', but may also indoctrinate you in an unrealistic development environment.

    In other words, it produces a lot of cowboys. Don't expect your bazaar approach to be successful in the cathedral.

  15. Re:Open Source development *IS* a job by Ogerman · · Score: 3, Interesting

    in other words, make your software so shitty and unreliable that people need to pay you so they can keep it functioning? And people bitch and moan about MSFT's subscription policies.... this is the same thing.

    No, in other words, make your software as beautifully clean and high quality as possible, basing as much as you can on existing Open Source software and extending as needed. You would not believe how many people are paying out the wazoo to keep *proprietary* software functioning. I'm proposing to do a better job on both ends.

    The last company I worked for, we produced a very high end, specialized application with a limited user base.. .... So when it comes time to release it, we should just give it away and expect and there will 'magically' be money..

    I'm not proposing a solution to every situation. Nor am I talking about building specialized software from the ground up. In your case, however, it still doesn't mean that proprietary code is needed. One option for people (your customers) with specific needs is to form a sorta co-op group to develop the software they would need--in this case, movie effects software. Seeing as how you have a small user base, this is fully possible. It just requires planning and coordination. Why would your customers do this instead of buying proprietary software from whatever company you work for? Because it's cheaper for them if executed correctly. Nothing I'm advocating has anything to do with altruism or making programmers work for nothing. Yes, I fully agree that the Eazel people were a bunch of morons with no business model.

    GCC will be going into the crapper as soon as somebody produces a good fast compiler for linux.

    I agree that GCC needs work, but it's certainly not going away and I don't think it's quite as bad as you suggest. Qt takes nowhere near 3-1/2 hours to compile with gcc on my machine, and it's just a single-processor 1.4Ghz. Athlon. What matters ultimately, is the performance of the binaries and you nowhere mention this.

    There's room (and NEED) for both commercial and free software in this world.

    There is only need if people create the need--those people being customers who aren't aware of the possibility to get the software they need for less money by hiring either Open Source consultants or by organizing a sort of co-op. I'm not saying it'll happen tomorrow. But it very well could happen as more Open Source projects reach 'critical mass'

  16. Place for Open Source Progamming in College by bryanwclark · · Score: 3, Interesting
    I think I'm pretty lucky at my school, recently we recieved resources from the administration to construct an Open Source Institute on campus. We were giving a computer lab area where we fixed up some old PC's and created our own distrobution so that we may easily instlal all the packages necessary to our environment.

    Being apart of the Clarkson Open Source Institute can earn you actual credit hours, we have projects that we do for the community and for the school. Linux training and tutorial sessions that provide newbies with a jumpstart into running linux. We also have several software projects underway that will help the campus and Open Source community at large. We provide a CVS server to the campus with tutorials on how to properly use CVS, as well as a central meeting place for recruiters looking for linux talent and others interested in linux in general.

    The students here are not doing any of this for money, rather just fun and experience, I have a great time hanging out with the guys programming into the wee hours of the night. You're more than welcome to check out our webpage that explains a little about COSI (Clarkson Open Source Institute)

  17. OSS Project Leads Should Help Students Help Out by elliotj · · Score: 3, Interesting

    I think the idea of harnessing students to help out with OSS projects is a great idea. Now a lot of people on this thread have argued that OSS projects may be unsuitable to student involvement for various reasons. I would argue that while that may be true, the project leads running OSS projects should do what it takes to get students involved.

    If you get a bunch of students working on OSS in school, there's a decent chance a few will stay with OSS after they graduate. This is the same concept used by industry to justify summer student employment programmes. And it works. You want to attract top talent to your organization whether you're for profit or not. That should extend to OSS. Why not compete to get the best minds working on your project in the future?

    Now that being said, it does require some effort. Having hired summer interns in the past (I run a small IT dept), I am aware that you can't just expect them to be productive when they show up. It requires extra planning and patience. You have to take time to explain how things work in your organization, how they can help and what they need to do. But invariably, this patience is rewarded once they get on their feet and start being productive. Typically these students do the work nobody else wants to do, but having been one myself at one point, I can attest to the enthusiasm with which this work is met. As a student you are starved for real-world work, and working for any organization that isn't school seems exciting.

    So I urge project leads to seriously think about how they can encourage students to join their projects.

  18. Re:Whatever by FallLine · · Score: 3, Insightful

    Firstly, the original author was referring to the money mentality, not just the growth and dominance of "non-open" software which is quite a different argument indeed.

    Secondly, before Bill G. came along, software was really NOT motivated by the ideas that open source espouses today (and likes to claim were espoused at that time). Quite the contrary, most of it was developed by companies for profit to sell or bundle with their own machines. It was about money from the start. The reason it changed from relatively unrestrictive / complimentary / free is because the nature of the industry changed, not because of a real change in mindset. These companies didn't sell the software or protect it as it is today because they simply saw software as a means to sell hardware. In other words, the entire notion of developing software for its own sake really did NOT exist at that time. The nature of the industry allowed for them to do this, or rather, it was more economical to not worry about protecting their intellectual property when the nature of the industry has its own built in protections and when the software was itself relatively trivial.

    The point is that you can no more blame (or credit) Bill Gates for this shift than you can for the Moon rising. It was inevitable. As computers became more and more common and accessible and programs became less and less trivial the method for creating, distributing, and protecting the software HAD to change. Bill Gates just had enough wit about him to catch the wave before most others did [My dislike for Bill Gates and Microsoft is for entirely different reasons.]

  19. Running an open-source project at a University by systemBuilder · · Score: 3, Interesting

    If i were teaching again at a university, i would run an open-source project as follows.

    1. To do an open-source project requires 2 semesters (1 year) of work. There just isn't enough time to do something worthwhile in 1 semester. Therefore, to do a project with me, you'd have to agree (in principal) to sign up for two semesters of independent study.

    2. In the first 20% of the project, the student would pick a topic area and write a thorough survey about what is available in that area. To save time, i would make available good surveys from previous students (if any). The survey would also contain a proposal for how to write something new and/or innovative in the domain.

    There are many tired over-worked areas in computer science, such as real-time OS kernels, or C compilers, etc. To do a project in one of these tired areas, you'd have to present a really honking great idea in the first week or two of the class in order to be able to work on these dead topics. I would have a set of 10 canned idea areas but would not turn to these until the student had failed twice with their own ideas.

    2. In the second 30% of the time, student would write a spec and pull together a development environment, including writing any software or hardware tools or developing ideas for any testing tools needed to complete the task.

    3. Last 40-50% of the time is devoted to writing the code.

    This is sort of what happened with my B.S. thesis in 1984, and it became a pretty successful open source project (the PC/IP multitasking TCP and SMTP).

    This is a very hard thing for a faculty member to support because there is a lot of risk in step (1) that the student fails to find something interesting, and becaue of the need to hand out a grade at the end of the first semester, and allowing for the possibility that the student drops out of school, transfers, gets into a car wreck, hates my guts, or whatever, and gives up.