Git Product home page Git Product logo

gds-tech-learning-pathway's Introduction

GDS Technology Community - Learning Pathways

This project exists to bring together the GDS Technology community's collective knowledge and resources to support the learning and development of technologists.

Goals

We want to:

  • create a set of curated guides, organised by topic, technology, constituency, level. There may be multiple cross-cutting routes into the resources. Our aim is to offer pathways which cater for the most important needs of technologists.
  • elaborate the current technologists career pathways within GDS in more detail, by creating a page for each competency statement in the career path.
  • prepare for adopting the DDaT career pathways within GDS by documenting our current career pathway in more detail.

How to contribute

See CONTRIBUTING.md

Longer term goals

We want to encourage learning collaboratively in the GDS technology community, and so we'll seek to provide ways for:

  • people to offer and request mentorship
  • people to share what they're wanting to learn so that they can join up with others wanting to learn the same things, or get support from others

However, this repo should not contain any personal names or information because this repo is public.

Licence

Open Government Licence.

Code of conduct

This project is developed under the Alphagov Code of Conduct

gds-tech-learning-pathway's People

Contributors

46bit avatar alexbishop1 avatar bevanloon avatar binaryberry avatar boffbowsh avatar cbaines avatar chao-xian avatar danailminchev avatar davidslv avatar deborahchua avatar galund avatar gidsg avatar heathd avatar jonheslop avatar jonodrew avatar kentsanggds avatar kevindew avatar kylemacpherson avatar matmoore avatar nooshu avatar philandstuff avatar rboulton avatar tijmenb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gds-tech-learning-pathway's Issues

Resource: well defined tasks

I believe that we should also cover what we mean with "well defined tasks" by providing examples, it's important that juniors have an understanding of what is a "well defined task" in order for them to know if the task is up to the standards before they pick it up and ending in a rabbit hole.
This is also valuable for developers (and seniors) who need to write "well defined tasks", by having examples it will gives us a standard on everyone's expectations of a "well defined task".

Resource: softwareleadweekly

http://softwareleadweekly.com/

People mention this every now and again, and each time I think "+1, this is a really good resource"

so maybe that's a sign it should be part of the learning pathway (although I'm not sure exactly where).

It's useful even if you're not in a tech lead role.

Integrate vale lint with CI

This will stop me raising so many pull requests with typos in.

Vale does a spell check, but also checks for more general problems with the writing, like use of passive voice. We're using it already for the GOV.UK developer docs.

Automate deployment to PaaS

Currently we deploy the site by running cf push

Ideally we want it to autodeploy so that you don't need a PaaS account to contribute and anyone at GDS can merge a PR.

Make the tech learning pathway work for apprentices

The current career path was written at a time when we didn't have apprentices, and the learning resources have been built up around it.

We should look at how we can integrate this into the existing competencies, so that it's clearer how to move from apprentice to junior.

Establish patterns and structure

Before we invite the wider technology community to contribute we'd like to establish some patterns and structure for this repo.

Questions/issues:

  • are 'guides' the right name?

User stories:

  • Be able to find the right learning when they know what they want to learn
  • be able to browse the things which they could learn for inspiration
  • keep individual names private (ie, list of mentors etc should be stored elsewhere) - we intend to make this repo public

Acceptance criteria

  • we have a CONTRIBUTING.md setting out clearly how people should contribute

Change "beta" label to internal

Indicate that this is currently for GDS use, not wider government (at least the career path section of it), although external contributions are still welcome.

This is something that's been proposed for the GDS way and we should follow suit if that changes.

Rename guides to resources

We think "guide" is misleading because we actually want to minimise the amount of content we have to maintain.

What we actually want is a list of resources. We can make a resources directory, move things over and see whats left in the guides bit.

Suggestion for organising testing content

I noticed our testing guides and competencies are a bit fragmented at the moment.

We have one competency/guide linked from mid-level: Validating solutions to problems by using appropriate testing

  • This is not split by level
  • It links to a non existent TDD guide
  • It links to a non existent Performance testing guide
  • It links to per language guides which also don't exist

We also have another competency linked from junior-level: Testing

  • This is split by level
  • There are external resource

I suggest we merge "Using appropriate testing" into "Testing" and create a series of guides associated with that competency, starting with TDD.

Testing guides should be reachable from the testing competency and from other guides, such as the ruby language guide.

Reword competency statements; create a list of the important competencies across all levels

Currently, the career path pages link have a list of statements, which differ across levels. Then they link through to competency pages which have sections for what you should know at each level.

This would be clearer if we reviewed those statements, and changed the link text to use the title of the competency statement.

So instead of

Best practices in [testing](/career-path/competencies/using-appropriate-testing-to-ensure-software-quality.md#junior-level)

We'd say

[Using apprpriate testing to ensure software quality: best practices ...](/career-path/competencies/using-appropriate-testing-to-ensure-software-quality.md#junior-level)

Review the information architecture of the site

Problem

When we moved to the tech docs template, we directly translated all the markdown files we had into pages in the tech docs.

Because we've kept the existing structure, parts of the site are disconnected from others. For example, if you're on a competency page there is no way to navigate back up to the career path, and to other competencies, other than inline links and the back button.

But we can do stuff in the tech docs that we couldn't do with plain markdown, and we can do more to show users where they are in the structure of the site. See #92 for more info.

Task

I think we should review the overall information architecture and make some recommendations for future changes (I'm happy to help out with this).

Absorb tech leads content from technology wiki

There is a tech community wiki here https://sites.google.com/a/digital.cabinet-office.gov.uk/gds-technology/roles/tech-lead

It's quite out of date and may go away. But it has some interesting content around the role of the tech lead.

This issue is to consider whether we want to absorb this into the learning pathways, and if so how best to do it.

  • Ask some tech leads whether this still reflects reality (it's from 2014)
  • Decide which parts are useful to prospective or current tech leads
  • Work out where it fits into the project

Add content on security

Some notes from some conversations, with links to interesting resources:

Adopt multi-page navigation

I think we can improve the navigation structure by updating to the latest version of the tech docs template

  • Currently when you go to "how to contribute" it opens up a section of the main page, which is just a link to another page, but that page doesn't itself show up in the navigation

  • The competency and guide pages themselves are not visible in the main nav, and have their own sidebars

The new collapsable navigation items should help with this. See https://github.com/alphagov/tech-docs-gem/blob/master/CHANGELOG.md#140

Link to gds tech?

We now have https://github.com/alphagov/gds-tech which documents how we do stuff at GDS, including particular technologies and software we've chosen to use.

I think some of this gives specific examples of things we talk about in relation to competencies. Maybe we could tie it all together.

For example:

Periodically check for broken links

Before we moved to the tech docs template, I set up a tool called awesome_bot to check for broken links.

I thought I could just continue scrape the markdown files for URLs and keep using the same tool, which works for monitoring external links.

However, this doesn't work for detecting internal broken links, because it tries to find them in the git repo instead of resolving them against a rendered page.

We should just disable internal link checking until we have a better solution. One way of doing it might be to build the docs on CI, serve them, and use that as a base for relative URLs with awesome_bot.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.