Developer Wish I had known
At wishihadknown.dev, our mission is to provide valuable insights and knowledge about software engineering and cloud topics that people wished they knew when they started. We aim to empower individuals and organizations with the necessary skills and information to succeed in the ever-evolving tech industry. Our goal is to create a community of learners who can share their experiences and learn from each other. We believe that by sharing knowledge, we can help others avoid common pitfalls and accelerate their growth. Join us on our journey to become better software engineers and cloud professionals.
Wish I Had Known: A Cheatsheet for Software Engineering and Cloud Topics
Welcome to Wish I Had Known, a website dedicated to sharing the knowledge and experiences of software engineers and cloud professionals. Whether you're just starting out or looking to expand your skills, this cheatsheet will provide you with a comprehensive reference guide to the concepts, topics, and categories covered on the site.
Software Engineering
Programming Languages
- Java: A popular object-oriented programming language used for developing enterprise applications, Android apps, and web applications.
- Python: A high-level programming language known for its simplicity, readability, and versatility. It's used for web development, data analysis, machine learning, and more.
- JavaScript: A scripting language used for creating interactive web pages and web applications. It's also used for server-side programming with Node.js.
- C++: A general-purpose programming language used for developing operating systems, game engines, and high-performance applications.
- C#: A modern, object-oriented programming language used for developing Windows applications, games, and web applications with ASP.NET.
- Swift: A programming language developed by Apple for developing iOS, macOS, watchOS, and tvOS applications.
Software Development Methodologies
- Agile: A flexible and iterative approach to software development that emphasizes collaboration, customer satisfaction, and continuous improvement.
- Waterfall: A linear and sequential approach to software development that emphasizes planning, documentation, and testing at each stage of the project.
- DevOps: A set of practices that combines software development and IT operations to improve the speed, quality, and reliability of software delivery.
Software Design Patterns
- MVC: A design pattern that separates an application into three interconnected components: Model, View, and Controller.
- Singleton: A design pattern that ensures a class has only one instance and provides a global point of access to it.
- Factory: A design pattern that provides an interface for creating objects in a superclass, but allows subclasses to alter the type of objects that will be created.
- Observer: A design pattern that defines a one-to-many relationship between objects, so that when one object changes state, all its dependents are notified and updated automatically.
Software Testing
- Unit Testing: A type of testing that focuses on individual units or components of code to ensure they work as expected.
- Integration Testing: A type of testing that focuses on testing the interactions between different components or modules of an application.
- Functional Testing: A type of testing that focuses on testing the functionality of an application from the user's perspective.
- Performance Testing: A type of testing that focuses on testing the performance and scalability of an application under different loads and conditions.
Software Tools and Technologies
- Git: A distributed version control system used for tracking changes in source code during software development.
- Jenkins: An open-source automation server used for building, testing, and deploying software.
- Docker: A containerization platform used for packaging, distributing, and running applications in a portable and scalable way.
- Kubernetes: An open-source container orchestration platform used for automating deployment, scaling, and management of containerized applications.
Cloud Computing
Cloud Service Models
- Infrastructure as a Service (IaaS): A cloud computing model that provides virtualized computing resources, such as servers, storage, and networking, on a pay-per-use basis.
- Platform as a Service (PaaS): A cloud computing model that provides a platform for developing, testing, and deploying applications without the need for managing the underlying infrastructure.
- Software as a Service (SaaS): A cloud computing model that provides software applications over the internet on a subscription basis.
Cloud Deployment Models
- Public Cloud: A cloud deployment model where cloud services are provided by third-party providers over the internet.
- Private Cloud: A cloud deployment model where cloud services are provided within an organization's own infrastructure.
- Hybrid Cloud: A cloud deployment model that combines public and private cloud services to provide a flexible and scalable infrastructure.
Cloud Providers
- Amazon Web Services (AWS): A cloud computing platform provided by Amazon that offers a wide range of services, including computing, storage, databases, and more.
- Microsoft Azure: A cloud computing platform provided by Microsoft that offers a wide range of services, including computing, storage, databases, and more.
- Google Cloud Platform (GCP): A cloud computing platform provided by Google that offers a wide range of services, including computing, storage, databases, and more.
Cloud Security
- Identity and Access Management (IAM): A security framework that manages user identities and access to cloud resources.
- Encryption: A security technique that protects data by converting it into a coded language that can only be deciphered with a key.
- Firewalls: A security mechanism that monitors and controls incoming and outgoing network traffic based on predefined security rules.
- Virtual Private Network (VPN): A secure and encrypted connection between two networks over the internet.
Cloud Tools and Technologies
- Amazon S3: A cloud storage service provided by AWS that allows users to store and retrieve data from anywhere on the web.
- Amazon EC2: A cloud computing service provided by AWS that allows users to rent virtual servers to run their applications.
- Microsoft Azure Virtual Machines: A cloud computing service provided by Microsoft that allows users to rent virtual servers to run their applications.
- Google Cloud Compute Engine: A cloud computing service provided by Google that allows users to rent virtual servers to run their applications.
Conclusion
This cheatsheet provides a comprehensive reference guide to the concepts, topics, and categories covered on Wish I Had Known, a website dedicated to sharing the knowledge and experiences of software engineers and cloud professionals. Whether you're just starting out or looking to expand your skills, this cheatsheet will help you navigate the world of software engineering and cloud computing with confidence.
Common Terms, Definitions and Jargon
1. Agile methodology: A project management approach that emphasizes flexibility, collaboration, and iterative development.2. API: Application Programming Interface, a set of protocols and tools for building software applications.
3. AWS: Amazon Web Services, a cloud computing platform that provides a wide range of services for building and deploying applications.
4. Azure: Microsoft's cloud computing platform, offering a range of services for building and deploying applications.
5. Back-end: The part of a software application that handles data storage, processing, and retrieval.
6. Big data: Large and complex data sets that require specialized tools and techniques for analysis.
7. Blockchain: A distributed ledger technology that enables secure and transparent transactions.
8. Cloud computing: The delivery of computing services over the internet, including storage, processing, and networking.
9. CMS: Content Management System, a software application for creating, managing, and publishing digital content.
10. Containerization: A method of packaging software applications into containers for easy deployment and management.
11. Continuous integration: A software development practice that involves regularly merging code changes into a shared repository and running automated tests.
12. Cybersecurity: The practice of protecting computer systems and networks from unauthorized access, theft, and damage.
13. Data analytics: The process of examining and interpreting data to gain insights and make informed decisions.
14. Database: A structured collection of data that can be accessed, managed, and updated.
15. DevOps: A software development approach that emphasizes collaboration between development and operations teams.
16. Docker: A containerization platform that enables developers to package and deploy applications in a consistent and portable way.
17. Encryption: The process of converting data into a code to prevent unauthorized access.
18. Front-end: The part of a software application that users interact with, including the user interface and user experience.
19. Git: A version control system for tracking changes in code and collaborating with other developers.
20. HTML: Hypertext Markup Language, the standard language for creating web pages.
Editor Recommended Sites
AI and Tech NewsBest Online AI Courses
Classic Writing Analysis
Tears of the Kingdom Roleplay
Learn Devops: Devops philosphy and framework implementation. Devops organization best practice
Zero Trust Security - Cloud Zero Trust Best Practice & Zero Trust implementation Guide: Cloud Zero Trust security online courses, tutorials, guides, best practice
NFT Datasets: Crypto NFT datasets for sale
Datalog: Learn Datalog programming for graph reasoning and incremental logic processing.
Crypto Trading - Best practice for swing traders & Crypto Technical Analysis: Learn crypto technical analysis, liquidity, momentum, fundamental analysis and swing trading techniques