Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Idea: a mini-project a day #3

Closed
what-name opened this issue Jul 7, 2020 · 15 comments
Closed

Idea: a mini-project a day #3

what-name opened this issue Jul 7, 2020 · 15 comments

Comments

@what-name
Copy link
Collaborator

I think it would be a great idea to have multiple "mini-project a day" challenges that would take about an hour to finish. This would offer both somewhat guided learning opportunities for participants, as well as something to learn about each day. The difficulty of the challenges should vary so that people on multiple levels of skillsets can benefit.

Examples of this:

  • Create a new EC2 instance and SSH into it. [10-30min]
  • Create a new VPC and a private subnet. Spin up an EC2 instance in the private subnet, create an internet gateway, a NAT gateway, add routing tables and execute a command from inside the instance with Systems Manager (or equivalent for other platforms). [30-60min]
  • Create a Serverless CRUD application with an API Gateway, Lambda and DynamoDB (or equivalent for other platforms). [45-90min]
  • Create an Organization & a sub-account and set up cross-account IAM access [30-60min]

Questions:

  • How to keep the mini-projects inside the free tier (on all platforms)?
  • If not kept inside the free tier, how much costs can a project accumulate approx? Costs should be kept as low as possible, including "cleanup" guidance so that people don't end up with unnecessary charges.
  • Where can be a central place for the list of mini-projects? I think a designated page on the website would be great.
  • What level of detail or guidance should be provided with each project? Just the requirements like The Cloud Resume Challenge or a [partially] complete how-to?
  • How and where to contribute with mini-project ideas? How could an "idea vetting system" look like and who could overlook it? How would the project list be updated on the website that doesn't involve manual updating?

Ideas: (braindump)

  • Each mini-project could have its own "ID" so that other people can reference and complete them as well. For example somebody tweets "I just finished 100DaysOfCloud_Challenge_04" and write a small post or Tweet about it.
  • Each project could have a "What have you learned" or "Where did you face difficulties?" type of questions associated with it. It could even go into more detail such as "How did you create ResourceX?"
  • The ideas could be contributed in the website's repo directly (or forked) with pull requests.
@madebygps
Copy link
Contributor

Wow, I think this is fantastic, you're filled with great ideas today. I think we can as we build the ideas page, we can provide an estimate of how long each project would take + link any available documentation. I think providing documentation for every idea would be hard, given this is all volunteer work, but as much as possible.

I know for Azure (my area of expertise) we can point to the learn modules which provide sandbox environments, at no cost.

@what-name
Copy link
Collaborator Author

Yes, the idea itself would be much easier than any kind of guidance to it. Maybe simply putting out the idea and offering the required links for the docs would work? Learning how to read through docs and find what you need is also a super important yet overlooked skill IMO. Providing docs would help a lot because finding the right ones is usually tedious work, then you never know if that's what you really need and end up reading through unrelated info.

Those Azure labs look great! AWS has similar self-paced labs as well with clear details on length and already written guidance.

It seems like GCP also has lab projects. This is looking great!

Those pre-made labs (projects) could be referenced at first too, then create the community's own as it further grows and develops.

@omenking
Copy link
Contributor

omenking commented Jul 7, 2020

Levels

I think we can follow the Level 100-400 system and the put a time to them.

Questions:

Q1: How to keep the mini-projects inside the free tier (on all platforms)?

I can come up with ideas for all clouds but I don't know if all are in the free-tier.
I think people doing the micro-project can report if they were able to or someone can audit them at a future point.

Q2: If not kept inside the free tier, how much costs can a project accumulate approx? Costs should be kept as low as possible, including "cleanup" guidance so that people don't end up with unnecessary charges.

I think the pricing is a nice-to-have. Since the micro-project will be listed in this repo, and the only way to add them is through Pull Requests we can ask or people to add them.

Q3: Where can be a central place for the list of mini-projects? I think a designated page on the website would be great.

The micro-projects will be in this repo. My intent was the big list you see in the README will link to subpages. I just didn't get a chance to create an example just yet.

Q4: What level of detail or guidance should be provided with each project? Just the requirements like The Cloud Resume ## Challenge or a [partially] complete how-to?

A one to two sentence explaining the purpose and then just the requirements. We don't need to show how-tos, but if people have completed the project that we can link the challengers day pages. It's encouraged that challenges basically write hows-to document how they completed the challenge.

Q5: How and where to contribute with mini-project ideas? How could an "idea vetting system" look like and who could overlook it? How would the project list be updated on the website that doesn't involve manual updating?

Here is Github. We can format a Github Issue template, and then since they have to get PR we can have multiple reviewers that make suggestions before accepting them into the pool.

Ideas: (braindump)

Each mini-project could have its own "ID" so that other people can reference and complete them as well. For example somebody tweets "I just finished 100DaysOfCloud_Challenge_04" and write a small post or Tweet about it.

Excellent

Each project could have a "What have you learned" or "Where did you face difficulties?" type of questions associated with it. It could even go into more detail such as "How did you create ResourceX?"

This would go into the 100DaysOfCloud/100DaysOfCloud Day template, since people are supposed to document that there.
I needed to create a template but didn't think of what so this will kick start it.

The ideas could be contributed in the website's repo directly (or forked) with pull requests.

Agreed.

@omenking
Copy link
Contributor

omenking commented Jul 7, 2020

Screen Shot 2020-07-07 at 9 56 51 AM

@omenking
Copy link
Contributor

omenking commented Jul 7, 2020

