Exploring this Job
Participate in popular IT forums such as StackExchange (https://stackexchange.com) and GitHub (https://github.com) to build your knowledge and skills and meet people with shared interests.
Participate in programming competitions to test your skills and interact with people who share your interests. SkillsUSA is a national membership organization for middle school, high school, and college students who plan to pursue careers in technical, trade, and skilled service occupations. It offers several computer-related competitions. In its programming competition, contestants must demonstrate their knowledge of computer programming, describe how programs and programming languages work, detail the purposes and practices of structured programming, and develop a computer program from design notes and instructions. Visit http://www.skillsusa.org for more information. Here are a few additional programming competitions:
- Microsoft Imagine Cup: https://imaginecup.microsoft.com/en-us/compete/whycompete
- American Computer Science League: https://www.acsl.org
- Congressional App Challenge: https://www.congressionalappchallenge.us
- Analysis/Plan: The developer assesses the existing software or talks with customers, company executives, and other stakeholders about the features of the new software that they will design. The development team then determines the costs, time requirements, and required resources that will be needed to complete the work, as well as potential roadblocks that might slow or halt the development process. These issues are discussed with stakeholders until all agree on the re-design or new design approach.
- Design: Developers convert the software specifications into a design plan called the design specification, stakeholders review the plan and provide feedback, and the developers make changes as needed. The design specification covers issues such as IT architecture, user interface, platforms, application communication methods, and security concerns.
- Development/Testing: The developers begin writing the code. One or two developers often work on a small project, while larger projects require bigger teams that focus on specific components of an application or Web site. Extensive testing is conducted before the product is released to users. For example, developers test code for bugs and implement improvements and fixes. Some testing—such as security testing—is automated, while other testing must be done by a developer or software tester.
- Deployment: The revised or new product is made available to users. This process can be automated (i.e., a user is given a link to download and install the new app) or hands-on when updated software for a complex, company-wide database must be installed. Developers address any performance or security issues that users identify.
- Documentation/Evaluation: Developers complete technical documentation that summarizes their work on the project and details any major issues that arose during the process and what they did to fix them. For some products, developers create user manuals. Developers also use this time to evaluate the final product and clean up any issues that they or users have identified.