Programming Internship 2017
Our development environment
You will learn and become familiar with our development environment and process, which includes:
You will be working with our programmers on a web-based application for the Millennium Scholars Program to help them review and make decisions on applicants to their program.
You will likely be working on two features; the "photo booth" which will be a stand-alone web application designed to be used from a smartphone to take photos of all the program applicants when they come to campus to interview for the program and a "watch list" feature that will allow staff to input some information about a potential applicant that will be checked against new applications to generate alerts to staff when they apply.
You will have daily meetings with the programmers to discuss project progress, problems, and future directions. You will also get to meet with the end user(s) in conjunction with the programmers to demo new features and discuss any necessary changes.
What will I learn
- How to adapt your development style to that of the project you are contributing to
- The development lifecycle of a web-based application
- Agile-like development practices
- Python/Django web application development
- jQuery for building interactive user interfaces
- Bootstrap for frontend user interface design and theming
- How to consider web accessibility and responsiveness in the design of an application
- Revision control best practices with Git
- Vagrant for ensuring a consistent development environment between programmers
What can I expect in this internship
Within the first 2 weeks, come up to speed with our development environment
- Setup your computer with all the software necessary to develop modern web applications
- Develop a general understanding of Agile-like software development
- Learn the basic syntax and usage of the Python programming language
- Build your first Django application using the online tutorial
- Create a repeatable development environment with Vagrant
- Create new code repositories, clone existing repositories, and commit changes to a code repository all using Git
Within the first month, take ownership of development tasks and expand knowledge
- Participate in design meetings with end users and the programmers
- Help define the features and tasks necessary to implement them
- Take ownership of features and work to implement them with assistance from the programmers
By the end of the internship, understand and have been part of the development life-cycle
- See features bundled together into releases
- Be part of deploying working code to a staging environment
- Demonstrate new features and enhancements to end users
- Incorporate end user feedback into future feature requests
Direct questions or resumes to Paul Rentschler via email.
Penn State is an equal opportunity, affirmative action employer, and is committed to providing employment opportunities to all qualified applicants without regard to race, color, religion, age, sex, sexual orientation, gender identity, national origin, disability or protected veteran status.
Employment with the University will require successful completion of background check(s) in accordance with University policies.