-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathindex.qmd
More file actions
153 lines (127 loc) · 7.11 KB
/
Copy pathindex.qmd
File metadata and controls
153 lines (127 loc) · 7.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
---
pagetitle: "Developer Development"
page-layout: article
title-block-style: default
title-block-banner: false
listing:
- id: featured-posts
contents:
- "blog/**/*.qmd"
- "!blog/index.qmd"
sort:
- "date desc"
- "title"
- "author categories"
type: default
date-format: "YYYY"
sort-ui: false
filter-ui: false
fields: [author, title, date, description, reading-time]
max-items: 5
page-size: 5
---
{fig-align="center"}
## 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](schedule/index.qmd) 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](https://www.cis.allegheny.edu/) at [Allegheny
College](https://www.allegheny.edu/), 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](https://abseil.io/resources/swe-book)
(abbreviated on this site as **SE**): a compelling introduction to the processes
and tools used by software engineers at Google.
- [Fuzzing Book](https://www.fuzzingbook.org/) (abbreviated on this site as
**FB**): a savvy, code-focused introduction to the automated tools and
techniques for generating software tests.
- [Debugging Book](https://www.debuggingbook.org/) (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 articles in the
**SE**, **FB**, and **DB** online textbooks, 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. These learners will also prototype and release simple
command-line tools that illustrate the key concepts and techniques that they
have learned from the three textbooks, ultimately demonstrating their
professional development, technical development, and overall development as a
software developer who works effectively in a team.
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. Ultimately, these challenges are worth it!
Computer and information science graduates, like [Aidan
Dyga](https://www.linkedin.com/in/aidandyga/), frequently report that the
software engineering course is the [most impactful one that they take at
Allegheny
College](https://allegheny.edu/about/news/curiosity-leads-to-career-outcomes/)
because it effectively emphasizes "communication skills and real-world project
management".
## Awesome Adventure
Interested in getting started on a developer development adventure? Begin here:
- The [sixteen-week course schedule](./schedule/index.qmd) 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](./syllabus/index.qmd) introduces the course and its
learning objectives and explains how on-campus learners will be assessed by the
course instructor.
- The [developer development blog](./blog/index.qmd) 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](blog/index.qmd) 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. With accompanying links to useful software command-line tools, here
are the most recent posts that we have written!
:::{#featured-posts}
:::
## 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](https://github.com/GatorEducator/cellveyor): Easily convey
reports from Google Sheets to GitHub
- [Chasten](https://github.com/AstuteSource/chasten): Check a program's AST for
specific code patterns
- [ExecExam](https://github.com/GatorEducator/execexam): Run executable
examinations to assess programming skills
- [GatorGrade](https://github.com/GatorEducator/gatorgrade): Python front-end
for the GatorGrader assessment tool
- [GatorGrader](https://github.com/GatorEducator/gatorgrader): Automated
assessment for source code and writing
::: {.callout-note appearance="minimal" title="Developer Development Community"}
Interested in connecting with other like-minded developing developers? Please
join the [Developer Development Discord Server](https://discord.gg/aNfn8DNEMx)
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](https://discord.gg/CS2h9kXzX6). 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](https://www.gregorykapfhammer.com/schedule/).
:::