Developing developers so that they can develop better software!

Introduction

Regardless of the role or the company or the project in which they find themselves, a software engineer is always a developing developer. Like the word “developer” in the above logo, developers always have a “missing piece” of the “D” in their developer skills. Put in another way, all developers have a professional skill that they have not yet honed, new technologies that they have yet to explore, program features that they have not yet implemented, or nefarious bugs that they have not yet found and fixed! Always working to establish a confidence in their program’s correctness, a developing developer aims to engineer and ship high-quality software that is designed, documented, tested, and maintained according to industry best practices.

Course Schedule

With the goal of enabling effective developer development, this web site features a sixteen-week schedule filled with activities that support the development of your professional and technical capacities and walk you through the implementation and release of two major software projects. Although this site is best used by an on-campus learner in the Department of Computer and information Science at Allegheny College, the resources and projects are all publicly available. For instance, the following provides a list of the three textbooks that developing developers use to hone their professional and technical skills during sixteen weeks of personal growth:

  • Software Engineering at Google (abbreviated on this site as SE): a compelling introduction to the processes and tools used by software engineers at Google.
  • Fuzzing Book (abbreviated on this site as FB): a savvy, code-focused introduction to the automated tools and techniques for generating software tests.
  • Debugging Book (abbreviated on this site as DB): an interactive introduction to automated methods for finding programmer errors and their causes.

As the developing developers in the on-campus course read twelve articles in SE, nine articles in FB, and four articles in DB, they will collaboratively write and publish that summarizes and contextualizes the material and points towards a way in the lessons from these books can be applied to two long-term software development projects.

Is this challenging? Yep! Will learners make mistakes along the way to developing as a software developer? Of course! Are there many benefits to being a developing developer? Yes! For instance, the participants of this sixteen-week course will gain valuable perspectives and practical skills to enhance their abilities as a software engineering while collaboratively building and releasing two open-source tools.

Awesome Adventure

Interested in getting started on a developer development adventure? Begin here:

  • The sixteen-week course schedule offers detailed insights into each step that learners should take to help them to develop as developers, including a list of reading assignment and descriptions of various projects.

  • The course syllabus introduces the course and its learning objectives and explains how on-campus learners will be assessed by the course instructor.

  • The developer development blog includes executive summaries of all of the key professional and technical insights that students learned when actively engaging with the content in SE, FB, and DB. The blog also contains reports from the design, implementation, testing, documentation, and deployment of two software projects. Read more to watch us develop as developers!

Recent Posts

To best ensure that the on-campus learners develop individually in their capacity as team members, everyone partners with the course instructor to draft, write, review, and publish blog posts that support class discussions. These articles represent the current state of a person’s knowledge and skills in both the technical and professional aspects of software engineering. Here are the most recent posts that we have written!

Cool Software

Since a key component of developing as a developer is the specification, design, implementation, testing, and deployment of production quality software, this site equips learners with the skills and tools to create and maintain open-source software projects, including (but not limited to) the software projects in the following list:

  • Cellveyor: Easily convey reports from Google Sheets to GitHub

  • Chasten: Check a program’s AST for specific code patterns

  • ExecExam: Run executable examinations to assess programming skills

  • GatorGrade: Python front-end for the GatorGrader assessment tool

  • GatorGrader: Automated assessment for source code and writing

Developer Development Community

Interested in connecting with other like-minded developing developers? Please join the Developer Development Discord Server and join the conversation! If you are an on-campus learning at Allegheny College, you may also join the Allegheny College Computer Science Discord Server. Finally, if you are an on-campus learner, then you may schedule a meeting with the course instructor during office hours by visiting the Course Instructor’s Appointment Scheduler.