## FAQ

Most frequently asked questions.

### What is the purpose of repository?

Learning, of course.

### My goal is to prepare for a DevOps interviews. Should I use this repository?

Overall, this repository should help you learn some concepts but, don't assume at any point that your interview will include similar questions to those that included in this repository.
Regarding interview, I've added a couple of suggestions [here](prepare_for_interview.md)<br>

### Will you stop at some point adding questions and exercises?

All good things come to an end...

### How do I become a better DevOps Engineer?

That's a great question.<br>
I don't have a definitive answer for this question, I'm exploring it myself from time to time. What I believe helps is to:

  * Practice - Practicing DevOps practically should be the primary way to become a DevOps engineer in my opinion
  * Read - blogs, books, ... anything that can enrich your knowledge about DevOps or related DevOps topics
  * Participate - there are great DevOps communities. I personally like [Reddit DevOps community](https://www.reddit.com/r/devops). Visiting there, I learn quite a lot on different topics.
  * Share - This is one of the reasons I created this project. Primary goal was to help others but a secondary goal quickly became to learn more. By asking questions, you actually learn better a certain topic. Try it out, take a certain subject and try to come up with questions you would ask someone to test his/her skills about that topic.

### Why most of the questions don't have answers?

1. Because we need more contributors
2. Because often asking questions is easier than answering them

### Where can I find answers to some of the questions in this repository?

1. Search for them using search engines, documentation pages, ... this is part of being a DevOps engineer
2. Use the communities: many people will be happy to help and answer your questions
3. Ask us. If you want, you can contact me or even open an issue that is only a question, that's totally fine :)

### Where the questions and answers are coming from?

Well, everywhere! - past experience, colleagues, contributors, ... but please note we do not allow copying interview questions from interview questions sites to here. There are people who worked hard on adding those to their sites and we respect that.<br>
As an evidence, we did deny pull requests with copied content from other sites.

### What are the top DevOps skills required for being a DevOps Engineer?

It's a hard question and the reason is that if you'll ask 20 different people, you'll probably get at least 10 different answers but here is what I believe is common today:

* OS - DevOps require you good understanding of operating system concepts. The level required is mainly depends on the company although in my opinion it should be the same level. You should understand how the operating system works, how to troubleshoot and debug issues, etc.
* Programming is part of DevOps. The level again depends on the company. Some will require you to know basic level of scripting while others deep understanding of common algorithms, data structure, design patterns etc.
* Cloud and Containers - while not 100% must in all companies/positions, this skill is on the rise every year and many (if not most) of the positions/companies require this skill. This specifically means: AWS/Azure/GCP, Docker/Podman, Kubernetes, ...
* CI/CD - Be able to to answer questions like "Why do we need CI/CD?" and "What ways and models are there to perform CI/CD?". Eventually, practice assembling such processes and workflow, using whatever tools you feel comfortable with.

### I feel like there are some questions that shouldn't be included in this project

Is that a question? :)<br>
If you don't like some of the questions or think that some questions should be removed you can open an issue or submit a PR and we can discuss it there. We don't have rules against deleting questions (for now :P)

### Can I copy the questions from here to my site?

You can (although I have no idea why would you want to), but:

* Not without attribution. Many people worked hard on adding these questions and they deserve a proper credit for their work
* Not if you plan to make money out of it. Directly or indirectly (e.g. ADS) as this is a free content and we would like it to stay this way :)

Same goes for copying questions from different sources to this repository. We saw it happened already with a couple of pull requests and we rejected them. We will not merge pull requests with copied questions and answers from other sources.

### Can I add questions and/or answers to this project?

I'll simply imagine you didn't ask that on an open source project... :)

### Why can't I add installation questions?

In general, I prefer questions added to this repository will have certain educational value for the user. Either regarding a certain concept or even a very general question, but one that will make the user research on a certain topic and will make him eventually more familiar with some of its core concepts.<br>
I know that this is not the case for every question in this repo as of today (e.g. questions about specific commands) but this is definitely something to aspire for.

I see little to none value in what is known as "Installation Questions". Let's say I ask you "how to install Jenkins?". Should I conclude from your answer that you are familiar with what is Jenkins and/or how it works? In other words, is there a value in knowing how to install Jenkins? In my opinion, no.

### Where can I practice coding?

Personally, I really like the following sites

* [HackerRank](https://www.hackerrank.com)
* [LeetCode](https://leetcode.com)
* [Exercism](https://exercism.io)

### How to learn more DevOps?

I listed some roadmaps in [devops-resources](https://github.com/bregman-arie/devops-resources)

### Why some questions repeat themselves?

If you see two identical questions, that's a bug.<br>
If you see two similar questions, that's a feature :D (= it's intentional)

For example:

1. What is horizontal scaling?
2. The act of adding additional instances to the pool to handle scaling is called ________ scaling

You are right, both ask about horizontal scaling but it's done from a different angle in every question and in addition, I do believe repetition helps you to learn something in a way where you are not fixed on the way it's asked, rather you understand the concept itself.

### Are you open for making big changes in the repository?

Absolutely. Don't be afraid to raise ideas and start discussions.<br>
I'll be more than happy to discuss any change you think we should make to improve the learning experience
