Giter Club home page Giter Club logo

acn-syllabus's People

Contributors

albert-l10 avatar andy-nkumane avatar antselley avatar asradebe avatar axelbankuna avatar babalwa01 avatar cortanav1 avatar eckardberry avatar faancy avatar faithmo avatar jacobumuzi avatar jonatasbaldin avatar kaleem99 avatar kate-bit-dev avatar liezelvorster avatar lisa1400 avatar minat-hub avatar mondeanna avatar ngoakor12 avatar nkululek0 avatar rethabilethulo avatar rivoningom avatar rokhuda avatar ruddy-m avatar ry-oc avatar samantha-hampton avatar sbonelo01 avatar sheenarbw avatar theabstract avatar themaja avatar

Stargazers

 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

acn-syllabus's Issues

projects/django-airbnb-clone/property-owner-dashboard-ui

Add a little bit of spec here. What might a property owner want to see?

Dont be too fancy, but take the content prerequisites into account. Note that this needs to be developed by junior devs in order to upskill so seriously dont go overboard. Focus on demonstrating foundational skills.

Add sql TOPIC about schema design

Once a student knows how to create a table with the CREATE TABLE statement, they should be able to move onto this.

We need to make sure our bases are covered. We dont need to get people to know about the normal forms or star schemas or anything like that., Rather focus on foundational concepts.

In this topic cover:

  1. sensible naming conventions

eg:

table name = users  (plural)
primary key = id   

table name = tickets (plural)
primary key = id (consistent)
foreign key to user table = user_id (dead obvious what we are referring to. We are referring to a single user therefore singular)   
  1. One to many relationships
  2. One to one relationships
  3. Many to many relationships
  4. DRY data (which is the same as normalisation - by default we would want to have one piece of info represented once)

Make a new project that gets people to practice unit testing and error checking

The Password checker project is a little bit annoying and arbitrary

https://github.com/Umuzi-org/ACN-syllabus/tree/develop/content/projects/tdd/password-checker

Create a new project that covers the following basic stuff:

  • TDD
  • testing code that is supposed to throw/raise errors/exceptions
  • catching and handling errors
  • something tricky and algorithmic. Currently the password checker project expects people to be able to count the number of errors raised, if three errors were raised and/or specific errors were raised then then the password is not ok. We need people to be able to practice problem solving and algorithmic thinking

Create "##Instructions for reviewer" for project: Animals Part 2. Adding Tests

Please add a section to the bottom of this project's _index.md file.
The section heading should be EXACTLY "## Instructions for reviewer"

Basically we have to set reviewers up for success by telling them what success looks like and what to pay attention to when reviewing this project submission.

Description:

  • Look at a bunch of old reviews for this project for each cohort

  • Find the common feedback [This should help you get an idea of what instructions to create]

  • Write them out clearly

  • The section heading should be EXACTLY "## Instructions for reviewer"

Create "##Instructions for reviewer" for project Password_Checker part 1

Please add a section to the bottom of this project's _index.md file.
The section heading should be EXACTLY "## Instructions for reviewer"

Basically we have to set reviewers up for success by telling them what success looks like and what to pay attention to when reviewing this project submission.

Description:

  • Look at a bunch of old reviews for this project for each cohort

  • Find the common feedback [This should help you get an idea of what instructions to create]

  • Write them out clearly

  • The section heading should be EXACTLY "## Instructions for reviewer"

Create "##Instructions for reviewer" Exploring the Evolution of Linux Visualisation

Please add a section to the bottom of this project's _index.md file.
The section heading should be EXACTLY "## Instructions for reviewer"

Basically we have to set reviewers up for success by telling them what success looks like and what to pay attention to when reviewing this project submission.

Description:

  • Look at a bunch of old reviews for this project for each cohort

  • Find the common feedback [This should help you get an idea of what instructions to create]

  • Write them out clearly

  • The section heading should be EXACTLY "## Instructions for reviewer"

Update level 1 kata

update projects/basic-flow-control-katas/ with the changes below

Github recently changed some of their language so we need to update the exercises to match. Change all refrences to master to main

SQL schema design project

Think of an interesting schema design project that covers the concepts from #49

Things to note:

  • dont hold their hands too much! We are dealing with juniors, BUT they need to learn to solve problems themselves.
  • some of the people using this are not first language english speakers. So please keep your language simple

update the `contentlink` shortcode so that it prints the content type mentioned in the frontmatter

There is a chortcode that we use for internal linking

The problem is that this shortcode expects all projects to be nested under 'content/projects' and all topics to be nested under content/topics etc.

We've upgraded our frontmatter so that this is no longer the case.

Pease make sure that the content type gets printed out correctly even if the directory hierarchy is arbitrary.

See #47 to see a demonstration of why this is needed

topics/js-and-node-specific/dotenv

Delete this and make sure the linter passes

Make a new topic about environmental variables and node.

The students should know about how to make use of environmental variables. And why that is important for deployment stuff. You can refer to 12factor apps.

Talk about developing with node and some tricks to set up your dev environment variabes.

  • One can use dotenv as a development tool, but it's better not to commit these files to the repo
  • One can also just use source/path/to/dev/config.sh
  • stress gitignore and never ever committing your secrets

Create "##Instructions for reviewer" for project OOP

Please add a section to the bottom of this project's _index.md file.
The section heading should be EXACTLY "## Instructions for reviewer"

Basically we have to set reviewers up for success by telling them what success looks like and what to pay attention to when reviewing this project submission.

Description:

  • Look at a bunch of old reviews for this project for each cohort

  • Find the common feedback [This should help you get an idea of what instructions to create]

  • Write them out clearly

  • The section heading should be EXACTLY "## Instructions for reviewer"

revise topics/web-frontend/intro-to-web-design

  • check that all the links go to the best material they can and are under the right headings
  • possibly spit this into multiple topics so that we can have fine grain control over how the content is referenced

Consolidate sql folder structure

Back in the day, the way to categorise different pieces of content as different things was to put them into differet folders. You'll see that there are folders for "topics", "projects" and "workshops". Ths worked fine fora long time, but our syllabus offerings became way more complex, and frontmatter is awesome and versatile.

In an effort to make our syllabus easier to navigate, we'd like to have the content directory hierarchy less about the content type and more about what the content is about.

Please do the followin:

  1. Make a new directory called content/sql
  2. Make a markdown file in there called _index.md. For now that can just contain:
---
title: SQL
---

This will then show up in the navigation side bar.

  1. Find all the things that are specific to pure sql and arrange them sensibly in this folder. There is a whole bunch of cnotent about Python+sql, node+sql, kotlin+sql etc. For now please leave those things as they are. This is about plain simple sql only.

  2. Run the linter. It's explained in the README. There are likely a bunch of links that need to be updated

  3. Give yourself a pat on the back

Consolidate all agile content

This is very similar to issue #54

Basically, find all the content that has anything to do with Agile and move it into a folder called /content/agile
Once that is done run the linter. Movint things probably would have broken a few links.
Once all the links and things are fixed, you're done :)

Level up pure sql content

Currently we get people to a point where they can basically connect to psql, create tables, and do some queries with joins but there is a lot more worth knowing as a junior developer.

Note:

The Internet is a wonderful place. It is full of really amazing learning resources that are created and maintained by passionate and knowledgeable people. It’s a hell of a job, and we are grateful that someone is doing it.

We try to leverage other people’s good work as much as possible. We provide you with the best resources we can find and we supplement those resources with our own projects and explanations where needed.

Create "##Instructions for reviewer" for project Assertive Programming Kata

Please add a section to the bottom of this project's _index.md file.
The section heading should be EXACTLY "## Instructions for reviewer"

Basically we have to set reviewers up for success by telling them what success looks like and what to pay attention to when reviewing this project submission.

Description:

  • Look at a bunch of old reviews for this project for each cohort

  • Find the common feedback [This should help you get an idea of what instructions to create]

  • Write them out clearly

  • The section heading should be EXACTLY "## Instructions for reviewer"

Update git basic exercises

update projects/git-exercises/ with the changes below

  1. Github recently changed some of their language so we need to update the exercises th match. Change all refrences to master to main
  2. Many recruits fail to push the gitignore section and thus cannot be competent on the first submission. Update the gitignore section to add commit and push to the end of them.
  3. Our syllabus has grown drastically in size, this is a problem for some recruits when they get to the section about cloning our repo, change the referances from https://github.com/Umuzi-org/tech-department to https://github.com/Umuzi-org/a-repo-to-clone

topics/django/understanding-migrations: needs content

Add the necessary content

Make sure you cover some of the dangers of migrations and git. People like to add migrations to their PRs. Those migrations were made against their dev db, and are often in contradiction to those on the prod db

Make a TOPIC about different kinds of sql queries

We use postgres.

At this point the learners hould know about joins.

What follows below are a few concepts that are important, but that a lot of people wouldn't find intuitive.

  • They need to understand GROUP_BY and aggrigations
  • They need to understand how to make views
  • They need to know that they can select from select statements: Eg:
select CustomerName from (SELECT CustomerName,City FROM Customers);

This example is silly ☝️ but this technique can be hella useful

Links to wonderful resopurces that cover other topics in case they need to go deeper.

We do want to teach people how to find their own resources instead of spelling everything out.

Sql schema design project

Think of an interesting schema design project that covers the concepts from #49

Things to note:

  • dont hold their hands too much! We are dealing with juniors, BUT they need to learn to solve problems themselves.
  • some of the people using this are not first language english speakers. So please keep your language simple

workshops/intro-to-linux turn this into a useful topic

We use and recommend linux Ubuntu or mint. Many students have no idea how either of these work and wont know about terminology or anything.

I'd suggest making a video and linking to it.

There are a few things that tend to make the lives of students quite anoying and looooow

  • Get them to understand that using the mouse is slow and limited, and that the command line is awesome. That's quite important.
  • And get them to install and understant terminator so that they dont have to open a million terminals
  • get them to understand workspaces and navigation with that
  • show them that they can set up keyboard shortcts

Try to inspire them to actually practice using the tools at their disposal so that they dont waste 30% of their time arguing with the mouse.

projects/redux-saga-intro create a project

There is already a file for this.

Fill it in with a nice project that students can to get their heads around the basic concepts. Please try to focus on redux saga by itself, dont rely on react or anything else

Upgrade linter so it uses pipenv

Pipenv is just great.

Right now our linter requires the user to get a python venv up and running.

Use pipenv and the latest python instead

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.