diff --git a/_data/downloadFiles/EN_US/angular.md b/_data/downloadFiles/EN_US/angular.md index 726ce7daa..3a84c64e3 100644 --- a/_data/downloadFiles/EN_US/angular.md +++ b/_data/downloadFiles/EN_US/angular.md @@ -1,5 +1,33 @@ # Angular ## Nivel 1 +- [ ] **HTML - Fundamentals**: + - HTML is a markup language that defines the structure of your content. HTML consists of a series of elements, which you use to make it appear a certain way, or act a certain way. The enclosing tags can make a word or image hyperlink to somewhere else, can italicize words, can make the font bigger or smaller, and so on. + - Learning which tags are required for basic HTML + - Creating a text paragraph + - Displaying an image + - Knowing the difference between 'h1', 'h2', 'h3', etc. + - Creating a hyperlinked text + - Creating a form with relevant fields + - Creating an ordered or unordered list of items + - Creating a list of items within a dropdown list + - Linking to a CSS file + - Creating a table + - Adding IDs and classes +- [ ] **CSS - Fundamentals**: + - Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML. CSS can be used for very basic document text styling — for example, for changing the color and size of headings and links. It can be used to create a layout — for example, turning a single column of text into a layout with a main content area and a sidebar for related information. It can even be used for effects such as animation. + - Learning the visual structure of a page, with 'margin' and 'padding' + - Establishing the size with 'width' and 'height' + - Learning about the position of an element ('static', 'relative' or 'absolute') + - Learning about the display of an element ('block', 'inline', 'inline-block') + - Learning how to position images in relation to text + - Learning about alignment + - Learning about font style + - Learning the differences and advantages of using the different units of measurement in CSS (%, relative, etc) + - Connecting to the elements (IDs, classes) of an HTML file + - Changing the characteristics of an element when the mouse hovers over it + - Learning box-sizing + - Learning Flexbox + - Learning Grid - [ ] **JavaScript - Fundamentals**: - JavaScript is the world's most popular programming language and is one of the core technologies of the World Wide Web, alongside HTML and CSS. It has dynamic typing, prototype-based object-orientation, and first-class functions. It is multi-paradigm, supporting event-driven, functional, and imperative programming styles. - Knowing the primitive types @@ -17,12 +45,6 @@ - Learning what TypeScript is, why it was created, how it works and its relationship with JavaScript - Knowing the TypeScript tools (integration with the code editor, static checker and compiler) - Writing code in TypeScript using its tools (interfaces, enum, decorators, etc.) -- [ ] **RxJS - Fundamentals**: - - RxJS is a library for composing asynchronous and event-based programs by using observable sequences. It provides one core type, the Observable, satellite types (Observer, Schedulers, Subjects) and operators inspired by Array methods (map, filter, reduce, every, etc) to allow handling asynchronous events as collections. - - Creating asynchronous programs - - Creating event-based programs - - Understanding the concept of observables and sequences of observables - - Understanding how to use Observers, Subscription, Subject and others - [ ] **Angular - Fundamentos**: - Angular is an application-design framework and development platform built on TypeScript for creating efficient and sophisticated single-page apps. - Building interfaces using HTML, CSS and TypeScript @@ -32,6 +54,23 @@ - Using composition to create reusable components - Using Resolver services - Manipulating requests by creating Interceptor services +- [ ] **Object-oriented Programming Concepts**: + - Object-oriented programming (OOP) is a programming paradigm based on the concept of 'objects', which can contain data and code: data in the form of fields (often known as attributes or properties), and code, in the form of procedures (often known as methods). A common feature of objects is that procedures (or methods) are attached to them and can access and modify the object's data fields. Some of the main concepts are classes and instances, inheritance, and encapsulation. + - How objects work + - Creating and using constructors + - What classes are + - Creating and using Methods + - How encapsulation works + - What inheritance is + - What polymorphism is + - How interfaces work + - What abstractions are +- [ ] **RxJS - Fundamentals**: + - RxJS is a library for composing asynchronous and event-based programs by using observable sequences. It provides one core type, the Observable, satellite types (Observer, Schedulers, Subjects) and operators inspired by Array methods (map, filter, reduce, every, etc) to allow handling asynchronous events as collections. + - Creating asynchronous programs + - Creating event-based programs + - Understanding the concept of observables and sequences of observables + - Understanding how to use Observers, Subscription, Subject and others - [ ] **Observer pattern**: - In software design, the Observer pattern is a software design pattern in which an object, named the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by calling one of their methods. - Understanding what Design Patterns are @@ -118,9 +157,6 @@ - Transforming an object into a string - Transforming a string into an object - Manipulating an object -- [ ] **Command Line - Fundamentals**: - - CLI is a command line program that accepts text input to execute operating system functions. - - Knowing the most important commands - [ ] **Cloud - Fundamentals**: - Cloud, or cloud computing, is the distribution of computing services over the Internet using a pay-as-you-go pricing model. A cloud is composed of various computing resources, ranging from the computers themselves (or instances, in cloud terminology) to networks, storage, databases, and everything around them. In other words, everything that is normally needed to set up the equivalent of a server room, or even a complete data center, will be ready to use, configured, and run. - Knowing the difference between IaaS, PaaS and SaaS diff --git a/_data/downloadFiles/EN_US/csharp.md b/_data/downloadFiles/EN_US/csharp.md new file mode 100644 index 000000000..3ffb79864 --- /dev/null +++ b/_data/downloadFiles/EN_US/csharp.md @@ -0,0 +1,197 @@ +# C# +## Nivel 1 +- [ ] **C# - Fundamentals**: + - C# is a multi-paradigm, strongly typed programming language developed by Microsoft as part of the .NET platform. The source code is compiled into Common Intermediate Language (CIL) which is interpreted by the Common Language Runtime (CLR) virtual machine. It is designed to run on the Common Language Infrastructure of the .NET Framework platform. + - Knowing the primitive types + - Declaring variables, considering the different types + - Using conditional structures ('if', 'else') + - Knowing the comparison operators + - Using repetition structures and loops ('while', 'for') + - Using functions, passing parameters and arguments + - Manipulating methods + - Manipulating arrays and lists + - Getting data from an API + - Making asynchronous calls + - Creating constructors +- [ ] **Object-oriented Programming Concepts**: + - Object-oriented programming (OOP) is a programming paradigm based on the concept of 'objects', which can contain data and code: data in the form of fields (often known as attributes or properties), and code, in the form of procedures (often known as methods). A common feature of objects is that procedures (or methods) are attached to them and can access and modify the object's data fields. Some of the main concepts are classes and instances, inheritance, and encapsulation. + - How objects work + - Creating and using constructors + - What classes are + - Creating and using Methods + - How encapsulation works + - What inheritance is + - What polymorphism is + - How interfaces work + - What abstractions are +- [ ] **C# - Collections**: + - A collection represents a group of objects, known as its elements. They are like containers that group multiple items in a single unit. Some collections allow duplicate elements and others do not. Some are ordered and others unordered. + - Learn the difference between Dictionary, List, Queue, SortedList and Stack + - Get to know how to work with ArrayList e HashTable + - Iterators +- [ ] **NuGet**: + - NuGet is a package manager for the .NET platform. It defines how packages for this platform are created, published and consumed, and provides tools for each of these functions. + - Gerenciar pacotes + - Compartilhar bibliotecas +- [ ] **C# - System.IO**: + - The System.IO namespace consists of IO related classes, structures, delegates and enumerations. These classes can be used to reads and write data to files or data streams. It also contains classes for file and directory support. + - Ler dados de arquivos + - Escrever dados em arquivos + - Gerenciar arquivos com Using +- [ ] **C# - Memory Management**: + - Automatic memory management is one of the services that the Common Language Runtime provides during Managed Execution. The Common Language Runtime's garbage collector manages the allocation and release of memory for an application. + - Understand how the memory is managed + - Getting to know the Garbage Collector + - Understanding about the managed Stack and Heap +- [ ] **C# - Testing**: + - Software testing is the process of evaluating and verifying that a software product or application does what it is supposed to do. The benefits of testing include preventing bugs, reducing development costs and improving performance. + - Using unit tests + - Using integration testing + - Using behavioral testing + - Using mocks +- [ ] **ADO.NET**: + - ADO.NET is a set of classes that expose data access services for .NET Framework programmers. ADO.NET provides a rich set of components for creating distributed, data-sharing applications. It is an integral part of the .NET Framework, providing access to relational, XML, and application data. + - Handling databases + - Getting to know DataSet and DataTable + - Performing connections + - Handling XML documents +- [ ] **Entity Framework Core**: + - Entity Framework Core is an object-relational mapper (ORM). Object-relational mapping is a technique that enables developers to work with data in object-oriented way by performing the work required to map between objects defined in an application's programming language and data stored in relational datasources. + - Manipulating databases using .NET objects + - Creating models corresponding to a database + - Performing queries +- [ ] **Data Structures**: + - In the context of computers, the data structure is a specific way of storing and organizing data in the computer's memory so that these data can be easily retrieved and efficiently used when needed later. + - Knowing the main data structures (linked list, stack, queue, tree, etc) + - Implementing the main data structures +## Nivel 2 +- [ ] **CLR**: + - The Common Language Runtime (CLR) is the virtual machine component of Microsoft .NET Framework that manages the execution of .NET programs. + - Understanding how the CLR works + - Understanding memory management + - Getting to know CIL and JIT +- [ ] **LINQ**: + - Language-Integrated Query (LINQ) is the name for a set of technologies based on the integration of query capabilities directly into the C# language. + - Criar consultas + - Conhecer as cláusulas Select e Where + - Consultar coleções de objetos em memória + - Mapear o banco de dados com Linq to Sql +- [ ] **C# - Serialization**: + - Serialization is the process of converting an object into a stream of bytes to store the object or transmit it to memory, a database, or a file. Its main purpose is to save the state of an object in order to be able to recreate it when needed. + - Sending an object to a remote application using a web service + - Passing an object as a JSON or XML string + - Passing user-specific or security information between applications +- [ ] **C# - Networking and Sockets**: + - Networking is a concept of connecting two or more computing devices together so that we can share resources. Socket programming provides facility to share data between different computing devices through a network. + - Opening an interactive communication session between the user's browser and a server + - Sending messages to a server and receive replies without querying the server +- [ ] **ASP.NET Core**: + - ASP.NET Core is an open-source and cross-platform framework for building modern cloud-based applications, such as web apps, IoT apps and mobile backends. + - Creating applications and web services + - Maintaining an MVC application + - Developing a client-side web user interface + - Creating a Web API +- [ ] **Dapper**: + - Dapper is an object–relational mapping (ORM) product for the Microsoft .NET platform. It provides a framework for mapping an object-oriented domain model to relational databases. + - Performing database queries such as 'select', 'insert', 'update', 'delete' + - Manipulating databases +- [ ] **Dependency Injection**: + - Dependency Injection is a design pattern in which a class requests dependencies from external sources instead of creating them. + - Avoiding high level of code coupling within an application + - Implementing inversion of control +- [ ] **C# - Multithreading**: + - Multithreading is the ability to perform multiple operations at the same time. Operations with the potential of holding up other operations can execute on separate threads. + - Running multiple tasks simultaneously + - Understanding how threads are executed + - Learning how to make a thread wait at a specific point +## Nivel 3 +- [ ] **C# - Delegates and Events**: + - Delegates are objetcs that are used as function pointers to refer to a method assigned to them. + - Events are the action performed which changes the state of an object. Events are declared using delegates - they provide encapsulation to the delegates. + - Understanding the concept of delegate + - Creating a reference to a function with a certain list of parameters + - Understanding the concept of event + - Handling different types of events +- [ ] **C# - Anonymous methods and lambda expressions**: + - Anonymous methods are unnamed methods that can be defined using the delegate keyword. + - Lambda expressions are used like anonymous functions, but you don't need to specify the type of the value that you input, making them more flexible to use. + - Creating anonymous functions that you can use to create delegates + - Creating local functions that can be passed as arguments +- [ ] **Containers**: + - Containers are software packages that contain all the elements needed to run in any environment. + - Kubernetes (also known as k8s or “kube”) is an open source container orchestration platform that automates many of the manual processes involved in deploying, managing, and scaling containerized applications. + - Isolating your software to run independently + - Deploying software in clusters + - Modularizing your system into smaller packages + - Getting to know the Docker platform + - Getting to know Kubernetes +- [ ] **Microservices architecture**: + - Microservices are an architectural approach in which software consists of small independent services that communicate with each other and are organized according to their business domains. + - Learning the concept of planned architecture for microservices + - Performing communication using APIs + - Improving the scalability of a system +- [ ] **Reflection and attributes**: + - Reflection objects are used for obtaining type information at runtime. The classes that give access to the metadata of a running program are in the System.Reflection namespace. + - Writing code that reads object information and metadata at runtime + - Getting class names at runtime and creating objects of a class +- [ ] **MAUI**: + - .NET Multi-platform App UI (.NET MAUI) is a cross-platform framework for creating native mobile and desktop apps with C# and XAML. + - Creating native desktop and mobile applications with C# and XAML + - Creating cross-platform applications + - Sharing user interface layout and design across platforms +## Habilidade Auxiliar: Infrastructure +- [ ] **Git & GitHub - Fundamentals**: + - Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. + - GitHub is a hosting service for software development and version control using Git. + - Creating a repository + - Cloning a repository + - Committing, pushing and pulling to and from the repository + - Reversing a commit + - Creating branches and pull requests + - Handling merge and conflicts +- [ ] **HTTP - Fundamentals**: + - HTTP stands for Hyper Text Transfer Protocol. Communication between client computers and web servers is done by sending HTTP Requests and receiving HTTP Responses. + - Understanding the difference between HTTP verbs + - Testing requests and checking the status codes in the browser + - Learning how to make a HTTP request on the command line with WGET + - Downloading an image with WGET + - Performing a POST +- [ ] **JSON**: + - JSON stands for JavaScript Object Notation. It is a text format for storing and transporting data. + - Creating an object + - Transforming an object into a string + - Transforming a string into an object + - Manipulating an object +- [ ] **Command Line - Fundamentals**: + - CLI is a command line program that accepts text input to execute operating system functions. + - Knowing the most important commands +- [ ] **Cloud - Fundamentals**: + - Cloud, or cloud computing, is the distribution of computing services over the Internet using a pay-as-you-go pricing model. A cloud is composed of various computing resources, ranging from the computers themselves (or instances, in cloud terminology) to networks, storage, databases, and everything around them. In other words, everything that is normally needed to set up the equivalent of a server room, or even a complete data center, will be ready to use, configured, and run. + - Knowing the difference between IaaS, PaaS and SaaS + - Knowing the largest cloud providers + - Specializing in a specific provider of your choice +- [ ] **SQL - Fundamentals**: + - Structured Query Language (SQL) is a standardized programming language that is used to manage relational databases and perform various operations on the data in them. + - Knowing the most common SQL commands + - Using SELECT to query a table + - Using INSERT to insert data into a table + - Using UPDATE to update a table + - Using DELETE to remove data from a table + - Using JOIN to connect data from multiple tables + - Knowing the clauses (FROM, ORDER BY, etc.) +## Habilidade Auxiliar: Good practices +- [ ] **SOLID**: + - SOLID has five principles that are considered best practices in software development that help programmers write cleaner code by separating responsibilities, reducing docking, easing refactoring, and encouraging code reuse. +- [ ] **Design Patterns**: + - In software engineering, a Design Pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is a description or template for how to solve a problem that can be used in many different situations. Design Patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system. + - Getting familiarized with and applying the main Design Patterns +- [ ] **Clean Architecture**: + - Clean architecture is a way of developing software, such that just by looking at the source code of a program, you should be able to tell what the program does. +- [ ] **Clean Code**: + - Applying simple techniques that aim to make a code easier to write and read + - Refactoring your code to make it clearer +- [ ] **Domain-Driven Design (DDD) Concepts**: + - Domain-Driven Design (DDD) is an approach to software design and development that is first informed by business requirements. The program components (objects, classes, arrays, etc.) indicate the industry, sector, or business domain in which the business operates. + - Modeling domains effectively + - Basing complex projects on domain models + - Getting to know the building blocks of DDD diff --git a/_data/downloadFiles/EN_US/data-science.md b/_data/downloadFiles/EN_US/data-science.md new file mode 100644 index 000000000..dd0c7b3a2 --- /dev/null +++ b/_data/downloadFiles/EN_US/data-science.md @@ -0,0 +1,192 @@ +# Data Science +## Nivel 1 +- [ ] **Data Science - Fundamentals**: + - Data Science is the act of using algorithms and systems to extract, organize, and analyze data from various sources in order to detect patterns and make business decisions. The application areas are endless, such as in business, biology, medicine, engineering, etc. + - Knowing the concept of Data Mining + - Learning the main functions, such as 'describe', 'info', etc + - Understanding the role of visualizations such as histograms and boxplots + - Knowing what nominal and ordinal categorical variables are + - Exploring data in Python with Pandas, Matplotlib, Seaborn and Numpy libraries +- [ ] **Feature Engineering**: + - Feature engineering refers to the process of using domain knowledge to select and transform the most relevant variables from raw data when creating a predictive model using machine learning or statistical modeling, in order to improve the performance of Machine Learning algorithms. + - Generating new variables from the available data + - Transforming raw data into characteristics + - Highlighting problems with predictive models + - Improving model accuracy for new data + - Selecting and creating features using Pandas and Scikit-learn libraries +- [ ] **Data Extraction and Processing**: + - Data extraction is the process of collecting or retrieving disparate types of data from a variety of sources, many of which may be poorly organized or completely unstructured. + - Obtaining the data to be analyzed + - Treating the obtained data, transforming it, changing its structure and values in order to make the database more coherent and ensure that the data to be worked on is in the best conditions to be analyzed + - Using the Pandas and Scikit-learn libraries to treat the data +- [ ] **Python for Data Science**: + - Python is a high-level interpreted programming language that supports multiple programming paradigms, such as imperative, object-oriented, and functional. It is a language with dynamic typing and automatic memory management. + - Learning Python programming logic + - Learning the language fundamentals such as variables, functions, lists, conditionals and imports + - Creating data analyses + - Using Matplotlib to generate graphs + - Using and manipulating lists to group data + - Knowing the NumPy library + - Knowing the Pandas library +- [ ] **Jupyter & Colab notebooks**: + - Jupyter Notebook and Google Colaboratory are Notebooks that allow the creation of text blocks and code blocks + - Notebooks make it easy to write Data Science projects, because you can see the result of the execution right after the code snippet + - Google Colaboratory allows you to write and execute Python code directly in the browser, with little to no configuration required + - These tools make it easy to share projects among the team +- [ ] **R for Data Science**: + - R is a programming language commonly used in computational statistics and data analysis. + - Learning to analyze, clean and visualize data + - Creating graphs + - Joining databases + - Drawinging statistical summaries + - Learning predictive models in R +- [ ] **Statistics and Math - Fundamentals**: + - Equations, Functions, and Limits + - Logarithms + - Matrices, determinants, vectors and vector space + - Derivatives and integrals + - Difference between mean, median and mode + - Frequency distribution + - Variance and standard deviation + - Binomial, Poisson and normal distributions + - Confidence level and confidence interval + - Sampling techniques + - Linear regression + - Time series +- [ ] **Data Visualization**: + - Data visualization is a contemporary expression of visual communication that consists of the visual representation of data. + - Mapping abstract data into visual representations + - Visually representing data that is present in our real world + - Using Python, Matplotlib and Seaborn to generate data visualizations +## Nivel 2 +- [ ] **Machine Learning - Fundamentals**: + - Machine Learning is a subfield of Engineering and Computer Science that evolved from the study of pattern recognition and the theory of computational learning in artificial intelligence. + - Supervised Learning + - Using classification algorithms + - Using regression algorithms + - Using Scikit-learn to create machine learning models +- [ ] **Machine Learning - Unsupervised Learning**: + - Unsupervised learning, also known as unsupervised machine learning, uses machine learning algorithms to analyze and cluster unlabeled datasets. These algorithms discover hidden patterns or data groupings without the need for human intervention. + - Clustering is the set of data mining techniques that aim to automatically group data according to their degree of similarity. + - Knowing exploratory analysis + - Using K-means, DBSCAN and Mean shift methods to cluster unclassified data + - Evaluating the quality of a clustering + - Parameterizing clustering methods using the maximum silhouette coefficient + - Understanding the mathematics behind the Silhouette, Davies Bouldin and Calinski Harabasz validation metrics + - Knowing dimensionality reduction techniques +- [ ] **Machine Learning - Model Evaluation**: + - Model Evaluation is the process that uses metrics to help us analyze whether a trained model will perform well in predicting when exposed to new data sets. + - Knowing different strategies for model evaluation and optimization + - Using a pipeline for training and validation + - Knowing the main metrics for evaluating machine learning models +- [ ] **SQL - Fundamentals**: + - Structured Query Language (SQL) is a standardized programming language that is used to manage relational databases and perform various operations on the data in them. + - Knowing the most common SQL commands + - Using SELECT to query a table + - Using INSERT to insert data into a table + - Using UPDATE to update a table + - Using DELETE to remove data from a table + - Using JOIN to connect data from multiple tables + - Knowing the clauses (FROM, ORDER BY, etc.) +- [ ] **Web Scraping**: + - Web scraping or web data scraping is the extraction of data from websites. + - Using BeautifulSoup and Python to collect data + - Searching and browsing the HTML + - Accessing the content and attributes of HTML tags + - Building datasets with scraping results +- [ ] **Statistical Tests**: + - Statistical tests are used to examine relationships between variables and test hypotheses. + - Creating confidence intervals for samples + - Comparing groups of samples + - Performing statistical tests + - Designing experiments to collect data + - Proposing mathematical models to understand a given problem + - Building color maps to aid data interpretation +## Nivel 3 +- [ ] **Deep Learning**: + - Deep Learning is a branch of Machine Learning based on a set of algorithms that attempt to model high-level abstractions of data using a deep graph with multiple processing layers, composed of various linear and nonlinear transformations. + - Building and training models with Keras + - Building and training models with Tensorflow + - Selecting the layers of a model + - Classifying images + - Understanding the concepts of weights and biases + - Neural networks for regression + - Understanding the concept of recurrent networks +- [ ] **Reinforcement Learning**: + - Reinforcement Learning is an area of Machine Learning that is concerned with how intelligent agents should take action in an environment in order to maximize the notion of cumulative reward. + - Understanding the concepts of agent and reward + - Understanding the difference between positive and negative reinforcement + - Knowing the Markov Decision Process model + - Understanding the concept of Feedback + - Using the Q-learning algorithm +- [ ] **Computer Vision**: + - Computer Vision is an interdisciplinary scientific field that deals with how computers can gain high-level knowledge from digital images or videos. From an engineering perspective, it seeks to understand and automate tasks that the human visual system can do. + - Extracting regions of interest from an image + - Normalizing and pre-processing image data + - Building classifiers for face recognition + - Extracting regions of the human face based on facial landmarks + - Analyzing different conditions of each component of the human face + - Using OpenCV +- [ ] **Natural Language Processing**: + - Natural Language Processing (NLP) is a subfield of artificial intelligence and linguistics that studies the problems of automatic generation and understanding of natural human languages. + - Sentiment Analysis + - Creating visualizations to facilitate the analysis of textual data + - Knowing the NLTK and Scikit-Learn libraries + - Normalizing texts + - Using TF-IDF and Ngrams to improve classification + - Using SKlearn + - Using Regex in PLN + - Knowing Word2Vec + - Combining word vectors to represent texts and classify them +## Habilidade Auxiliar: Cloud, Big Data and Systems +- [ ] **Big Data and Data Engineering**: + - Big data is the area of knowledge that studies how to process, analyze, and derive information from data sets that are too large to be analyzed by traditional systems. + - Data engineering involves the development and organization of processes for collecting, storing, and transforming large-scale data. + - Creating a data pipeline + - Knowing Apache Airflow + - Knowing Apache Spark + - Knowing the Data Lake concept + - Interacting with servers in the cloud + - Creating Spark applications +- [ ] **Cloud - Fundamentals**: + - Cloud, or cloud computing, is the distribution of computing services over the Internet using a pay-as-you-go pricing model. A cloud is composed of various computing resources, ranging from the computers themselves (or instances, in cloud terminology) to networks, storage, databases, and everything around them. In other words, everything that is normally needed to set up the equivalent of a server room, or even a complete data center, will be ready to use, configured, and run. + - Knowing the difference between IaaS, PaaS and SaaS + - Knowing the largest cloud providers + - Specializing in a specific provider of your choice +- [ ] **Git & GitHub - Fundamentals**: + - Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. + - GitHub is a hosting service for software development and version control using Git. + - Creating a repository + - Cloning a repository + - Committing, pushing and pulling to and from the repository + - Reversing a commit + - Creating branches and pull requests + - Handling merge and conflicts +- [ ] **Linux - Fundamentals**: + - Linux is a term popularly used to refer to operating systems that use the Linux Kernel. Distributions include the Linux Kernel as well as system software and libraries. + - Knowing the Linux directory system + - Compacting and uncompressing files + - Editing files in the console with VI + - Managing the processes running on the machine + - Knowing the environment variables and PATH + - Managing packages + - Performing remote communication with SSH and SCP +## Habilidade Auxiliar: Business +- [ ] **Business Process Management**: + - Business Process Management (BPM) is a discipline that uses various methods to discover, model, analyze, measure, improve, optimize, and automate business processes. +- [ ] **Business Intelligence (BI) - Fundamentals**: + - Business Intelligence is a set of theories, methodologies, processes, and technologies that enable the transformation of "raw" data into highly relevant information for a company's decision making. + - Knowing the ETL process + - Performing modeling and structuring of tables in a Data Warehouse + - Creating visualizations that make sense + - Knowing PowerBI +- [ ] **Storytelling with data**: + - Storytelling is a way of telling stories that engage and grab the attention of the person listening. Within data analysis, it is very important to convey information to the receiver in a way that he or she understands not only the data, but also the whole context. +- [ ] **Excel**: + - Microsoft Excel is a spreadsheet editor produced by Microsoft with calculation and table building tools. + - Performing the basic mathematical operations with its operators (addition, subtraction, multiplication and division) + - Knowing the main formulas, such as 'AVERAGE', 'ROUND', 'MAX', 'MIN', etc. + - Performing column searches with the 'VLOOKUP' function + - Creating graphs and charts +- [ ] **Communication skills**: + - A good level of communication facilitates the achievement of objectives, problem solving, and increases productivity, because each professional will know exactly what is expected of them, and will transmit their ideas clearly. diff --git a/_data/downloadFiles/EN_US/flutter.md b/_data/downloadFiles/EN_US/flutter.md index c8ede8a2d..d861a7b03 100644 --- a/_data/downloadFiles/EN_US/flutter.md +++ b/_data/downloadFiles/EN_US/flutter.md @@ -40,7 +40,7 @@ - Error handling refers to the procedures for responding to and recovering from error conditions present in a software application. In other words, it is the process of anticipating, detecting, and resolving application, programming, or communication errors. - Understanding what errors and exceptions are in Dart - Learning how to use the `try-on-catch-finally` structure -- [ ] **Flutter - APIs**: +- [ ] **Flutter - Communication with APIs**: - An API is an interface that software developers use to programmatically interact with software components or resources outside of their own code. An even simpler definition is that an API is the part of a software component that is accessible to other components. - Understanding REST APIs - Learning the basic HTTP communication commands diff --git a/_data/downloadFiles/EN_US/java.md b/_data/downloadFiles/EN_US/java.md index 540546283..8b689bd0e 100644 --- a/_data/downloadFiles/EN_US/java.md +++ b/_data/downloadFiles/EN_US/java.md @@ -84,7 +84,7 @@ - Encapsulating access in a DAO - Understanding how memory works in this situation ## Nivel 3 -- [ ] **Microservices Architecture**: +- [ ] **Microservices architecture**: - Microservices are an architectural approach in which software consists of small independent services that communicate with each other and are organized according to their business domains. - Learning the concept of planned architecture for microservices - Performing communication using APIs @@ -169,8 +169,8 @@ - [ ] **Clean Code**: - Applying simple techniques that aim to make a code easier to write and read - Refactoring your code to make it clearer -- [ ] **Domain-Driven Design (DDD) concepts**: - - Domain-driven design is an approach to software design and development that is first informed by business requirements. The program’s components (objects, classes, arrays, etc.) indicate the industry, sector, or domain in which the business operates. - - Designing domains effectively +- [ ] **Domain-Driven Design (DDD) Concepts**: + - Domain-Driven Design (DDD) is an approach to software design and development that is first informed by business requirements. The program components (objects, classes, arrays, etc.) indicate the industry, sector, or business domain in which the business operates. + - Modeling domains effectively - Basing complex projects on domain models - - Knowing the building blocks of DDD + - Getting to know the building blocks of DDD diff --git a/_data/downloadFiles/EN_US/nodejs.md b/_data/downloadFiles/EN_US/nodejs.md index 3c70dfe3b..0981ffe1e 100644 --- a/_data/downloadFiles/EN_US/nodejs.md +++ b/_data/downloadFiles/EN_US/nodejs.md @@ -1,5 +1,16 @@ # Node.js ## Nivel 1 +- [ ] **JavaScript - Fundamentals**: + - JavaScript is the world's most popular programming language and is one of the core technologies of the World Wide Web, alongside HTML and CSS. It has dynamic typing, prototype-based object-orientation, and first-class functions. It is multi-paradigm, supporting event-driven, functional, and imperative programming styles. + - Knowing the primitive types + - Declaring variables, considering the difference between 'var', 'let' and 'const + - Using conditional structures ('if', 'else') + - Knowing the comparison operators ('=', '==', '===') + - Using repetition structures and loops ('while', 'for') + - Using functions, passing parameters and arguments + - Manipulating arrays and lists + - Getting data from an API + - Making asynchronous calls using 'Async/Await', 'Promise', etc - [ ] **Node.js - Fundamentals**: - Node.js is a JavaScript execution environment that allows you to run applications developed with the language autonomously, without depending on a browser. - Getting to know blocking and non-blocking operations @@ -76,7 +87,7 @@ - Using specific NestJS features, such as providers, modules and controllers - Developing APIs using NestJS - Using the Nest.js CLI -- [ ] **Microservices Architecture**: +- [ ] **Microservices architecture**: - Microservices are an architectural approach in which software consists of small independent services that communicate with each other and are organized according to their business domains. - Learning the concept of planned architecture for microservices - Performing communication using APIs @@ -129,17 +140,6 @@ - Knowing the largest cloud providers - Specializing in a specific provider of your choice ## Habilidade Auxiliar: Front-end -- [ ] **JavaScript - Fundamentals**: - - JavaScript is the world's most popular programming language and is one of the core technologies of the World Wide Web, alongside HTML and CSS. It has dynamic typing, prototype-based object-orientation, and first-class functions. It is multi-paradigm, supporting event-driven, functional, and imperative programming styles. - - Knowing the primitive types - - Declaring variables, considering the difference between 'var', 'let' and 'const - - Using conditional structures ('if', 'else') - - Knowing the comparison operators ('=', '==', '===') - - Using repetition structures and loops ('while', 'for') - - Using functions, passing parameters and arguments - - Manipulating arrays and lists - - Getting data from an API - - Making asynchronous calls using 'Async/Await', 'Promise', etc - [ ] **HTML - Fundamentals**: - HTML is a markup language that defines the structure of your content. HTML consists of a series of elements, which you use to make it appear a certain way, or act a certain way. The enclosing tags can make a word or image hyperlink to somewhere else, can italicize words, can make the font bigger or smaller, and so on. - Learning which tags are required for basic HTML diff --git a/_data/downloadFiles/EN_US/php.md b/_data/downloadFiles/EN_US/php.md new file mode 100644 index 000000000..3b2873775 --- /dev/null +++ b/_data/downloadFiles/EN_US/php.md @@ -0,0 +1,211 @@ +# PHP +## Nivel 1 +- [ ] **PHP - Fundamentals**: + - PHP is a programming language that allows web developers to create dynamic content that interacts with databases. PHP is basically used for developing web based software applications. + - Knowing the primitive types + - Declaring variables, considering the different types + - Using conditional structures ('if', 'else') + - Knowing the comparison operators + - Using repetition structures and loops ('while', 'for') + - Using functions, passing parameters and arguments + - Manipulating methods + - Manipulating arrays and lists +- [ ] **PHP - Collections**: + - A collection represents a group of objects, known as its elements. They are like containers that group multiple items into a single unit. Some collections allow duplication of elements and some do not. Some are ordered and some are unordered. + - Learning the uses and differences between arrays, lists, stacks, hash maps, heaps + - Working with Iterators, Generators and Collections +- [ ] **Object-oriented Programming Concepts**: + - Object-oriented programming (OOP) is a programming paradigm based on the concept of 'objects', which can contain data and code: data in the form of fields (often known as attributes or properties), and code, in the form of procedures (often known as methods). A common feature of objects is that procedures (or methods) are attached to them and can access and modify the object's data fields. Some of the main concepts are classes and instances, inheritance, and encapsulation. + - How objects work + - Creating and using constructors + - What classes are + - Creating and using Methods + - How encapsulation works + - What inheritance is + - What polymorphism is + - How interfaces work + - What abstractions are +- [ ] **PHP - Error handling**: + - Error handling refers to the response and recovery procedures from error conditions present in a software application. In other words, it is the process comprised of anticipation, detection and resolution of application, programming or communication errors. + - Knowing and handling the most common exceptions + - Knowing the types of errors and in which situations they can occur + - Using 'try' and 'catch' for error handling + - Learning about error handlers + - Creating specific exceptions according to your application's needs +- [ ] **PHP - Persistence**: + - The concept of "data persistence" refers to ensuring that the information inputted into an application will be stored in a medium where it can be retrieved consistently. In other words, they are permanent records that are not lost when the session is closed. + - Knowing how to use PDO + - Making insertions, changes and removals in a database + - Creating queries on a database using filters +- [ ] **PHP - Files and Streams**: + - Streams are the way of generalizing file, network, data compression, and other operations which share a common set of functions and uses. In its simplest definition, a stream is a resource object which exhibits streamable behavior. That is, it can be read from or written to in a linear fashion, and may be able to seek an arbitrary location within the stream. + - Opening, reading and manipulating files + - Applying wrappers and filters on streams + - Using streams + - Knowing encodings and character sets +## Nivel 2 +- [ ] **PHP - Composer**: + - Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you. + - Managing dependencies + - Including third-party libraries +- [ ] **PHP - Testing**: + - Software testing is the process of evaluating and verifying that a software product or application does what it is supposed to do. The benefits of testing include preventing bugs, reducing development costs and improving performance. + - Using unit tests + - Using integration testing + - Using behavioral testing + - Using mocks +- [ ] **PHP - MVC**: + - Model–view–controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divide the related program logic into three interconnected elements. This is done to separate internal representations of information from the ways information is presented to the user. + - Understanding the concept of the MVC (Model-View-Controller) pattern + - Splitting the responsibilities between the MVC layers +- [ ] **Laravel**: + - Laravel is a free and open-source PHP framework for developing web systems that use the MVC (model, view, controller) pattern. + - Getting to know the features of the Laravel framework + - Working with routes + - Using Blade files + - Using its ORM features + - Dealing with dependency injection +- [ ] **PHP - Symfony**: + - Symfony is an open source PHP, full-stack MVC framework, and incorporates many features and good development practices of the PHP domain. + - Getting to know the main features of the framework + - Using components + - Defining resources and routes + - Twig templates +- [ ] **PHP - Communication with APIs**: + - An API is an interface that software developers use to program interaction with software components or features outside their own code. An even simpler definition is that an API is the part of a software component that is accessible to other components. + - Understanding what a REST API is + - Knowing the basic HTTP communication commands + - Getting to know cURL + - Building APIs in Laravel + - Knowing how to make authenticated requests for Web APIs +- [ ] **PHP - XDebug**: + - Xdebug is a PHP extension which provides debugging and profiling capabilities. + - Using and enhancing var_dump with XDebug + - Analyzing and understanding the execution stack + - Debugging the code + - Debugging remotely with Docker +## Nivel 3 +- [ ] **PHP - Asynchronous**: + - In asynchronous programming the functions are not executed in order. With asynchrony, we can interrupt the code to get some other information needed to continue execution. This means that the code waits for another part of the code and while it waits it executes the other parts. + - Learning how to use sockets + - Getting to know reactive programming libraries + - Learning about coroutines +- [ ] **PHP - Functional programming**: + - Functional programming is a programming paradigm premised on using functions. Functions are, according to this paradigm, at the epicenter of a code base. + - Understanding in-depth about functions in PHP + - Getting to know arrays manipulation functions + - Performing function composition using pipelines +- [ ] **Microservices architecture**: + - Microservices are an architectural approach in which software consists of small independent services that communicate with each other and are organized according to their business domains. + - Learning the concept of planned architecture for microservices + - Performing communication using APIs + - Improving the scalability of a system +- [ ] **Containers**: + - Containers are software packages that contain all the elements needed to run in any environment. + - Kubernetes (also known as k8s or “kube”) is an open source container orchestration platform that automates many of the manual processes involved in deploying, managing, and scaling containerized applications. + - Isolating your software to run independently + - Deploying software in clusters + - Modularizing your system into smaller packages + - Getting to know the Docker platform + - Getting to know Kubernetes +- [ ] **Object Calisthenics**: + - Object Calisthenics are basically programming exercises, as a set of 9 rules to help write better object-oriented code. + - Getting to know the rules of Object Calisthenics + - Simplifying classes and methods + - Keeping code shorter and more cohesive +- [ ] **Reflection and attributes**: + - Reflection objects are used for obtaining type information at runtime. The classes that give access to the metadata of a running program are in the System.Reflection namespace. + - Writing code that reads object information and metadata at runtime + - Getting class names at runtime and creating objects of a class +## Habilidade Auxiliar: Infrastructure and good practices +- [ ] **Git & GitHub - Fundamentals**: + - Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. + - GitHub is a hosting service for software development and version control using Git. + - Creating a repository + - Cloning a repository + - Committing, pushing and pulling to and from the repository + - Reversing a commit + - Creating branches and pull requests + - Handling merge and conflicts +- [ ] **HTTP - Fundamentals**: + - HTTP stands for Hyper Text Transfer Protocol. Communication between client computers and web servers is done by sending HTTP Requests and receiving HTTP Responses. + - Understanding the difference between HTTP verbs + - Testing requests and checking the status codes in the browser + - Learning how to make a HTTP request on the command line with WGET + - Downloading an image with WGET + - Performing a POST +- [ ] **JSON**: + - JSON stands for JavaScript Object Notation. It is a text format for storing and transporting data. + - Creating an object + - Transforming an object into a string + - Transforming a string into an object + - Manipulating an object +- [ ] **Command Line - Fundamentals**: + - CLI is a command line program that accepts text input to execute operating system functions. + - Knowing the most important commands +- [ ] **Cloud - Fundamentals**: + - Cloud, or cloud computing, is the distribution of computing services over the Internet using a pay-as-you-go pricing model. A cloud is composed of various computing resources, ranging from the computers themselves (or instances, in cloud terminology) to networks, storage, databases, and everything around them. In other words, everything that is normally needed to set up the equivalent of a server room, or even a complete data center, will be ready to use, configured, and run. + - Knowing the difference between IaaS, PaaS and SaaS + - Knowing the largest cloud providers + - Specializing in a specific provider of your choice +- [ ] **SQL - Fundamentals**: + - Structured Query Language (SQL) is a standardized programming language that is used to manage relational databases and perform various operations on the data in them. + - Knowing the most common SQL commands + - Using SELECT to query a table + - Using INSERT to insert data into a table + - Using UPDATE to update a table + - Using DELETE to remove data from a table + - Using JOIN to connect data from multiple tables + - Knowing the clauses (FROM, ORDER BY, etc.) +- [ ] **SOLID**: + - SOLID has five principles that are considered best practices in software development that help programmers write cleaner code by separating responsibilities, reducing docking, easing refactoring, and encouraging code reuse. +- [ ] **Design Patterns**: + - In software engineering, a Design Pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is a description or template for how to solve a problem that can be used in many different situations. Design Patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system. + - Getting familiarized with and applying the main Design Patterns +- [ ] **Clean Architecture**: + - Clean architecture is a way of developing software, such that just by looking at the source code of a program, you should be able to tell what the program does. +- [ ] **Domain-Driven Design (DDD) Concepts**: + - Domain-Driven Design (DDD) is an approach to software design and development that is first informed by business requirements. The program components (objects, classes, arrays, etc.) indicate the industry, sector, or business domain in which the business operates. + - Modeling domains effectively + - Basing complex projects on domain models + - Getting to know the building blocks of DDD +## Habilidade Auxiliar: Front-end +- [ ] **HTML - Fundamentals**: + - HTML is a markup language that defines the structure of your content. HTML consists of a series of elements, which you use to make it appear a certain way, or act a certain way. The enclosing tags can make a word or image hyperlink to somewhere else, can italicize words, can make the font bigger or smaller, and so on. + - Learning which tags are required for basic HTML + - Creating a text paragraph + - Displaying an image + - Knowing the difference between 'h1', 'h2', 'h3', etc. + - Creating a hyperlinked text + - Creating a form with relevant fields + - Creating an ordered or unordered list of items + - Creating a list of items within a dropdown list + - Linking to a CSS file + - Creating a table + - Adding IDs and classes +- [ ] **CSS - Fundamentals**: + - Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML. CSS can be used for very basic document text styling — for example, for changing the color and size of headings and links. It can be used to create a layout — for example, turning a single column of text into a layout with a main content area and a sidebar for related information. It can even be used for effects such as animation. + - Learning the visual structure of a page, with 'margin' and 'padding' + - Establishing the size with 'width' and 'height' + - Learning about the position of an element ('static', 'relative' or 'absolute') + - Learning about the display of an element ('block', 'inline', 'inline-block') + - Learning how to position images in relation to text + - Learning about alignment + - Learning about font style + - Learning the differences and advantages of using the different units of measurement in CSS (%, relative, etc) + - Connecting to the elements (IDs, classes) of an HTML file + - Changing the characteristics of an element when the mouse hovers over it + - Learning box-sizing + - Learning Flexbox + - Learning Grid +- [ ] **JavaScript - Fundamentals**: + - JavaScript is the world's most popular programming language and is one of the core technologies of the World Wide Web, alongside HTML and CSS. It has dynamic typing, prototype-based object-orientation, and first-class functions. It is multi-paradigm, supporting event-driven, functional, and imperative programming styles. + - Knowing the primitive types + - Declaring variables, considering the difference between 'var', 'let' and 'const + - Using conditional structures ('if', 'else') + - Knowing the comparison operators ('=', '==', '===') + - Using repetition structures and loops ('while', 'for') + - Using functions, passing parameters and arguments + - Manipulating arrays and lists + - Getting data from an API + - Making asynchronous calls using 'Async/Await', 'Promise', etc diff --git a/_data/downloadFiles/EN_US/python.md b/_data/downloadFiles/EN_US/python.md new file mode 100644 index 000000000..6f5dfe1e4 --- /dev/null +++ b/_data/downloadFiles/EN_US/python.md @@ -0,0 +1,183 @@ +# Python +## Nivel 1 +- [ ] **Python - Fundamentals**: + - Python is a high-level, general-purpose programming language that is widely used in web applications, software development, data science, and machine learning. Its design philosophy emphasizes code readability with the use of significant indentation. Python is dynamically typed and garbage-collected. + - Knowing the primitive types + - Declaring variables, considering the different types + - Using conditional structures ('if', 'else') + - Knowing the comparison operators + - Using repetition structures and loops ('while', 'for') + - Using functions, passing parameters and arguments + - Manipulating methods + - Manipulating arrays and lists + - Getting data from an API + - Creating constructors +- [ ] **Object-oriented Programming Concepts**: + - Object-oriented programming (OOP) is a programming paradigm based on the concept of 'objects', which can contain data and code: data in the form of fields (often known as attributes or properties), and code, in the form of procedures (often known as methods). A common feature of objects is that procedures (or methods) are attached to them and can access and modify the object's data fields. Some of the main concepts are classes and instances, inheritance, and encapsulation. + - How objects work + - Creating and using constructors + - What classes are + - Creating and using Methods + - How encapsulation works + - What inheritance is + - What polymorphism is + - How interfaces work + - What abstractions are +- [ ] **Data Structures**: + - In the context of computers, the data structure is a specific way of storing and organizing data in the computer's memory so that these data can be easily retrieved and efficiently used when needed later. + - Knowing the main data structures (linked list, stack, queue, tree, etc) + - Implementing the main data structures +- [ ] **Python - Collections**: + - A collection represents a group of objects, known as its elements. They are like containers that group multiple items into a single unit. Some collections allow duplication of elements and some do not. Some are ordered and some are unordered. + - Using lists and tuples + - Using polymorphism in collections + - Using sets and dictionaries +- [ ] **Python - Testing**: + - Software testing is the process of evaluating and verifying that a software product or application does what it is supposed to do. The benefits of testing include preventing bugs, reducing development costs and improving performance. + - Using unit tests + - Using integration testing + - Using behavioral testing + - Using mocks +- [ ] **Python - Communication with APIs**: + - An API is an interface that software developers use to program interaction with software components or features outside their own code. An even simpler definition is that an API is the part of a software component that is accessible to other components. + - Understanding what a REST API is + - Knowing the basic HTTP communication commands + - Understanding what a REST API is + - Knowing how to make authenticated requests + - Converting objects to JSON and vice-versa + - Knowing how to use the tools of the Requests package +## Nivel 2 +- [ ] **Flask**: + - Flask is a micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries. It has no database abstraction layer, form validation, or any other components where pre-existing third-party libraries provide common functions. However, Flask supports extensions that can add application features as if they were implemented in Flask itself. + - Creating web applications + - Defining routes, redirects and templates + - Validating forms +- [ ] **Python - Advanced OOP**: + - Mixin is a class that provides implementations of methods for reuse by multiple related child classes. + - Operator overloading means giving extended meaning beyond its predefined operational meaning. +- [ ] **Django**: + - Django is a high-level Python web framework that enables rapid development of secure and maintainable websites. + - Creating web applications + - Understanding the architecture of an application made with Django + - Creating a page admin + - Using templates and routes + - Creating forms + - Writing views +- [ ] **Django Rest Framework**: + - Django REST framework is a powerful and flexible toolkit for building Web APIs. + - Developing APIs + - Working with models, serializers and views + - Including filters, searches and sorting + - Limiting the number of requests +- [ ] **Python - MVC and MTV**: + - MVC and MTV are two design patterns used for implementing web interfaces and applications. + - Understanding the MVC pattern + - Understanding the MTV pattern + - Understanding the difference between the MVC and MTV patterns +- [ ] **Python - Lambdas and Closures**: + - Lambda functions are nothing more than anonymous functions. While normal functions can be created using def as a prefix, lambda functions are created using lambda. + - A closure in Python is an inner function object, a function that behaves like an object, that remembers and has access to variables in the local scope where it was created, even after the outer function has finished executing. It can also be defined as a means of binding data to a function without passing it as a parameter. +## Nivel 3 +- [ ] **Microservices architecture**: + - Microservices are an architectural approach in which software consists of small independent services that communicate with each other and are organized according to their business domains. + - Learning the concept of planned architecture for microservices + - Performing communication using APIs + - Improving the scalability of a system +- [ ] **Containers**: + - Containers are software packages that contain all the elements needed to run in any environment. + - Kubernetes (also known as k8s or “kube”) is an open source container orchestration platform that automates many of the manual processes involved in deploying, managing, and scaling containerized applications. + - Isolating your software to run independently + - Deploying software in clusters + - Modularizing your system into smaller packages + - Getting to know the Docker platform + - Getting to know Kubernetes +- [ ] **Python - Static typing**: + - Python is a dynamically typed language, that is, there is no need to think about data types. Statically typed languages (such as C or Java) perform type checks upon compilation. It may feel safer, as you can immediately tell the type of parameter going into each function. + - Getting to know type hinting +- [ ] **Python - Generators**: + - Generator functions allow you to declare a function that behaves like an iterator, for example, it can be used in a 'for' loop. + - Creating iterative objects + - Using lazy evaluation + - Running concurrent tasks + - Using the reserved word 'yield' +- [ ] **Python - Asynchronous**: + - In asynchronous programming, the functions are not executed in order. We can interrupt the code to get some other information needed to continue execution. This means that the code waits for another part of the code, and while it waits, it can execute the other parts. + - Learning about coroutines + - Coroutines are a generalization of subroutines. They are used for cooperative multitasking where a process yields control voluntarily, periodically or when idle, in order to allow multiple applications to run simultaneously. + - Dealing with concurrency + - Knowing the concept of waitable objects + - Creating concurrent tasks + - Knowing the 'asyncio' library +- [ ] **Python - args & kwargs**: + - The magic variables *args and **kwargs are commonly used in function definitions, and are used to pass an unknown number of arguments to a function. + - Understanding the difference between *args and **kwargs +- [ ] **Python - Dunder methods**: + - Special methods or magic methods in Python are methods that are predefined in all objects, with automatic invocation under special circumstances. They are usually not called directly by the user but can be overloaded (overwritten and changed). Their names begin and end with double underscores called 'dunder' (an expression derived from double underscore). + - Understanding the concept of special (or magic) methods + - Knowing the main magic methods and how to use them +- [ ] **Python - Metaprogramming**: + - Metaprogramming is a programming technique in which computer programs have the ability to treat other programs as their data. It means that a program can be designed to read, generate, analyze or transform other programs, and even modify itself while running. + - Writing a program that manipulates other programs + - Using metaclasses +- [ ] **Python - Multiprocessing**: + - In Python, the multiprocessing module includes a very simple and intuitive API for dividing up work among multiple processes. + - Running processes in parallel + - Getting to know the Pool class +- [ ] **Reflection and attributes**: + - Reflection objects are used for obtaining type information at runtime. The classes that give access to the metadata of a running program are in the System.Reflection namespace. + - Writing code that reads object information and metadata at runtime + - Getting class names at runtime and creating objects of a class +## Habilidade Auxiliar: Infrastructure +- [ ] **Git & GitHub - Fundamentals**: + - Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. + - GitHub is a hosting service for software development and version control using Git. + - Creating a repository + - Cloning a repository + - Committing, pushing and pulling to and from the repository + - Reversing a commit + - Creating branches and pull requests + - Handling merge and conflicts +- [ ] **HTTP - Fundamentals**: + - HTTP stands for Hyper Text Transfer Protocol. Communication between client computers and web servers is done by sending HTTP Requests and receiving HTTP Responses. + - Understanding the difference between HTTP verbs + - Testing requests and checking the status codes in the browser + - Learning how to make a HTTP request on the command line with WGET + - Downloading an image with WGET + - Performing a POST +- [ ] **JSON**: + - JSON stands for JavaScript Object Notation. It is a text format for storing and transporting data. + - Creating an object + - Transforming an object into a string + - Transforming a string into an object + - Manipulating an object +- [ ] **Command Line - Fundamentals**: + - CLI is a command line program that accepts text input to execute operating system functions. + - Knowing the most important commands +- [ ] **Cloud - Fundamentals**: + - Cloud, or cloud computing, is the distribution of computing services over the Internet using a pay-as-you-go pricing model. A cloud is composed of various computing resources, ranging from the computers themselves (or instances, in cloud terminology) to networks, storage, databases, and everything around them. In other words, everything that is normally needed to set up the equivalent of a server room, or even a complete data center, will be ready to use, configured, and run. + - Knowing the difference between IaaS, PaaS and SaaS + - Knowing the largest cloud providers + - Specializing in a specific provider of your choice +- [ ] **SQL - Fundamentals**: + - Structured Query Language (SQL) is a standardized programming language that is used to manage relational databases and perform various operations on the data in them. + - Knowing the most common SQL commands + - Using SELECT to query a table + - Using INSERT to insert data into a table + - Using UPDATE to update a table + - Using DELETE to remove data from a table + - Using JOIN to connect data from multiple tables + - Knowing the clauses (FROM, ORDER BY, etc.) +## Habilidade Auxiliar: Good practices and tools +- [ ] **SOLID**: + - SOLID has five principles that are considered best practices in software development that help programmers write cleaner code by separating responsibilities, reducing docking, easing refactoring, and encouraging code reuse. +- [ ] **Clean Architecture**: + - Clean architecture is a way of developing software, such that just by looking at the source code of a program, you should be able to tell what the program does. +- [ ] **Design Patterns**: + - In software engineering, a Design Pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is a description or template for how to solve a problem that can be used in many different situations. Design Patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system. + - Getting familiarized with and applying the main Design Patterns + +- [ ] **Data Extraction and Processing**: + - Data extraction is the process of collecting or retrieving disparate types of data from a variety of sources, many of which may be poorly organized or completely unstructured. + - Obtaining the data to be analyzed + - Treating the obtained data, transforming it, changing its structure and values in order to make the database more coherent and ensure that the data to be worked on is in the best conditions to be analyzed + - Using the Pandas and Scikit-learn libraries to treat the data diff --git a/_data/downloadFiles/EN_US/react.md b/_data/downloadFiles/EN_US/react.md index 87c757703..d7e5ee5eb 100644 --- a/_data/downloadFiles/EN_US/react.md +++ b/_data/downloadFiles/EN_US/react.md @@ -1,5 +1,33 @@ # React ## Nivel 1 +- [ ] **HTML - Fundamentals**: + - HTML is a markup language that defines the structure of your content. HTML consists of a series of elements, which you use to make it appear a certain way, or act a certain way. The enclosing tags can make a word or image hyperlink to somewhere else, can italicize words, can make the font bigger or smaller, and so on. + - Learning which tags are required for basic HTML + - Creating a text paragraph + - Displaying an image + - Knowing the difference between 'h1', 'h2', 'h3', etc. + - Creating a hyperlinked text + - Creating a form with relevant fields + - Creating an ordered or unordered list of items + - Creating a list of items within a dropdown list + - Linking to a CSS file + - Creating a table + - Adding IDs and classes +- [ ] **CSS - Fundamentals**: + - Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML. CSS can be used for very basic document text styling — for example, for changing the color and size of headings and links. It can be used to create a layout — for example, turning a single column of text into a layout with a main content area and a sidebar for related information. It can even be used for effects such as animation. + - Learning the visual structure of a page, with 'margin' and 'padding' + - Establishing the size with 'width' and 'height' + - Learning about the position of an element ('static', 'relative' or 'absolute') + - Learning about the display of an element ('block', 'inline', 'inline-block') + - Learning how to position images in relation to text + - Learning about alignment + - Learning about font style + - Learning the differences and advantages of using the different units of measurement in CSS (%, relative, etc) + - Connecting to the elements (IDs, classes) of an HTML file + - Changing the characteristics of an element when the mouse hovers over it + - Learning box-sizing + - Learning Flexbox + - Learning Grid - [ ] **JavaScript - Fundamentals**: - JavaScript is the world's most popular programming language and is one of the core technologies of the World Wide Web, alongside HTML and CSS. It has dynamic typing, prototype-based object-orientation, and first-class functions. It is multi-paradigm, supporting event-driven, functional, and imperative programming styles. - Knowing the primitive types @@ -38,21 +66,6 @@ - Linking to a CSS file - Creating a table - Adding IDs and classes -- [ ] **CSS - Fundamentals**: - - Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML. CSS can be used for very basic document text styling — for example, for changing the color and size of headings and links. It can be used to create a layout — for example, turning a single column of text into a layout with a main content area and a sidebar for related information. It can even be used for effects such as animation. - - Learning the visual structure of a page, with 'margin' and 'padding' - - Establishing the size with 'width' and 'height' - - Learning about the position of an element ('static', 'relative' or 'absolute') - - Learning about the display of an element ('block', 'inline', 'inline-block') - - Learning how to position images in relation to text - - Learning about alignment - - Learning about font style - - Learning the differences and advantages of using the different units of measurement in CSS (%, relative, etc) - - Connecting to the elements (IDs, classes) of an HTML file - - Changing the characteristics of an element when the mouse hovers over it - - Learning box-sizing - - Learning Flexbox - - Learning Grid - [ ] **React - Components**: - React lets you define components as classes or functions. Components defined as classes provide more features. They accept arbitrary inputs (called "props") and return React elements describing what should appear on the screen. - Understanding how components work @@ -88,7 +101,7 @@ - The `useRef` Hook allows you to persist values between renders. - Storing a mutable value that does not cause a re-render when updated - Accessing a DOM element directly -- [ ] **Design System Libraries**: +- [ ] **React - Design System Libraries**: - A design system is a collection of reusable components, guided by clear standards, that can be assembled together to build any number of applications. - [ ] **React Developer Tools**: - React Developer Tools is used to inspect React components, edit props and state, and identify performance problems. @@ -105,7 +118,7 @@ - [ ] **Styled Components**: - Styled-components allow you to write actual CSS code to style your components using tagged template literals and the power of CSS. - Handling CSS code in components -- [ ] **React Webrouting**: +- [ ] **React - Webrouting**: - Manipulating navigation between interfaces and components - [ ] **TypeScript - Fundamentals**: - TypeScript is a strongly typed programming language that builds on JavaScript. diff --git a/_data/downloadFiles/ES/data-science.md b/_data/downloadFiles/ES/data-science.md new file mode 100644 index 000000000..397e57ced --- /dev/null +++ b/_data/downloadFiles/ES/data-science.md @@ -0,0 +1,171 @@ +# Data Science +## Nivel 1 +- [ ] **Ciencia de Datos - Fundamentos**: + - La Ciencia de Datos es el acto de utilizar algoritmos y sistemas para extraer, organizar y analizar datos a partir de diversas fuentes, a fin de detectar patrones y tomar decisiones de negocios. Las áreas de aplicación son infinitas, como en negocios, biología, medicina, ingeniería, etc. + - Conocer el concepto de Explotación de Datos + - Conocer las principales funciones, como 'describe', 'info', etc + - Entender el papel de las visualizaciones como histogramas y boxplots + - Saber qué son las variables categóricas nominales y ordinales + - Explorar los datos en Python con las bibliotecas Pandas, Matplotlib, Seaborn, etc +- [ ] **Feature Engineering**: + - Generar nuevas variables a partir de los datos disponibles + - Transformar datos brutos en características + - Resaltar los problemas de los modelos predictivos + - Mejorar la precisión del modelo para nuevos datos + - Seleccionar y crear Features utilizando las bibliotecas Pandas y Scikit-Learn +- [ ] **Extracción y tratamiento de datos**: + - Obtener los datos que se analizarán + - Tratar los datos obtenidos, transformándolos, alterando su estructura y valores a fin de dejar la base de datos más coherente y garantizar que los datos que serán trabajados estén en las mejores condiciones para ser analizados +- [ ] **Python para Ciencia de Datos - Fundamentos**: + - Python es un lenguaje de programación interpretado de alto nivel y que soporta múltiples paradigmas de programación, como imperativo, orientado a objetos y funcional. Es un lenguaje con tipificación dinámica y administración automática de memoria. + - Aprender lógica de programación en Python + - Aprenda los fundamentos del lenguaje como variables, funciones, listas, condicionales e Imports + - Crear análisis de datos + - Usar Matplotlib para generar gráficos + - Usar y manipular listas para agrupar datos + - Conocer la biblioteca NumPy + - Conocer la biblioteca Pandas +- [ ] **Jupyter y Colab**: + - Jupyter Notebook y Google Colaboratory son portátiles que permiten la creación de bloques de texto y bloques de código + - Los Notebooks facilitan la elaboración de proyectos de Data Science por ser posible visualizar el resultado de la ejecución luego del trecho de código + - Google Colaboratory le permite escribir y ejecutar códigos Python directamente en el navegador, sin ninguna o pocas configuraciones necesarias + - Facilitan el intercambio de proyectos entre el equipo +- [ ] **R para Ciencia de Datos**: + - R es un lenguaje de programación comúnmente usado en estadística computacional y análisis de datos. + - Aprender a analizar, limpiar y ver datos + - Elaborar gráficos + - Unir bases de datos + - Extraer resúmenes estadísticos + - Aprender modelos predictivos en R +- [ ] **Estadísticas y Matemáticas - Fundamentos**: + - Para aprender técnicas de análisis de datos, estadísticas, modelado en la práctica, escalar el crecimiento y brindar nuevas oportunidades, ya sea en la empresa para la que trabaja o en su propio negocio. + - En esta formacion aprendera utilizando el lenguaje Python y varias bibliotecas y herramientas específicas para estadísticas. + - Comprenderás cómo crear hipótesis y validarlas. De esta forma, podrá justificar los análisis realizados y mostrar a la empresa la importancia del papel del conocimiento en la estadística. +- [ ] **Visualización de Datos**: + - La visualización de datos es una expresión contemporánea de la comunicación visual que consiste en la representación visual de datos. + - Mapear datos abstractos en representaciones visuales + - Representar visualmente los datos que están presentes en nuestro mundo real +## Nivel 2 +- [ ] **Machine Learning - Fundamentos**: + - El Aprendizaje automático o Machine Learning es un subcampo de la Ingeniería y de la Ciencia de la Computación que evolucionó del estudio de reconocimiento de patrones y de la teoría del aprendizaje computacional en inteligencia artificial. + - Aprendizaje supervisado + - Utilizar algoritmos de clasificación + - Usar algoritmos de regresión + - Utilizar Scikit-Learn para crear modelos de machine Learning +- [ ] **Machine Learning - Aprendizaje no supervisado**: + - El clustering o análisis de agrupación de datos es el conjunto de técnicas de prospección de datos (data Mining) que tiene como objetivo hacer agrupaciones automáticas de datos según su grado de similitud. + - Conocer el análisis exploratorio + - Utilizar los métodos K-Means, DBSCAN y Mean shift para agrupar datos sin clasificación + - Evaluar la calidad de una Clusterización + - Parametrizar métodos de Clusterización a través del máximo coeficiente de silueta + - Entender las matemáticas detrás de las métricas de validación Silhouette, Davies Bouldin y Calinski Harabasz + - Conocer técnicas de reducción de dimensionalidad +- [ ] **Machine Learning - Evaluación de Modelos**: + - El uso de métricas de evaluación nos ayuda a identificar si un modelo entrenado tendrá un buen desempeño de predicción cuando se expone a nuevos conjuntos de datos. + - Conocer diferentes estrategias de evaluación y optimización de modelos + - Utilizar una canalización para entrenamiento y validación + - Métricas de evaluación de modelos de machine Learning +- [ ] **SQL - Fundamentos**: + - Conocer los comandos más comunes de SQL + - Usar SELECT para consultar una tabla + - Usar INSERT para insertar datos en una tabla + - Usar UPDATE para actualizar una tabla + - Usar DELETE para eliminar datos de una tabla + - Usar JOIN para conectar los datos de múltiples tablas + - Conocer las cláusulas (FROM, ORDER BY, etc.) +- [ ] **Web Scraping**: + - Web scraping o raspado de datos en la web es la extracción de datos de sitios web. + - Usar BeautifulSoup y Python para recopilar datos + - Buscar y navegar por HTML + - Acceder al contenido y atributos de las etiquetas HTML + - Construir conjuntos de datos con los resultados de los raspados +- [ ] **Pruebas Estadísticas**: + - Crear intervalos de confianza para muestras + - Comparar grupos de muestras + - Realizar pruebas estadísticas + - Planificar experimentos para la recopilación de datos + - Proponer modelos matemáticos para entender un problema dado + - Construir mapas de colores para ayudar a la interpretación de los datos +## Nivel 3 +- [ ] **Aprendizaje Profundo**: + - Deep Learning (o Aprendizaje Profundo) es una rama de Machine Learning basada en un conjunto de algoritmos que intentan modelar abstracciones de alto nivel de datos usando un grafo profundo con múltiples capas de procesamiento, compuestas de varias transformaciones lineales y no lineales. + - Construir y entrenar modelos con Keras + - Seleccionar las capas de una plantilla + - Clasificar imágenes + - Entender los conceptos de pesos y sesgos + - Redes neuronales para regresión +- [ ] **Aprendizaje por Refuerzo**: + - El Aprendizaje por Refuerzo es un área de Machine Learning que se preocupa con la forma como agentes inteligentes deben tomar medidas en un ambiente, a fin de maximizar la noción de recompensa acumulativa. + - Entender los conceptos de agente y recompensa + - Entender la diferencia entre refuerzo positivo y negativo + - Conocer el modelo Markov Decision Process + - Entender el concepto de Retorno + - Utilizar el algoritmo Q-Learning +- [ ] **Visión Computacional**: + - Visión Computacional es un campo científico interdisciplinario que se ocupa de cómo las computadoras pueden obtener conocimientos de alto nivel a partir de imágenes o videos digitales. Desde la perspectiva de la ingeniería, busca comprender y automatizar tareas que el sistema visual humano puede hacer. + - Extraer regiones de interés de una imagen + - Normalizar y procesar los datos de las imágenes + - Construir clasificadores de reconocimiento facial + - Extraer regiones del rostro humano basado en hitos faciales + - Analizar diferentes condiciones de cada componente del rostro humano +- [ ] **Procesamiento de Lenguaje Natural**: + - Procesamiento de la lengua natural (PLN) es un subárea de la inteligencia artificial y la lingüística que estudia los problemas de la generación y la comprensión automática de las lenguas humanas naturales. + - Análisis de Sentimiento + - Crear vistas para facilitar el análisis de datos textuales + - Conocer las bibliotecas NLTK y Scikit-Learn + - Normalizar textos + - Usar TF-IDF y Ngrams para mejorar la clasificación + - Uso de SKlearn + - Utilizar Regex en PLN + - Conocer Word2Vec + - Combinar vectores de palabras para representar textos y clasificarlos +## Habilidade Auxiliar: Cloud, Big Data y Sistemas +- [ ] **Big Data e Ingeniería de Datos - Fundamentos**: + - Big data es el área del conocimiento que estudia cómo tratar, analizar y obtener información a partir de conjuntos de datos demasiado grandes para ser analizados por sistemas tradicionales. + - La ingeniería de datos implica el desarrollo y organización de procesos para la recopilación, almacenamiento y transformación de datos a gran escala. + - Crear una canalización de datos + - Conocer el Apache Airflow + - Conocer el Apache Spark + - Conocer el concepto de Data Lake + - Interactuar con servidores en la nube + - Crear aplicaciones de Spark +- [ ] **Cloud - Fundamentos**: + - Cloud, o computación en la nube es la distribución de servicios informáticos a través de Internet utilizando un modelo de precio pagado según el uso. Una nube se compone de varios recursos de computación, que abarcan desde los propios ordenadores (o instancias, en la terminología de nube) hasta redes, almacenamiento, bases de datos y lo que está alrededor de ellos. Es decir, todo lo que normalmente se necesita para montar el equivalente a una sala de servidores, o incluso un centro de datos completo, estará listo para ser utilizado, configurado y ejecutado. + - Conocer a los mayores proveedores de cloud + - Especializarse en algún proveedor +- [ ] **Git y GitHub - Fundamentos**: + - Git es un sistema de control de versiones distribuido gratuito y de código abierto diseñado para manejar todo, desde proyectos pequeños a proyectos muy grandes con velocidad y eficiencia. + - GitHub es un servicio de hosting para el desarrollo de software y control de versiones utilizando Git. + - Crear un repositorio + - Clonar un repositorio + - Commit, push y pull desde y hacia el repositorio + - Revertir una confirmación de cambios + - Crear ramas y requests Pul + - Lidiar con la fusión y los conflictos +- [ ] **Linux - Fundamentos**: + - Linux es un término popularmente empleado para referirse a sistemas operativos que utilizan el Kernel - Linux. - Las distribuciones incluyen el kernel de Linux, además de software de sistema y bibliotecas. + - Conocer el sistema de directorios de Linux + - Comprimir y descomprimir archivos + - Administrar los procesos que se ejecutan en la máquina + - Conocer las variables de entorno y el PATH + - Administrar paquetes + - Realizar comunicación remota con SSH y SCP +## Habilidade Auxiliar: Business +- [ ] **Gestión de Procesos de Negocio**: + - La Gestión de Procesos de Negocios (BPM) es la disciplina que utiliza varios métodos para descubrir, modelar, analizar, medir, mejorar, optimizar y automatizar procesos de negocios. +- [ ] **Business Intelligence (BI) - Fundamentos**: + - Business Intelligence es un conjunto de teorías, metodologías, procesos y tecnologías que posibilitan la transformación de los datos "crudos" en informaciones extremadamente relevantes para la toma de decisiones de una empresa. + - Conocer el proceso de ETL + - Realizar el modelado y estructuración de tablas en un almacén de datos + - Crear vistas que tengan sentido + - Cómo conocer PowerBI +- [ ] **Storytelling con datos**: + - Utilizar algoritmos y sistemas para extraer, organizar y analizar datos de diversas fuentes con el fin de detectar patrones y tomar decisiones comerciales + - Las áreas de aplicación son infinitas, como en negocios, biología, medicina, ingeniería, etc. +- [ ] **Excel**: + - Microsoft Excel es un editor de hojas de cálculo producido por Microsoft con herramientas de cálculo y de construcción de tablas. + - Realizar las operaciones matemáticas básicas con sus operadores (suma, resta, multiplicación y división). + - Conocer las principales fórmulas, como 'MEDIA' (AVERAGE), 'ARRED' (ROUND), 'MÁXIMO' (MAX), 'MÍNIMO' (MIN), etc. + - Realizar búsquedas en columnas con la función 'PROCV'. +- [ ] **Habilidades de Comunicación**: + - Un buen nivel de comunicación facilita el logro de objetivos, resolución de problemas, además de aumentar la productividad, porque cada profesional sabrá exactamente lo que se espera de él y transmitir con claridad sus ideas. diff --git a/_data/downloadFiles/ES/react.md b/_data/downloadFiles/ES/react.md index d629d71fd..c9d70ff97 100644 --- a/_data/downloadFiles/ES/react.md +++ b/_data/downloadFiles/ES/react.md @@ -1,56 +1,220 @@ -# Front-end ReactJS +# React ## Nivel 1 - - - - - - - +- [ ] **Javascript - Fundamentos**: + - Javascript es el lenguaje de programación más popular del mundo y es una de las tecnologías centrales de la World Wide Web, junto con HTML y CSS. Tiene escritura dinámica, orientación a objetos basada en prototipos y funciones de primera clase. Es un paradigma múltiple que admite estilos de programación imperativos, funcionales e impulsados por eventos. + - Declarar variables, considerando la diferencia entre 'var', 'let' y 'const + - Uso de estructuras condicionales ('if', 'else') + - Conocer los operadores de comparación ('=', '==', '===') + - Uso de estructuras de repetición y bucles ('while', 'for') + - Usar funciones, pasar parámetros y argumentos + - Manipulación de arreglos y listas + - Obtener datos de una API + - Hacer llamadas asincrónicas usando 'Async/Await', 'Promise', etc. +- [ ] **DOM - Fundamentals**: + - El Document Object Model (DOM) es una interfaz de programación para documentos de la web. Representa la página para que los programas puedan cambiar la estructura, el estilo y el contenido del documento. El DOM representa el documento como nosotros y objetos; de esa forma, los lenguajes de programación pueden interactuar con la página. + - Entender cómo funciona el árbol DOM + - Accesando y manipulando elementos HTML y CSS + - Acceder a los padres e hijos de un elemento + - Insertar un nuevo elemento en el árbol + - Quitar un elemento del árbol + - Esperando un evento en un elemento determinado de la página usando +- [ ] **Conceptos de SPA**: + - A single-page application o SPA es una aplicación web de una sola página o sitio, que interactúa con el usuario reescribiendo dinámicamente la página web actual con nuevos datos del servidor web, en lugar del método por defecto de un navegador web que carga páginas nuevas enteras. El objetivo es conseguir transiciones más rápidas que hagan que el sitio web parezca más una aplicación nativa. + - Entender qué es una SPA + - Establecer rutas a otras páginas + - Conocer los frameworks SPA + - Comunicarse con APIs +- [ ] **HTML - Fundamentos**: + - HTML es un lenguaje de marcado que define la estructura de su contenido. HTML consta de una serie de elementos que se utilizan para que se vea o actúe de cierta manera. Las etiquetas de archivos adjuntos pueden vincular una palabra o imagen a otro lugar, pueden poner palabras en cursiva, pueden hacer que la fuente sea más grande o más pequeña, etc. + - Aprender qué etiquetas son necesarias para HTML básico + - Crear de un párrafo de texto + - Mostrar una imagen + - Conocer la diferencia entre 'h1', 'h2', 'h3', etc. + - Crear de un texto con hipervínculo + - Crear un formulario con campos relevantes + - Crear de una lista ordenada o desordenada de elementos + - Crear de una lista de elementos en una lista desplegable + - Vincular a un archivo CSS + - Crear una tabla + - Adicionar ID y clases +- [ ] **CSS - Fundamentos**: + - Las hojas de estilo en cascada (CSS) son un lenguaje de hoja de estilo usado para descubrir una presentación de un documento escrito en un lenguaje de marca, como HTML o XML. O CSS puede ser usado para estilizar textos de documentos muy básicos — por ejemplo, para alterar a cor e o tamanho de cabeçalhos e links. Ele pode ser usado para criar um layout — por ejemplo, transformando uma única columna de texto en um layout com uma área de conteúdo principal e uma barra lateral para información relacionada. Pode até ser usado para efectos como animação. + - Aprender a estructura visual de uma página, con 'margem' e 'preenchimento' + - Estabelecer o tamanho com 'larga' e 'altura' + - Aprender sobre la posición de un elemento ('estático', 'relativo' o 'absoluto') + - Aprender sobre la exposición de un elemento ('block', 'inline', 'inline-block') + - Aprender a posicionar imágenes en relación con el texto + - Aprender sobre alinhamento + - Aprender sobre estilo de fuente + - Aprender las diferencias y ventajas de usar las diferentes unidades de medida en CSS (%, relativo, etc.) + - Conectar-se a los elementos (IDs, clases) de un archivo HTML + - Cambiar las características de un elemento cuando se pasa el ratón sobre él + - Aprender a dimensionar cajas + - Aprender Flexbox + - Grado de aprendizaje +- [ ] **React - Componentes**: + - React te permite definir componentes como clases o funciones. Los componentes definidos como clases proporcionan más capacidades. Aceptan entradas arbitrarias (llamadas "accesorios") y devuelven elementos React que describen lo que debería aparecer en la pantalla. + - Comprender cómo funcionan los componentes + - Conociendo la biblioteca de componentes con estilo + - Comprender la diferencia entre clase y componentes funcionales +- [ ] **React - Props**: + - Props son objetos que se inyecta en los componentes y proporciona algunos datos que se pueden compartir entre otros componentes en un flujo de datos unidireccional desde un elemento principal a un elemento secundario. + - Las Props son de solo lectura. + - accesorios de paso + - manipulación de accesorios - [ ] **React Hooks - State**: - - Controlar o estado de componentes - - Manipular variáveis - - Atualizar o valor de elementos - - + - Controlar el estado de los componentes. + - Manipular variables + - Actualizar el valor de los elementos. +- [ ] **Create React App**: + - Create React App es una forma oficialmente admitida de crear aplicaciones React de una sola página. Ofrece una configuración de construcción moderna sin configuración. + - Estructuración de un nuevo proyecto React + - Crear una aplicación funcional desde cero +- [ ] **React Hooks - UseEffect**: + - UseEffect() es un React Hook que le permite manejar los efectos secundarios en sus componentes funcionales de React. + - Ejecutar un componente solo después de renderizar + - Acceso a los accesorios de un elemento + - API de llamadas ## Nivel 2 - - - - - - - - - - - - - - - - - +- [ ] **React Hooks - UseMemo**: + - El React Hook `useMemo` devuelve un valor memorizado. `useMemo` solo volverá a calcular el valor memorizado cuando una de las dependencias haya cambiado. + - Controlar el estado de las variables externas + - Evitar cálculos costosos en cada render +- [ ] **React Hooks - UseCallback**: + - El Hook `useCallback` de React devuelve una función Callback memorizada. + - Aislamiento de funciones intensivas en recursos para que no se ejecuten automáticamente en cada elemento renderizado +- [ ] **React Hooks - Ref.**: + - El Hook `useRef` te permite persistir valores entre renderizaciones. + - Almacenar un valor mutable que no provoca una nueva representación cuando se actualiza + - Acceder a un elemento DOM directamente +- [ ] **React - Bibliotecas del sistema de diseño**: + - Un sistema de diseño es una colección de componentes reutilizables, guiados por estándares claros, que se pueden ensamblar para construir cualquier cantidad de aplicaciones. +- [ ] **Herramientas de desarrollo de React**: + - React Developer Tools se utiliza para inspeccionar los componentes de React, editar accesorios y estados e identificar problemas de rendimiento. + - Depuración de aplicaciones +- [ ] **Versiones semánticas de front-end**: + - SemVer (Semantic Versioning) es un conjunto simple de reglas y requisitos que dictan cómo se asignan e incrementan los números de versión. + - Organización de las dependencias de un proyecto + - Evitar el "infierno de la dependencia" +- [ ] **CSS-in-JS**: + - CSS-in-JS se refiere a un patrón en el que CSS se compone utilizando JavaScript en lugar de definirse en archivos externos. + - Manejar de código CSS usando JavaScript + - Usar componentes con estilo + - Conocer Styled-JSX +- [ ] **Styled Components**: + - Styled Components le permiten escribir código CSS real para diseñar sus componentes usando literales de plantilla etiquetados y el poder de CSS. + - Manejo de código CSS en componentes +- [ ] **React Router**: + - Manipulación de la navegación entre interfaces y componentes +- [ ] **TypeScript - Fundamentos**: + - TypeScript es un lenguaje de programación fuertemente tipado que se basa en JavaScript. + - Comprender en profundidad qué son los tipos y la importancia de la programación tipificada + - Aprender qué es TypeScript, por qué se creó, cómo funciona y su relación con JavaScript + - Conocer las herramientas de TypeScript (integración con el editor de código, verificador estático y compilador) + - Escribir código en TypeScript usando sus herramientas (interfaces, enumeración, decoradores, etc.) +- [ ] **YARN**: + - Yarn es un administrador de paquetes para su código. Le permite usar y compartir código con otros desarrolladores. El código se comparte a través de algo llamado paquete (a veces denominado módulo). Un paquete contiene todo el código que se comparte, así como un archivo package.json que O describe. + - Administrar paquetes + - Administrar dependencias + - Instalar paquetes sin conexión + - Comandos + - El archivo yarn.lock +- [ ] **Biblioteca de pruebas de reacción**: + - React Testing Library se basa en DOM Testing Library al agregar API para trabajar con componentes React. Es un conjunto de ayudantes que le permiten probar los componentes de React sin depender de los detalles de su implementación. + - Probando los componentes de React +- [ ] **Jest**: + - Jest es un corredor de pruebas de JavaScript que le permite acceder al DOM a través de jsdom. Proporciona una gran velocidad de iteración combinada con funciones potentes como módulos de simulación y temporizadores para que pueda tener más control sobre cómo se ejecuta el código. + - Componentes de prueba +- [ ] **Cypress**: + - Cypress es una herramienta de prueba Front-end que permite configurar, escribir, ejecutar y depurar pruebas. +- [ ] **JavaScript- Callbacks y Promises**: + - Una Promesa (Promises) es un proxy de un valor que no necesariamente se conoce cuando se crea la promesa. Esto permite que los métodos asíncronos devuelvan valores como los métodos síncronos- en lugar de devolver inmediatamente el valor final, el método asíncrono devuelve la promesa de proporcionar el valor en algún momento en el futuro. + - Una función de devolución de llamada (Callback) es una función que se pasa a otra función como argumento, que luego se invoca dentro de la función externa para completar algún tipo de rutina o acción. + - Una función asíncrona es una función declarada con la palabra clave asíncrona y la palabra clave espera está permitida dentro de ella. Las palabras clave async y await permiten que el comportamiento asincrónico basado en promesas se escriba en un estilo más claro, lo que evita la necesidad de configurar explícitamente cadenas de promesas. + - Comprender el concepto de programación asíncrona + - Escribir código asíncrono entendiendo el concepto de promesas en JavaScript + - Usar métodos, palabras clave y objetos de JavaScript para manejar promesas como 'Async/Await', '.then()', 'Promise', etc. + - Aprender en qué situaciones necesitas usar la programación asíncrona + - Llamar a las API con `fetch()` +- [ ] **JavaScript - Manejo de errores**: + - El manejo de errores se refiere a los procedimientos de respuesta y recuperación de las condiciones de error presentes en una aplicación de software. En otras palabras, es el proceso compuesto por la anticipación, detección y resolución de errores de aplicación, programación o comunicación. + - Conocer y manejar las excepciones más comunes + - Conocer los tipos de errores y en qué situaciones se pueden producir + - Comprender cómo Node.js maneja los errores + - Usar 'try' y 'catch' para el manejo de errores + - Aprender en qué ocasiones y cómo usar `throw` + - Creación de excepciones específicas según las necesidades de su aplicación +- [ ] **Babel - Fundamentos**: + - Babel es un compilador de JavaScript. Es una cadena de herramientas que se utiliza principalmente para convertir el código ECMAScript 2015+ en una versión de JavaScript compatible con versiones anteriores en navegadores o entornos actuales y anteriores. ## Nivel 3 - - - - - - - - - -## Habilidade Auxiliar: Infraestrutura e Back-end - - - - - - -## Habilidade Auxiliar: UX e Design - - - - - +- [ ] **Lotería**: + - Lottie es una biblioteca que analiza las animaciones de Adobe After Effects exportadas como json con Bodymovin y las renderiza de forma nativa en dispositivos móviles y en la web. +- [ ] **Movimiento del enmarcador**: + - Framer Motion es una biblioteca de movimiento lista para producción para React de Framer. + - Creando animaciones +- [ ] **Service Workers**: + - Los Service Workers actúan esencialmente como servidores proxy que se ubican entre las aplicaciones web, el navegador y la red (cuando está disponible). Están destinados, entre otras cosas, a permitir la creación de experiencias fuera de línea efectivas, interceptar solicitudes de red y tomar las medidas adecuadas en función de si la red está disponible y actualizar los activos que residen en el servidor. También permitirán el acceso a notificaciones push y API de sincronización en segundo plano. +- [ ] **React Hook Form**: + - React Hooks Form es una biblioteca que proporciona validación de formularios. +- [ ] **Lodash**: + - Lodash es una moderna biblioteca de utilidades de JavaScript que ofrece modularidad, rendimiento y extras. Los métodos modulares de Lodash son excelentes para iterar arreglos, objetos y cadenas; manipular y probar valores; y la creación de funciones compuestas. +- [ ] **GraphQL**: + - GraphQL es un nuevo estándar API que proporciona una alternativa más eficiente, potente y flexible a REST. Fue desarrollado y de código abierto por Facebook y ahora lo mantiene una gran comunidad de empresas e individuos de todo el mundo. + - Comprender cómo se utiliza GraphQL en el desarrollo de API + - Creación de API utilizando bibliotecas y marcos GraphQL +- [ ] **Apollo Client**: + - Apollo Client es una biblioteca integral de administración de estado para JavaScript que le permite administrar datos locales y remotos con GraphQL. +- [ ] **Redux Saga**: + - Redux Saga es una biblioteca que tiene como objetivo hacer que los efectos secundarios de la aplicación (es decir, cosas asincrónicas como la obtención de datos y cosas impuras como acceder al caché del navegador) sean más fáciles de administrar, más eficientes de ejecutar, fáciles de probar y mejores en el manejo de fallas. +- [ ] **SiguienteJS - Fundamentos**: + - Next.js es un marco de desarrollo web de código abierto creado por Vercel que permite aplicaciones web basadas en React con representación del lado del servidor y generación de sitios web estáticos. + - Creación de interfaces web + - Disminución de los tiempos de carga de la página + - Representación de páginas del lado del servidor + - Mejorando el rendimiento en React + - Creación de rutas API con funciones sin servicio +## Habilidade Auxiliar: Infraestructura y Back-end +- [ ] **Git y GitHub - Fundamentos**: + - Git es un sistema de control de versiones distribuido gratuito y de código abierto diseñado para manejar todo, desde proyectos pequeños hasta proyectos muy grandes, con rapidez y eficiencia. + - GitHub es un servicio de alojamiento para el desarrollo de software y el control de versiones mediante Git. + - Crear un repositorio + - Clonar un repositorio + - Comprometerse, empujar y tirar hacia y desde el repositorio + - Revertir un compromiso + - Crear de ramas y solicitudes de extracción + - Manejar fusiones y conflictos +- [ ] **HTTP - Fundamentos**: + - HTTP significa Protocolo de transferencia de hipertexto. La comunicación entre las computadoras cliente y los servidores web se realiza mediante el envío de solicitudes HTTP y la recepción de respuestas HTTP. + - Comprender la diferencia entre los verbos HTTP + - Probar solicitudes y verificar los códigos de estado en el navegador + - Aprendiendo a hacer una solicitud HTTP en la línea de comando con WGET + - Descargar una imagen con WGET + - Realización de una POST +- [ ] **JSON**: + - JSON significa Notación de objetos de JavaScript. Es un formato de texto para almacenar y transportar datos. + - Crear un objeto + - Transformar un objeto en una cadena + - Transformar una cadena en un objeto + - Manipular un objeto +- [ ] **Línea de Comando - Fundamentos**: + - CLI es un programa de línea de comandos que acepta la entrada de texto para ejecutar funciones del sistema operativo. + - Conocer los comandos más importantes +- [ ] **Babel - Fundamentos**: + - Babel es un compilador de JavaScript. Es una cadena de herramientas que se utiliza principalmente para convertir el código ECMAScript 2015+ en una versión de JavaScript compatible con versiones anteriores en navegadores o entornos actuales y anteriores. +- [ ] **Cloud - Fundamentos**: + - La computación en nube, o cloud computing, es la distribución de servicios informáticos a través de Internet mediante un modelo de tarificación de pago por uso. Una nube se compone de varios recursos informatizados, desde los propios ordenadores (o instancias, en terminología de nube) hasta las redes, el almacenamiento, las bases de datos y todo lo que les rodea. En otras palabras, todo lo que normalmente se necesita para montar el equivalente a una sala de servidores, o incluso un centro de datos completo, estará listo para usar, configurar y ejecutar. + - Conocer la diferencia entre IaaS, PaaS y SaaS + - Conocer los mayores proveedores de nube + - Especializarse en un proveedor específico de su preferencia +## Habilidade Auxiliar: UX y Design +- [ ] **Sistemas de Diseño**: + - Un sistema de diseño es una colección de componentes reutilizables, guiados por estándares claros, que se pueden ensamblar para crear aplicaciones. + - Creación y mantenimiento de bibliotecas que se consumirán y utilizarán como estándar para construir un proyecto. +- [ ] **Figma - Fundamentos**: + - Figma es una aplicación web colaborativa para el diseño de interfaces. El conjunto de funciones de Figma se centra en la interfaz de usuario y el diseño de la experiencia del usuario, con énfasis en la colaboración en tiempo real, utilizando una variedad de herramientas de creación de prototipos y editor de gráficos vectoriales. + - Crear diseños de página y componentes + +- [ ] **Sistemas de color**: + - Definición de una paleta de colores que tenga sentido para una interfaz dada +- [ ] **Cómo usar fuentes**: + - Elegir la fuente más adecuada para un proyecto determinado diff --git a/_data/downloadFiles/PT_BR/android.md b/_data/downloadFiles/PT_BR/android.md index 7ce140194..bb1f8f9c6 100644 --- a/_data/downloadFiles/PT_BR/android.md +++ b/_data/downloadFiles/PT_BR/android.md @@ -1,12 +1,12 @@ # Android -## Nível 1 +## Nivel 1 - [ ] **Kotlin - Fundamentos**: - A linguagem Kotlin cada vez mais cresce no mercado, seja pela adoção no ambiente Android, como também, na presença em outras plataformas. Muitas pessoas e empresas cada vez mais estão interessadas em desenvolver produtos em Kotlin, ou seja, é muito importante conhecer os fundamentos e técnicas específicas que a linguagem provê - Entender a sua sintaxe - Conhecer os tipos primitivos - Declarar e usar variáveis e constantes - Usar estruturas condicionais (if, else) - - Usar estruturas de repetição e laços ('while', 'for') + - Usar estruturas de repetição e laços (while, for) - Usar funções, passando parâmetros e argumentos - Implementando métodos e reutilizando eles - Null Safety (Elimine o perigo de referências nulas) @@ -64,7 +64,7 @@ - [ ] **Android - Jetpack Compose Fundamentos**: - O Jetpack Compose é uma ferramenta que trás a proposta de criar interfaces nativas Android com menos código, mais rápido e deixa seus apps mais bonitos, ele faz isso através da abordagem declarativa. - Criar um app Android do zero utilizando o Jetpack Compose. - - Construção de Layouts a partir de Composables. + - Construção de Layouts apartir de composables. - Pré-visualizações de Composables. - Gerenciamento de estados, eventos, composição e recomposição. - Configurar o compose em um projeto já existente e aplicar a interoperabilidade. @@ -84,10 +84,10 @@ - [ ] **Android - Carregamento de Imagem**: - As imagens vem em tamanhos e formas diferentes. Na maioria dos casos, elas são maiores do que o necessário para a Interface de usuário (UI) de um app. Dado que estamos trabalhando com memória limitada, no Android é usada uma técnica de decodificação de bitmaps, para evitar todo o trabalho de utilizar isso, temos diversas bibliotecas que facilitam esse processo. - O que é Bitmap - - Conhecer as bibliotecas de carregamento de imagens (Glide, Picasso, Coil, entre outras) + - Conhecer as bibliotecas de carregamento de imagens (Glide, Picasso, Coil, entre oturas) - Usar essas bibliotecas - Vantagens e desvantagens de cada uma -## Nível 2 +## Nivel 2 - [ ] **Android - Permissões**: - As permissões do app ajudam a apoiar a privacidade do usuário protegendo dados restritos, como estados do sistema e os dados de contatos dos usuários, há também as ações restritas, como a conexão a um dispositivo pareado e a gravação de áudio ou uso de câmera. - O que são permissões @@ -103,13 +103,13 @@ - [ ] **Kotlin - APIs**: - Realizar requisições HTTP para se comunicar com serviços online, como REST API é fundamental na maioria dos Apps Android. Sendo assim, é importante conhecer as principais ferramentas e técnicas necessárias para esse tipo de funcionalidade. - Conhecer bibliotecas famosas no mundo Android para realizar requisições - Retrofit, Ktor ou Volley. - - Configurar as requisições para executarem de maneira assíncrona. + - Configurar as requisições para executararem de maneira assíncrona. - Converter objetos para JSON e vice-versa. - [ ] **Android - Recursos do sistema**: - - Os smartphones que estão sob a plataforma Android, na sua grande maioria possuem diversos recursos específicos do Sistema, tais como Câmeras, Sensores, GPS, entre outros. + - Os smartphones que estão sob a plataforma Android, na sua grande maioria possuem diversos recursos específicos do sistema, tais como câmeras, sensores, gps, entre outros. - Aprenda quais são e como utilizar esses recursos. - [ ] **Android - Injeção de dependências**: - - Ao escrever códigos em projetos Android é muito que uma funcionalidade utilize códigos de bibliotecas, como o Room para salvar dados ou o Retrofit para fazer requisições para REST API. Essas bibliotecas são conhecidas como dependências dos nossos códigos, justamente pela necessidade para realizar a ação esperada. Usar essas bibliotecas com facilidade em qualquer parte do App pode ter os seus desafios, como oferecer instâncias únicas e realizar toda a configuração necessária para o funcionamento correto. Para isso, utilizamos ferramentas de injeção de dependência que facilitam o nosso trabalho. + - Ao escrever códigos em projetos Android é muito que uma funcionalidade utilize códigos de bibliotecas, como o Room para salvar dados ou o Retrofit para fazer requisições para REST API. Essas bibliteocas são conhecidas como dependências dos nossos códigos, justamente pela necessidade para realizar a ação esperada. Usar essas bibliteocas com facilidade em qualquer parte do App pode ter os seus desafios, como oferecer instâncias únicas e realizar toda a configuração necessária para o funcionamento correto. Para isso, utilizamos ferramentas de injeção de dependência que facilitam o nosso trabalho. - Saber usar a técnica de injeção de dependência e uma das ferramentas comuns no Android - Hilt, Dagger ou Koin - [ ] **Android - Testes automatizados**: - Ao escrever um App Android, precisamos garantir ao máximo que o App funciona como esperado. Para evitar os bugs, utilizamos testes automatizados que se responsabilizam em realizar as ações esperadas e conferir se o App apresenta os comportamentos esperados. @@ -117,9 +117,9 @@ - Implementar cada tipo de teste para garantir o comportamento esperado - unidade, integração e instrumental. - Utilizar Mocks para facilitar a implementação de testes com dependências - Implementação de testes com ferramentas de Injeção de dependência - Hilt -## Nível 3 +## Nivel 3 - [ ] **Android - Arquitetura**: - - O guia de arquitetura android aborda práticas e a arquitetura recomendada para a criação de apps robustos com alta qualidade de produção. Organizar sua base de código em partes contidas e acopladas com flexibilidade (Modularização). + - O guia de arquitetura android aborda práticas e a arquitetura recomendada para a criação de apps robustos com alta qualidade de produção. Organizar sua base de código em partes contidas e acopladas com flexibilidade (Modularização). - O que é e para que serve o MVVM (Model-View-ViewModel)? - Camadas de IU, dados e domínios. - Fluxo de dados dentro do app. @@ -135,7 +135,7 @@ - Os requisitos são classificados como - Experiência visual, Funcionalidade, Desempenho e estabilidade, Privacidade e segurança, Google Play e Procedimento de teste - Cumprir todos os requisitos, ou quase todos, significa que o App possui uma maior qualidade para os usuários. - [ ] **Android - Entrega e integração contínua**: - - Ao implementar novas funcionalidades do App, precisamos garantir que todas as entregas irão funcionar corretamente. Para isso, podemos utilizar técnicas de integração e entrega contínua, dessa forma, agilizamos a evolução do App e tentamos garantir os comportamentos esperados ao mesmo tempo. + - Ao implementar novas funcionalidades do App, precisamos garantir que todas as entregas irão funcionar corretamente. Para isso, podemos utilizar técnicas de integração e entrega contínua, dessa forma, agilizamos a evolução do App e tentamos garantir os compormentos esperados ao mesmo tempo. - Conhecer uma das ferramentas para fazer a entrega contínua, Firebase Test Lab, Jenkins, GitHub Actions etc - [ ] **Android - Otimização do App**: - Ao gerar um App, existem alguns detalhes de otimização para torná-lo rápido, menor e otimizado, como por exemplo, a remoção de código desnecessário, a ofuscação que reduz o nome dos códigos e a otimização que aplica estratégias mais agressivas para reduzir mais ainda o App @@ -156,7 +156,7 @@ - Obter dados de uma API - Fazer chamadas assíncronas 'Future', etc - Criar construtores -- [ ] **Android - Depuração**: +- [ ] **Android - Depuração**: - Durante o desenvolvimento de um App, é bastante comum a presença de bugs inesperados, como também, a falta de compreensão do motivo do bug. Para agilizar a analise e investigação de problemas ou comportamentos inesperados no App, precisamos aprender a depurar ou debuggar um App Android. - Saber como executar um App em depuração no Android Studio - Aprender a ativar a depuração em dispositivos físicos @@ -164,8 +164,8 @@ - Analisar stack track - Inspecionar o Layout, recursos do sistema como processador, memória e rede - Depurar o banco de dados do App e arquivos APKs pré-compilados - - Analisar o Build com o analisador de APK -## Habilidade Auxiliar: Infraestrutura e boas práticas + - Analisar o build com o analizador de APK +## Habilidade Auxiliar: Infraestrutura e boas práticas - [ ] **Git e GitHub - Fundamentos**: - Git é um sistema de controle de versão distribuído gratuito e de código aberto projetado para lidar com tudo, desde projetos pequenos a muito grandes com velocidade e eficiência. - GitHub é um serviço de hospedagem para desenvolvimento de software e controle de versão usando Git. @@ -173,7 +173,7 @@ - Clonar um repositório - Fazer commit, push e pull de e para o repositório - Reverter um commit - - Criar branches e pull requests + - Criar branches e pul requests - Lidar com merge e conflitos - [ ] **HTTP - Fundamentos**: - HTTP significa Hyper Text Transfer Protocol. A comunicação entre computadores cliente e servidores web é feita enviando solicitações HTTP e recebendo respostas HTTP. @@ -181,7 +181,7 @@ - Testar os requests e ver os status codes no navegador - Saber fazer uma requisição HTTP na linha de comando com WGET - Baixar uma imagem com WGET - - Fazer um Post + - Fazer um post - [ ] **JSON**: - JSON significa JavaScript Object Notation (notação de objeto JavaScript). É um formato de texto para armazenar e transmitir dados. - Criar um objeto @@ -230,6 +230,6 @@ - Aumentar a visibilidade do texto. - Usar controles grandes e simples. - Descrever cada elemento de IU. -- [ ] **Figma - Fundamentos** +- [ ] **Figma - Fundamentos**: - Figma é uma aplicação web colaborativa para design de interfaces. O conjunto de recursos do Figma se concentra na interface do usuário e no design da experiência do usuário, com ênfase na colaboração em tempo real, utilizando uma variedade de editores de gráficos vetoriais e ferramentas de prototipagem. - Criar layouts de páginas e componentes diff --git a/_data/downloadFiles/PT_BR/angular.md b/_data/downloadFiles/PT_BR/angular.md index 9822bc9a3..f1c3717f1 100644 --- a/_data/downloadFiles/PT_BR/angular.md +++ b/_data/downloadFiles/PT_BR/angular.md @@ -1,5 +1,33 @@ # Angular -## Nível 1 +## Nivel 1 +- [ ] **HTML - Fundamentos**: + - HTML é uma linguagem de marcação que define a estrutura do seu conteúdo. HTML consiste em uma série de elementos que você usa para mostrar algo de uma determinada maneira ou agir de uma certo modo. As tags podem criar um hiperlink de uma palavra ou imagem para outro lugar, podem colocar palavras em itálico, podem aumentar ou diminuir a fonte e assim por diante. + - Aprender quais tags são necessárias para um HTML básico + - Criar um parágrafo de texto + - Exibir uma imagem + - Conhecer a diferença entre 'h1', 'h2', 'h3', etc + - Criar um texto com hyperlink + - Criar um formulário com campos relevantes + - Criar uma lista de itens ordenada ou não ordenada + - Criar uma lista de itens dentro de uma lista suspensa (dropdown list) + - Conectar com um arquivo de CSS + - Criar uma tabela + - Adicionar IDs e classes +- [ ] **CSS - Fundamentos**: + - Cascading Style Sheets (CSS) é uma linguagem usada para descrever a apresentação de um documento escrito em uma linguagem de marcação como HTML ou XML. CSS pode ser usado para estilos de texto de documentos muito básicos — por exemplo, para alterar a cor e o tamanho de títulos e links. Ele pode ser usado para criar um layout — por exemplo, transformar uma única coluna de texto em um layout com uma área de conteúdo principal e uma barra lateral para informações relacionadas. Pode até ser usado para efeitos como animações. + - Aprender a estrutura visual de uma página, com 'margin' e 'padding' + - Estabelecer o tamanho com 'width' e 'height' + - Aprender sobre a posição de um elemento ('static', 'relative' ou 'absolute) + - Aprender sobre o 'display' de exibição de um elemento ('block', 'inline', 'inline-block') + - Aprender a posicionar imagens em relação ao texto + - Aprender sobre alinhamento + - Aprender sobre estilo de fontes + - Aprender as diferenças e vantagens de usar as diferentes unidades de medida em CSS (%, relativas, etc) + - Conectar com os elementos (IDs, classes) de um arquivo HTML + - Alterar características de um elemento quando o mouse passar por cima dele ('hover') + - Aprender box-sizinh + - Aprender Flexbox + - Aprender Grid - [ ] **JavaScript - Fundamentos**: - JavaScript é a linguagem de programação mais popular do mundo e é uma das principais tecnologias da World Wide Web, juntamente com HTML e CSS. Ela possui tipagem dinâmica, orientação a objetos baseada em protótipos e funções de primeira classe. Ela é multi-paradigma e suporta estilos de programação orientados a eventos, funcionais e imperativos. - Conhecer os tipos primitivos @@ -20,12 +48,6 @@ - Conhecer as ferramentas do TypeScript (integração com o editor de código, verificador estático e compilador) - Escrever código em TypeScript com suas ferramentas (interfaces, enum, decorators, etc) - Desenvolver aplicações em TypeScript -- [ ] **RxJS - Fundamentos**: - - A RxJS é uma biblioteca para a composição de programas assíncronos e baseados em eventos, utilizando sequências observáveis. Ela fornece o tipo núcleo, o Observable, tipos satélite (Observer, Schedulers, Subjects) e operadores inspirados nos métodos Array (map, filter, reduce, every, etc.) para permitir a manipulação de eventos assíncronos como coleções. - - Criar programas assíncronos - - Criar programas baseados em eventos - - Entender o conceito de observables e sequências de observables - - Entender como usar Observers, Subscription, Subject - [ ] **Angular - Fundamentos**: - Angular é uma framework de construção de aplicações e plataforma de desenvolvimento construído em TypeScript para criar aplicações eficientes e sofisticadas de página única (SPA). - Construir interfaces utilizando HTML, CSS e TypeScript @@ -35,13 +57,30 @@ - Utilizar a composição para criar componentes reutilizáveis - Utilizar serviços do tipo Resolver - Manipular requisições criando serviços do tipo Interceptor +- [ ] **Conceitos de Orientação a Objetos**: + - A Programação Orientada a Objetos é um paradigma de programação de software baseado na composição e interação entre diversas unidades chamadas de 'objetos' e as classes, que contêm uma identidade, propriedades e métodos). Ela é baseada em quatro componentes da programação: abstração digital, encapsulamento, herança e polimorfismo. + - Como funcionam objetos + - Criar e utilizar construtores + - O que são classes + - Criar e utilizar métodos + - Como funciona encapsulamento + - O que é herança + - O que é polimorfismo + - Como funcionam interfaces + - O que são abstrações +- [ ] **RxJS - Fundamentos**: + - A RxJS é uma biblioteca para a composição de programas assíncronos e baseados em eventos, utilizando sequências observáveis. Ela fornece o tipo núcleo, o Observable, tipos satélite (Observer, Schedulers, Subjects) e operadores inspirados nos métodos Array (map, filter, reduce, every, etc.) para permitir a manipulação de eventos assíncronos como coleções. + - Criar programas assíncronos + - Criar programas baseados em eventos + - Entender o conceito de observables e sequências de observables + - Entender como usar Observers, Subscription, Subject - [ ] **O pattern Observer**: - Em engenharia de software, o padrão (pattern) chamado Observer é um padrão de projeto de software no qual um objeto, chamado de sujeito (subject), mantém uma lista de seus dependentes, chamados de observadores (observers), e os notifica automaticamente de qualquer mudança de estado, geralmente chamando um de seus métodos. - Entender o que são Design Patterns - Atualizar diversos elementos simultaneamente usando Observers - Declarar os Subjects - Criar programas baseados em eventos -## Nível 2 +## Nivel 2 - [ ] **Angular - Templates**: - Em Angular, templates são um modelo para um fragmento de uma interface de usuário (IU). Templates são escritos em HTML, e uma sintaxe especial pode ser usada dentro de um template para construir com base em muitas das características do Angular. - [ ] **Angular - Renderização**: @@ -60,14 +99,14 @@ - A Interface de Linha de Comando (CLI) do Angular é uma ferramenta de interface de linha de comando que você utiliza para inicializar, desenvolver, estruturar e manter aplicações Angular diretamente de um shell de comando. - Aprender a sintaxe 'ng [argumento-opcional] [opções]' - Conhecer os comandos mais importantes, como 'ng add', 'ng build', 'ng update', 'ng deploy', 'ng new', 'ng test', entre outros -## Nível 3 +## Nivel 3 - [ ] **Angular - Gerenciamento de Estado**: - Um 'estado' (state) é qualquer dado necessário para reconstruir UI (Interface de Usuário) qualquer momento. A alteração desses dados desencadeará um redesenho da interface do usuário. O gerenciamento do estado é o conceito de adicionar, atualizar, remover e ler esses dedos e seus 'estados' em uma aplicação. - Atualizar componentes em tempo real - Esperar por alterações em algum componente e executar alterações - Usar Redux, NGXS e outros - [ ] **Angular - Formulários**: - - Um formulário web é uma página online que aceita inserção de dados (inputs) do usuário. É uma página interativa que imita um documento ou formulário em papel, onde os usuários preenchem determinados campos. + - Um formulário web é uma página online que aceita inseção de dados (inputs) do usuário. É uma página interativa que imita um documento ou formulário em papel, onde os usuários preenchem determinados campos. - Criar formulários com Template Forms - Criar formulários reativos com Reactive Forms - [ ] **Angular - Módulos**: @@ -108,7 +147,7 @@ - Clonar um repositório - Fazer commit, push e pull de e para o repositório - Reverter um commit - - Criar branches e pull requests + - Criar branches e pul requests - Lidar com merge e conflitos - [ ] **HTTP - Fundamentos**: - HTTP significa Hyper Text Transfer Protocol. A comunicação entre computadores cliente e servidores web é feita enviando solicitações HTTP e recebendo respostas HTTP. @@ -123,9 +162,6 @@ - Transformar um objeto em uma string - Transformar uma string em objeto - Manipular um objeto -- [ ] **Linha de comando - Fundamentos**: - - CLI é um programa de linha de comando que aceita entradas de texto para executar funções do sistema operacional. - - Conhecer os principais comandos - [ ] **Cloud - Fundamentos**: - Cloud, ou computação em nuvem é a distribuição de serviços de computação pela Internet usando um modelo de preço pago conforme o uso. Uma nuvem é composta de vários recursos de computação, que abrangem desde os próprios computadores (ou instâncias, na terminologia de nuvem) até redes, armazenamento, bancos de dados e o que estiver em torno deles. Ou seja, tudo o que normalmente é necessário para montar o equivalente a uma sala de servidores, ou mesmo um data center completo, estará pronto para ser utilizado, configurado e executado. - Conhecer a diferença entre IaaS, PaaS e SaaS diff --git a/_data/downloadFiles/PT_BR/csharp.md b/_data/downloadFiles/PT_BR/csharp.md index 32ccbc412..1ada0ae19 100644 --- a/_data/downloadFiles/PT_BR/csharp.md +++ b/_data/downloadFiles/PT_BR/csharp.md @@ -1,6 +1,7 @@ # C# -## Nível 1 +## Nivel 1 - [ ] **C# - Fundamentos**: + - C# é uma linguagem de programação, multiparadigma, de tipagem forte, desenvolvida pela Microsoft como parte da plataforma .NET. O código fonte é compilado para Common Intermediate Language (CIL) que é interpretado pela máquina virtual Common Language Runtime (CLR). É projetada para funcionar na Common Language Infrastructure da plataforma .NET Framework. - Conhecer os tipos primitivos - Declarar variáveis, considerando os diferentes tipos - Usar estruturas condicionais ('if', 'else') @@ -24,17 +25,21 @@ - Como funcionam interfaces - O que são abstrações - [ ] **C# - Coleções**: + - Uma coleção representa um grupo de objetos, conhecidos como seus elementos. Eles são como recipientes que agrupam vários itens em uma única unidade. Algumas coleções permitem a duplicação de elementos e outras não. Algumas são ordenadas e outras não ordenadas. - Aprender os usos e diferenças entre Dictionary, List, Queue, SortedList e Stack - Saiba trabalhar com ArrayList e HashTable - Iterators - [ ] **NuGet**: + - NuGet é um gerenciador de pacotes para a plataforma .NET. Ele define como os pacotes desta plataforma são criados, publicados e consumidos, e fornece ferramentas para cada uma dessas funções. - Gerenciar pacotes - Compartilhar bibliotecas - [ ] **C# - System.IO**: + - O namespace System.IO consiste em classes, estruturas, delegates e enumerações relacionadas com entrada e saída de dados (IO). Estas classes podem ser utilizadas para ler e escrever dados em arquivos ou streams de dados. Também contém classes para suporte a arquivos e diretórios. - Ler dados de arquivos - Escrever dados em arquivos - Gerenciar arquivos com Using - [ ] **C# - Gerenciamento de Memória**: + - O gerenciamento automático de memória é um dos serviços que o Common Language Runtime oferece durante a Execução Gerenciada (Managed Execution). O coletor de lixo do Common Language Runtime gerencia a alocação e liberação de memória para uma aplicação. - Entender como a memória é administrada - Conhecer o Garbage Collector - Entender sobre o Stack e o Heap gerenciado @@ -45,11 +50,13 @@ - Usar testes de comportamento (behavior) - Usar mocks - [ ] **ADO.NET**: + - O ADO.NET é um conjunto de classes que expõem serviços de acesso a dados para desenvolvedores do .NET Framework. O ADO.NET fornece um conjunto rico de componentes para criar aplicativos distribuídos e de compartilhamento de dados. Faz parte do .NET Framework, fornecendo acesso a dados de aplicativo relacionais e XML. - Manipular bancos de dados - Conhecer o DataSet e DataTable - Realizar conexões - Manipular documentos XML - [ ] **Entity Framework Core**: + - O Entity Framework Core é um mapeador objeto-relacional (ORM). O mapeamento objeto-relacional é uma técnica que permite aos desenvolvedores trabalhar com dados de forma orientada ao objeto, realizando o trabalho necessário para mapear entre objetos definidos em uma linguagem de programação da aplicação e dados armazenados em fontes de dados relacionais. - Manipular bancos de dados usando objetos .NET - Criar modelos correspondentes a um banco de dados - Realizar consultas @@ -57,45 +64,57 @@ - No contexto dos computadores, uma estrutura de dados é uma forma específica de armazenar e organizar os dados na memória do computador para que esses dados possam ser facilmente recuperados e utilizados de forma eficiente quando necessário posteriormente. - Conhecer as principais estruturas de dados - Implementar as principais estruturas de dados -## Nível 2 +## Nivel 2 - [ ] **CLR**: + - O Common Language Runtime (CLR) é o componente de máquina virtual da plataforma .NET da Microsoft que gerencia a execução de programas .NET. - Entender como o CLR funciona - Entender o gerenciamento de memória - Conhecer a CIL e o JIT - [ ] **LINQ**: + - O LINQ (Language-Integrated Query) é o nome de um conjunto de tecnologias com base na integração de recursos de consulta diretamente na linguagem C#. - Criar consultas - Conhecer as cláusulas Select e Where - Consultar coleções de objetos em memória - Mapear o banco de dados com Linq to Sql - [ ] **C# - Serialização**: + - Serialização é o processo de converter um objeto em um stream de bytes para armazenar o objeto ou transmiti-lo à memória, a um banco de dados ou a um arquivo. Seu principal objetivo é salvar o estado de um objeto a fim de poder recriá-lo quando necessário. - Enviar um objeto para um aplicativo remoto usando um serviço Web - Passar um objeto como uma cadeia de caracteres JSON ou XML - - Manter informações específicas do usuário ou de segurança entre aplicativos + - Passar informações específicas do usuário ou de segurança entre aplicativos - [ ] **C# - Rede e Sockets**: + - O termo programação com sockets refere-se à escrita de programas que são executados em vários computadores nos quais os dispositivos estão todos conectados uns aos outros usando uma rede. - Abrir uma sessão de comunicação interativa entre o navegador do usuário e um servidor - Enviar mensagens para um servidor e receber respostas sem consultar o servidor - [ ] **ASP.NET Core**: - - Criar aplicativos e serviços Web - - Manter um aplicativo MVC + - ASP.NET Core é um framework de código aberto e multi-plataforma para a construção de aplicações baseadas na nuvem, tais como aplicações web, aplicações IoT e backends mobile. + - Criar aplicações e serviços Web + - Manter uma aplicações MVC - Desenvolver de interface do usuário da Web do lado do cliente - Criar uma API Web - [ ] **Dapper**: - - Realizar consultas a bancos de dados + - O Dapper é um produto de mapeamento objeto-relacional (ORM) para a plataforma Microsoft .NET. Ele fornece um framework para mapear um modelo de domínio orientado a objetos para bancos de dados relacionais. + - Realizar consultas a bancos de dados como 'select', 'insert', 'update', 'delete' - Manipular bancos de dados - [ ] **Injeção de Dependências**: - - Padrão de projeto no qual uma classe solicita dependências de fontes externas ao invés de criá-las + - Injeção de Dependências é um padrão de projeto no qual uma classe solicita dependências de fontes externas ao invés de criá-las. - Evitar o alto nível de acoplamento de código dentro de uma aplicação - Implementar a inversão de controle - [ ] **C# - Multithreading**: + - Multithreading é a capacidade de realizar múltiplas operações ao mesmo tempo. Operações com o potencial de atrasar outras operações podem ser executadas em threads separadas. - Executar múltiplas tarefas simultaneamente - Entender como threads são executadas -## Nível 3 -- [ ] **C# - Delegates e eventos**: + - Aprender como fazer uma thread esperar em um ponto específico +## Nivel 3 +- [ ] **C# - Delegates e Eventos**: + - Delegates são objetos que são usados como ponteiros de função para se referirem a um método atribuído a eles. + - Eventos são a ação realizada que altera o estado de um objeto. Eventos são declarados usando delegates - eles fornecem um encapsulamento aos delegates. - Entender o conceito de delegate - Criar uma referência para uma função com uma certa lista de parâmetros - Entender o conceito de evento - Manipular diferentes tipos de eventos - [ ] **C# - Métodos anônimos e lambda expressions**: + - Métodos anônimos são métodos sem um nome que podem ser definidos usando a palavra-chave delegate. + - Lambda expressions são usadas como funções anônimas, mas você não precisa especificar o tipo do valor que você digita, tornando-as mais flexíveis de usar. - Criar funções anônimas que você pode usar para criar delegates - Criar funções locais que podem ser passadas como argumentos - [ ] **Contêineres**: @@ -112,9 +131,11 @@ - Realizar a comunicação usando APIs - Melhorar a escalabilidade de um sistema - [ ] **Reflection e atributos**: + - Os objetos de Reflection (reflexão) são usados para obter informações do tipo em tempo de execução. As classes que dão acesso aos metadados de um programa em execução estão no namespace System.Reflection. - Escrever código que lê as informações e metadados de objetos em tempo de execução - Obter nomes de classes em tempo de execução e criar objetos de uma classe - [ ] **MAUI**: + - .NET Multi-platform App UI (.NET MAUI) é um framework multi-plataforma para criar aplicativos nativos móveis e desktop com C# e XAML. - Criar aplicativos móveis e desktop nativos com C# e XAML - Criar aplicativos multiplataforma - Compartilhar o layout e o design da interface do usuário entre plataformas @@ -126,7 +147,7 @@ - Clonar um repositório - Fazer commit, push e pull de e para o repositório - Reverter um commit - - Criar branches e pull requests + - Criar branches e pul requests - Lidar com merge e conflitos - [ ] **HTTP - Fundamentos**: - HTTP significa Hyper Text Transfer Protocol. A comunicação entre computadores cliente e servidores web é feita enviando solicitações HTTP e recebendo respostas HTTP. diff --git a/_data/downloadFiles/PT_BR/cybersecurity.md b/_data/downloadFiles/PT_BR/cybersecurity.md index 43a36e305..440071ab5 100644 --- a/_data/downloadFiles/PT_BR/cybersecurity.md +++ b/_data/downloadFiles/PT_BR/cybersecurity.md @@ -9,8 +9,8 @@ - [ ] **Análise de Vulnerabilidades**: - Técnicas e táticas de framework de vários serviços e ferramentas que oferece uma solução de varredura e gerenciamento de vulnerabilidade. - [ ] **Firewalls, IDS and IPS**: - - Definições e diferenças entre dispositivos de segurança de rede, firewalls, sistemas de prevenção de intrusão (IPS) e sistemas de detecção de intrusão (IDS). - - Um firewall permite o tráfego dependendo de um conjunto de regras que foram configuradas. Ele é baseado nos endereços de origem, destino e porta. Um firewall + - Definições e diferenças entre dispositivos de segurança de rede, firewalls, sistemas de prevenção de intrusão (IPS) e sistemas de detecção de intrusão (IDS). + - Um firewall permite o tráfego dependendo de um conjunto de regras que foram configuradas. Ele é baseado nos endereços de origem, destino e porta. Um firewall pode negar qualquer tráfego que não satisfaça os critérios especificados. IDS são dispositivos de sistema de monitoramento passivo que monitoram o tráfego de rede à medida que viajam pela rede, comparam padrões de assinatura, e acionar um alarme se for detectada atividade suspeita ou ameaça de segurança conhecida. Por outro lado, o IPS é um dispositivo ativo que impede ataques bloqueando-os. - [ ] **Investigações Digitais - Fundamentos**: - Digital Investigations é o uso da ciência para investigar crimes digfitais e determinar fatos. Com o uso e disseminação de sistemas digitais, como computadores e smartphones. - [ ] **Password Attacks**: @@ -60,15 +60,16 @@ - [ ] **Análise de Malware**: - A análise de malware é o processo de compreensão do comportamento e da finalidade de um arquivo ou URL suspeito. A saída da análise ajuda na detecção e mitigação da ameaça potencial. - [ ] **Segurança de Aplicativos**: - - A segurança do aplicativo descreve as medidas de segurança no nível do aplicativo que visam impedir que dados ou códigos dentro do aplicativo sejam roubados ou invadidos. Ele abrange as considerações de segurança que ocorrem durante o desenvolvimento e o design de aplicativos, mas também envolve sistemas e abordagens para proteger os aplicativos depois que eles são implantados. + - A segurança do aplicativo descreve as medidas de segurança no nível do aplicativo que visam impedir que dados ou códigos dentro do aplicativo sejam roubados ou invadidos. Ele abrange as considerações de segurança que ocorrem durante o desenvolvimento e o design de aplicativos, mas também envolve sistemas e abordagens para proteger os aplicativos depois que eles são implantados. - [ ] **Arquitetura Zero Trust**: - Zero Trust é um modelo de segurança de rede baseado na filosofia de que nenhuma pessoa ou dispositivo dentro ou fora da rede de uma organização deve ter acesso para se conectar a sistemas ou serviços de TI até que seja autenticado e verificado continuamente. - [ ] **Segurança em Cloud**: - A segurança na nuvem, também conhecida como segurança da computação em nuvem, é um conjunto de medidas de segurança projetadas para proteger a infraestrutura, os aplicativos e os dados baseados em nuvem. Essas medidas garantem a autenticação de usuários e dispositivos, controle de acesso a dados e recursos e proteção de privacidade de dados . Eles também suportam a conformidade de dados regulatórios . - [ ] **Automação e Monitoramento Contínuo**: - O monitoramento contínuo de segurança é uma abordagem de segurança que envolve a automatização de uma parte significativa do gerenciamento de segurança. Isso inclui detecção de vulnerabilidades, monitoramento de configurações de nuvem, identidades e seus direitos e segurança de dados. -## Habilidade Auxiliar: Sistemas e tecnologias úteis +## Habilidade Auxiliar: Sistemas e tecnologias úteis - [ ] **Python - Fundamentos**: + - Python é uma linguagem de programação de alto nível, de uso geral, amplamente utilizada em aplicações web, desenvolvimento de software, ciência de dados e Machine Learning. Sua filosofia de projeto enfatiza a legibilidade do código com o uso de indentação significativa. Python é dinamicamente tipada e tem um garbage collector. - Conhecer os tipos primitivos - Declarar variáveis, considerando os diferentes tipos - Usar estruturas condicionais ('if', 'else') @@ -78,19 +79,19 @@ - Manipular métodos - Manipular arrays e listas - Obter dados de uma API - - Fazer chamadas assíncronas - Criar construtores - Funções anônimas - [ ] **Redes de Computadores - Fundamentos**: - Rede de computadores é uma malha que interliga milhares de sistemas computacionais para a transmissão de dados. Também conhecidos como nós, esses dispositivos interconectados enviam, recebem e trocam tráfego de dados, voz e vídeo, graças ao hardware e software que compõe o ambiente. -- [ ] **Internet das Coisas (IoT) - Fundamentos**: - - Quase todos os objetos agora podem ser conectados à Internet, de máquinas de lavar a componentes sofisticados de motor de avião, a itens orgânicos, como plantações e vacas. A capacidade de conectar coisas e capturar dados úteis está transformando as empresas de todos os setores e abrindo portas para novas especializações de carreira. Descubra a base desse novo campo com atividades práticas para conectar os sensores com segurança aos serviços em nuvem nas redes IP e coletar dados em um sistema de IoT (Internet das Coisas) de ponta a ponta. - [ ] **HTTP - Fundamentos**: + - HTTP significa Hyper Text Transfer Protocol. A comunicação entre computadores cliente e servidores web é feita enviando solicitações HTTP e recebendo respostas HTTP. - Entender a diferença dos verbos HTTP - Testar os requests e ver os status codes no navegador - Saber fazer uma requisição HTTP na linha de comando com WGET - Baixar uma imagem com WGET - Fazer um post +- [ ] **Internet das Coisas (IoT) - Fundamentos**: + - Quase todos os objetos agora podem ser conectados à Internet, de máquinas de lavar a componentes sofisticados de motor de avião, a itens orgânicos, como plantações e vacas. A capacidade de conectar coisas e capturar dados úteis está transformando as empresas de todos os setores e abrindo portas para novas especializações de carreira. Descubra a base desse novo campo com atividades práticas para conectar os sensores com segurança aos serviços em nuvem nas redes IP e coletar dados em um sistema de IoT (Internet das Coisas) de ponta a ponta. - [ ] **Cloud - Fundamentos**: - Cloud, ou computação em nuvem é a distribuição de serviços de computação pela Internet usando um modelo de preço pago conforme o uso. Uma nuvem é composta de vários recursos de computação, que abrangem desde os próprios computadores (ou instâncias, na terminologia de nuvem) até redes, armazenamento, bancos de dados e o que estiver em torno deles. Ou seja, tudo o que normalmente é necessário para montar o equivalente a uma sala de servidores, ou mesmo um data center completo, estará pronto para ser utilizado, configurado e executado. - Conhecer a diferença entre IaaS, PaaS e SaaS @@ -107,15 +108,15 @@ - Conhecer as variáveis de ambiente e o PATH - Gerenciar pacotes - Realizar comunicação remota com o SSH e SCP -## Habilidade Auxiliar: Segurança da Informação +## Habilidade Auxiliar: Segurança da Informação - [ ] **Risco, Ameaça e Vulnerabilidade**: - Gerenciar riscos é o processo de planejar, organizar e controlar recursos e pessoas para minimizar danos ou fazer com que os riscos virem oportunidades. Prever os riscos é uma prática importante, afinal, dessa forma é possível reverter o que pode dar errado e alcançar resultados positivos ao longo do processo. - [ ] **Confidencialidade, Integridade e Disponibilidade**: - Os 3 princípios fundamentais da segurança da informação. Qualquer bom programa de gerenciamento de segurança da informação deve ser projetado para alcançar os três princípios de segurança da informação são comumente conhecidos como CIA (em inglês, a sigla CIA significa "Confidentiality", "Integrity" e "Availability", o que corresponde à sigla CID em português — Confidencialidade, Integridade e Disponibilidade). - [ ] **Gerenciamento de Identidade e Acesso**: - Gestão de identidades, também conhecida como gestão de identidades e acessos (GIA) ou pelo seu termo em inglês, identity and access management (IAM) está entre as disciplinas de segurança da informação que "habilita os indivíduos corretos à acessar os recursos corretos no momento correto e pelos motivos corretos". -- [ ] **Forense Digital - Fundamentos**: - - A forense digital, é uma ciência ou técnica relativamente recente no campo da segurança digital , pois poucas décadas no separam do surgimento do computador de demais dispositivos tecnológicos que poderiam ser utilizados em crimes digitais. +- [ ] **Forense Digital - Fundamentos**: + - A forense digital é uma ciência ou técnica relativamente recente no campo da segurança digital, pois poucas décadas no separam do surgimento do computador de demais dispositivos tecnológicos que poderiam ser utilizados em crimes digitais. - [ ] **Incident Handling - Fundamentos**: - A resposta a incidentes (IR) é um conjunto de procedimentos para preparar, detectar, conter, responder e aprender no caso de um incidente de segurança. - [ ] **Conscientização de Segurança**: @@ -123,4 +124,4 @@ - [ ] **Proteção de Dados**: - A proteção de dados é o processo de proteger informações importantes de forma que garanta a confidencialidade, integridade e a disponibilidade destes dados. - [ ] **Segurança em Autenticação e Senhas**: - - Uma senha forte faz toda diferença quando o assunto é proteção de dados. Afinal, ela é construída de maneira a dificultar e muito que seja “quebrada” por um hacker ou ataque de massa. A senha, você sabe, é um mecanismo que permite o acesso de uma pessoa a um determinado serviço. \ No newline at end of file + - Uma senha forte faz toda diferença quando o assunto é proteção de dados. Afinal, ela é construída de maneira a dificultar e muito que seja “quebrada” por um hacker ou ataque de massa. A senha, você sabe, é um mecanismo que permite o acesso de uma pessoa a um determinado serviço. diff --git a/_data/downloadFiles/PT_BR/data-science.md b/_data/downloadFiles/PT_BR/data-science.md index e9b73e275..4c4c5c4e2 100644 --- a/_data/downloadFiles/PT_BR/data-science.md +++ b/_data/downloadFiles/PT_BR/data-science.md @@ -8,12 +8,14 @@ - Saber o que são variáveis categóricas nominais e ordinais - Explorar os dados em Python com as bibliotecas Pandas, Matplotlib, Seaborn e Numpy - [ ] **Feature Engineering**: + - Feature Engineering (Engenharia de atributos/características) refere-se ao processo de usar o conhecimento de domínio para selecionar e transformar as variáveis mais relevantes dos dados brutos ao criar um modelo preditivo usando aprendizado de máquina ou modelagem estatística, a fim de melhorar o desempenho dos algoritmos de aprendizado de máquina. - Gerar novas variáveis a partir dos dados disponíveis - Transformar dados brutos em características - Realçar os problemas dos modelos preditivos - Melhorar a precisão do modelo para novos dados - Selecionar e criar features utilizando as bibliotecas Pandas e Scikit-learn - [ ] **Extração e Tratamento de Dados**: + - A extração de dados é o processo de coleta ou recuperação de tipos diferentes de dados de uma variedade de fontes, muitos dos quais podem estar mal organizados ou completamente desestruturados. - Obter os dados que serão analisados - Tratar os dados obtidos, transformando-os, alterando sua estrutura e valores a fim de deixar a base de dados mais coerente e garantir que os dados que serão trabalhados estejam nas melhores condições para serem analisados - Utilizar as bibliotecas Pandas e Scikit-learn para tratar os dados @@ -26,11 +28,11 @@ - Usar e manipular listas para agrupar dados - Conhecer a biblioteca NumPy - Conhecer a biblioteca Pandas -- [ ] **Jupyter e Colab**: +- [ ] **Jupyter & Colab notebooks**: - Jupyter Notebook e Google Colaboratory são Notebooks que permitem a criação de blocos de texto e blocos de código - Os Notebooks facilitam a elaboração de projetos de Data Science por ser possível visualizar o resultado da execução logo após o trecho de código - O Google Colaboratory permite escrever e executar códigos Python diretamente no navegador, sem nenhuma ou poucas configurações necessárias - - Eles facilitam o compartilhamento de projetos entre o time + - Essas ferramentas facilitam o compartilhamento de projetos entre o time - [ ] **R para Ciência de Dados**: - R é uma linguagem de programação comumente usada em estatística computacional e análise de dados. - Aprender a analisar, limpar e visualizar dados @@ -55,6 +57,7 @@ - A visualização de dados é uma expressão contemporânea da comunicação visual que consiste na representação visual de dados. - Mapear dados abstratos em representações visuais - Representar visualmente os dados que estão presentes no nosso mundo real + - Usar Python, Matplotlib and Seaborn para gerar visualizações de dados ## Nivel 2 - [ ] **Machine Learning - Fundamentos**: - O Aprendizado de Máquina ou Machine Learning é um subcampo da Engenharia e da Ciência da Computação que evoluiu do estudo de reconhecimento de padrões e da teoria do aprendizado computacional em inteligência artificial. @@ -63,6 +66,7 @@ - Utilizar algoritmos de regressão - Utilizar o Scikit-learn para criar modelos de machine learning - [ ] **Machine Learning - Aprendizado Não Supervisionado**: + - O Aprendizado Não Supervisionado utiliza algoritmos de Aprendizado de Máquina para analisar e agrupar conjuntos de dados não rotulados. Estes algoritmos descobrem padrões ocultos ou agrupamentos de dados sem a necessidade de intervenção humana. - O clustering ou análise de agrupamento de dados é o conjunto de técnicas de prospecção de dados (data mining) que visa fazer agrupamentos automáticos de dados segundo o seu grau de semelhança. - Conhecer a análise exploratória - Utilizar os métodos K-means, DBSCAN e Mean shift para agrupar dados sem classificação @@ -71,10 +75,10 @@ - Entender a matemática por trás das métricas de validação Silhouette, Davies Bouldin e Calinski Harabasz - Conhecer técnicas de redução de dimensionalidade - [ ] **Machine Learning - Avaliação de Modelos**: - - O uso de métricas de avaliação nos ajuda a identificar se um modelo treinado terá um bom desempenho de previsão quando exposto a novos conjuntos de dados. + - A Avaliação de Modelos é o processo que utiliza métricas para nos ajudar a analisar se um modelo treinado terá um bom desempenho de previsão quando exposto a novos conjuntos de dados. - Conhecer diferentes estratégias de avaliação e otimização de modelos - Utilizar um pipeline para treino e validação - - Métricas de avaliação de modelos de machine learning + - Conhecer as principais métricas de avaliação de modelos de machine learning - [ ] **SQL - Fundamentos**: - SQL (Structured Query Language, traduzindo, Linguagem de Consulta Estruturada) é uma linguagem de programação padronizada que é usada para gerenciar bancos de dados relacionais e realizar várias operações sobre os dados neles contidos. - Conhecer os comandos mais comuns do SQL @@ -91,6 +95,7 @@ - Acessar o conteúdo e atributos das tags HTML - Construir datasets com os resultados das raspagens - [ ] **Testes Estatísticos**: + - Testes estatísticos são usados para examinar as relações entre as variáveis e as hipóteses de teste. - Criar intervalos de confiança para amostras - Comparar grupos de amostras - Executar testes estatísticos @@ -121,6 +126,7 @@ - Construir classificadores para reconhecimento de faces - Extrair regiões do rosto humano baseado em marcos faciais - Analisar diferentes condições de cada componente do rosto humano + - Usar OpenCV - [ ] **Processamento de Linguagem Natural**: - Processamento de língua natural (PLN) é uma subárea da inteligência artificial e da linguística que estuda os problemas da geração e compreensão automática de línguas humanas naturais. - Análise de Sentimento @@ -154,7 +160,7 @@ - Clonar um repositório - Fazer commit, push e pull de e para o repositório - Reverter um commit - - Criar branches e pull requests + - Criar branches e pul requests - Lidar com merge e conflitos - [ ] **Linux - Fundamentos**: - Linux é um termo popularmente empregado para se referir a sistemas operacionais que utilizam o Kernel Linux. As distribuições incluem o Kernel Linux, além de softwares de sistema e bibliotecas. @@ -166,11 +172,9 @@ - Gerenciar pacotes - Realizar comunicação remota com o SSH e SCP ## Habilidade Auxiliar: Business -- [ ] **Habilidades de comunicação**: - - Um bom nível de comunicação facilita o atingimento de objetivos, resolução de problemas, além de aumentar a produtividade, porque cada profissional saberá exatamente o que se espera dele e transmitir com clareza suas ideias. - [ ] **Gestão de Processos de Negócios**: - A Gestão de Processos de Negócios (BPM) é a um disciplina que utiliza vários métodos para descobrir, modelar, analisar, medir, melhorar, otimizar e automatizar processos de negócios. -- [ ] **Business Intelligence**: +- [ ] **Business Intelligence (BI) - Fundamentos**: - Business Intelligence é um conjunto de teorias, metodologias, processos e tecnologias que possibilitam a transformação dos dados “crus” em informações extremamente relevantes para tomada de decisão de uma empresa. - Conhecer o processo de ETL - Realizar a modelagem e estruturação de tabelas em um Data Warehouse @@ -183,4 +187,6 @@ - Realizar as operações matemáticas básicas com seus operadores (soma, subtração, multiplicação e divisão) - Conhecer as principais fórmulas, como 'MÉDIA' (AVERAGE), 'ARRED' (ROUND), 'MÁXIMO' (MAX), 'MÍNIMO' (MIN), etc - Realizar buscas em colunas com a função 'PROCV' - - Realizar + - Criar gráficos +- [ ] **Habilidades de comunicação**: + - Um bom nível de comunicação facilita o atingimento de objetivos, resolução de problemas, além de aumentar a produtividade, porque cada profissional saberá exatamente o que se espera dele e transmitir com clareza suas ideias. diff --git a/_data/downloadFiles/PT_BR/flutter.md b/_data/downloadFiles/PT_BR/flutter.md index 2670cc7f1..1a6dcbeb6 100644 --- a/_data/downloadFiles/PT_BR/flutter.md +++ b/_data/downloadFiles/PT_BR/flutter.md @@ -1,5 +1,5 @@ # Flutter -## Nível 1 +## Nivel 1 - [ ] **Dart - Fundamentos**: - Instalar e configurar o Dart - Conhecer as palavras chaves do Dart @@ -8,7 +8,7 @@ - Compreender e aprender a usar o Null Safety no Dart - [ ] **Flutter - Fundamentos**: - Flutter é um kit de desenvolvimento de software de IU de código aberto criado pelo Google. Ele é usado para desenvolver aplicativos multiplataforma para Android, iOS, Linux, macOS, Windows, Google Fuchsia e para a web a partir de um único código. - - Os widgets Flutter são construídos utilizando uma estrutura moderna que se inspira na React. A ideia central é que você construa sua interface de usuário a partir de widgets. Os widgets descrevem como deve ser sua visualização, dada sua configuração e estado atuais. + - Os widgets Flutter são construídos utilizando uma estrutura moderna que se inspira na React. A idéia central é que você construa sua interface de usuário a partir de widgets. Os widgets descrevem como deve ser sua visualização, dada sua configuração e estado atuais. - Instalar e configurar o Flutter - Conhecer e saber usar os Widgets básicos do Flutter, como Column, Row, Scaffold, Text, Image, Container, AppBar, ElevatedButton, entre outros - Entender as diferenças entre widgets Stateless e Stateful @@ -44,7 +44,7 @@ - Conhecer os comandos básicos de comunicação HTTP - Saber usar as ferramentas do pacote `http` do Dart - Saber fazer requisições autenticadas para Web APIs -## Nível 2 +## Nivel 2 - [ ] **Flutter - Pacotes Essenciais**: - O Flutter suporta o uso de pacotes compartilhados contribuídos por outros desenvolvedores para os ecossistemas Flutter e Dart. Isto permite construir rapidamente um aplicativo sem ter que desenvolver tudo do zero. - Conhecer e saber utilizar a plataforma pub.dev @@ -69,7 +69,7 @@ - Conhecer o Kit de Desenvolvimento de Jogos Casuais do Flutter - Conhecer o pacote Flame como Engine de Jogos Flutter - Conhecer o pacote Bonfire como Engine de Jogos para Flutter -## Nível 3 +## Nivel 3 - [ ] **Flutter - Nativo**: - Conhecer as especificidades do desenvolvimento nativo para Android - Conhecer as especificidades do desenvolvimento nativo para iOS @@ -105,7 +105,7 @@ - Clonar um repositório - Fazer commit, push e pull de e para o repositório - Reverter um commit - - Criar branches e pull requests + - Criar branches e pul requests - Lidar com merge e conflitos - [ ] **HTTP - Fundamentos**: - HTTP significa Hyper Text Transfer Protocol. A comunicação entre computadores cliente e servidores web é feita enviando solicitações HTTP e recebendo respostas HTTP. diff --git a/_data/downloadFiles/PT_BR/nodejs.md b/_data/downloadFiles/PT_BR/nodejs.md index 9b6281abf..16c2d57a0 100644 --- a/_data/downloadFiles/PT_BR/nodejs.md +++ b/_data/downloadFiles/PT_BR/nodejs.md @@ -1,5 +1,18 @@ # Node.js ## Nivel 1 +- [ ] **JavaScript - Fundamentos**: + - JavaScript é a linguagem de programação mais popular do mundo e é uma das principais tecnologias da World Wide Web, juntamente com HTML e CSS. Ela possui tipagem dinâmica, orientação a objetos baseada em protótipos e funções de primeira classe. Ela é multi-paradigma e suporta estilos de programação orientados a eventos, funcionais e imperativos. + - Conhecer os tipos primitivos + - Declarar variáveis, considerando a diferença entre 'var', 'let' e 'const' + - Usar estruturas condicionais ('if', 'else') + - Conhecer os operadores de comparação ('=', '==', '===') + - Usar estruturas de repetição e laços ('while', 'for') + - Usar funções, passando parâmetros e argumentos + - Manipular arrays e listas + - Aprender o conceito de Orientação a Objetos + - Fazer um CRUD + - Obter dados de uma API + - Fazer chamadas assíncronas usando 'Async/Await', 'Promise', etc - [ ] **Node.js - Fundamentos**: - Node.js é um ambiente de execução JavaScript que permite executar aplicações desenvolvidas com a linguagem de forma autônoma, sem depender de um navegador. - Conhecer operações bloqueantes e não-bloqueantes @@ -134,19 +147,6 @@ - Conhecer os maiores provedores de cloud - Especializar-se em algum provedor ## Habilidade Auxiliar: Front-end -- [ ] **JavaScript - Fundamentos**: - - JavaScript é a linguagem de programação mais popular do mundo e é uma das principais tecnologias da World Wide Web, juntamente com HTML e CSS. Ela possui tipagem dinâmica, orientação a objetos baseada em protótipos e funções de primeira classe. Ela é multi-paradigma e suporta estilos de programação orientados a eventos, funcionais e imperativos. - - Conhecer os tipos primitivos - - Declarar variáveis, considerando a diferença entre 'var', 'let' e 'const' - - Usar estruturas condicionais ('if', 'else') - - Conhecer os operadores de comparação ('=', '==', '===') - - Usar estruturas de repetição e laços ('while', 'for') - - Usar funções, passando parâmetros e argumentos - - Manipular arrays e listas - - Aprender o conceito de Orientação a Objetos - - Fazer um CRUD - - Obter dados de uma API - - Fazer chamadas assíncronas usando 'Async/Await', 'Promise', etc - [ ] **HTML - Fundamentos**: - HTML é uma linguagem de marcação que define a estrutura do seu conteúdo. HTML consiste em uma série de elementos que você usa para mostrar algo de uma determinada maneira ou agir de uma certo modo. As tags podem criar um hiperlink de uma palavra ou imagem para outro lugar, podem colocar palavras em itálico, podem aumentar ou diminuir a fonte e assim por diante. - Aprender quais tags são necessárias para um HTML básico diff --git a/_data/downloadFiles/PT_BR/php.md b/_data/downloadFiles/PT_BR/php.md index 596271edd..9076f3b49 100644 --- a/_data/downloadFiles/PT_BR/php.md +++ b/_data/downloadFiles/PT_BR/php.md @@ -1,6 +1,7 @@ # PHP ## Nivel 1 - [ ] **PHP - Fundamentos**: + - PHP é uma linguagem de programação que permite aos desenvolvedores web criar conteúdo dinâmico que interage com bancos de dados. O PHP é basicamente usado para desenvolver aplicações de software baseadas na web. - Conhecer os tipos primitivos - Declarar variáveis - Usar estruturas condicionais ('if', 'else') @@ -8,7 +9,10 @@ - Usar estruturas de repetição e laços ('while', 'for') - Usar funções, passando parâmetros e argumentos - Manipular arrays e listas - - Aprender o conceito de Orientação a Objetos +- [ ] **PHP - Coleções**: + - Uma coleção representa um grupo de objetos, conhecidos como seus elementos. Eles são como recipientes que agrupam vários itens em uma única unidade. Algumas coleções permitem a duplicação de elementos e outras não. Algumas são ordenadas e outras não ordenadas. + - Aprender os usos e diferenças entre arrays, listas, pilhas, hash maps, heaps + - Trabalhar com Iterators, Geradores e Collections - [ ] **Conceitos de Orientação a Objetos**: - A Programação Orientada a Objetos é um paradigma de programação de software baseado na composição e interação entre diversas unidades chamadas de 'objetos' e as classes, que contêm uma identidade, propriedades e métodos). Ela é baseada em quatro componentes da programação: abstração digital, encapsulamento, herança e polimorfismo. - Como funcionam objetos @@ -21,23 +25,28 @@ - Como funcionam interfaces - O que são abstrações - [ ] **PHP - Manipulação de Erros**: + - O tratamento de erros refere-se aos procedimentos de resposta e recuperação de condições de erro presentes em um aplicativo de software. Em outras palavras, é o processo composto de antecipação, detecção e resolução de erros de aplicação, de programação ou de comunicação. - Tratar exceções pré-definidas - Uso de 'try' e 'catch' - Criar exceções específicas + - Aprender sobre error handlers + - Fazer o processo de Debug - [ ] **PHP - Persistência**: - O conceito de "persistência de dados" refere-se a garantir que as informações inseridas na aplicação serão armazenadas em um meio em que possam ser recuperadas de forma consistente. Ou seja, são registros permanentes e que não são perdidos quando há o encerramento da sessão. - Conhecer o PDO - Fazer inserções, alterações e remoções em um banco de dados - Fazer consultas em um banco de dados usando filtros - [ ] **PHP - Arquivos e Streams**: + - Os 'streams' (fluxos) são a forma de generalizar operações com arquivos, rede, compressão de dados e outras que compartilhem um conjunto comum de funções e usos. Em sua definição mais simples, um stream é um objeto que exibe um comportamento 'streamable'. Ou seja, ele pode ser lido ou escrito de uma forma linear, e pode ser capaz de buscar uma localização arbitrária dentro do fluxo. - Abrir, ler e manipular arquivos - Aplicar wrappers e filtros nos streams - Usar streams - Conhecer encodings e character sets +## Nivel 2 - [ ] **PHP - Composer**: + - O Composer é uma ferramenta para o gerenciamento de dependências em PHP. Ele permite que você declare as bibliotecas das quais seu projeto depende e as gerenciará (instalar/atualizar) para você. - Gerenciar dependências - Incluir bibliotecas de terceiros -## Nivel 2 - [ ] **PHP - Testes**: - O teste de software é o processo de avaliação e verificação de que um software realmente faz o que deveria fazer. Os benefícios dos testes incluem a prevenção de bugs, a redução dos custos de desenvolvimento e a melhoria do desempenho. - Usar testes unitários @@ -45,6 +54,7 @@ - Usar testes de comportamento (behavior) - Usar mocks - [ ] **PHP - MVC**: + - Model-view-controller (MVC) é um padrão de arquitetura de software comumente usado para desenvolver interfaces de usuário que dividem a lógica do programa relacionado em três elementos interligados. Isto é feito para separar as representações internas de informação das formas como a informação é apresentada para o usuário. - Entender o conceito do padrão MVC (Model-View-Controller) - Separar as responsabilidades entre as camadas MVC - [ ] **Laravel**: @@ -52,7 +62,10 @@ - Conhecer as características do framework Laravel - Trabalhar com rotas - Usar arquivos Blade + - Usar as suas funcionalidades ORM + - Lidar com injeção de dependências - [ ] **PHP - Symfony**: + - Symfony é um framework PHP de código aberto e de estrutura MVC que incorpora muitas funcionalidades e boas práticas de desenvolvimento do domínio PHP. - Conhecer as principais características do framework - Utilizar componentes - Definir recursos e rotas @@ -65,6 +78,7 @@ - Construir APIs em Laravel - Saber fazer requisições autenticadas para Web APIs - [ ] **PHP - XDebug**: + - Xdebug é uma extensão PHP que fornece recursos de depuração e criação de perfil. - Usar e aprimorar o var_dump com XDebug - Analisar e entender a stack (pilha) de execução - Depurar o código @@ -76,13 +90,20 @@ - Conhecer bibliotecas de programação reativa - Aprender sobre corrotinas - [ ] **PHP Funcional**: + - A programação funcional é um paradigma de programação baseado no uso de funções. As funções estão, de acordo com este paradigma, no epicentro de uma base de código. - Entender a fundo sobre funções em PHP - Conhecer funções de manipulação de arrays - Realizar composição de funções usando pipelines - [ ] **Object Calisthenics**: + - Object Calisthenics são basicamente exercícios de programação, como um conjunto de 9 regras para ajudar a escrever melhor o código orientado a objetos. - Conhecer as regras de Object Calisthenics - Simplificar classes e métodos - Manter o código mais curto e coeso +- [ ] **Arquitetura de Microsserviços**: + - Microsserviços são uma abordagem de arquitetura na qual o software consiste de pequenos serviços independentes que se comunicam entre si e são organizados de acordo com seus domínios de negócio. + - Aprender o conceito de arquitetura planejada para microsserviços + - Realizar a comunicação usando APIs + - Melhorar a escalabilidade de um sistema - [ ] **Contêineres**: - Os contêineres são pacotes de software que contêm todos os elementos necessários para serem executados em qualquer ambiente. - O Kubernetes (também conhecido como k8s ou kube) é uma plataforma de orquestração de containers open source que automatiza grande parte dos processos manuais necessários para implantar, gerenciar e escalar aplicações em containers. @@ -92,6 +113,7 @@ - Conhecer a plataforma Docker - Conhecer Kubernetes - [ ] **Reflection e atributos**: + - Os objetos de Reflection (reflexão) são usados para obter informações do tipo em tempo de execução. As classes que dão acesso aos metadados de um programa em execução estão no namespace System.Reflection. - Escrever código que lê as informações e metadados de objetos em tempo de execução - Obter nomes de classes em tempo de execução e criar objetos de uma classe ## Habilidade Auxiliar: Infraestrutura e boas práticas @@ -141,6 +163,11 @@ - Conhecer e aplicar os principais Design Patterns - [ ] **Clean Architecture**: - A Clean Architecture (Arquitetura Limpa) é uma forma de desenvolver software, de tal forma que apenas olhando para o código fonte de um programa, você deve ser capaz de dizer o que o programa faz. +- [ ] **Conceitos de Design Orientado a Domínio (Domain-Driven Design - DDD)**: + - O Design Orientado a Domínio (DDD) é uma abordagem ao projeto e desenvolvimento de software que é primeiramente informado pelos requisitos de negócios. Os componentes do programa (objetos, classes, matrizes, etc.) indicam a indústria, setor ou domínio empresarial em que o negócio opera. + - Modelar domínios de forma efetiva + - Basear projetos complexos em modelos do domínio + - Conhecer os blocos de construção de DDD ## Habilidade Auxiliar: Front-end - [ ] **HTML - Fundamentos**: - HTML é uma linguagem de marcação que define a estrutura do seu conteúdo. HTML consiste em uma série de elementos que você usa para mostrar algo de uma determinada maneira ou agir de uma certo modo. As tags podem criar um hiperlink de uma palavra ou imagem para outro lugar, podem colocar palavras em itálico, podem aumentar ou diminuir a fonte e assim por diante. diff --git a/_data/downloadFiles/PT_BR/python.md b/_data/downloadFiles/PT_BR/python.md index f79a3ca23..f7fb08a45 100644 --- a/_data/downloadFiles/PT_BR/python.md +++ b/_data/downloadFiles/PT_BR/python.md @@ -1,6 +1,7 @@ # Python ## Nivel 1 - [ ] **Python - Fundamentos**: + - Python é uma linguagem de programação de alto nível, de uso geral, amplamente utilizada em aplicações web, desenvolvimento de software, ciência de dados e Machine Learning. Sua filosofia de projeto enfatiza a legibilidade do código com o uso de indentação significativa. Python é dinamicamente tipada e tem um garbage collector. - Conhecer os tipos primitivos - Declarar variáveis, considerando os diferentes tipos - Usar estruturas condicionais ('if', 'else') @@ -10,7 +11,6 @@ - Manipular métodos - Manipular arrays e listas - Obter dados de uma API - - Fazer chamadas assíncronas - Criar construtores - Funções anônimas - [ ] **Conceitos de Orientação a Objetos**: @@ -29,6 +29,7 @@ - Conhecer as principais estruturas de dados - Implementar as principais estruturas de dados - [ ] **Python - Coleções**: + - Uma coleção representa um grupo de objetos, conhecidos como seus elementos. Eles são como recipientes que agrupam vários itens em uma única unidade. Algumas coleções permitem a duplicação de elementos e outras não. Algumas são ordenadas e outras não ordenadas. - Utilizar listas e tuplas - Utilizar polimorfismo nas coleções - Utilizar conjuntos e dicionários @@ -38,8 +39,17 @@ - Usar testes de integração - Usar testes de comportamento (behavior) - Usar mocks +- [ ] **Python - Comunicação com APIs**: + - Uma API é uma interface que desenvolvedores de software utilizam para programar a interação com componentes ou recursos de software fora de seu próprio código. Uma definição ainda mais simples é que uma API é a parte de um componente de software que é acessível a outros componentes. + - Entender o que é uma API REST + - Conhecer os comandos básicos de comunicação HTTP + - Entender o que é uma API REST + - Saber fazer requisições autenticadas + - Converter objetos para JSON e vice-versa + - Saber usar as ferramentas do pacote Requests ## Nivel 2 - [ ] **Flask**: + - Flask é um pequeno framework web escrito em Python. É classificado como um microframework porque não requer ferramentas ou bibliotecas particulares, mantendo um núcleo simples, porém, extensível. Não possui camada de abstração de banco de dados, validação de formulário ou quaisquer outros componentes onde bibliotecas de terceiros pré-existentes fornecem funções comuns. No entanto, o Flask oferece suporte a extensões que podem adicionar recursos do aplicativo como se fossem implementados no próprio Flask. - Criar aplicações web - Definir rotas, redirecionamentos e templates - Validar formulários @@ -47,17 +57,20 @@ - Mixin é uma classe que fornece implementações de métodos para reutilização por múltiplas classes filhas relacionadas. - Sobrecarga do operador significa dar significado estendido além de seu significado operacional predefinido. - [ ] **Django**: + - Django é um framework web Python de alto nível que permite o rápido desenvolvimento de sites seguros e de fácil manutenção. - Criar aplicações web - Entender a arquitetura de uma aplicação feita com Django - Criar o admin de uma página - Utilizar templates e rotas - Criar formulários - [ ] **Django Rest Framework**: + - O Django REST Framework é um conjunto de ferramentas poderosas e flexíveis para a construção de APIs. - Desenvolver APIs - Trabalhar com modelos, serializers e views - Incluir filtros, buscas e ordenação - Limitar o número de requisições - [ ] **Python - MVC e MTV**: + - MVC e MTV são dois padrões de projeto (design patterns) utilizados para implementar interfaces e aplicações web. - Entender o padrão MVC - Entender o padrão MTV - Compreender a diferença entre os padrões MVC e MTV @@ -70,9 +83,23 @@ - Aprender o conceito de arquitetura planejada para microsserviços - Realizar a comunicação usando APIs - Melhorar a escalabilidade de um sistema - +- [ ] **Contêineres**: + - Os contêineres são pacotes de software que contêm todos os elementos necessários para serem executados em qualquer ambiente. + - O Kubernetes (também conhecido como k8s ou kube) é uma plataforma de orquestração de containers open source que automatiza grande parte dos processos manuais necessários para implantar, gerenciar e escalar aplicações em containers. + - Isolar seu software para funcionar independentemente + - Implantar software em clusters + - Modularizar seu sistema em pacotes menores + - Conhecer a plataforma Docker + - Conhecer Kubernetes - [ ] **Python - Tipagem estática**: - - Utilizar tipagem estática em Python + - Python é uma linguagem dinamicamente tipada, ou seja, não há necessidade de pensar em tipos de dados. Linguagens estaticamente tipadas (tais como C ou Java) realizam verificações de tipo durante a compilação. Pode parecer mais seguro, pois você pode dizer imediatamente o tipo de parâmetro de cada função. + - Conhecer type hinting +- [ ] **Python - Geradores**: + - Geradores permitem declarar uma função que se comporta como um iterador, por exemplo, ela pode ser usada em um loop 'for'. + - Criar objetos iteradores + - Usar avaliação preguiçosa + - Executar tarefas simultâneas + - Uso da palavra reservada 'yield' - [ ] **Python - Assíncrono**: - Na programação assíncrona as funções não são executadas em ordem. Com o assincronismo, podemos interromper do código para conseguirmos alguma outra informação necessária para a continuar a execução. Isso significa que o código espera por uma outra parte do código e, enquanto espera, executa as demais partes. - Aprender sobre corrotinas @@ -80,20 +107,26 @@ - Lidar com concorrência - Conhecer o conceito de objetos aguardáveis - Criar tarefas concorrentemente -- [ ] **Python - Métodos Especiais**: + - Conhecer a biblioteca 'asyncio' +- [ ] **Python - args & kwargs**: + - As variáveis mágicas *args e **kwargs são normalmente usadas na definições de uma função, e são usadas para passar um número desconhecido de argumentos para uma função. + - Entender a diferença entre *args e **kwargs +- [ ] **Python - Métodos especiais (dunder)**: - Métodos especiais, ou métodos mágicos, em Python são métodos predefinidos em todos os objetos, com invocação automática sob circunstâncias especiais. Eles normalmente não são chamados diretamente pelo usuário mas podem ser overloaded (sobrescritos e alterados). Seus nomes começam e terminam com sublinhados duplos chamados de dunder (uma expressão derivada de double underscore). - Entender o conceito de métodos especiais (ou mágicos) - Conhecer os principais métodos mágicos e como usá-los -- [ ] **Python - Geradores**: - - Criar objetos iteradores - - Usar avaliação preguiçosa - - Executar tarefas simultâneas - - Uso da palavra reservada yield - [ ] **Python - Metaprogramação**: + - Metaprogramação é uma técnica de programação com a qual programas têm a capacidade de tratar outros programas como seus dados. Isso significa que um programa pode ser projetado para ler, gerar, analisar ou transformar outros programas, e até mesmo modificar-se mesmo durante a execução. - Escrever um programa que manipula outros programas -- [ ] **Python - Pooling de processos**: + - Usar metaclasses +- [ ] **Python - Multiprocessamento**: + - Em Python, o módulo de multiprocessamento inclui uma API muito simples e intuitiva para dividir o trabalho entre vários processos. - Executar processos em paralelo - Conhecer a classe Pool +- [ ] **Reflection e atributos**: + - Os objetos de Reflection (reflexão) são usados para obter informações do tipo em tempo de execução. As classes que dão acesso aos metadados de um programa em execução estão no namespace System.Reflection. + - Escrever código que lê as informações e metadados de objetos em tempo de execução + - Obter nomes de classes em tempo de execução e criar objetos de uma classe ## Habilidade Auxiliar: Infraestrutura - [ ] **Git e GitHub - Fundamentos**: - Git é um sistema de controle de versão distribuído gratuito e de código aberto projetado para lidar com tudo, desde projetos pequenos a muito grandes com velocidade e eficiência. @@ -142,12 +175,9 @@ - [ ] **Design Patterns**: - Na engenharia de software, um "padrão de projeto" (Design Pattern em inglês) é uma solução geral e reutilizável para um problema que ocorre normalmente dentro de um determinado contexto de projeto de software. - Conhecer e aplicar os principais Design Patterns -- [ ] **Jupyter e Colab**: - - Jupyter Notebook e Google Colaboratory são Notebooks que permitem a criação de blocos de texto e blocos de código - - Os Notebooks facilitam a elaboração de projetos de Data Science por ser possível visualizar o resultado da execução logo após o trecho de código - - O Google Colaboratory permite escrever e executar códigos Python diretamente no navegador, sem nenhuma ou poucas configurações necessárias - - Eles facilitam o compartilhamento de projetos entre o time + - [ ] **Extração e Tratamento de Dados**: + - A extração de dados é o processo de coleta ou recuperação de tipos diferentes de dados de uma variedade de fontes, muitos dos quais podem estar mal organizados ou completamente desestruturados. - Obter os dados que serão analisados - Tratar os dados obtidos, transformando-os, alterando sua estrutura e valores a fim de deixar a base de dados mais coerente e garantir que os dados que serão trabalhados estejam nas melhores condições para serem analisados - Utilizar as bibliotecas Pandas e Scikit-learn para tratar os dados diff --git a/_data/downloadFiles/PT_BR/react.md b/_data/downloadFiles/PT_BR/react.md index 4bdba3a67..0f0ed20cd 100644 --- a/_data/downloadFiles/PT_BR/react.md +++ b/_data/downloadFiles/PT_BR/react.md @@ -1,5 +1,33 @@ # React ## Nivel 1 +- [ ] **HTML - Fundamentos**: + - HTML é uma linguagem de marcação que define a estrutura do seu conteúdo. HTML consiste em uma série de elementos que você usa para mostrar algo de uma determinada maneira ou agir de uma certo modo. As tags podem criar um hiperlink de uma palavra ou imagem para outro lugar, podem colocar palavras em itálico, podem aumentar ou diminuir a fonte e assim por diante. + - Aprender quais tags são necessárias para um HTML básico + - Criar um parágrafo de texto + - Exibir uma imagem + - Conhecer a diferença entre 'h1', 'h2', 'h3', etc + - Criar um texto com hyperlink + - Criar um formulário com campos relevantes + - Criar uma lista de itens ordenada ou não ordenada + - Criar uma lista de itens dentro de uma lista suspensa (dropdown list) + - Conectar com um arquivo de CSS + - Criar uma tabela + - Adicionar IDs e classes +- [ ] **CSS - Fundamentos**: + - Cascading Style Sheets (CSS) é uma linguagem usada para descrever a apresentação de um documento escrito em uma linguagem de marcação como HTML ou XML. CSS pode ser usado para estilos de texto de documentos muito básicos — por exemplo, para alterar a cor e o tamanho de títulos e links. Ele pode ser usado para criar um layout — por exemplo, transformar uma única coluna de texto em um layout com uma área de conteúdo principal e uma barra lateral para informações relacionadas. Pode até ser usado para efeitos como animações. + - Aprender a estrutura visual de uma página, com 'margin' e 'padding' + - Estabelecer o tamanho com 'width' e 'height' + - Aprender sobre a posição de um elemento ('static', 'relative' ou 'absolute) + - Aprender sobre o 'display' de exibição de um elemento ('block', 'inline', 'inline-block') + - Aprender a posicionar imagens em relação ao texto + - Aprender sobre alinhamento + - Aprender sobre estilo de fontes + - Aprender as diferenças e vantagens de usar as diferentes unidades de medida em CSS (%, relativas, etc) + - Conectar com os elementos (IDs, classes) de um arquivo HTML + - Alterar características de um elemento quando o mouse passar por cima dele ('hover') + - Aprender box-sizinh + - Aprender Flexbox + - Aprender Grid - [ ] **JavaScript - Fundamentos**: - JavaScript é a linguagem de programação mais popular do mundo e é uma das principais tecnologias da World Wide Web, juntamente com HTML e CSS. Ela possui tipagem dinâmica, orientação a objetos baseada em protótipos e funções de primeira classe. Ela é multi-paradigma e suporta estilos de programação orientados a eventos, funcionais e imperativos. - Conhecer os tipos primitivos @@ -40,21 +68,6 @@ - Conectar com um arquivo de CSS - Criar uma tabela - Adicionar IDs e classes -- [ ] **CSS - Fundamentos**: - - Cascading Style Sheets (CSS) é uma linguagem usada para descrever a apresentação de um documento escrito em uma linguagem de marcação como HTML ou XML. CSS pode ser usado para estilos de texto de documentos muito básicos — por exemplo, para alterar a cor e o tamanho de títulos e links. Ele pode ser usado para criar um layout — por exemplo, transformar uma única coluna de texto em um layout com uma área de conteúdo principal e uma barra lateral para informações relacionadas. Pode até ser usado para efeitos como animações. - - Aprender a estrutura visual de uma página, com 'margin' e 'padding' - - Estabelecer o tamanho com 'width' e 'height' - - Aprender sobre a posição de um elemento ('static', 'relative' ou 'absolute) - - Aprender sobre o 'display' de exibição de um elemento ('block', 'inline', 'inline-block') - - Aprender a posicionar imagens em relação ao texto - - Aprender sobre alinhamento - - Aprender sobre estilo de fontes - - Aprender as diferenças e vantagens de usar as diferentes unidades de medida em CSS (%, relativas, etc) - - Conectar com os elementos (IDs, classes) de um arquivo HTML - - Alterar características de um elemento quando o mouse passar por cima dele ('hover') - - Aprender box-sizinh - - Aprender Flexbox - - Aprender Grid - [ ] **React - Componentes**: - O React permite definir componentes como classes ou funções. Componentes definidos como classes fornecem mais recursos. Eles aceitam entradas arbitrárias (chamadas "props") e retornam elementos React descrevendo o que deve aparecer na tela. - Para que servem e como funcionam componentes @@ -87,7 +100,7 @@ - [ ] **React Hooks - Ref**: - O hook `useRef` permite que você persista valores entre renderizações. - Criar objetos mutáveis -- [ ] **Bibliotecas de Design System**: +- [ ] **React - Bibliotecas de Design System**: - Criar e manter bibliotecas que serão consumidas e usadas como padrão para a construção de um projeto - [ ] **React Developer Tools**: - React Developer Tools é usado para inspecionar componentes do React, editar props e estado, e também para identificar problemas de desempenho. @@ -102,7 +115,7 @@ - Conhecer Styled-JSX - [ ] **Styled Components**: - Lidar com código CSS em componentes -- [ ] **Roteamento web para React**: +- [ ] **React - Roteamento web**: - Manipular a navegação entre interfaces e componentes - [ ] **TypeScript - Fundamentos**: - TypeScript é uma linguagem de programação fortemente tipada que se baseia em JavaScript.