Skip to content

Instantly share code, notes, and snippets.

@raghubetina
Last active September 10, 2024 01:02
Show Gist options
  • Save raghubetina/5f7e331729366f2f452a175f8571d6a1 to your computer and use it in GitHub Desktop.
Save raghubetina/5f7e331729366f2f452a175f8571d6a1 to your computer and use it in GitHub Desktop.
Artifacts from DPI Software Development Apprenticeship Program

Artifacts from a 1-year Full-Stack Developer program

If we run a 1-year Full-Stack Development program, what artifacts would we want students to exit with? What would hiring managers want to see? What will make our graduates stand out?

We should contact employer partners to ask them what they'd like to see, especially ones like who have strong apprenticeship/in-house training programs in place. E.g., thoughtbot.

Once we figure out the artifacts that would best demonstrate valuable skills/make candidates attractive, we should create a dream personal website/portfolio to act as a target for students, including stretch goals. We can then backward design the curriculum from there.


Portfolio

  • Today I Learned (TIL) blog: a place where students write blog posts about things they learn. These blog posts are not intended to be groundbreaking research; mostly notes to themselves, for future reference. However, personal learning blogs like this serve as valuable evidence to future employers on what candidates have done in the past, problem solving skills, writing ability, etc.
    • Stretch goal: get featured on Ruby Weekly or similar.
    • Tag posts with whatever book/course they are doing at the time, as a log of books/courses they've done.
  • Personal website w/ an easy to browse portfolio.
  • GitHub repositories showing all projects.
    • Nice to have: good commit messages and general git hygiene.
    • Evidence of code reviews, both as recipient and reviewer.

Projects / skills

  • At least one non-assigned project. Can be their own idea or someone else's.
  • Rebuild at least one project (Photogram?) in:
    • Node
    • Django
    • Laravel? Spring? Go? Phoenix? Other frameworks TBD based on employer demand/ability to provide mentorship.
  • JavaScript client frameworks:
    • React (deploy with Vercel?)
    • Vue? Angular? Other frameworks TBD based on employer demand/ability to provide mentorship.
  • CSS:
    • Some evidence of proficiency with vanilla CSS. (Completed exercises from CSS for JS book?)
    • Bootstrap
    • Tailwind
  • Show an API that they've built to support JS client/native apps.
    • Should show good versioning.
    • Stretch goal: write excellent documentation / have an interactive API explorer (e.g. Swagger?)
  • An iOS "hello world" app.
  • An Android "hello world" app.
  • A React Native app with some depth.
  • A PR to an open source project
    • Stretch goal: have it merged
  • Show usage of tests/CI (GitHub Actions? Codacy?)

Deployment / "DevOps"

  • Deployed apps on Heroku.
    • Should have good sample data & generally be easy for a potential employer to check out.
  • Deployed apps on Digital Ocean.
    • With and without Docker?
  • Deployed apps on AWS.
  • At least one Lambda function (after learning Python?).
  • Nice to have: Deployed apps on Azure, GCE.

Computer Science / interviewing

  • Solutions to leetcode problems (don't know the format for this; do they have badges? Or just write-ups on their TIL blog).

Data Science / machine learning?

UX / design

@jelaniwoods
Copy link

An iOS app
An Android app
A React Native app

If they're doing this then they are definitely interacting with an API. I think it would also be valuable and instructive to have them build their own API at some point.

@pmckernin
Copy link

Do we know any hiring managers we could ask this question?

@raghubetina
Copy link
Author

raghubetina commented Mar 1, 2022

@pmckernin Good question — I've asked LaunchPad Labs, will ask Chad at thoughtbot, and I will ask the DPI team to ask their employer partners.

@jelaniwoods
Copy link

I think something about being familiar with optimizing for performance would be good. Again, not sure how that could be showcased in a meaningful way.

@raghubetina
Copy link
Author

@jelaniwoods Yeah, that sort of thing might have to live in TIL posts.

@stephenavocado
Copy link

stephenavocado commented Jun 10, 2022

I'm not sure what the best way to showcase writing tests for the software they build is, but something. Maybe GitHub actions? Or adding some badge in the README that mentions something about code coverage.

Maybe a blog post specifically dedicated to explaining the thought behind the tests they wrote for one feature of a specific example project with the associated code blocks?

@stephenavocado
Copy link

For displaying code review, wonder if we can get in touch with PullRequest to partner with us in some way. I've used their code review services in my current freelance project and it's been a really great experience. Could be a fun experience for the students to have code review by external people, and those pull requests themselves become good documentation. Following up with a blog post about the experience could be a nice touch to wrap it up.

I've emailed back and forth with the CEO a few times and could reach out if it would be of interest.

@heratyian
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment