JDJ Editorial Board member Yakov Fain writes: One of my resolutions this year is to start teaching part-time Java-related classes in some college. That's why I started browsing the computer science course lists that are being offered this year. While graduate-level programs offer many interesting courses, the situation is different in the undergrad world.
Some schools keep teaching how to multiply matrices in Ada or work with algebraic expressions in Prolog. Half of the courses are preparing professionals who will be operating on another planet. Information systems programs look a little more down to earth. Meanwhile, many college graduates are having a hard time finding their first jobs because many entry-level programmers jobs are being outsourced overseas, and it'll stay this way as long as it makes financial sense for businesses. Unfortunately, student loans have not been outsourced...
A catch-22 situation with experience makes things even worse: we can't hire you because you don't have the industry experience. How can I get this experience if no one hires me? Some people try to find volunteer programming work to get a foot in the IT door. Some graduates join open source projects, and some job applicants just lie on their résumés.
I have a plan: instead of outsourcing projects to developing countries, businesses should offer them to the local colleges. I'm not talking about simple pilot or proof-of-concept projects; I mean the real ones. This plan requires commitment and the cooperation of academia and businesses. These are some thoughts that come to mind:
- Colleges have to include more classes on software engineering and modern technologies in the undergraduate programs. Here are some of the candidates: Application Servers, Service-Oriented Architecture, Design and Development of J2EE Applications, Applying Design Patterns, Data Modeling, Business Intelligence, and UML.
- Colleges form teams of programmers starting from the students' junior year. Faculty members lead these teams. Information about these teams (résumés, previous projects, GPAs) has to be published on the Internet and be publicly available, and businesses need to publish their project descriptions so student teams can bid on these projects.
- Colleges make their labs, networks, and support personnel available for the teams. If needed, businesses can lease additional hardware to the college for the duration of the project.
- Most of the students study Java programming during their freshman and sophomore years. Many Java components are available for free or through open source licenses: IDE, version control systems, project build tools, bug reporting systems, application servers, etc. Businesses will purchase any additional required software for a fraction of the cost using heavily discounted academic prices.
- Business managers pick and interview teams for their projects based on the college reputation, available skill sets, location, and other criteria.
- Business lawyers prepare a contract with a selected team that defines the obligations of each party, deliverables, cost of development, and potential penalties.