### Choose the category (Choose only one)
- [ ] Cloud Security
- [ ] Cloud Computing
- [ ] Cloud Networking
- [ ] Cloud Billing and Pricing
- [ ] Application Integration
- [ ] Serverless
- [ ] Solution Architecting
- [ ] Machine Learning
- [ ] Internet of Things
- [ ] Cloud Storage
- [ ] Databases
- [ ] Developer Tools
- [ ] DevOps
- [ ] Big Data and Analytics
- [ ] Management and Governance
- [ ] Multi-Cloud
- [ ] Hybrid-Cloud
- [ ] Other (Please specify so we can add a category)

If you know the sub-category that would help as well.

### Choose the level of difficulty (Please only choose one)

- [ ] Level 100 (Introductory)
- [ ] Level 200 (Intermediate)
- [ ] Level 300 (Advanced)
- [ ] Level 400 (Expert)

### Choose the Cloud Service Provider (Please only choose one, unless its multi-cloud)

- [ ] AWS
- [ ] GCP
- [ ] Azure
- [ ] Other (Please specify what others)

### Do your best to calculate possible costs for free-tier and non-free-tier account

### If you know of any external resources, provide the links

@omenking
Copy link
Contributor

omenking commented Jul 7, 2020

I added a special category for Cloud Projects and this will our recommended starting project.
I think @what-name has already done this with Hugo 😄
Screen Shot 2020-07-07 at 10 16 31 AM

@omenking
Copy link
Contributor

omenking commented Jul 7, 2020

Codes
Screen Shot 2020-07-07 at 10 35 03 AM

@what-name
Copy link
Collaborator Author

When adding a project to a projectID, do we follow alphabetical order for the providers?
Example:

  • SEC03
    • AWS - Example Security Project
    • Azure - Example Security Project
    • GCP - Example Security Project

Is there a better way of organizing between providers? Their alphabetical order resembles their market share, should this be a concern?

@madebygps
Copy link
Contributor

Alphabetical order is fine, it resembling market share just happens to be coincidence. I like having them all in one page so people can view all their options. Open to suggestions though, list might get very long at some point, but I don't think that's a bad thing.

@what-name
Copy link
Collaborator Author

I propose some changes to the ideas issue template as per the seperate project pages.

  • I think the [ ] tick box is unnecessary
  • Added "what should be completed at the end"
  • Added "questions to answer"
  • Added "Author" field - not sure about this one
### Choose the category (Choose only one)
- Cloud Security
- Cloud Computing
- Cloud Networking
- Cloud Billing and Pricing
- Application Integration
- Serverless
- Solution Architecting
- Machine Learning
- Internet of Things
- Cloud Storage
- Databases
- Developer Tools
- DevOps
- Big Data and Analytics
- Management and Governance
- Multi-Cloud
- Hybrid-Cloud
- Other (Please specify so we can add a category)

If you know the sub-category that would help as well.

### Choose the level of difficulty (Please only choose one)

- Level 100 (Introductory)
- Level 200 (Intermediate)
- Level 300 (Advanced)
- Level 400 (Expert)

### Choose the Cloud Service Provider (Please only choose one, unless its multi-cloud)

- AWS
- GCP
- Azure
- Other (Please specify what others)

### Do your best to calculate possible costs for free-tier and non-free-tier account


### If you know of any external resources, provide the links


### What should be completed by the end of the project


### What questions should the participant be able to answer by the end of the project (Please provide at least three)


### Provide one contact where participants can reach you. Twitter, Email etc. (Author)

@what-name
Copy link
Collaborator Author

That being said, I think providing a template like the already existing seperate project page(s) would be great. If new ideas come in through the issue template, they have to be almost completely reformatted for it's actual page for the PR.

# CATEGORYXX-PROVIDERXXX - Project Title
- Title should be in the form of: CATEGORY01-PROVIDER100 - TITLE
  - `CATEGORY` is BIL, SEC, GOV, etc.
  - `01` is the subcategory seen in the main README
  - `PROVIDER` is AWS, AZ, GCP, OTH(other, please use an abbreviation)
  - `100` is both the level of difficulty as well as a unique ID of the project. (100,101,102 - see already existing projects)
  - `TITLE` is the title of the project. Be brief but informative. 


## Cloud Service Provider
- Microsoft Azure
- Amazon Web Services
- Google Cloud

## Difficulty
- Level 100 (Introductory)
- Level 200 (Intermediate)
- Level 300 (Advanced)
- Level 400 (Expert)

## Project's Author(s)
- Provide one contact information where participants can reach you. Twitter, email etc.

## Objectives
### You need to complete the following:
- Create at least three objectives the participant should complete

### You need to answer the following: 
- Create three or four questions the participant should be able to answer by the end of the project

## References
- Add any references or links that provide guidance to the project (not 3rd party how-tos)

## Tips
- Provide any _gotchas_ that are crucial to know, are small details yet difficult to stumble upon (leave empty if none)

@omenking
Copy link
Contributor

omenking commented Jul 8, 2020

A markdown template may eliminate the need for a Github Issue template as you say.

@omenking
Copy link
Contributor

omenking commented Jul 8, 2020

@what-name template is in now. Reorganized folders as such

Screen Shot 2020-07-08 at 2 26 59 PM

Screen Shot 2020-07-08 at 2 26 57 PM

@omenking
Copy link
Contributor

omenking commented Jul 8, 2020

Screen Shot 2020-07-08 at 2 30 55 PM

@omenking
Copy link
Contributor

I think is considered closed since our template is in good shape.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants