/software-apprentice-syllabus

This is the syllabus we use for the Software Apprenticeship program

Little Kidogo Software Apprenticenship Curriculum

This is a 12 week timeline that is designed to take an indvidual from 0 to a place where they be productive and explore of there own accord. This being an avenue to employment aims to arm you with the neccessary tools to enable one garner enough experience to accomplish tasks assigned to them

The whole point of this program isn't to teach any one programming language or stack rather to get participants to a point where they can choose what and how to learn it.

Consider this some sort of Choose your own adventure experience

This is a living document with the proposed items to be covered in the 12 weeks

WEEK 1

Topic to Cover

  1. Functional Programming
  2. Functional Programming vs Other paradigms
  3. What is Elixir
  4. What is OTP
  5. What is Version Control? Why do we need it?

Reading Material

  1. https://www.tutorialspoint.com/functional_programming/functional_programming_introduction.htm
  2. https://elixir-lang.org/getting-started/introduction.html#installation
  3. http://erlang.org/doc/getting_started/users_guide.html ( the chapter are on the left of the page)
  4. https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control
  5. Find attached an introductory book on Elixir

Challenges

  1. Write a small narrative of how and when you would use a object oriented language
  2. Write a small narrative of how and when you would use a functional language
  3. Install Elixir on your machine and get it work
  4. Read the foreword in the attached elixir book (only till the start of Conventional Programming
  5. Create a GitHub Account and join the Little Kidogo organization on GitHub

WEEK 2

Topics to Cover

  1. What are software projects and how to work on them?
  2. Introduction to Elixir syntax and operators
  3. Processing ideas into software products

Reading Material

  1. http://www.informit.com/articles/article.aspx?p=25074&seqNum=4
  2. https://elixir-lang.org/getting-started/basic-operators.html
  3. https://elixir-lang.org/crash-course.html

Challenges

  1. Complete all the exercises in chapter two of [Programming Elixir]
  2. Exercises should be completed and uploaded to a GitHub repo work in small commits, try to use issues and pull requests.
  3. Using the learnings from the 1st link please develop a design and roadmap for an application that allows users to save Diary entries( users should be able to enter new events and maybe even edit existing ones). You are expected to come up with a plan that takes this idea from development all the way to something people can use

WEEK 3

Topics to cover

  1. Introduction to projects, linking this up to version control i.e issues, branches, pull requests, reviewing, merging, rebasing
  2. Putting Version Control to use
  3. Introduction to peer work and review
  4. Introduction to paragraphs an pages of code

Reading Material

  1. Chapters 3 - 6 of the Elixir programming book
  2. https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository
  3. https://elixir-lang.org/getting-started/modules-and-functions.html

Challenges

  1. Complete the code examples in the programming book
  2. Work in branches and in a git repository
  3. Use issues to document and plan your work
  4. Use pull requests to introduce Changes

WEEK 4

Review Week

  1. Assesment on readiness to work on projects, evaluations and remedies recommended
  2. Research and Choosing of production projects

WEEK 5 - 7

Work to cover

  1. Production work backend and introduction to the frontend

WEEK 8 - 10

Work to cover

  1. Production work front end

WEEK 11

Conclusion of work, reviews and assessments

WEEK 12

Results Week