Programming Grads Meet a

By Darryl K. Taft  |  Posted 2007-09-03 Print this article Print

Skills Gap in the Real World"> To Todd Williams, vice president of technology at Genuitec, a Plano, Texas, software tools maker, the best employment candidate fresh out of school is the one who realizes the code they do not have to write may be the best code there is. Williams said he thinks some schools focus too much on writing software as an art form for the developers to express themselves. But finding a way to accomplish a task without writing a bunch of new code pleases Williams, he said.
"New code equals new bugs equals maintenance burden, equals higher life-cycle costs," he said.
"In fact, if you have to hand-write code youve already admitted that youre going to take the slowest most expensive route available to implement a solution," Williams said. "Most software isnt unique and the issues it addresses can easily be solved by either finding, reusing and integrating existing software or through the use of productivity-enhancing tools that generate most of the code for you. Then, the clever developer only has to string the solution together with the minimal code wiring that makes the pieces function well together." To read about how to get ready for fall job hunting season, click here. Williams employer, Genuitec, sells the MyEclipse IDE (integrated development environment). MyEclipse 6.0, the latest version of the technology, supports both code generation as well as old-fashioned hand coding. Joe Ponczak, CEO of Codign Software, in Baltimore, said of the programming skills issue: "Thats a pretty wide gap there. I think the developers that excel after college are the ones who continuously challenge themselves to learn new patterns, languages and methodologies while in college." Moreover, although colleges do a good job at teaching the basics, "I think the basics are now too basic and need to be improved," Ponczak said. For instance, a look at the curricula at several local universities showed a listing of courses that have been taught the same way for years, Ponczak said. But, "There were few, if any, courses on development methodologies, TDD [test-driven development], emerging technologies and languages, multi-layer development, security, scripting, refactoring, metrics or open source." Meanwhile, SourceLabs Sebastian said shipping software from a commercial vendor requires "ruthless pragmatism and customer focus" to be able to quickly deliver features customers require in a high-quality but timely fashion. And being able to make rapid design, feature, and bug triage decisions based on these factors is a skill that is usually acquired though hands-on experience and work alongside professional engineers with years of experience doing so, rather than in the classroom, he said. While some developers have a natural "knack" for this, its not a skill that is easily acquired in school. In addition, large complex systems in the real world have multiple integration points, dependencies, and are often built by multiple teams, Sebastian said. "Learning to work in this environment, and having the skills to design and execute on the integration, assembly, and testing of components is another skill that tends to be acquired in the work-place rather than in school," he said. Chris Stephenson, executive director of the Computer Science Teachers Association, in New York, said she too sees the skills gap between what students learn in school and what they need in the work force, "but what is really exciting is that I have seen more and more educators (both at the K-12 level and the university level) willing to make these skills part of their curriculum." Like others, Stephenson said computer science should no longer be taught as a solitary and isolated discipline. "There is little effort made to address issues such as effective team work, project planning and time management, and conflict resolution let alone helping students gain the cultural competencies and effective communication skills that are the key to success in a global economy," Stephenson said. "Also, not enough effort has been made to show students how computing connects to problem solving in the real world," Stephenson said. "The good news, however, is that an increasing number of educators are building these skills into the classroom experience. Teachers now have students work in teams on real world projects where the failure to plan together, work together, and communicate effectively are a big part of the evaluation that the students receive." Microsofts Montgomery listed a series of things he would like to see in higher education computer science programs. One is technology education programs that integrate communication skills. "The best developers are often the ones who can explain problems and solutions the most clearly to others," he said The second is technology education programs that emphasize teams. "Very few developers really work alone," Montgomery said. The third is graduates with analytical skills, particularly around ambiguous problems. "Its important that developers understand the intention of what theyre being asked to do as well as the implications of a solution theyre thinking of and can weight and communicate these," Montgomery said. The fourth is graduates with an understanding of development processes. "Not a theoretical one—they need to work on teams that use formal, top-down development process, agile development, teams with other developers, teams with test processes, and so on," he said. The fifth is graduates with an ability to learn on the fly. And the sixth is graduates with competence in several programming languages. "C++ is typically a must; C# or some other managed-code language is also mandatory," Montgomery said. However, competence in one dynamic language, such as JavaScript, should also be present, he said. And the graduate should have the ability to know which to use when. In addition, Montgomery said he believes that for the U.S. to compete on global level people in various domains will have to attain some level of technical expertise. "The diffusion of technical skills into many domains means that finance majors, doctors, and so on also need to have strong technical skills—what may have been considered development skills a few years ago—to compete on a global stage," Montgomery said. "This new demand is causing leading schools to nurture the growth of MIS/CIS/IT minors as rich programs unto their own." Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.

Darryl K. Taft covers the development tools and developer-related issues beat from his office in Baltimore. He has more than 10 years of experience in the business and is always looking for the next scoop. Taft is a member of the Association for Computing Machinery (ACM) and was named 'one of the most active middleware reporters in the world' by The Middleware Co. He also has his own card in the 'Who's Who in Enterprise Java' deck.

Submit a Comment

Loading Comments...
Manage your Newsletters: Login   Register My Newsletters

Rocket Fuel