AI prompts
base on Learning Software Engineering :turtle: <div align="center">
<h1 align="center">Software Engineering</h1>
</div>
## English Introduction
- I created this repository while I was in college, mainly to save my notes and personal studies on software engineering as a backup.
- Over time, many people started to give stars and fork this repository, especially Brazilians who are starting their studies in the area.
- This repository also motivated me to create [my personal website](https://alexgalhardo.com) at the end of 2023, to do something more organized and to reach more people, mainly to improve my English studies as well, in addition to serving as a portfolio and sharing side projects that I have been doing in my free time for educational purposes.
- In July 2024, I did a major refactoring of this repository with more information, content and better organization of the files.
- I wish I had a reference like this with hundreds of other useful study references when I started studying programming and technology back in 2016.
- I really enjoy sharing knowledge and making these study notes, whether for personal or professional purposes, I hope they are useful for you too.
## PT-BR Introdução
- Eu criei esse repositório enquanto estava na universidade, principalmente para salvar como backup, minhas anotações e estudos pessoais sobre engenharia de software.
- Com o passar do tempo, muitas pessoas começaram a dar estrelinhas e fazer o fork desse repositório, principalmente brasileiros que estão começando os estudos na área.
- Esse repositório também me motivou a criar [meu site pessoal](https://alexgalhardo.com) no final de 2023, para fazer algo mais organizado e para alcançar mais pessoas, principalmente para melhorar meus estudos em inglês também, além de servir como portfólio e compartilhar projetos paralelos que venho fazendo no meu tempo livre para fins didáticos.
- Em julho de 2024 fiz uma grande refatoração nesse repositório com mais informação, conteúdo e melhor organização dos arquivos.
- Eu gostaria de ter tido uma referência assim com centenas de outras referências úteis de estudo quando comecei a estudar programação e tecnologia la em 2016.
- Uma boa parte desse repositório esta em português, e o restante em inglês. Dizer que aprender inglês em pleno século XXI é extremamente importante e essencial é clichê né.
- Eu gosto bastante de compartilhar conhecimento e fazer essas anotações de estudos, seja para fins pessoais e profissionais, espero que elas sejam úteis para vocês também.
## References
- Books
- [The Art of Computer Programming - Donald Knuth](https://www.amazon.com.br/Computer-Programming-Volumes-1-4a-Boxed/dp/0321751043/ref=sr_1_1?qid=1575407297&refinements=p_lbr_books_authors_browse-bin%3ADonald+E.+Knuth&s=books&sr=1-1)
- [Clean Code: A Handbook of Agile Software Craftsmanship - Robert C. Martin Series](https://www.amazon.com.br/dp/B001GSTOAM/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)
- [Software Engineering at Google - SWE BOOK](https://abseil.io/resources/swe-book)
- [The Mythical Man-Month: Essays on Software Engineering](https://www.amazon.com.br/Mythical-Man-Month-Anniversary-Software-Engineering-ebook/dp/B00B8USS14/ref=sr_1_1?__mk_pt_BR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=11LSVPQBNSMUS&keywords=the+mythical+man-month+essays+on+software+engineering&qid=1568834047&s=gateway&sprefix=The+Mythical+Man-Month%3A+Essays+on+Software+Engineering%2Caps%2C338&sr=8-1)
- [Eletrônica – Para Autodidatas, Estudantes e Técnicos – 2ª Edição, de Gabriel Torres](https://pay.hotmart.com/U8059089S?checkoutMode=10&utm_source=site&utm_medium=link&utm_content=link&utm_campaign=organico&sck=site&bid=1584206239824)
- [Staff Engineering Book](https://staffeng.com/)
- [Basecamp Books](https://basecamp.com/books)
- [The Stoic Mind: A Visual Exploration Of Stoic Philosophy](https://play.google.com/store/books/details/Addy_Osmani_The_Stoic_Mind?id=ylfPEAAAQBAJ)
- [The Software Engineering GuideBook](https://www.engguidebook.com/)
- [Ultralearning: Master Hard Skills, Outsmart the Competition, and Accelerate Your Career](https://www.amazon.com/Ultralearning-Master-Outsmart-Competition-Accelerate/dp/006285268X)
- [Seja egoísta com sua carreira: Descubra como colocar você em primeiro lugar em sua jornada profissional e alcance seus objetivos pessoais](https://www.amazon.com/Seja-ego%C3%ADsta-com-sua-carreira-ebook/dp/B09HSKN3WC)
- [Communication for Engineers: A framework for software developers to become better communicators and increase their happiness, productivity, and impact](https://www.amazon.com/Communication-Engineers-developers-communicators-productivity-ebook/dp/B08W8MJNF8)
- [The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win](https://www.amazon.com/Phoenix-Project-DevOps-Helping-Business-ebook/dp/B078Y98RG8)
- [Computer Networks - Tanenbaum](https://www.amazon.com/Computer-Networks-2-downloads-Andrew-Tanenbaum-ebook/dp/B08GFVSKTQ)
- [Modern Operating Systems - Tanenbaum](https://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum-ebook/dp/B09ZHR7NRK)
- [Sistemas Operacionais: Projeto e Implementação](https://www.amazon.com.br/Sistemas-Operacionais-Projeto-Implementa%C3%A7%C3%A3o-Portuguese/dp/8577800571)
- [Compilers: Principles, Techniques, and Tools - Dragon Book](https://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811)
- [dicasdecarreira.dev](https://dicasdecarreira.dev)
- [The Developer Experience Book](https://dx.addy.ie/)
- Blogs & Articles
- [Rob Pike's 5 Rules of Programming](https://users.ece.utexas.edu/~adnan/pike.html)
- [https://martinfowler.com/](https://martinfowler.com/)
- [Teach Yourself CS](https://teachyourselfcs.com/)
- [How Browsers Work: Behind the scenes of modern web browsers](https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/)
- [Teach Yourself Programming in Ten Years - Peter Norvig](http://norvig.com/21-days.html)
- [No Silver Bullet - Essence and Accident in Software Engineering](https://alexgalhardo.vercel.app/pdfs/no-silver-bullet.pdf)
- [The Future of the Web is on the Edge](https://deno.com/blog/the-future-of-web-is-on-the-edge)
- [https://eltonminetto.dev/](https://eltonminetto.dev/)
- Github
- [Coding Interview University](https://github.com/jwasham/coding-interview-university)
- [Web Developer Roadmap](https://github.com/kamranahmedse/developer-roadmap)
- Sites
- [FreeCodeCamp](https://www.freecodecamp.org/)
- [ByteByteGO](https://blog.bytebytego.com/)
- [Roadmap.sh](https://roadmap.sh/)
- [RFC Editor](https://www.rfc-editor.org/)
- [https://developer.mozilla.org/en-US/](https://developer.mozilla.org/en-US/)
- [The Odin Project](https://www.theodinproject.com/)
- [GuiaFoca Linux](https://guiafoca.org/)
- Acronyms
- [RFC - Requests for Comments](https://en.wikipedia.org/wiki/Request_for_Comments)
- Linux
- [GuiaFoca Linux Para Iniciantes e Intermediários](https://alexgalhardo.vercel.app/pdfs/guia-foca-linux-iniciantes.pdf)
- [GuiaFoca Linux Para Avançados](https://alexgalhardo.vercel.app/pdfs/guia-foca-linux-avancados.pdf)
## The 4 Steps to Competence
- 1 - Unconsciously incompetent: “you don’t know how much you don’t know”
- 2 - Consciously incompetent: “you know how much you don’t know”
- 3 - Consciously competent: “you already know how much you know”
- 4 - Wisdom: “unconsciously you don’t know how much you know”
## The 4 Ways to Spend Money - Milton Friedman
According to economist Milton Friedman, there are 4 ways to spend money:
1. Spend my money on me:
- In this case, I have the incentive to look for the best value for money
- Good service at a fair price
2. Spending my money on other people:
- In this type of situation, the objective is to save money, the price is more important than the quality of the service
- An average service for a good price
3. Spending someone else’s money on me:
- In this case, money is spent with great attention to quality, but with little interest in seeking the best price
- Excellent service at a high price
4. Spending someone else’s money on a third party:
- In a situation like this, there is little incentive to care about both service quality and price
- Bad service for a high price or good service for an extremely high price
## Principles
- “Bad software that adds value > Perfect software that adds no value.”
- “Learn to say: I DON’T Know, and if necessary, try to learn.”
- “Premature optimization: the root of all evil.”
- “Remember that dinosaurs are almost always the best references.”
- “He who thinks little makes a lot of mistakes” - Leonardo da Vinci
- "In God I trust. Everyone else must bring data.”
- “Lack of money is the root of all evil.”
- “There is no silver bullet.”
- “Make it work > Do it correctly.”
- “Increase revenue > reduce costs.”
- “SaaS > PaaS > IaaS > In-House”
- “You != Unicorn”
- “Always try to understand what is happening under the hood.”
- “Write code != program != software engineering”
- “Maintenance > Performance”
- “No metrics, no optimization”
- “Never stop questioning”
- “Software engineering is 80% THINKING about the problem, and 20% HOW to solve the problem.”
- “The more knowledge you have, the less you know. EGO = 1 / knowledge.”
- “Everyone should care about quality”
- “At least 80% of the code of good software has been redone, shortened or better yet, deleted. Less is more."
- “2+2 is not 5, no matter how many people say that.”
- “Principles > Analogy.”
- “Talk and learn from people smarter than you.”
- “Always try to use the single source of truth.”
- “Don’t reinvent the wheel. That’s what ready-made frameworks and libraries exist for.”
- “It’s always good to study a tool in depth before putting it into production.”
- “Modularization is everything.”
- “Good artists copy, great artists steal.”
- “Innovation only exists in a world of restriction, not abundance.”
- “There will always be something to improve. Done is better than perfect.”
## Information vs Knowledge
<img width="100%" alt="img" src="https://alexgalhardo.vercel.app/images/information-vs-knowledge.png">
## Knowledge vs Confidence
<img width="100%" alt="img" src="https://alexgalhardo.vercel.app/images/knowledge-confidence.png">
## How we learn
<img width="100%" alt="img" src="https://alexgalhardo.vercel.app/images/how-we-learn.png">
## Critical Thinking
<img alt="img" src="https://github.com/AlexGalhardo/Software-Engineering/assets/19540357/fad7e79b-c9aa-49a6-bacf-4e36a8638001" width="100%">
## Maslow's Pyramid
<img width="100%" alt="img" src="https://alexgalhardo.vercel.app/images/maslows-pyramid.png">
<br><br>
<div align="center">
<h4 align="center">Always Have Fun</h4>
</div>
<br>
<div align="center">
<h4 align="center">Stay Hungry, Stay Foolish</h4>
</div>
<br>
<div align="center">
<h4 align="center"><a href="https://alexgalhardo.com" target="_blank">alexgalhardo.com</a></h4>
</div>
", Assign "at most 3 tags" to the expected json: {"id":"6558","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"