-
-
Notifications
You must be signed in to change notification settings - Fork 98
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* fix weird hugo bug I guess I'm writing old code now - it's a year ago * add new workbooks with provisional dates will need to make a ticket to allow future dates * update home pages to say run 2 * update to the new projects might need to move all the links actually... * update times from calendar and update product wording * add place for troubleshooting to be added * flip order * missing word * Update website/content/workbooks/workbook-6.md Co-authored-by: Daniel Wagner-Hall <dawagner@gmail.com> * Update website/content/workbooks/workbook-6.md Co-authored-by: Daniel Wagner-Hall <dawagner@gmail.com> * Update website/content/workbooks/workbook-6.md Co-authored-by: Daniel Wagner-Hall <dawagner@gmail.com> * Update website/content/workbooks/workbook-6.md Co-authored-by: Daniel Wagner-Hall <dawagner@gmail.com> * Update website/content/workbooks/workbook-10.md Co-authored-by: Daniel Wagner-Hall <dawagner@gmail.com> * Update website/content/_index.md Co-authored-by: Daniel Wagner-Hall <dawagner@gmail.com> * Update website/content/workbooks/workbook-6.md Co-authored-by: Daniel Wagner-Hall <dawagner@gmail.com> * weight pages instead of letting dates do it I think we want to explicitly order things --------- Co-authored-by: Daniel Wagner-Hall <dawagner@gmail.com>
- Loading branch information
1 parent
376f33f
commit a75fc29
Showing
15 changed files
with
204 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,6 +2,7 @@ | |
title="CYF+01 Prep Workbook" | ||
date="01 Oct 2022" | ||
versions=["1-0-0"] | ||
weight=1 | ||
+++ | ||
|
||
# Prep | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
+++ | ||
title="CYF+02 Sprint 4" | ||
date="01 Jan 2024" | ||
versions=["1-1-0"] | ||
weight=5 | ||
+++ | ||
|
||
# Provisional start date: 20 May 2024 | ||
|
||
## Study | ||
|
||
- [ ] [Distributed Systems: Asynchronous Work and Pipelines](../../primers/distributed-software-systems-architecture/asynchronous-work-and-pipelines) | ||
- [ ] [Troubleshooting Primer](../../primers/troubleshooting/) | ||
|
||
## Projects | ||
|
||
- [ ] [Kafka Cron](https://github.com/CodeYourFuture/immersive-go-course/tree/main/kafka-cron) - Distributed Cron system with Prometheus monitoring | ||
- [ ] [Troubleshooting project #4](https://docs.google.com/document/d/1V6HEu_OcJ3MHH-aHzUfANf06VJa1rPcGHcpBwql7QLA/edit#heading=h.cjnguaxmynan) TOADD | ||
|
||
## Product | ||
|
||
Monitoring and alerting is a key part of any production system. As you continue your product work, make sure to understand the monitoring and alerting in place on your codebase and how it could be improved. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
+++ | ||
title="CYF+02 Sprint 5" | ||
date="01 Jan 2024" | ||
versions=["1-1-0"] | ||
weight=6 | ||
+++ | ||
|
||
# Provisional start date: 3 June 2024 | ||
|
||
## Study | ||
|
||
- [ ] [Distributed Systems: Asynchronous Work and Pipelines](../../primers/distributed-software-systems-architecture/distributed-locking-and-distributed-consensus/) | ||
- [ ] [Troubleshooting Primer](../../primers/troubleshooting/) | ||
|
||
## Projects | ||
|
||
- [ ] [RAFT OTEL](../../projects/raft-otel) Do the raft-otel project. This large project explores a distributed consensus protocol using distributed tracing. | ||
- [ ] [DataStores]() TODO: Add datastores project | ||
- [ ] [Troubleshooting project #3](https://docs.google.com/document/d/1V6HEu_OcJ3MHH-aHzUfANf06VJa1rPcGHcpBwql7QLA/edit#heading=h.cjnguaxmynan) TOADD | ||
|
||
## Product | ||
|
||
You're focusing deeply on your largest challenge yet with RAFT, but how will you document and handover the work you've done on your product? How will you make sure that the next team can pick up where you left off? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,6 +2,7 @@ | |
title="CYF+01 Sprint 3" | ||
date="21 Nov 2022" | ||
versions=["1-0-0"] | ||
weight=4 | ||
+++ | ||
|
||
## Study | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,6 +2,7 @@ | |
title="CYF+01 Sprint 4" | ||
date="05 Dec 2022" | ||
versions=["1-0-0"] | ||
weight=5 | ||
+++ | ||
|
||
## Study | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,6 +2,7 @@ | |
title="CYF+01 Sprint 5" | ||
date="09 Jan 2023" | ||
versions=["1-0-0"] | ||
weight=6 | ||
+++ | ||
|
||
## Study | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
+++ | ||
title="CYF+02 Prep Workbook" | ||
date="01 Jan 2024" | ||
versions=["1-1-0"] | ||
weight=1 | ||
+++ | ||
|
||
# Prep | ||
|
||
The CYF+ Immersive Engineering Programme is an intensive three month course. There's a lot to get through and you'll need to hit the ground running. To prepare for this exciting opportunity, you will: | ||
|
||
## Computers | ||
|
||
TODO: Add background reading on how computers work. | ||
|
||
## Linux | ||
|
||
- [ ] Play [the Bandit](https://overthewire.org/wargames/bandit/) - you must be able to complete up to level 20 (repeatedly) | ||
- [ ] Take this [Unix 101 course](https://www.opsschool.org/unix_101.html) (and then try 102) | ||
- [ ] Print out this [Linux-Cheat-Sheet](https://www.loggly.com/wp-content/uploads/2015/05/Linux-Cheat-Sheet-Sponsored-By-Loggly.pdf) | ||
|
||
## Go | ||
|
||
- [ ] Learn the basics of the Go programming language: [Get Started - The Go Programming Language](https://go.dev/learn/) | ||
- [ ] Read this, you might find it useful for working through your first projects: [How to use the fmt package in Golang](https://www.educative.io/answers/how-to-use-the-fmt-package-in-golang) | ||
- [ ] And optionally [Learn Go with tests](https://quii.gitbook.io/learn-go-with-tests/) | ||
- [ ] Read the [Pointers chapter](https://www.golang-book.com/books/intro/8) of [An Introduction to Programming in Go](https://www.golang-book.com/books/intro), and do the problems listed in the chapter. | ||
- [ ] Read about [stack and heap memory](https://courses.engr.illinois.edu/cs225/fa2022/resources/stack-heap/) - note that the examples here are C++ not Go, but you should be able to follow them. One important difference between these languages is that in Go, you don't need to worry about whether a value lives on the heap or the stack (in fact, Go is allowed to choose where your variable lives, and even move it around) - this means that it's ok to return a pointer to a stack variable in Go. You also don't need to call `delete` yourself in Go - Go is [a garbage collected language](https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)) so it will delete variables when they're no longer needed. | ||
|
||
## Tooling | ||
- [ ] [Set up and get to know your IDE](https://github.com/CodeYourFuture/immersive-go-course/tree/main/prep#set-up-and-get-to-know-your-ide) | ||
- [ ] [Learnt how to navigate Go documentation](https://github.com/CodeYourFuture/immersive-go-course/tree/main/prep#learn-how-to-navigate-go-documentation) | ||
|
||
## Projects | ||
|
||
Complete the [prep](https://github.com/CodeYourFuture/immersive-go-course/blob/main/prep/README.md) and first _five_ [projects](https://github.com/CodeYourFuture/immersive-go-course/blob/main/projects/README.md) from the [Immersive Go](https://github.com/CodeYourFuture/immersive-go-course) course | ||
|
||
- [ ] [Prep](https://github.com/CodeYourFuture/immersive-go-course/tree/main/prep) | ||
- [ ] [Output and Error Handling](https://github.com/CodeYourFuture/immersive-go-course/tree/main/projects/output-and-error-handling) | ||
- [ ] [CLI Files](https://github.com/CodeYourFuture/immersive-go-course/tree/main/projects/cli-files) | ||
- [ ] [File Parsing](https://github.com/CodeYourFuture/immersive-go-course/tree/main/projects/file-parsing) | ||
- [ ] TODO: Add a link to the threads project | ||
- [ ] [Servers & HTTP Requests](https://github.com/CodeYourFuture/immersive-go-course/tree/main/projects/http-auth) | ||
|
||
## Reading | ||
|
||
Dip in to some longer books, but don't feel you need to read the whole lot! | ||
|
||
- [ ] [Google - Site Reliability Engineering](https://sre.google/sre-book/table-of-contents/) | ||
- [ ] [The Unix Tools Philosophy](https://www.linuxtopia.org/online_books/gnu_linux_tools_guide/the-unix-tools-philosophy.html) | ||
- [ ] [The Phoenix Project](https://smile.amazon.co.uk/Phoenix-Project-Helping-Business-Anniversary/dp/B00VBEBRK6/) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
+++ | ||
title="CYF+02 Sprint 1" | ||
date="01 Jan 2024" | ||
versions=["1-1-0"] | ||
hero="pictures/depths/dddepth--085.webp" | ||
weight=2 | ||
+++ | ||
|
||
# Provisional start date: 08 April 2024 | ||
|
||
In the CYF+ process your goal is to demonstrate the profile of an engineer at a high performing company. This series of challenges was designed by a panel of engineers from top companies to help you demonstrate that profile. Key skills include: | ||
|
||
- **Problem solving** - You can solve problems in a systematic way, and you can explain your approach to others. | ||
- **Systems thinking** - You can trace the flow of data through a system, and you can explain how the system works to others. | ||
- **Communication** - You can communicate effectively with others, both verbally and in writing. This doesn't mean knowing all the answers; it means being able to research things you don't know, and being able to ask for help when you need it. | ||
- **Collaboration** - You can work effectively with others, and you can learn from them. | ||
- **Self-management** - You can manage your own time and priorities, and you can learn independently. | ||
|
||
## Study | ||
|
||
- [ ] [Distributed Systems: Reliable RPCs](../../primers/distributed-software-systems-architecture/reliable-rpcs) | ||
- [ ] [Troubleshooting Primer](../../primers/troubleshooting/) | ||
- [ ] [Linux process Intro](https://tldp.org/LDP/tlk/kernel/processes.html) | ||
- [ ] [Linux Process and Signals](https://www.bogotobogo.com/Linux/linux_process_and_signals.php) - This doc has some commands to give you an insight on how to view processes and pass signals to a process; we recommend running those commands and documenting your learning. | ||
|
||
## Projects | ||
|
||
- [ ] [Servers & databases](../../projects/server-database) | ||
- [ ] [Multiple Servers](../../projects/multiple-servers) | ||
- [ ] [Docker & Cloud Deployment](../../projects/docker-cloud) | ||
- [ ] [gRPC](../../projects/grpc-client-server) | ||
- [ ] [Troubleshooting project #1](https://docs.google.com/document/d/1V6HEu_OcJ3MHH-aHzUfANf06VJa1rPcGHcpBwql7QLA/edit#heading=h.cjnguaxmynan) TOADD | ||
|
||
## Product | ||
|
||
You will join [CYF Products](https://codeyourfuture.io/volunteers/) as a junior engineer. You will be deployed on a team delivering a product with real users, stakeholders and deadlines. Your challenge is to work with your team to deliver a product that meets the needs of your users, while managing the competing demands of stakeholders, deadlines, and your own learning priorities. Communication, organisation, and collaboration are key skills here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
+++ | ||
title="CYF+02 Sprint 2" | ||
date="01 Jan 2024" | ||
versions=["1-1-0"] | ||
hero="dddepth--085.webp" | ||
weight=3 | ||
+++ | ||
|
||
# Provisional start date: 22 Apr 2024 | ||
|
||
## Study | ||
|
||
- [ ] [Distributed Systems: State](../../primers/distributed-software-systems-architecture/state) | ||
- [ ] [Troubleshooting Primer](../../primers/troubleshooting/) | ||
|
||
## Projects | ||
|
||
- [ ] [Batch processing](../../projects/batch-processing) | ||
- [ ] [Buggy app](../../projects/buggy-app) | ||
- [ ] [Memcache](../../projects/memcache) | ||
- [ ] [Troubleshooting project #2](https://docs.google.com/document/d/1V6HEu_OcJ3MHH-aHzUfANf06VJa1rPcGHcpBwql7QLA/edit#heading=h.cjnguaxmynan) TOADD | ||
|
||
## Product | ||
|
||
Your product work is ramping up, and so is the complexity of your study. How will you manage your time? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
+++ | ||
title="CYF+02 Sprint 3" | ||
date="01 Jan 2024" | ||
versions=["1-1-0"] | ||
weight=4 | ||
+++ | ||
|
||
# Provisional start date: 6 May 2024 | ||
|
||
## Study | ||
|
||
- [ ] [Distributed Systems: State](../../primers/distributed-software-systems-architecture/state) | ||
- [ ] [Troubleshooting Primer](../../primers/troubleshooting/) | ||
- [ ] [Linux Bash I](https://www.bogotobogo.com/Linux/linux_tips2_bash.php) & [Linux Bash II](https://www.bogotobogo.com/Linux/linux_tips2_bash.php) (There are other blog posts in the same series that could be useful to go through in spare time, would recommend running the commands that the blog post suggests for better understanding.) | ||
- [ ] PHP fastcgi - https://www.php.net/manual/en/install.fpm.php | ||
Systemctl - https://www.freedesktop.org/software/systemd/man/systemctl.html and then https://www.redhat.com/sysadmin/linux-systemctl-manage-services | ||
- [ ] Nginx | ||
https://nginx.org/en/docs/ | ||
https://nginx.org/en/docs/http/request_processing.html | ||
https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/ | ||
|
||
## Projects | ||
|
||
- [ ] [Multiple servers](../../projects/multiple-servers) Revisit this project and deploy it with Docker and GH Actions | ||
- [ ] [Troubleshooting project #3](https://docs.google.com/document/d/1V6HEu_OcJ3MHH-aHzUfANf06VJa1rPcGHcpBwql7QLA/edit#heading=h.cjnguaxmynan) TOADD | ||
|
||
#### Optional (but recommended) software ops tutorials: | ||
|
||
- [ ] Do this HashiCorp tutorial. It will give you hands-on experience with seeing health checks can be used to manage failure. https://learn.hashicorp.com/tutorials/consul/introduction-chaos-engineering?in=consul/resiliency | ||
- [ ] Demonstrate circuit breaking with this HashiCorp tutorial: https://learn.hashicorp.com/tutorials/consul/service-mesh-circuit-breaking?in=consul/resiliency | ||
- [ ] See different kinds of load-balancing algorithms in use with this HashiCorp tutorial: https://learn.hashicorp.com/tutorials/consul/load-balancing-envoy?in=consul/resiliency | ||
- [ ] Do this tutorial which demonstrates autoscaling with minikube (you will need to install minikube on your computer if you don’t have it). It will give you hands-on experience in configuring autoscaling, plus some exposure to Kubernetes configuration. | ||
You may need to run this command first: minikube addons enable metrics-server | ||
https://learndevops.novalagung.com/kubernetes-minikube-deployment-service-horizontal-autoscale.html | ||
|
||
## Product | ||
|
||
You're starting to learn efficiencies and optimisations. How will you apply them to your product work? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters