diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..53fe05444 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = false +insert_final_newline = true \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 000000000..e7f9092aa --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,32 @@ +module.exports = { + ignorePatterns: ["_api/gql_types.ts", "src/gql_types.ts"], + env: { + "jest/globals": true, + node: true, + }, + globals: { + document: true, + globalThis: true, + window: true, + JSX: true, + }, + parser: "@typescript-eslint/parser", + plugins: [], + extends: [ + "eslint:recommended", + "plugin:jest/recommended", + "plugin:react/recommended", + "plugin:jsx-a11y/recommended", + "plugin:@next/next/recommended", + "plugin:prettier/recommended", + ], + rules: { + "no-console": "error", + "@next/next/no-html-link-for-pages": "off", + }, + settings: { + react: { + version: "detect", + }, + }, +}; diff --git a/.github/workflows/continuous-delivery.yml b/.github/workflows/continuous-delivery.yml new file mode 100644 index 000000000..849d0ec2e --- /dev/null +++ b/.github/workflows/continuous-delivery.yml @@ -0,0 +1,17 @@ +name: CD - Continuous Delivery + +on: + push: + branches: [ main ] + +env: + DEPLOY_MAIN_WEBHOOK: ${{ secrets.DEPLOY_MAIN_WEBHOOK }} + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: "Deploy" + run: | + curl $DEPLOY_MAIN_WEBHOOK diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml new file mode 100644 index 000000000..99bc43ca8 --- /dev/null +++ b/.github/workflows/continuous-integration.yml @@ -0,0 +1,27 @@ +name: CI - Continuous Integration + +on: + pull_request: + types: [opened, synchronize] + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + node-version: '16' + - name: "Start: Lint" + run: | + yarn install && yarn lint + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + node-version: '16' + - name: "Start: Unit Testing" + run: | + yarn install && yarn test diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..377ee12a3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,133 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# Project +graphql.schema.json diff --git a/.yaml-lint.json b/.yaml-lint.json new file mode 100644 index 000000000..5c9bf1ea6 --- /dev/null +++ b/.yaml-lint.json @@ -0,0 +1,4 @@ +{ + "schema": "CORE_SCHEMA", + "ignore": "node_modules/*.yaml" +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..737b68ce9 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,29 @@ +# Contributing/Contribuindo + +## PT-BR 🇧🇷 +1. Crie um fork! +2. Crie sua feature branch: `git checkout -b my-new-feature` | +3. Adicione os arquivos modificados: `git add .` +4. Faça um Commit com suas alterações: `git commit -m "Add some feature"` +5. Faça um push da sua branch: `git push origin my-new-feature` +6. Envie um Pull Request para esse repositório + +- Adicione um título e uma descrição que deixe claro sua sugestão :) + +**Depois que seu pull request for mergeado** + +> Depois que seu pull request for mergeado, você pode apagar sua branch. + +## en-US 🇺🇸 +1. Fork it! +2. Create your feature branch: `git checkout -b my-new-feature` +3. Add files changed: `git add .` +4. Commit your changes: `git commit -m "Add some feature"` +5. Push to the branch: `git push origin my-new-feature` +6. Submit a pull request + +- Add a title os a description that let clear your suggestion :). + +**After your pull request is merged** + +> After your pull request is merged, you can safely delete your branch. diff --git a/README.md b/README.md new file mode 100644 index 000000000..a29abf2ff --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +# TechGuide.sh + +O TechGuide.sh é uma iniciativa da Alura para mapear as necessidades mais comuns em cada profissional de tecnologia, direcionando tanto alunos e alunas quanto a própria escola com novos cursos, conteúdos, podcasts e artigos. + +A gente se inspirou no também opensource http://roadmap.sh, porém usando a abordagem do profissional em T, abrindo mais possibilidades de caminhos e ordenação. Também queremos ter mais descritivos explicando o porquê de aprender cada um daqueles itens (cards) e fechar mais o escopo de cada um. + +

+ +

+ +# FAQ/Perguntas Frequentes + +## O que é o profissional em T? +> **R:** é um profissional que, além da sua especialidade, também tem um certo conhecimento em outras áreas que podem facilitar seu próprio trabalho ou o trabalho em equipe. No site do Dev em T da Alura há bastante a respeito, além de artigos e podcasts: https://alura.com.br/dev-em-t + + +## Posso gerar meu próprio guia usando esse repositório? +> **R:** Sim! Só pedimos que você faça um link para https://techguide.sh 😁 e respeite a licença de uso. + + +## Posso sugerir novas carreiras? +> **R:** Sim! Use o mecanismo de contribuição do Github. Nesse momento estamos focados em corrigir erros e melhorar as carreiras existentes. + +# About the Project/Sobre o Projeto + +## Contributing/Contribuir + +### O que devo ter em mente antes de abrir um PullRequest? +- ??? +- 🇧🇷: Quer contribuir com o projeto? [Confira o passo a passo](./CONTRIBUTING.md) + +### Próximos Passos? + +- [ ] Exportar o T para você poder trilhar seu caminho e contar suas histórias +- [ ] Suporte completo em Inglês + +## History/Histórico +- 🇧🇷: Da uma olhada na aba [Releases](./releases) pra acompanhar as alterações feitas no projeto. + +## License/Licença do Projeto + +- TODO (Estamos decidindo) diff --git a/_api/api.ts b/_api/api.ts new file mode 100644 index 000000000..3a386a313 --- /dev/null +++ b/_api/api.ts @@ -0,0 +1,71 @@ +import { ApolloServerPluginLandingPageGraphQLPlayground } from "apollo-server-core"; +import { ApolloServer, gql } from "apollo-server-micro"; +import { InMemoryLRUCache } from "@apollo/utils.keyvaluecache"; +import { UUIDDefinition } from "graphql-scalars"; +export { gql } from "apollo-server-micro"; +// [Modules] +import modulesGuides from "_api/modules/guides"; +import modulesBlocks from "_api/modules/blocks"; + +const customScalars = [UUIDDefinition]; + +const defaultTypeDefs = gql` + # Commons + enum SiteLocale { + PT_BR + EN_US + } + + input FieldFilter { + gte: String + lt: String + eq: String + } + # ==================================================== + input CreateSampleTextInput { + text: String! + } + # ==================================================== + type Mutation { + createSampleText(input: CreateSampleTextInput): String! + } + type Query { + greet: String + } +`; + +const serverSchema = { + typeDefs: [ + ...customScalars, + defaultTypeDefs, + modulesGuides.typeDefs, + modulesBlocks.typeDefs, + ], + resolvers: { + ...modulesGuides.resolvers, + ...modulesBlocks.resolvers, + Query: { + greet: () => "Welcome to @alura/tshapeddev", + ...modulesGuides.resolvers.Query, + ...modulesBlocks.resolvers.Query, + }, + Mutation: { + createSampleText: (_: unknown, args) => args.input.text, + ...modulesGuides.resolvers.Mutation, + ...modulesBlocks.resolvers.Mutation, + }, + }, + plugins: [ + process.env.NODE_ENV === "production" && + ApolloServerPluginLandingPageGraphQLPlayground(), + ].filter(Boolean), + introspection: true, + cache: new InMemoryLRUCache({ + // ~100MiB + maxSize: Math.pow(2, 20) * 100, + // 5 minutes (in milliseconds) + ttl: 300_000, + }), +}; + +export const apolloServer = new ApolloServer(serverSchema); diff --git a/_api/gql_types.ts b/_api/gql_types.ts new file mode 100644 index 000000000..2ab3defe1 --- /dev/null +++ b/_api/gql_types.ts @@ -0,0 +1,398 @@ +import { GraphQLResolveInfo, GraphQLScalarType, GraphQLScalarTypeConfig } from 'graphql'; +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: string; + String: string; + Boolean: boolean; + Int: number; + Float: number; + UUID: string; +}; + +export type Block = { + __typename?: 'Block'; + aditionalObjectives?: Maybe>>; + aluraContents?: Maybe>>; + collaborations?: Maybe>>; + contents?: Maybe>>; + expertises?: Maybe>>; + id?: Maybe; + keyObjectives?: Maybe>>; + logo?: Maybe; + name?: Maybe; + shortDescription?: Maybe; + slug?: Maybe; +}; + +export type BlockAditionalObjective = { + __typename?: 'BlockAditionalObjective'; + id?: Maybe; + name?: Maybe; + slug?: Maybe; +}; + +export type BlockContent = { + __typename?: 'BlockContent'; + id?: Maybe; + link?: Maybe; + slug?: Maybe; + title?: Maybe; + type?: Maybe; +}; + +export enum BlockContentType { + Article = 'ARTICLE', + Course = 'COURSE', + Site = 'SITE', + Youtube = 'YOUTUBE' +} + +export type BlockFilters = { + id?: InputMaybe; + name?: InputMaybe; + slug?: InputMaybe; +}; + +export type BlockInput = { + slug: Scalars['String']; +}; + +export type BlockKeyObjective = { + __typename?: 'BlockKeyObjective'; + id?: Maybe; + name?: Maybe; + slug?: Maybe; +}; + +export type BlocksInput = { + filter?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + +export type CreateSampleTextInput = { + text: Scalars['String']; +}; + +export type FieldFilter = { + eq?: InputMaybe; + gte?: InputMaybe; + lt?: InputMaybe; +}; + +export type Guide = { + __typename?: 'Guide'; + collaborations?: Maybe>>; + expertises?: Maybe>>; + id?: Maybe; + name?: Maybe; + slug?: Maybe; +}; + +export type GuideBlock = { + __typename?: 'GuideBlock'; + item?: Maybe; + priority?: Maybe; +}; + +export type GuideCollaboration = { + __typename?: 'GuideCollaboration'; + blocks?: Maybe>>; + guide?: Maybe; + name?: Maybe; +}; + +export type GuideExpertise = { + __typename?: 'GuideExpertise'; + blocks?: Maybe>>; + guide?: Maybe; + name?: Maybe; +}; + +export type GuideFilters = { + id?: InputMaybe; + name?: InputMaybe; + slug?: InputMaybe; +}; + +export type GuideInput = { + slug: Scalars['String']; +}; + +export type GuidesInput = { + filter?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; +}; + +export type Mutation = { + __typename?: 'Mutation'; + createSampleText: Scalars['String']; +}; + + +export type MutationCreateSampleTextArgs = { + input?: InputMaybe; +}; + +export type Query = { + __typename?: 'Query'; + block?: Maybe; + blocks: Array>; + greet?: Maybe; + guide?: Maybe; + guides: Array>; +}; + + +export type QueryBlockArgs = { + input?: InputMaybe; + locale?: InputMaybe; +}; + + +export type QueryBlocksArgs = { + input?: InputMaybe; + locale?: InputMaybe; +}; + + +export type QueryGuideArgs = { + input?: InputMaybe; + locale?: InputMaybe; +}; + + +export type QueryGuidesArgs = { + input?: InputMaybe; + locale?: InputMaybe; +}; + +export enum SiteLocale { + EnUs = 'EN_US', + PtBr = 'PT_BR' +} + + + +export type ResolverTypeWrapper = Promise | T; + + +export type ResolverWithResolve = { + resolve: ResolverFn; +}; +export type Resolver = ResolverFn | ResolverWithResolve; + +export type ResolverFn = ( + parent: TParent, + args: TArgs, + context: TContext, + info: GraphQLResolveInfo +) => Promise | TResult; + +export type SubscriptionSubscribeFn = ( + parent: TParent, + args: TArgs, + context: TContext, + info: GraphQLResolveInfo +) => AsyncIterable | Promise>; + +export type SubscriptionResolveFn = ( + parent: TParent, + args: TArgs, + context: TContext, + info: GraphQLResolveInfo +) => TResult | Promise; + +export interface SubscriptionSubscriberObject { + subscribe: SubscriptionSubscribeFn<{ [key in TKey]: TResult }, TParent, TContext, TArgs>; + resolve?: SubscriptionResolveFn; +} + +export interface SubscriptionResolverObject { + subscribe: SubscriptionSubscribeFn; + resolve: SubscriptionResolveFn; +} + +export type SubscriptionObject = + | SubscriptionSubscriberObject + | SubscriptionResolverObject; + +export type SubscriptionResolver = + | ((...args: any[]) => SubscriptionObject) + | SubscriptionObject; + +export type TypeResolveFn = ( + parent: TParent, + context: TContext, + info: GraphQLResolveInfo +) => Maybe | Promise>; + +export type IsTypeOfResolverFn = (obj: T, context: TContext, info: GraphQLResolveInfo) => boolean | Promise; + +export type NextResolverFn = () => Promise; + +export type DirectiveResolverFn = ( + next: NextResolverFn, + parent: TParent, + args: TArgs, + context: TContext, + info: GraphQLResolveInfo +) => TResult | Promise; + +/** Mapping between all available schema types and the resolvers types */ +export type ResolversTypes = { + Block: ResolverTypeWrapper; + BlockAditionalObjective: ResolverTypeWrapper; + BlockContent: ResolverTypeWrapper; + BlockContentType: BlockContentType; + BlockFilters: BlockFilters; + BlockInput: BlockInput; + BlockKeyObjective: ResolverTypeWrapper; + BlocksInput: BlocksInput; + Boolean: ResolverTypeWrapper; + CreateSampleTextInput: CreateSampleTextInput; + FieldFilter: FieldFilter; + Guide: ResolverTypeWrapper; + GuideBlock: ResolverTypeWrapper; + GuideCollaboration: ResolverTypeWrapper; + GuideExpertise: ResolverTypeWrapper; + GuideFilters: GuideFilters; + GuideInput: GuideInput; + GuidesInput: GuidesInput; + Int: ResolverTypeWrapper; + Mutation: ResolverTypeWrapper<{}>; + Query: ResolverTypeWrapper<{}>; + SiteLocale: SiteLocale; + String: ResolverTypeWrapper; + UUID: ResolverTypeWrapper; +}; + +/** Mapping between all available schema types and the resolvers parents */ +export type ResolversParentTypes = { + Block: Block; + BlockAditionalObjective: BlockAditionalObjective; + BlockContent: BlockContent; + BlockFilters: BlockFilters; + BlockInput: BlockInput; + BlockKeyObjective: BlockKeyObjective; + BlocksInput: BlocksInput; + Boolean: Scalars['Boolean']; + CreateSampleTextInput: CreateSampleTextInput; + FieldFilter: FieldFilter; + Guide: Guide; + GuideBlock: GuideBlock; + GuideCollaboration: GuideCollaboration; + GuideExpertise: GuideExpertise; + GuideFilters: GuideFilters; + GuideInput: GuideInput; + GuidesInput: GuidesInput; + Int: Scalars['Int']; + Mutation: {}; + Query: {}; + String: Scalars['String']; + UUID: Scalars['UUID']; +}; + +export type BlockResolvers = { + aditionalObjectives?: Resolver>>, ParentType, ContextType>; + aluraContents?: Resolver>>, ParentType, ContextType>; + collaborations?: Resolver>>, ParentType, ContextType>; + contents?: Resolver>>, ParentType, ContextType>; + expertises?: Resolver>>, ParentType, ContextType>; + id?: Resolver, ParentType, ContextType>; + keyObjectives?: Resolver>>, ParentType, ContextType>; + logo?: Resolver, ParentType, ContextType>; + name?: Resolver, ParentType, ContextType>; + shortDescription?: Resolver, ParentType, ContextType>; + slug?: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type BlockAditionalObjectiveResolvers = { + id?: Resolver, ParentType, ContextType>; + name?: Resolver, ParentType, ContextType>; + slug?: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type BlockContentResolvers = { + id?: Resolver, ParentType, ContextType>; + link?: Resolver, ParentType, ContextType>; + slug?: Resolver, ParentType, ContextType>; + title?: Resolver, ParentType, ContextType>; + type?: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type BlockKeyObjectiveResolvers = { + id?: Resolver, ParentType, ContextType>; + name?: Resolver, ParentType, ContextType>; + slug?: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type GuideResolvers = { + collaborations?: Resolver>>, ParentType, ContextType>; + expertises?: Resolver>>, ParentType, ContextType>; + id?: Resolver, ParentType, ContextType>; + name?: Resolver, ParentType, ContextType>; + slug?: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type GuideBlockResolvers = { + item?: Resolver, ParentType, ContextType>; + priority?: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type GuideCollaborationResolvers = { + blocks?: Resolver>>, ParentType, ContextType>; + guide?: Resolver, ParentType, ContextType>; + name?: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type GuideExpertiseResolvers = { + blocks?: Resolver>>, ParentType, ContextType>; + guide?: Resolver, ParentType, ContextType>; + name?: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; +}; + +export type MutationResolvers = { + createSampleText?: Resolver>; +}; + +export type QueryResolvers = { + block?: Resolver, ParentType, ContextType, Partial>; + blocks?: Resolver>, ParentType, ContextType, Partial>; + greet?: Resolver, ParentType, ContextType>; + guide?: Resolver, ParentType, ContextType, Partial>; + guides?: Resolver>, ParentType, ContextType, Partial>; +}; + +export interface UuidScalarConfig extends GraphQLScalarTypeConfig { + name: 'UUID'; +} + +export type Resolvers = { + Block?: BlockResolvers; + BlockAditionalObjective?: BlockAditionalObjectiveResolvers; + BlockContent?: BlockContentResolvers; + BlockKeyObjective?: BlockKeyObjectiveResolvers; + Guide?: GuideResolvers; + GuideBlock?: GuideBlockResolvers; + GuideCollaboration?: GuideCollaborationResolvers; + GuideExpertise?: GuideExpertiseResolvers; + Mutation?: MutationResolvers; + Query?: QueryResolvers; + UUID?: GraphQLScalarType; +}; + diff --git a/_api/infra/graphql/filterFieldNormalizer/index.ts b/_api/infra/graphql/filterFieldNormalizer/index.ts new file mode 100644 index 000000000..68583b6b0 --- /dev/null +++ b/_api/infra/graphql/filterFieldNormalizer/index.ts @@ -0,0 +1,19 @@ +export function filterFieldNormalizer(filter: TypeFilter) { + return Object.entries(filter || {}).reduce((acc, [key, value]) => { + if (typeof value === "object") { + const resolveValue = (value: string): any => { + return value; + }; + return { + ...acc, + [key]: Object.keys(value).reduce((acc, k) => { + return { + ...acc, + [`$${k}`]: resolveValue(value[k]), + }; + }, {}), + }; + } + return { ...acc }; + }, {}); +} diff --git a/_api/infra/graphql/gqlInput/index.ts b/_api/infra/graphql/gqlInput/index.ts new file mode 100644 index 000000000..80de77b96 --- /dev/null +++ b/_api/infra/graphql/gqlInput/index.ts @@ -0,0 +1,8 @@ +import { filterFieldNormalizer } from "../filterFieldNormalizer"; + +export function gqlInput(input: Input): Input { + return { + ...input, + filter: filterFieldNormalizer((input as unknown as any)?.filter), + }; +} diff --git a/_api/modules/blocks/index.ts b/_api/modules/blocks/index.ts new file mode 100644 index 000000000..a3eac0b28 --- /dev/null +++ b/_api/modules/blocks/index.ts @@ -0,0 +1,118 @@ +import { gql } from "apollo-server-micro"; +import { Resolvers } from "@api/gql_types"; +import { blocksRepository } from "@api/modules/blocks/repository"; +import { gqlInput } from "@api/infra/graphql/gqlInput"; +import { guidesRepository } from "../guides/repository"; +import _ from "lodash"; + +const typeDefs = gql` + # Types + type BlockKeyObjective { + id: String + slug: String + name: String + } + type BlockAditionalObjective { + id: String + slug: String + name: String + } + type BlockContent { + id: String + slug: String + type: BlockContentType + title: String + link: String + } + enum BlockContentType { + SITE + COURSE + PODCAST + ARTICLE + YOUTUBE + } + type Block { + id: String + slug: String + name: String + logo: String + shortDescription: String + keyObjectives: [BlockKeyObjective] + aditionalObjectives: [BlockAditionalObjective] + contents: [BlockContent] + aluraContents: [BlockContent] + expertises: [GuideExpertise] + collaborations: [GuideCollaboration] + } + + # Filters + input BlockFilters { + id: FieldFilter + slug: FieldFilter + name: FieldFilter + } + + # Query + input BlocksInput { + limit: Int + offset: Int + filter: BlockFilters + } + input BlockInput { + slug: String! + } + extend type Query { + block(input: BlockInput, locale: SiteLocale): Block + blocks(input: BlocksInput, locale: SiteLocale): [Block]! + } +`; + +const resolvers: Resolvers = { + Block: { + async expertises(parent) { + const guides = await guidesRepository().getAll({ input: {} }); + const expertises = guides + .map((guide) => { + return guide.expertises; + }) + .flatMap((expertise) => expertise); + + return _.filter(expertises, (expertise) => { + return _.some(expertise.blocks, { item: { slug: parent.slug } }); + }); + }, + async collaborations(parent) { + const guides = await guidesRepository().getAll({ input: {} }); + const collaborations = guides + .map((guide) => { + return guide.collaborations; + }) + .flatMap((collaboration) => collaboration); + + return _.filter(collaborations, (collaboration) => { + return _.some(collaboration.blocks, { item: { slug: parent.slug } }); + }); + }, + }, + Query: { + async blocks(_, { input }) { + const blocks = await blocksRepository().getAll({ + input: gqlInput(input), + }); + + return blocks; + }, + async block(_, { input }) { + const block = await blocksRepository().getBySlug({ + input: gqlInput(input), + }); + return block; + }, + }, + Mutation: {}, +}; + +export default { + typeDefs, + resolvers, +}; diff --git a/_api/modules/blocks/repository.ts b/_api/modules/blocks/repository.ts new file mode 100644 index 000000000..7e5a72650 --- /dev/null +++ b/_api/modules/blocks/repository.ts @@ -0,0 +1,105 @@ +import fs from "fs/promises"; +import path from "path"; +import sift from "sift"; +import readYamlFile from "read-yaml-file/index"; +import { slugify } from "@src/infra/slugify"; +import { paginate } from "@src/infra/paginate"; +import { Block, BlockInput, BlocksInput } from "@api/gql_types"; +import { gqlInput } from "@api/infra/graphql/gqlInput"; + +const ALLOW_LIST = []; + +export function blocksRepository() { + const pathToBlocks = path.resolve(".", "_data", "blocks"); + const repository = { + async getAll({ input }: { input: BlocksInput }): Promise { + const { filter = {}, offset, limit } = input; + + const blockFileNames = await ( + await Promise.all(await fs.readdir(pathToBlocks)) + ).filter((fileName) => !ALLOW_LIST.includes(fileName)); + + const blocksPromise = blockFileNames.map(async (fileName) => { + const fileContent = await readYamlFile( + path.resolve(pathToBlocks, fileName) + ); + const slug = slugify(fileName.replace(".pt_BR.yaml", "")); + + return { + ...fileContent, + id: fileContent?.id || slug, + slug: slug, + name: fileContent.name, + logo: fileContent.logo, + shortDescription: fileContent["short-description"], + keyObjectives: fileContent["key-objectives"]?.map((keyObjective) => { + const slug = slugify(keyObjective); + return { + id: slug, + slug: slug, + name: keyObjective, + }; + }), + aditionalObjectives: fileContent["aditional-objectives"]?.map( + (aditionalObjective) => { + const slug = slugify(aditionalObjective); + return { + id: slug, + slug: slug, + name: aditionalObjective, + }; + } + ), + contents: fileContent.contents?.map((content) => { + const slug = slugify(content.title); + return { + ...content, + type: content.type.toUpperCase(), + id: slug, + slug: slug, + title: content.title, + }; + }), + aluraContents: fileContent["alura-contents"]?.map((content) => { + const slug = slugify(content.title); + return { + ...content, + type: content.type.toUpperCase(), + id: slug, + slug: slug, + title: content.title, + }; + }), + }; + }); + + const blocksSettled = await Promise.allSettled(blocksPromise); + const blocks = blocksSettled + .filter((block) => block.status === "fulfilled") + .map((block) => (block as any).value); + + const output = paginate( + blocks.filter(sift(filter)), + limit, + offset + ); + + return output; + }, + async getBySlug({ input }: { input: BlockInput }): Promise { + const blocks = await repository.getAll({ + input: gqlInput({ + filter: { + slug: { + eq: input.slug, + }, + }, + }), + }); + + return blocks[0]; + }, + }; + + return repository; +} diff --git a/_api/modules/guides/index.ts b/_api/modules/guides/index.ts new file mode 100644 index 000000000..5777118f9 --- /dev/null +++ b/_api/modules/guides/index.ts @@ -0,0 +1,98 @@ +import _ from "lodash"; +import { gql } from "apollo-server-micro"; +import { Resolvers } from "@api/gql_types"; +import { guidesRepository } from "@api/modules/guides/repository"; +import { gqlInput } from "@api/infra/graphql/gqlInput"; +import { blocksRepository } from "../blocks/repository"; + +const typeDefs = gql` + type GuideBlock { + priority: Int + item: Block + } + + type GuideExpertise { + name: String + blocks: [GuideBlock] + guide: Guide + } + type GuideCollaboration { + name: String + blocks: [GuideBlock] + guide: Guide + } + + type Guide { + id: String + slug: String + name: String + expertises: [GuideExpertise] + collaborations: [GuideCollaboration] + } + input GuideFilters { + id: FieldFilter + slug: FieldFilter + name: FieldFilter + } + + # Query + input GuidesInput { + limit: Int + offset: Int + filter: GuideFilters + } + input GuideInput { + slug: String! + } + extend type Query { + guide(input: GuideInput, locale: SiteLocale): Guide + guides(input: GuidesInput, locale: SiteLocale): [Guide]! + } +`; + +const resolvers: Resolvers = { + Query: { + async guides(_, { input }) { + const guides = await guidesRepository().getAll({ + input: gqlInput(input), + }); + + return guides; + }, + async guide(_, { input }) { + const guide = await guidesRepository().getBySlug({ + input: gqlInput(input), + }); + return guide; + }, + }, + GuideExpertise: { + async guide(parent) { + const guides = await guidesRepository().getAll({ input: {} }); + return _.find(guides, (guide) => { + return _.some(guide.expertises, { name: parent.name }); + }); + }, + }, + GuideCollaboration: { + async guide(parent) { + const guides = await guidesRepository().getAll({ input: {} }); + return _.find(guides, (guide) => { + return _.some(guide.collaborations, { name: parent.name }); + }); + }, + }, + GuideBlock: { + async item(parent) { + return blocksRepository().getBySlug({ + input: gqlInput({ slug: parent.item.slug }), + }); + }, + }, + Mutation: {}, +}; + +export default { + typeDefs, + resolvers, +}; diff --git a/_api/modules/guides/repository.ts b/_api/modules/guides/repository.ts new file mode 100644 index 000000000..71a78f66f --- /dev/null +++ b/_api/modules/guides/repository.ts @@ -0,0 +1,107 @@ +import fs from "fs/promises"; +import path from "path"; +import sift from "sift"; +import readYamlFile from "read-yaml-file/index"; +import { slugify } from "@src/infra/slugify"; +import { paginate } from "@src/infra/paginate"; +import { Guide, GuideInput, GuidesInput } from "@api/gql_types"; +import { gqlInput } from "@api/infra/graphql/gqlInput"; + +const ALLOW_LIST = []; + +export function guidesRepository() { + const pathToGuides = path.resolve(".", "_data", "guides"); + const repository = { + async getAll({ input }: { input: GuidesInput }): Promise { + const { filter = {}, offset, limit } = input; + + const guideFileNames = (await fs.readdir(pathToGuides)).filter( + (fileName) => !ALLOW_LIST.includes(fileName) + ); + + const guides = await Promise.all( + guideFileNames.map(async (fileName) => { + const fileContent = await readYamlFile( + path.resolve(pathToGuides, fileName) + ); + const slug = slugify(fileName.replace(".yaml", "")); + + return { + ...fileContent, + id: slug, + slug: slug, + name: fileContent.name, + expertises: fileContent.expertise.map((expertise) => { + let blocks = []; + + if (expertise.blocks) { + blocks = expertise.blocks.map((block) => { + const [slug] = Object.keys(block); + return { + item: { + ...block, + id: slug, + slug: slug, + }, + priority: block.priority, + }; + }); + } + + return { + ...expertise, + blocks, + }; + }), + collaborations: fileContent.collaboration.map((collaboration) => { + let blocks = []; + + if (collaboration.blocks) { + blocks = collaboration.blocks.map((block) => { + const [slug] = Object.keys(block); + + return { + item: { + ...block, + id: slug, + slug: slug, + }, + priority: block.priority, + }; + }); + } + + return { + ...collaboration, + blocks, + }; + }), + }; + }) + ); + + const output = paginate( + guides.filter(sift(filter)), + limit, + offset + ); + + return output; + }, + async getBySlug({ input }: { input: GuideInput }): Promise { + const guides = await repository.getAll({ + input: gqlInput({ + filter: { + slug: { + eq: input.slug, + }, + }, + }), + }); + + return guides[0]; + }, + }; + + return repository; +} diff --git a/_data/blocks/ado-dot-net.pt_BR.yaml b/_data/blocks/ado-dot-net.pt_BR.yaml new file mode 100644 index 000000000..ac1b135f6 --- /dev/null +++ b/_data/blocks/ado-dot-net.pt_BR.yaml @@ -0,0 +1,23 @@ +name: ADO.NET +logo: +short-description: +key-objectives: + - Manipular bancos de dados + - Conhecer o DataSet e DataTable + - Realizar conexões + - Manipular documentos XML +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: ADO.NET" + link: https://docs.microsoft.com/pt-br/dotnet/framework/data/adonet/ado-net-overview + - type: YOUTUBE + title: "Parmezani.NET: ADO.NET - Acesso ao banco de dados com classe genérica" + link: https://www.youtube.com/watch?v=GE5Q9sDS7rQ + - type: YOUTUBE + title: "André Lima: Salvando arquivos no banco de dados com C# e ADO.NET" + link: https://www.youtube.com/watch?v=2H3Hc0ZFGjY +alura-contents: + - type: SITE + title: "Apostila: Orientação a Objetos em C# - Capítulo 8 - Acesso a banco de dados" + link: https://biblioteca.alura.tech/bitstream/123456789/77/1/Araujo_Everton_Orienta%C3%A7%C3%A3o%20a%20objetos%20em%20C%23.pdf \ No newline at end of file diff --git a/_data/blocks/angular-cli.pt_BR.yaml b/_data/blocks/angular-cli.pt_BR.yaml new file mode 100644 index 000000000..334303047 --- /dev/null +++ b/_data/blocks/angular-cli.pt_BR.yaml @@ -0,0 +1,32 @@ +name: Angular - CLI (Interface de Linha de Comando) +logo: +short-description: +key-objectives: + - Inicializar, desenvolver e manter aplicações Angular a partir da interface de linha de comando +aditional-objectives: +contents: + - type: SITE + title: "Documentação Angular CLI (inglês)" + link: https://angular.io/cli + - type: ARTICLE + title: "Desenvolva Aplicações Full-Stack com Angular CLI e Nx" + link: https://ricardo-mello.medium.com/desenvolva-aplica%C3%A7%C3%B5es-full-stack-com-angular-cli-e-nx-2f8dce62975f + - type: YOUTUBE + title: "Cristian William Dev: Angular CLI: Comandos que você deve saber" + link: https://www.youtube.com/watch?v=lIbBYa07u3Q + - type: YOUTUBE + title: "Loiane Groner: Angular CLI - Instalação e criação de projetos: ng new e ng serve" + link: https://www.youtube.com/watch?v=RlfOhrhPh_Y + - type: YOUTUBE + title: "Loiane Groner: Angular CLI - Criando components, services: ng generate" + link: https://www.youtube.com/watch?v=8x-5Q2YzvuE + - type: YOUTUBE + title: "Loiane Groner: Angular CLI - Estrutura do projeto" + link: https://www.youtube.com/watch?v=ICvq9YeDCh0 + - type: YOUTUBE + title: "Loiane Groner: Angular CLI - Gerando build de produção" + link: https://www.youtube.com/watch?v=U0zHj14mNrI +alura-contents: + - type: ARTICLE + title: "Criando aplicações Angular com Angular CLI" + link: https://www.alura.com.br/artigos/criando-aplicacoes-angular-com-angular-cli \ No newline at end of file diff --git a/_data/blocks/angular-dependency-injection.pt_BR.yaml b/_data/blocks/angular-dependency-injection.pt_BR.yaml new file mode 100644 index 000000000..c9554991e --- /dev/null +++ b/_data/blocks/angular-dependency-injection.pt_BR.yaml @@ -0,0 +1,33 @@ +name: Angular - Injeção de Dependências +logo: +short-description: +key-objectives: + - Declarar as dependências de suas classes + - Injetar dependências em um componente +aditional-objectives: +contents: + - type: SITE + title: "Documentação - Dependency injection (inglês)" + link: https://angular.io/guide/what-is-angular#dependency-injection + - type: SITE + title: "Injeção de dependência" + link: https://ajuda.gitlab.io/guia-rapido/angular/injecao-de-dependencia/ + - type: ARTICLE + title: "Fabricando Injeções de Dependência no Angular" + link: https://andrewrosario.medium.com/fabricando-inje%C3%A7%C3%B5es-de-depend%C3%AAncia-no-angular-7b2e2bc98f61 + - type: YOUTUBE + title: "Loiane Groner: Injeção de Dependência (DI) + como usar um serviço em um componente" + link: https://www.youtube.com/watch?v=KqsFxBMlM9s + - type: YOUTUBE + title: "Loiane Groner: Injetando um serviço em outro serviço" + link: https://www.youtube.com/watch?v=hMhCDO75Aus +alura-contents: + - type: ARTICLE + title: "Services e injeção de dependência no Angular: o que são e como funcionam?" + link: https://www.alura.com.br/artigos/services-injecao-dependencia-angular-o-que-sao-como-funcionam + - type: SITE + title: "Primeiras aulas do curso Angular parte 1: produtividade e organização com framework SPA" + link: https://www.alura.com.br/conteudo/angular-fundamentos + - type: COURSE + title: "Curso Angular parte 1: produtividade e organização com framework SPA" + link: https://www.alura.com.br/curso-online-angular-fundamentos \ No newline at end of file diff --git a/_data/blocks/angular-forms.pt_BR.yaml b/_data/blocks/angular-forms.pt_BR.yaml new file mode 100644 index 000000000..1d6dee3e9 --- /dev/null +++ b/_data/blocks/angular-forms.pt_BR.yaml @@ -0,0 +1,36 @@ +name: Angular - Formulários +logo: +short-description: +key-objectives: + - Criar formulários com Template Forms + - Criar formulários com reativos com Reactive Forms +aditional-objectives: +contents: + - type: ARTICLE + title: "Tutorial — Reactive Forms com Angular" + link: https://medium.com/mobicareofficial/tutorial-reactive-forms-com-angular-d4f6c050a794 + - type: ARTICLE + title: "Criando formulários com etapas no Angular" + link: https://medium.com/inside-picpay/criando-formul%C3%A1rios-com-etapas-no-angular-135e9fb48d99 + - type: ARTICLE + title: "Formulários Dinâmicos com Angular" + link: https://medium.com/@paulogabrielvieira/formul%C3%A1rios-din%C3%A2micos-com-angular-d538aee17834 + - type: YOUTUBE + title: "Loiane Groner: Formulários (template vs data / reativo) Introdução" + link: https://www.youtube.com/watch?v=TevqIDM7aY8&list=PLGxZ4Rq3BOBoSRcKWEdQACbUCNWLczg2G&index=74 + - type: YOUTUBE + title: "Loiane Groner: Formulários - Criando o projeto inicial com Bootstrap 3" + link: https://www.youtube.com/watch?v=j7OZGu3hlQ0&list=PLGxZ4Rq3BOBoSRcKWEdQACbUCNWLczg2G&index=75 + - type: YOUTUBE + title: "Loiane Groner: Formulários reativos (data driven) Introdução" + link: https://www.youtube.com/watch?v=aJz-BhRxN38&list=PLGxZ4Rq3BOBoSRcKWEdQACbUCNWLczg2G&index=90 + - type: YOUTUBE + title: "Loiane Groner: Formulários reativos: Criando um form com código Angular" + link: https://www.youtube.com/watch?v=931fynCdTKw&list=PLGxZ4Rq3BOBoSRcKWEdQACbUCNWLczg2G&index=92 +alura-contents: + - type: SITE + title: "Primeiras aulas do curso Angular: boas práticas em arquiteturas e formulários" + link: https://www.alura.com.br/conteudo/angular-boas-praticas-arquiteturas-formularios + - type: COURSE + title: "Curso Angular: boas práticas em arquiteturas e formulários" + link: https://www.alura.com.br/curso-online-angular-boas-praticas-arquiteturas-formularios \ No newline at end of file diff --git a/_data/blocks/angular-fundamentals.pt_BR.yaml b/_data/blocks/angular-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..8efdb15e7 --- /dev/null +++ b/_data/blocks/angular-fundamentals.pt_BR.yaml @@ -0,0 +1,38 @@ +name: Angular - Fundamentos +logo: +short-description: +key-objectives: + - Construir interfaces utilizando HTML, CSS e TypeScript + - Criar aplicações SPA + - Construir aplicações web, mobile ou desktop + - Integrar dados com API’s REST + - Utilizar a composição para criar componentes reutilizáveis + - Utilizar serviços do tipo Resolver + - Manipular requisições criando serviços do tipo Interceptor +aditional-objectives: +contents: + - type: SITE + title: "Documentação Angular (inglês)" + link: https://angular.io/docs + - type: ARTICLE + title: "Bê-á-bá do Angular" + link: https://belmirofss.medium.com/b%C3%AA-%C3%A1-b%C3%A1-do-angular-8f23a109b4fc + - type: ARTICLE + title: "Angular I — Iniciando um projeto do zero" + link: https://medium.com/@iagomachado/angular-i-iniciando-um-projeto-do-zero-5290da9fa90e + - type: YOUTUBE + title: "Mario Souto - Dev Soutinho: Como APRENDER um FRAMEWORK Front End? Como eu aprendi Angular?" + link: https://www.youtube.com/watch?v=mMMqMk2buzs + - type: YOUTUBE + title: "Loiane Groner: Curso Angular 2" + link: https://www.youtube.com/watch?v=tPOMG0D57S0&list=PLGxZ4Rq3BOBoSRcKWEdQACbUCNWLczg2G +alura-contents: + - type: YOUTUBE + title: "Alura: O que é Angular e AngularJS?" + link: https://www.youtube.com/watch?v=LFlNU30u7d8 + - type: YOUTUBE + title: "Alura: Programação Reativa - Alura Live 54" + link: https://www.youtube.com/watch?v=N0ie4xe48Ng + - type: COURSE + title: "Formação Angular" + link: https://www.alura.com.br/formacao-angular \ No newline at end of file diff --git a/_data/blocks/angular-modules.pt_BR.yaml b/_data/blocks/angular-modules.pt_BR.yaml new file mode 100644 index 000000000..1779cd5c7 --- /dev/null +++ b/_data/blocks/angular-modules.pt_BR.yaml @@ -0,0 +1,38 @@ +name: Angular - Módulos +logo: +short-description: +key-objectives: + - Registrar componentes + - Declarar quais componentes podem ser usados por componentes de outros módulos + - Declarar quais services serão injetados + - Aprender a modularizar uma aplicação +aditional-objectives: +contents: + - type: ARTICLE + title: "Qual a diferença entre Module e Component no Angular?" + link: https://fabiodemiranda.com.br/diferenca-module-component-angular-curtinha-angular/ + - type: ARTICLE + title: "Angular: Core vs Shared Modules" + link: https://medium.com/lfdev-blog/angular-core-vs-shared-modules-c6efb13fa1f1 + - type: ARTICLE + title: "Angular - Módulos Lazy Loading" + link: https://medium.com/@iagomachado/angular-cap-ii-angular-lazy-loading-modules-88c175b81503 + - type: YOUTUBE + title: "Loiane Groner: Módulos (ngModule)" + link: https://www.youtube.com/watch?v=36kd3uR-hG8 + - type: YOUTUBE + title: "Loiane Groner: Criando um módulo de funcionalidade" + link: https://www.youtube.com/watch?v=P4GYpzNNEw4 + - type: YOUTUBE + title: "Loiane Groner: Forms (template driven) Módulos e FormsModule" + link: https://www.youtube.com/watch?v=9z47wkaaqmc + - type: YOUTUBE + title: "Loiane Groner: Formulários reativos: Configuração (Módulo e Componente)" + link: https://www.youtube.com/watch?v=2DoQX5CVvAk +alura-contents: + - type: SITE + title: "Primeiras aulas do curso Angular: boas práticas em arquiteturas e formulários" + link: https://www.alura.com.br/conteudo/angular-boas-praticas-arquiteturas-formularios + - type: COURSE + title: "Curso Angular: boas práticas em arquiteturas e formulários" + link: https://www.alura.com.br/curso-online-angular-boas-praticas-arquiteturas-formularios \ No newline at end of file diff --git a/_data/blocks/angular-rendering.pt_BR.yaml b/_data/blocks/angular-rendering.pt_BR.yaml new file mode 100644 index 000000000..542af8c72 --- /dev/null +++ b/_data/blocks/angular-rendering.pt_BR.yaml @@ -0,0 +1,24 @@ +name: Angular - Renderização +logo: +short-description: +key-objectives: + - Exibir uma página Angular no navegador + - Realizar renderização no lado do servidor +aditional-objectives: +contents: + - type: ARTICLE + title: "Angular Universal — Renderizando sua aplicação no Servidor" + link: https://medium.com/@arturquirino/angular-universal-renderizando-sua-aplica%C3%A7%C3%A3o-no-servidor-f9ac617237d2 + - type: ARTICLE + title: "Performance em Angular — Dicas e truques" + link: https://medium.com/codigorefinado/performance-em-angular-dicas-e-truques-deeb6cb3860c + - type: ARTICLE + title: "Introdução a Renderização Dinâmica" + link: https://reulison.com.br/renderizacao-dinamica/ +alura-contents: + - type: SITE + title: "Primeiras aulas do curso Angular: explorando o framework" + link: https://www.alura.com.br/conteudo/angular-comecando-framework + - type: COURSE + title: "Curso Angular: explorando o framework" + link: https://www.alura.com.br/curso-online-angular-comecando-framework \ No newline at end of file diff --git a/_data/blocks/angular-routing.pt_BR.yaml b/_data/blocks/angular-routing.pt_BR.yaml new file mode 100644 index 000000000..85c66fa5f --- /dev/null +++ b/_data/blocks/angular-routing.pt_BR.yaml @@ -0,0 +1,31 @@ +name: Angular - Roteamento +logo: +short-description: +key-objectives: + - Navegar até um componente + - Incluir um parâmetro de rota + - Controlar o fluxo de navegação do seu usuário com guarda de rotas +aditional-objectives: +contents: + - type: SITE + title: "Router tutorial (inglês)" + link: https://medium.com/angularbr/angular-5-trabalhando-com-rotas-8335617fcdbc + - type: ARTICLE + title: "Angular 5: Trabalhando com Rotas" + link: https://medium.com/angularbr/angular-5-trabalhando-com-rotas-8335617fcdbc + - type: ARTICLE + title: "Layout, rotas e parâmetros" + link: https://kosmicke.medium.com/aula-01-layout-rotas-e-par%C3%A2metros-80f44dafb43a + - type: YOUTUBE + title: "Loiane Groner: Rotas - Introdução" + link: https://www.youtube.com/watch?v=wzdKc0AFY6k&list=PLGxZ4Rq3BOBoSRcKWEdQACbUCNWLczg2G&index=51 + - type: YOUTUBE + title: "Loiane Groner: Rotas - Configurando rotas simples" + link: https://www.youtube.com/watch?v=8OHoAZ6j0Rg&list=PLGxZ4Rq3BOBoSRcKWEdQACbUCNWLczg2G&index=52 +alura-contents: + - type: SITE + title: "Primeiras aulas do curso Angular: controle o fluxo de navegação" + link: https://www.alura.com.br/conteudo/angular-comecando-framework + - type: COURSE + title: "Curso Angular: controle o fluxo de navegação" + link: https://www.alura.com.br/curso-online-angular-controle-fluxo-navegacao \ No newline at end of file diff --git a/_data/blocks/angular-services.pt_BR.yaml b/_data/blocks/angular-services.pt_BR.yaml new file mode 100644 index 000000000..8ffae022b --- /dev/null +++ b/_data/blocks/angular-services.pt_BR.yaml @@ -0,0 +1,27 @@ +name: Angular - Services +logo: +short-description: +key-objectives: + - Criar dados que estarão sempre disponíveis + - Dividir a aplicação web em diversas partes +aditional-objectives: +contents: + - type: ARTICLE + title: "O que é um serviço no Angular e porquê usá-lo?" + link: https://dumildematos.medium.com/o-que-%C3%A9-um-servi%C3%A7o-no-angular-e-por-que-us%C3%A1-lo-2c8b441618cf + - type: ARTICLE + title: "Herança de services em Angular" + link: https://vanderloureiro.medium.com/heran%C3%A7a-de-services-em-angular-fca7a97b5f0c + - type: YOUTUBE + title: "Michelli Brito: Criando um Service" + link: https://www.youtube.com/watch?v=IA8q9REW1LI + - type: YOUTUBE + title: "Loiane Groner: Criando um serviço (Service)" + link: https://www.youtube.com/watch?v=8fE1e9j6fJo +alura-contents: + - type: SITE + title: "Primeiras aulas do curso Angular: explorando o framework" + link: https://www.alura.com.br/conteudo/angular-comecando-framework + - type: COURSE + title: "Curso Angular: explorando o framework" + link: https://www.alura.com.br/curso-online-angular-comecando-framework \ No newline at end of file diff --git a/_data/blocks/angular-state-management.pt_BR.yaml b/_data/blocks/angular-state-management.pt_BR.yaml new file mode 100644 index 000000000..fb15d405d --- /dev/null +++ b/_data/blocks/angular-state-management.pt_BR.yaml @@ -0,0 +1,30 @@ +name: Angular - Gerenciamento de Estado +logo: +short-description: +key-objectives: + - Atualizar componentes em tempo real + - Esperar por alterações em algum componente e executar alterações +aditional-objectives: +contents: + - type: ARTICLE + title: "Pensando Reativamente - Teoria e Prática com Angular e RxJS" + link: https://medium.com/@richardleecba/pensando-reativamente-91361cfdccc5 + - type: ARTICLE + title: "Gerenciamento de estado com Redux" + link: https://medium.com/@marcossantosdev/gerenciamento-de-estado-com-redux-d048c0c9d0ad + - type: ARTICLE + title: "Como Estruturar o seu Front-End com Angular" + link: https://ricardo-mello.medium.com/como-estruturar-o-seu-front-end-com-angular-7fd0e7ef31a2 + - type: ARTICLE + title: "Padrões e Boas Práticas em Angular" + link: https://andrewrosario.medium.com/padr%C3%B5es-e-boas-pr%C3%A1ticas-em-angular-que-te-ajudar%C3%A3o-a-escalar-5001e544e7de + - type: YOUTUBE + title: "GDG Maringá: Gerenciamento de estado no Angular com NgRx e programação reativa" + link: https://www.youtube.com/watch?v=9taz2c-l2Yk + - type: YOUTUBE + title: "Matheus Castiglioni: Angular - Gerenciando estado com NGRX" + link: https://www.youtube.com/watch?v=BobNwRgz6Uw +alura-contents: + - type: COURSE + title: "Curso Angular: design de componentes com acessibilidade" + link: https://www.alura.com.br/curso-online-angular-introducao-componentes-acessibilidade \ No newline at end of file diff --git a/_data/blocks/angular-templates.pt_BR.yaml b/_data/blocks/angular-templates.pt_BR.yaml new file mode 100644 index 000000000..1e65f05b0 --- /dev/null +++ b/_data/blocks/angular-templates.pt_BR.yaml @@ -0,0 +1,29 @@ +name: Angular - Templates +logo: +short-description: +key-objectives: + - Como usar os templates +aditional-objectives: +contents: + - type: SITE + title: "Templates do Angular" + link: https://fsw-ceulp.gitbooks.io/desenvolvimento-de-software-para-a-web/content/angular-tutorial/passo-2.html + - type: ARTICLE + title: "Angular: NgTemplate" + link: https://medium.com/criciumadev/angular-ngtemplate-d59b32d47d01 + - type: ARTICLE + title: "ngTemplateOutlet: O segredo da personalização" + link: https://andrewrosario.medium.com/ngtemplateoutlet-o-segredo-da-personaliza%C3%A7%C3%A3o-6f3203787a56 + - type: YOUTUBE + title: "Loiane Groner: Introdução aos Templates" + link: https://www.youtube.com/watch?v=bBFScNfW904 +alura-contents: + - type: SITE + title: "Primeiras aulas do curso Angular: explorando o framework" + link: https://www.alura.com.br/conteudo/angular-comecando-framework + - type: COURSE + title: "Curso Angular: explorando o framework" + link: https://www.alura.com.br/curso-online-angular-comecando-framework + - type: COURSE + title: "Curso Angular: design de componentes com acessibilidade" + link: https://www.alura.com.br/curso-online-angular-introducao-componentes-acessibilidade \ No newline at end of file diff --git a/_data/blocks/angular-testing.pt_BR.yaml b/_data/blocks/angular-testing.pt_BR.yaml new file mode 100644 index 000000000..003476567 --- /dev/null +++ b/_data/blocks/angular-testing.pt_BR.yaml @@ -0,0 +1,32 @@ +name: Angular - Testes +logo: +short-description: +key-objectives: + - Usar testes unitários + - Usar testes de integração + - Usar testes de comportamento (behavior) + - Usar mocks +aditional-objectives: +contents: + - type: ARTICLE + title: "Testes de unidade usando Angular" + link: https://medium.com/totvsdevelopers/testes-de-unidade-usando-angular-b83ea6accf7c + - type: ARTICLE + title: "Escrevendo testes eficientes de verdade no Angular" + link: https://andrewrosario.medium.com/escrevendo-testes-eficientes-de-verdade-no-angular-263a9d03cecf + - type: YOUTUBE + title: "Hype IT Brasil: Testes Unitários no Angular" + link: https://www.youtube.com/watch?v=RCi2EEwNZ6M + - type: YOUTUBE + title: "Hype IT Brasil: Como testar um componente no Angular" + link: https://www.youtube.com/watch?v=RFHDWc-apLQ + - type: YOUTUBE + title: "Liara Programmer: Como criar teste unitários em Angular" + link: https://www.youtube.com/watch?v=S6M7xWQmirs +alura-contents: + - type: COURSE + title: "Curso Angular: testes automatizados com Jasmine e Karma" + link: https://www.alura.com.br/curso-online-angular-testes-automatizados-jasmin-karma + - type: COURSE + title: "Curso Angular: avançando com testes automatizados" + link: https://www.alura.com.br/curso-online-angular-avancando-testes-automatizados \ No newline at end of file diff --git a/_data/blocks/apollo-client.pt_BR.yaml b/_data/blocks/apollo-client.pt_BR.yaml new file mode 100644 index 000000000..e9f8647a8 --- /dev/null +++ b/_data/blocks/apollo-client.pt_BR.yaml @@ -0,0 +1,32 @@ +name: Apollo Client +logo: +short-description: +key-objectives: + - Conectar com uma API +aditional-objectives: +contents: + - type: site + title: "Documentação: Apollo Client (inglês)" + link: https://www.apollographql.com/docs/react/ + - type: article + title: "Consumindo API GraphQL usando React e Apollo Client" + link: https://dev.to/mensonones/consumindo-api-graphql-usando-react-e-apollo-client-4blo + - type: youtube + title: "dogcode: Como configurar o Apollo Client em um projeto React" + link: https://www.youtube.com/watch?v=Zeu2-4sOZhw + - type: youtube + title: "Washington Developer: Curso de GraphQL 27: ApolloClient" + link: https://www.youtube.com/watch?v=kQyICDpLH8g +alura-contents: + - type: site + title: "Primeiras aulas do curso Graphql: Construindo uma API com Apollo Server" + link: https://www.alura.com.br/conteudo/graphql-construindo-api-apollo-server + - type: course + title: "Curso GraphQL: construindo uma API com Apollo Server" + link: https://www.alura.com.br/curso-online-graphql-construindo-api-apollo-server + - type: site + title: "Primeiras aulas do Curso GraphQL parte 3: integrando com sua aplicação" + link: https://www.alura.com.br/conteudo/graphql-integrando-com-front-end + - type: course + title: "Curso GraphQL parte 3: integrando com sua aplicação" + link: https://www.alura.com.br/curso-online-graphql-integrando-com-front-end diff --git a/_data/blocks/asp-net-core.pt_BR.yaml b/_data/blocks/asp-net-core.pt_BR.yaml new file mode 100644 index 000000000..3d51ca434 --- /dev/null +++ b/_data/blocks/asp-net-core.pt_BR.yaml @@ -0,0 +1,53 @@ +name: ASP.NET Core +logo: +short-description: +key-objectives: + - Criar aplicativos e serviços Web + - Manter um aplicativo MVC + - Desenvolver de interface do usuário da Web do lado do cliente + - Criar uma API Web +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: Visão geral do ASP.NET Core" + link: https://docs.microsoft.com/pt-br/aspnet/core/introduction-to-aspnet-core?view=aspnetcore-6.0 + - type: ARTICLE + title: "ASP.NET Core: dicas úteis para o dia a dia de um Desenvolvedor - Parte 1" + link: https://guih2127.medium.com/um-pouco-sobre-estruturas-de-dados-em-c-e4371fe651d8 + - type: YOUTUBE + title: "Glaucia Lemos: Workshop: Asp .NET Core para Iniciantes" + link: https://www.youtube.com/watch?v=njlmcXxSHE4 + - type: YOUTUBE + title: "Teacher Mauro Duarte: C# Introdução ao Asp.Net Core MVC" + link: https://www.youtube.com/watch?v=lwVvrRIS7aI + - type: YOUTUBE + title: "Thiago Pelissari: .Net Framework VS .Net Core - Qual é a diferença ?" + link: https://www.youtube.com/watch?v=PM1JKY41wnw +alura-contents: + - type: PODCAST + title: "Hipsters.tech: ASP.NET Core – Hipsters 108" + link: https://www.hipsters.tech/asp-net-core-hipsters-108/ + - type: PODCAST + title: "Hipsters.tech: .NET Core no Stack Overflow – Hipsters On The Road 20" + link: https://www.hipsters.tech/net-core-no-stack-overflow-hipsters-on-the-road-20/ + - type: ARTICLE + title: "Como criar uma calculadora de IMC com ASP.NET Core Blazor" + link: https://www.alura.com.br/artigos/como-criar-calculadora-imc-com-asp-net-core-blazor + - type: ARTICLE + title: "Configurando e rodando ASP.NET MVC no Mac OS" + link: https://www.alura.com.br/artigos/configurando-e-rodando-asp-net-mvc-no-mac-os + - type: YOUTUBE + title: "Alura: Criando sua primeira aplicação .NET Core no Linux" + link: https://www.youtube.com/watch?v=UZQqXPuKr1s + - type: YOUTUBE + title: "Alura: ASP NET.Core - Alura Live 32" + link: https://www.youtube.com/watch?v=qVddNI13AUo + - type: COURSE + title: "Curso Asp.NET Core: uma webapp usando o padrão MVC" + link: https://cursos.alura.com.br/course/introducao-ao-mvc-com-asp-net-core + - type: COURSE + title: "Curso ASP.NET Core parte 1: um e-Commerce com MVC e EF Core" + link: https://cursos.alura.com.br/course/webapp-com-aspnet-core-2 + - type: COURSE + title: "Curso ASP.NET Core parte 2: um e-Commerce com MVC e EF Core" + link: https://cursos.alura.com.br/course/aspnet-core-2-validacoes-seguranca \ No newline at end of file diff --git a/_data/blocks/babel-fundamentals.pt_BR.yaml b/_data/blocks/babel-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..b40daf930 --- /dev/null +++ b/_data/blocks/babel-fundamentals.pt_BR.yaml @@ -0,0 +1,26 @@ +name: Babel - Fundamentos +logo: +short-description: +key-objectives: + - Compreender como Babel converte a sintaxe para JavaScript +aditional-objectives: +contents: + - type: site + title: "Documentação: What is Babel? (inglês)" + link: https://babeljs.io/docs/en/ + - type: article + title: "O que é babel?" + link: https://coodesh.com/blog/dicionario/o-que-e-babel/ + - type: article + title: "React e Babel — Como melhorar o desempenho de suas aplicações com plugins, presets e benchmark!" + link: https://medium.com/nossa-coletividad/react-e-babel-como-melhorar-o-desempenho-de-suas-aplica%C3%A7%C3%B5es-com-plugins-presets-e-benchmark-fb35700a52e9 + - type: youtube + title: "Matheus Castiglioni: React, Babel e Webpack, o que é tudo isso?" + link: https://www.youtube.com/watch?v=y5B0MXmt428 + - type: youtube + title: "web3escola: Introdução ao React - Babel" + link: https://www.youtube.com/watch?v=jSGg2j2UNr4 +alura-contents: + - type: course + title: "Curso JavaScript: salvando dados localmente com IndexedDB" + link: https://www.alura.com.br/curso-online-javascript-es6-orientacao-a-objetos-parte-3 diff --git a/_data/blocks/big-data-and-data-engineering.pt_BR.yaml b/_data/blocks/big-data-and-data-engineering.pt_BR.yaml new file mode 100644 index 000000000..ce9e10ccd --- /dev/null +++ b/_data/blocks/big-data-and-data-engineering.pt_BR.yaml @@ -0,0 +1,73 @@ +name: Big Data e Engenharia de Dados +logo: +short-description: +key-objectives: + - Big data é a área do conhecimento que estuda como tratar, analisar e obter informações a partir de conjuntos de dados grandes demais para serem analisados por sistemas tradicionais. Engenharia de Dados envolve o desenvolvimento de sistemas capazes de coletar, armazenar e transformar dados em grande escala. + - Criar um pipeline de dados + - Conhecer o Apache Airflow + - Conhecer o Apache Spark + - Conhecer o conceito de Data Lake + - Produzir uma análise estruturada com base nos dados lidos + - Realizar a paralelização de processos de transformações em dados brutos + - Unir bases diferentes para que tenham correlações + - Interagir com servidores na nuvem + - Entender a diferença entre um banco gerenciado e não gerenciado + - Realizar conexões SSH com servidores + - Criar aplicações Spark +aditional-objectives: +contents: + - type: SITE + title: "Oracle: O que é Big Data?" + link: https://www.oracle.com/br/big-data/what-is-big-data/ + - type: SITE + title: "Glassdoor: O que faz um Engenheiro De Dados?" + link: https://www.glassdoor.com.br/Carreira/engenheiro-de-dados-carreira_KO0,19.htm + - type: ARTICLE + title: "A Era do Big Data" + link: https://medium.com/gabriel-luz/a-era-do-big-data-64ebad5859f2 + - type: YOUTUBE + title: "Nerdologia: Big Data" + link: https://www.youtube.com/watch?v=hEFFCKxYbKM + - type: YOUTUBE + title: "Daniel Ramos Nogueira: O que é Big Data? O que é Data Analytics?" + link: https://www.youtube.com/watch?v=4CNqiAgmqSc + - type: YOUTUBE + title: "Jayne Sou: O que faz um Engenheiro de Dados" + link: https://www.youtube.com/watch?v=qvIrIqLqWfw +alura-contents: + - type: ARTICLE + title: "Big Data: Entenda mais sobre esse conceito" + link: https://www.alura.com.br/artigos/big-data + - type: ARTICLE + title: "Data Lake vs Data Warehouse" + link: https://www.alura.com.br/artigos/data-lake-vs-data-warehouse + - type: PODCAST + title: "Hipsters.tech: Big Data e Data Science: pra quê afinal? - Hipsters 73" + link: https://www.youtube.com/watch?v=PnfqWdmCHSo + - type: PODCAST + title: "Hipsters.tech: Small Data, Big Data, Open Data - Hipsters 42" + link: https://www.youtube.com/watch?v=PnfqWdmCHSo + - type: PODCAST + title: "Hipsters.tech: Engenharia de dados na Serasa Experian – Hipsters On The Road 37" + link: https://www.hipsters.tech/engenharia-de-dados-na-serasa-experian-hipsters-on-the-road-37/ + - type: PODCAST + title: "Hipsters.tech: Data Engineering no Quinto Andar – Hipsters On The Road 60" + link: https://www.hipsters.tech/data-engineering-no-quinto-andar-hipsters-on-the-road-60/ + - type: YOUTUBE + title: "Alura: O que é engenharia de dados?" + link: https://www.youtube.com/watch?v=_rMb6S6kimM + - type: COURSE + title: "Curso Engenharia de dados: conhecendo Apache Airflow" + link: https://cursos.alura.com.br/course/engenharia-dados-apache-airflow + - type: COURSE + title: "Curso Apache Beam: Data Pipeline com Python" + link: https://cursos.alura.com.br/course/apache-beam-data-pipeline-python + - type: COURSE + title: "Curso Engenharia de Dados: organizando dados na AWS" + link: https://cursos.alura.com.br/course/engenharia-dados-organizando-dados-aws + - type: COURSE + title: "Curso Spark: apresentando a ferramenta" + link: https://cursos.alura.com.br/course/spark-apresentando-ferramenta + - type: COURSE + title: "Curso Spark: streaming de dados" + link: https://cursos.alura.com.br/course/spark-streaming-dados \ No newline at end of file diff --git a/_data/blocks/business-intelligence.pt_BR.yaml b/_data/blocks/business-intelligence.pt_BR.yaml new file mode 100644 index 000000000..47c9d4d38 --- /dev/null +++ b/_data/blocks/business-intelligence.pt_BR.yaml @@ -0,0 +1,33 @@ +name: Business Intelligence +logo: +short-description: +key-objectives: + - 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 + - Criar visualizações que façam sentido + - Conhecer o PowerBI +aditional-objectives: +contents: + - type: ARTICLE + title: "Como contar histórias com gráficos — Resumo do livro Storytelling com Dados" + link: https://pjsassuncao.medium.com/bi-e-a-tomada-de-decis%C3%A3o-parte-1-4043c77a8be9 + - type: ARTICLE + title: "Business Intelligence em Bibliotecas com Power BI" + link: https://franciscofoz.medium.com/business-intelligence-em-bibliotecas-com-power-bi-4065df7b232c + - type: YOUTUBE + title: "Rafael Piton: O que é BI - Business Intelligence (Guia Definitivo)" + link: https://www.youtube.com/watch?v=gEsWb4_pcA0 + - type: YOUTUBE + title: "Karine Lago: Introdução ao Power BI" + link: https://www.youtube.com/watch?v=lMfh2c7GaWI +alura-contents: + - type: ARTICLE + title: "Business Intelligence: O que é?" + link: https://www.alura.com.br/artigos/business-intelligence-o-que-e + - type: COURSE + title: "Curso BI e Data Warehouse com SQL Server e Power BI" + link: https://cursos.alura.com.br/formacao-business-intelligence-data-warehouse + - type: COURSE + title: "Curso BI e Data Warehouse com Pentaho" + link: https://cursos.alura.com.br/formacao-business-intelligence-data-warehouse-pentaho \ No newline at end of file diff --git a/_data/blocks/business-process-management.pt_BR.yaml b/_data/blocks/business-process-management.pt_BR.yaml new file mode 100644 index 000000000..1ba3b4271 --- /dev/null +++ b/_data/blocks/business-process-management.pt_BR.yaml @@ -0,0 +1,32 @@ +name: Gestão de Processos de Negócios +logo: +short-description: +key-objectives: + - A Gestão de Processos de Negócios (BPM) é a disciplina utiliza-se de vários métodos para descobrir, modelar, analisar, medir, melhorar, otimizar e automatizar processos de negócios. +aditional-objectives: +contents: + - type: ARTICLE + title: "Gestão de Processos de Negócios" + link: https://felipeaugustosg.medium.com/gest%C3%A3o-de-processos-de-neg%C3%B3cios-9582cf2c762d + - type: ARTICLE + title: "Modelos de Gestão: uma perspectiva no contexto de agregação de valor ao negócio" + link: https://fleurynewton.medium.com/modelos-de-gest%C3%A3o-uma-perspectiva-no-contexto-de-agrega%C3%A7%C3%A3o-de-valor-ao-neg%C3%B3cio-3413110656a3 + - type: YOUTUBE + title: "Mauricio Aizawa - Organize na Prática: Gestão de Processos BPM - Do Fluxograma a Prática" + link: https://www.youtube.com/watch?v=JG1aBDJ11LE + - type: YOUTUBE + title: "Sheila Nicolini: BPM - Gerenciamento de Processo de Negócio" + link: https://www.youtube.com/watch?v=MDY6heVzqEE +alura-contents: + - type: COURSE + title: "Curso Diagnóstico em gestão de processos: entendendo as necessidades" + link: https://cursos.alura.com.br/course/gestao-processos-diagnostico-necessidades + - type: COURSE + title: "Curso Análise da gestão de processos: implantando melhorias" + link: https://cursos.alura.com.br/course/gestao-processos-implantando-melhorias + - type: COURSE + title: "Curso Otimizando a gestão de processos: monitoração e controle" + link: https://cursos.alura.com.br/course/otimizando-gestao-processos-monitoracao-controle + - type: COURSE + title: "Curso Six Sigma: metodologia para melhoria de processos" + link: https://cursos.alura.com.br/course/six-sigma-melhoria-processos \ No newline at end of file diff --git a/_data/blocks/clean-architecture.pt_BR.yaml b/_data/blocks/clean-architecture.pt_BR.yaml new file mode 100644 index 000000000..66d4f9e7f --- /dev/null +++ b/_data/blocks/clean-architecture.pt_BR.yaml @@ -0,0 +1,35 @@ +name: Clean Architecture +logo: +short-description: +key-objectives: + - Conhecer a metodologia a ser usada na codificação, a fim de facilitar o desenvolvimento códigos, permitir uma melhor manutenção, atualização e menos dependência +aditional-objectives: +contents: + - type: ARTICLE + title: "Descomplicando a Clean Architecture" + link: https://medium.com/luizalabs/descomplicando-a-clean-architecture-cf4dfc4a1ac6 + - type: YOUTUBE + title: "Como DEV ser!: Entenda CLEAN ARCHITECTURE de uma vez por todas!" + link: https://www.youtube.com/watch?v=HynTfTli4mw + - type: YOUTUBE + title: "Full Cycle: O que é Clean Architecture" + link: https://www.youtube.com/watch?v=dQys-mnOtQg +alura-contents: + - type: SITE + title: "Clean Architecture (Arquitetura Limpa) - O que é?" + link: https://cursos.alura.com.br/extra/alura-mais/clean-architecture-arquitetura-limpa-o-que-e--c204 + - type: PODCAST + title: "Hipsters.tech: Clean Architeture - Hipsters Ponto Tech 254" + link: https://www.alura.com.br/artigos/o-que-e-clean-code + - type: YOUTUBE + title: "Alura: Arquitetura de sistemas" + link: https://www.youtube.com/watch?v=oedWxgAZc2A + - type: SITE + title: "Primeiras aulas do curso Java e Clean Architecture: descomplicando arquitetura de software" + link: https://www.alura.com.br/conteudo/java-clean-architecture + - type: COURSE + title: "Curso Java e Clean Architecture: descomplicando arquitetura de software" + link: https://www.alura.com.br/curso-online-java-clean-architecture + - type: COURSE + title: "Curso PHP e Clean Architecture: descomplicando arquitetura de software" + link: https://cursos.alura.com.br/course/php-introducao-clean-achitecture diff --git a/_data/blocks/clean-code.pt_BR.yaml b/_data/blocks/clean-code.pt_BR.yaml new file mode 100644 index 000000000..e1cdf863e --- /dev/null +++ b/_data/blocks/clean-code.pt_BR.yaml @@ -0,0 +1,24 @@ +name: Clean Code +logo: +short-description: +key-objectives: + - Aplicar técnicas simples que visam facilitar a escrita e leitura de um código + - Refatorar seu código para que fique mais claro +aditional-objectives: +contents: + - type: ARTICLE + title: "Clean Code: O que é? Porque usar?" + link: https://medium.com/desenvolvendo-com-paixao/1-clean-code-o-que-%C3%A9-porque-usar-1e4f9f4454c6 + - type: YOUTUBE + title: "Filipe Deschamps: CLEAN CODE 1: Introdução" + link: https://www.youtube.com/watch?v=9w3o9NHXqu0 + - type: YOUTUBE + title: "Filipe Deschamps: CLEAN CODE 2: O que é código limpo?" + link: https://www.youtube.com/watch?v=ZVtGbO_CnfA +alura-contents: + - type: ARTICLE + title: "Clean Code: O que é, Casos de Uso, Exemplo de Código Limpo" + link: https://www.alura.com.br/artigos/o-que-e-clean-code + - type: YOUTUBE + title: "Alura: Clean Code e Solid" + link: https://www.youtube.com/watch?v=XV9B4LX_re8 \ No newline at end of file diff --git a/_data/blocks/cloud-fundamentals.pt_BR.yaml b/_data/blocks/cloud-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..82d950cbf --- /dev/null +++ b/_data/blocks/cloud-fundamentals.pt_BR.yaml @@ -0,0 +1,50 @@ +name: Cloud - Fundamentos +logo: +short-description: +key-objectives: + - 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 + - Conhecer os maiores provedores de cloud + - Especializar-se em algum provedor +aditional-objectives: +contents: + - type: ARTICLE + title: "Computação em nuvem" + link: https://medium.com/sysadminas/computa%C3%A7%C3%A3o-em-nuvem-515930304cf9 + - type: ARTICLE + title: "O que é cloud?" + link: https://gabriel-faraday.medium.com/o-que-%C3%A9-cloud-991109e708c6 +alura-contents: + - type: PODCAST + title: "Hipsters.tech: Uma jornada Para o Cloud - Hipsters Deep Dive 005" + link: https://cursos.alura.com.br/extra/hipsterstech/uma-jornada-para-o-cloud-hipsters-deep-dive-005-a1100 + - type: PODCAST + title: "Hipsters.tech: Histórias do Cloud - Hipsters 04" + link: https://cursos.alura.com.br/extra/hipsterstech/historias-do-cloud-hipsters-04-a582 + - type: ARTICLE + title: "O que é Cloud e seus principais serviços" + link: https://www.alura.com.br/artigos/o-que-e-cloud-e-seus-principais-servicos + - type: ARTICLE + title: "Heroku, Vercel e outras opções de cloud como plataforma" + link: https://www.alura.com.br/artigos/heroku-vercel-outras-opcoes-cloud-plataforma + - type: ARTICLE + title: "Terraform: criando máquinas na Azure" + link: https://www.alura.com.br/artigos/terraform-maquinas-na-azure + - type: YOUTUBE + title: "Alura: O que é cloud?" + link: https://www.YOUTUBE.com/watch?v=wev9fMrg-TU + - type: YOUTUBE + title: "Alura: AWS, Google Cloud e Azure: Por onde começar? | Hipsters.Talks" + link: https://www.YOUTUBE.com/watch?v=z9k6rsdmWc0&t=300s + - type: YOUTUBE + title: "Alura: Certificação em Cloud: Azure, AWS, Google | Hipsters.Talks" + link: https://www.YOUTUBE.com/watch?v=W4K82n_WK5g&t=290s + - type: COURSE + title: "Formação Começando em Cloud Computing" + link: https://cursos.alura.com.br/formacao-cloud-computing + - type: COURSE + title: "Formação Amazon Web Services" + link: https://cursos.alura.com.br/formacao-amazon-web-services + - type: COURSE + title: "Formação Google Certified Associate Cloud Engineer" + link: https://cursos.alura.com.br/formacao-google-certified-associate-cloud-engineer \ No newline at end of file diff --git a/_data/blocks/clr.pt_BR.yaml b/_data/blocks/clr.pt_BR.yaml new file mode 100644 index 000000000..3f2fed45f --- /dev/null +++ b/_data/blocks/clr.pt_BR.yaml @@ -0,0 +1,22 @@ +name: CLR +logo: +short-description: +key-objectives: + - Entender como o CLR funciona + - Entender o gerenciamento de memória + - Conhecer a CIL e o JIT +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: Visão geral do CLR (Common Language Runtime)" + link: https://docs.microsoft.com/pt-br/dotnet/standard/clr + - type: ARTICLE + title: "Acervo Lima: Common Language Runtime (CLR) em C#" + link: https://acervolima.com/common-language-runtime-clr-em-c/ + - type: ARTICLE + title: "Common Language Runtime(CLR) DotNet (inglês)" + link: https://medium.com/@mirzafarrukh13/common-language-runtime-dotnet-83e0218edcae + - type: YOUTUBE + title: "Learn C# - What is the CLR (inglês)" + link: https://www.youtube.com/watch?v=Iv-3dVGg5XA +alura-contents: \ No newline at end of file diff --git a/_data/blocks/color-systems.pt_BR.yaml b/_data/blocks/color-systems.pt_BR.yaml new file mode 100644 index 000000000..e6637fb6f --- /dev/null +++ b/_data/blocks/color-systems.pt_BR.yaml @@ -0,0 +1,29 @@ +name: Sistemas de cores +logo: +short-description: +key-objectives: + - Definir uma paleta de cores que faça sentido para determinada interface +aditional-objectives: +contents: + - type: article + title: "Cores em UI: Um Guia Rápido Para Usar em Seus Projetos" + link: https://medium.com/aela/cores-em-ui-um-guia-r%C3%A1pido-para-usar-em-seus-projetos-31ccffe3e16b + - type: article + title: "A Psicologia das cores e sua relação com o UX Design" + link: https://brasil.uxdesign.cc/a-psicologia-das-cores-e-sua-rela%C3%A7%C3%A3o-com-o-ux-design-af02460639cd + - type: youtube + title: "kacio.design: Aplicação de Cores - Princípios do UI" + link: https://www.youtube.com/watch?v=C_VhzEyqT6U +alura-contents: + - type: course + title: "Curso Cores para Designers: escolhendo e trabalhando com cores em um projeto" + link: https://www.alura.com.br/curso-online-cores-para-seu-projeto + - type: site + title: "Primeiras aulas do curso Cores: sistemas básicos e paletas" + link: https://www.alura.com.br/conteudo/fundamentos-da-cor + - type: course + title: "Cores: sistemas básicos e paletas" + link: https://www.alura.com.br/curso-online-fundamentos-da-cor + - type: course + title: "Curso Design editorial: criação de materiais gráficos" + link: https://www.alura.com.br/curso-online-design-editorial diff --git a/_data/blocks/command-line-fundamentals.pt_BR.yaml b/_data/blocks/command-line-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..77e663693 --- /dev/null +++ b/_data/blocks/command-line-fundamentals.pt_BR.yaml @@ -0,0 +1,26 @@ +name: Linha de comando - Fundamentos +logo: +short-description: +key-objectives: + - Conhecer os principais comandos +aditional-objectives: +contents: + - type: site + title: "Microsoft Docs: Como usar argumentos de linha de comando para terminal do Windows" + link: https://docs.microsoft.com/pt-br/windows/terminal/command-line-arguments?tabs=windows + - type: youtube + title: "Estevan Maito: Linha de comando básica - 8 comandos mais frequentes - WINDOWS e LINUX" + link: https://www.youtube.com/watch?v=rKBqXJZocYk + - type: youtube + title: "Ninja do Linux: Comandos básicos da linha de comando do Linux" + link: https://www.youtube.com/watch?v=rs_yshFGu8E +alura-contents: + - type: article + title: "CMD: dicas para trabalhar no prompt do Windows" + link: https://www.alura.com.br/artigos/cmd-dicas-para-trabalhar-no-prompt-do-windows + - type: site + title: "Primeiras aulas do Curso Windows Prompt: Trabalhando na linha de comando" + link: https://www.alura.com.br/conteudo/prompt + - type: course + title: "Curso Windows Prompt: Trabalhando na linha de comando" + link: https://www.alura.com.br/curso-online-prompt diff --git a/_data/blocks/communication-skills.pt_BR.yaml b/_data/blocks/communication-skills.pt_BR.yaml new file mode 100644 index 000000000..e2eb01e61 --- /dev/null +++ b/_data/blocks/communication-skills.pt_BR.yaml @@ -0,0 +1,41 @@ +name: Habilidades de comunicação +logo: +short-description: +key-objectives: + - 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. +aditional-objectives: +contents: +alura-contents: + - type: ARTICLE + title: "Comunicação Não Violenta no ambiente de trabalho" + link: https://www.alura.com.br/artigos/comunicacao-nao-violenta-ambiente-de-trabalho + - type: ARTICLE + title: "5 passos para uma comunicação mais assertiva" + link: https://www.alura.com.br/artigos/cinco-passos-para-uma-comunicacao-mais-assertiva + - type: ARTICLE + title: "Quais são os principais desafios de comunicação na liderança?" + link: https://www.alura.com.br/artigos/quais-sao-os-principais-desafios-de-comunicacao-na-lideranca + - type: YOUTUBE + title: "Alura: Comunicação e soft skills - Alura Live 91" + link: https://www.youtube.com/watch?v=McC4oh_jPgk + - type: COURSE + title: "Curso Comunicação: como se expressar bem e ser compreendido" + link: https://cursos.alura.com.br/course/comunicacao + - type: COURSE + title: "Curso Relacionamento interpessoal: aprenda a lidar melhor com você e com o outro" + link: https://cursos.alura.com.br/course/relacionamento-pessoal + - type: COURSE + title: "Curso Oratória parte 1: compartilhe ideias e histórias" + link: https://cursos.alura.com.br/course/oratoria-compartilhe-ideias + - type: COURSE + title: "Curso Oratória parte 2: apresentações em público" + link: https://cursos.alura.com.br/course/oratoria-apresentacoes-em-publico + - type: COURSE + title: "Curso Comunicação não violenta: consciência para agir" + link: https://cursos.alura.com.br/course/comunicacao-nao-violenta + - type: COURSE + title: "Curso Comunicação não violenta parte 2: mantendo a empatia" + link: https://cursos.alura.com.br/course/comunicacao-nao-violenta-mantendo-empatia + - type: COURSE + title: "Curso Comunicação assertiva: reduzindo conflitos e frustrações" + link: https://cursos.alura.com.br/course/comunicacao-assertiva-reduzindo-conflitos-e-frustracaoes \ No newline at end of file diff --git a/_data/blocks/computer-vision.pt_BR.yaml b/_data/blocks/computer-vision.pt_BR.yaml new file mode 100644 index 000000000..c38a65fd4 --- /dev/null +++ b/_data/blocks/computer-vision.pt_BR.yaml @@ -0,0 +1,55 @@ +name: Visão Computacional +logo: +short-description: +key-objectives: + - Visão Computacional é um campo científico interdisciplinar que lida com a forma como os computadores podem ganhar conhecimentos de alto nível a partir de imagens ou vídeos digitais. Da perspectiva da engenharia, procura compreender e automatizar tarefas que o sistema visual humano pode fazer. + - Extrair regiões de interesse de uma imagem + - Normalizar e pré-processar dados de imagens + - 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 +aditional-objectives: +contents: + - type: SITE + title: "NVIDIA: Visão Computacional" + link: https://www.nvidia.com/pt-br/glossary/data-science/computer-vision/ + - type: ARTICLE + title: "Introdução à Visão Computacional" + link: https://medium.com/turing-talks/introdu%C3%A7%C3%A3o-%C3%A0-vis%C3%A3o-computacional-b13698774adc + - type: ARTICLE + title: "Deep Learning: visão computacional" + link: https://medium.com/joguei-os-dados/deep-learning-vis%C3%A3o-computacional-81febcabd850 + - type: ARTICLE + title: "Detecção e Classificação de Semáforos com OpenCV e Machine Learning" + link: https://medium.com/ensina-ai/detec%C3%A7%C3%A3o-e-classifica%C3%A7%C3%A3o-de-sem%C3%A1foros-com-opencv-e-machine-learning-d5d97bc60fd + - type: ARTICLE + title: "Como identificar cores no mundo real utilizando Visão Computacional?" + link: https://suzana-svm.medium.com/vis%C3%A3o-computacional-detec%C3%A7%C3%A3o-de-cores-em-tempo-real-utilizando-python-e-opencv-a466444d40e + - type: ARTICLE + title: "Visão Computacional — O que é convolução?" + link: https://medium.com/turing-talks/vis%C3%A3o-computacional-o-que-%C3%A9-convolu%C3%A7%C3%A3o-ad709f7bd6b0 + - type: ARTICLE + title: "Transformada de Fourier em Visão Computacional" + link: https://medium.com/turing-talks/transformada-de-fourier-b1775e891cc5 + - type: YOUTUBE + title: "Jhonatan Souza: O que é Visão Computacional?" + link: https://www.youtube.com/watch?v=p90YOqrPYxE + - type: YOUTUBE + title: "Hemerson Pistori: Tipos de Problemas ou Tarefas em Visão Computacional" + link: https://www.youtube.com/watch?v=9HDUt7W6PXM + - type: YOUTUBE + title: "italo js: OpenCV - Introduçao a processamento de imagens e visão computacional" + link: https://www.youtube.com/watch?v=X64SCjaVNrk + - type: YOUTUBE + title: "Guiminam: Perguntas para uma doutora em visão computacional" + link: https://www.youtube.com/watch?v=HO3HOW_72Vk +alura-contents: + - type: PODCAST + title: "Hipsters.tech: Arte generativa – Hipsters Ponto Tech 261" + link: https://www.hipsters.tech/arte-generativa-hipsters-ponto-tech-261/ + - type: COURSE + title: "Curso Reconhecimento de imagens: Twitter e Computer Vision API" + link: https://cursos.alura.com.br/course/reconhecimento-imagens + - type: COURSE + title: "Curso Análise e Classificação de Faces: visão Computacional com OpenCV" + link: https://cursos.alura.com.br/course/analise-classificacao-faces-visao-computacional-opencv \ No newline at end of file diff --git a/_data/blocks/containers.pt_BR.yaml b/_data/blocks/containers.pt_BR.yaml new file mode 100644 index 000000000..7ea084f70 --- /dev/null +++ b/_data/blocks/containers.pt_BR.yaml @@ -0,0 +1,90 @@ +name: Contêineres +logo: +short-description: +key-objectives: + - Isolar seu software para funcionar independentemente + - Implantar software em clusters + - Modularizar seu sistema em pacotes menores + - Conhecer a plataforma Docker + - Conhecer Kubernetes +aditional-objectives: +contents: + - type: ARTICLE + title: "IBM: Contêineres" + link: https://www.ibm.com/br-pt/cloud/learn/containers + - type: ARTICLE + title: "HPE: O que são contêineres?" + link: https://www.hpe.com/br/pt/what-is/containers.html + - type: ARTICLE + title: "Google Cloud: O que são contêineres?" + link: https://cloud.google.com/learn/what-are-containers?hl=pt-br + - type: ARTICLE + title: "Azure: O que é um contêiner?" + link: https://azure.microsoft.com/pt-br/resources/cloud-computing-dictionary/what-is-a-container/ + - type: SITE + title: "Documentação Kubernetes" + link: https://kubernetes.io/pt-br/docs/concepts/overview/what-is-kubernetes/ + - type: ARTICLE + title: "Red Hat: Kubernetes (K8s)" + link: https://www.redhat.com/pt-br/topics/containers/what-is-kubernetes + - type: ARTICLE + title: "Azure: O que é Kubernetes?" + link: https://azure.microsoft.com/pt-br/topic/what-is-kubernetes/ + - type: YOUTUBE + title: "Fabrício Veronez DevOps Pro: O que é Kubernetes?" + link: https://www.youtube.com/watch?v=eLiHH9Bu04E + - type: YOUTUBE + title: "Insight Lab: Revisão Docker - Curso de Introdução ao Kubernetes" + link: https://www.youtube.com/watch?v=bcRArpK00OU + - type: YOUTUBE + title: "Insight Lab: Arquitetura do K8s - Curso de Introdução ao Kubernetes" + link: https://www.youtube.com/watch?v=bPFxwwSfSmk + - type: YOUTUBE + title: "Pisani da ArcH: Kubernetes - entenda e comece a arquitetar agora mesmo" + link: https://www.youtube.com/watch?v=XjaqTqm7g58 +alura-contents: + - type: ARTICLE + title: "O que é Kubernetes" + link: https://www.alura.com.br/artigos/o-que-e-kubernetes + - type: ARTICLE + title: "Criando volumes com Docker" + link: https://www.alura.com.br/artigos/criando-volumes-com-docker + - type: ARTICLE + title: "Docker Compose para compor uma aplicação" + link: https://www.alura.com.br/artigos/compondo-uma-aplicacao-com-o-docker-compose + - type: YOUTUBE + title: "Alura: O que são Containers?" + link: https://www.youtube.com/watch?v=jv4_sLlGOS0 + - type: YOUTUBE + title: "Alura: Containers, Docker e Kubernetes (com Giovanni Bassi)" + link: https://www.youtube.com/watch?v=wxLvvMxzc1Q + - type: PODCAST + title: "Hipsters.tech: Kubernetes - Hipsters 177" + link: https://cursos.alura.com.br/extra/hipsterstech/kubernetes-hipsters-177-a389 + - type: PODCAST + title: "Hipsters.tech: Microsserviços e Kubernetes na Americanas.com - Hipsters On The Road 56" + link: https://cursos.alura.com.br/extra/hipsterstech/microsservicos-e-kubernetes-na-americanas-com-hipsters-on-the-road-56-a857 + - type: COURSE + title: "Formação Orquestração de containers com Kubernetes" + link: https://cursos.alura.com.br/formacao-kubernetes + - type: COURSE + title: "Curso Docker: criando e gerenciando containers" + link: https://cursos.alura.com.br/course/docker-criando-gerenciando-containers?preRequirementFrom=docker-na-amazon-ecs + - type: COURSE + title: "Curso Kubernetes: Pods, Services e ConfigMaps" + link: https://cursos.alura.com.br/course/kubernetes-pods-services-configmap + - type: COURSE + title: "Curso Kubernetes: Deployments, Volumes e Escalabilidade" + link: https://cursos.alura.com.br/course/kubernetes-deployments-volumes-escalabilidade + - type: COURSE + title: "Curso Google Kubernetes Engine" + link: https://cursos.alura.com.br/course/google-kubernetes-engine-primeiros-passos + - type: COURSE + title: "Curso Kubernetes na Digital Ocean: gerenciando aplicações conteinerizadas" + link: https://cursos.alura.com.br/course/kubernetes-digital-ocean + - type: COURSE + title: "Curso Amazon EKS: gerenciando aplicações conteinerizadas com Kubernetes" + link: https://cursos.alura.com.br/course/amazon-eks-kubernetes + - type: COURSE + title: "Curso Azure: gerencie Kubernetes com AKS e ACR" + link: https://cursos.alura.com.br/course/azure-gerencie-kubernetes-com-aks-acr \ No newline at end of file diff --git a/_data/blocks/create-react-app.pt_BR.yaml b/_data/blocks/create-react-app.pt_BR.yaml new file mode 100644 index 000000000..42207da6f --- /dev/null +++ b/_data/blocks/create-react-app.pt_BR.yaml @@ -0,0 +1,51 @@ +name: Criar uma aplicação React +logo: +short-description: +key-objectives: + - Estruturar um novo projeto React + - Criar uma aplicação funcional do zero +aditional-objectives: +contents: + - type: site + title: "React: Documentação - Crie um novo React App" + link: https://pt-br.reactjs.org/docs/create-a-new-react-app.html#gatsby-focus-wrapper + - type: site + title: "React: Documentação - Usando TypeScript com Create React App" + link: https://pt-br.reactjs.org/docs/static-type-checking.html#using-typescript-with-create-react-app + - type: site + title: "MDN Web Docs: Começando com React - Configurando seu primeiro app React" + link: https://developer.mozilla.org/pt-BR/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started#configurando_seu_primeiro_app_react + - type: youtube + title: "Mario Souto - Dev Soutinho: Como começar a estruturar um projeto React? com NextJS, Styled Components" + link: https://www.youtube.com/watch?v=mJK5oGixSYo + - type: youtube + title: "Mario Souto - Dev Soutinho: Do Zero ao React | Como fazer o React e aprender a ideia do Virtual DOM na prática" + link: https://www.youtube.com/watch?v=5MzOCxSWrrc +alura-contents: + - type: article + title: "React: componentes com Styled Components" + link: https://www.alura.com.br/artigos/react-componentes-com-styled-components + - type: podcast + title: "Hipsters.tech: Guia do iniciante em React" + link: https://www.hipsters.tech/guia-do-iniciante-em-react-hipsters-209/ + - type: podcast + title: "Hipsters.tech: Do Front End ao React" + link: https://www.hipsters.tech/do-front-end-ao-react-hipsters-ponto-tech-258/ + - type: course + title: "Imersão React: AluraFlix" + link: https://cursos.alura.com.br/imersoes/aulas/aula-1-react-components-e-aluraflix-c18 + - type: course + title: "Imersão React: AluraQuiz" + link: https://cursos.alura.com.br/imersoes/aulas/aula-1-react-styled-components-e-next-js-c33 + - type: course + title: "Imersão React: AluraKut" + link: https://cursos.alura.com.br/imersoes/aulas/aula-1-components-com-react-styled-components-e-nextjs-c53 + - type: course + title: "Imersão React: AluraCord" + link: https://cursos.alura.com.br/imersoes/aulas/aula-01-criando-o-nosso-projeto-aluracord-c68 + - type: course + title: "Curso React: escrevendo com Typescript" + link: https://www.alura.com.br/curso-online-react-modernizando-escrever-typescript + - type: challenge + title: "7 Days of Code: React" + link: https://7daysofcode.io/matricula/react diff --git a/_data/blocks/csharp-anonymous-methods-and-lambda-expressions.pt_BR.yaml b/_data/blocks/csharp-anonymous-methods-and-lambda-expressions.pt_BR.yaml new file mode 100644 index 000000000..fc9652285 --- /dev/null +++ b/_data/blocks/csharp-anonymous-methods-and-lambda-expressions.pt_BR.yaml @@ -0,0 +1,36 @@ +name: C# - Métodos anônimos e lambda expressions +logo: +short-description: +key-objectives: + - Criar funções anônimas que você pode usar para criar delegates + - Criar funções locais que podem ser passadas como argumentos +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: Delegates e lambdas" + link: https://docs.microsoft.com/pt-br/dotnet/standard/delegates-lambdas + - type: SITE + title: "Microsoft Docs: Delegates com métodos nomeados versus anônimos" + link: https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/delegates/delegates-with-named-vs-anonymous-methods + - type: SITE + title: "Acervo Lima: Método anônimo em C#" + link: https://acervolima.com/metodo-anonimo-em-c/ + - type: ARTICLE + title: "Apreendendo a usar Lambda Expression em C# — Guia Rápido" + link: https://medium.com/beelabacademy/apreendendo-a-usar-lambda-expression-em-c-guia-r%C3%A1pido-7316b2cbcec1 + - type: ARTICLE + title: "Usando DELEGATE e LAMBDA no C#" + link: https://medium.com/@pedropini/usando-delegate-e-lambda-no-c-c87251a22d37 + - type: YOUTUBE + title: "Marco Diniz: C# em 5 minutos - Lambda Expressions" + link: https://www.youtube.com/watch?v=Ftbrn82BPcc + - type: YOUTUBE + title: "Coding Night: Introdução a consultas LINQ e expressões Lambda no C#" + link: https://www.youtube.com/watch?v=-yxrPTlvpz4 +alura-contents: + - type: COURSE + title: "Curso C#: Eventos, Delegates e Lambda" + link: https://cursos.alura.com.br/course/csharp-eventos-delegates-lambda + - type: COURSE + title: "Curso C# parte 8: List, lambda, linq" + link: https://cursos.alura.com.br/course/csharp-list-lambda-linq \ No newline at end of file diff --git a/_data/blocks/csharp-collections.pt_BR.yaml b/_data/blocks/csharp-collections.pt_BR.yaml new file mode 100644 index 000000000..b86485663 --- /dev/null +++ b/_data/blocks/csharp-collections.pt_BR.yaml @@ -0,0 +1,37 @@ +name: C# - Coleções +logo: +short-description: +key-objectives: + - Aprender os usos e diferenças entre Dictionary, List, Queue, SortedList e Stack + - Saiba trabalhar com ArrayList e HashTable + - Iterators +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: Coleções (C#)" + link: https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/concepts/collections + - type: ARTICLE + title: "Collections" + link: https://wilsonsantosnet.medium.com/collections-76363e18ab41 + - type: ARTICLE + title: "Um pouco sobre estruturas de dados em C#" + link: https://guih2127.medium.com/um-pouco-sobre-estruturas-de-dados-em-c-e4371fe651d8 + - type: YOUTUBE + title: "Andre Constantino: Coleções na linguagem C#" + link: https://www.youtube.com/watch?v=9hJ_V61NKG8 + - type: YOUTUBE + title: "Cléber dos Santos: C# trabalhando com Coleções" + link: https://www.youtube.com/watch?v=SR4-_gWRlLU +alura-contents: + - type: ARTICLE + title: "Listas em C#" + link: https://www.alura.com.br/artigos/listas-em-csharp + - type: SITE + title: "Apostila: C# e Orientação a Objetos - Facilitando o trabalho com coleções através das listas" + link: https://www.alura.com.br/apostila-csharp-orientacao-objetos/trabalhando-com-listas#facilitando-o-trabalho-com-colecoes-atraves-das-listas + - type: COURSE + title: "Curso C# Collections parte 1: Listas, arrays, listas ligadas, dicionários e conjuntos" + link: https://cursos.alura.com.br/course/csharp-collections + - type: COURSE + title: "Curso C# Collections parte 2: Coleções ordenadas, arrays multidimensionais e LINQ" + link: https://cursos.alura.com.br/course/csharp-collections-parte-2 \ No newline at end of file diff --git a/_data/blocks/csharp-delegates-and-events.pt_BR.yaml b/_data/blocks/csharp-delegates-and-events.pt_BR.yaml new file mode 100644 index 000000000..cbb51de55 --- /dev/null +++ b/_data/blocks/csharp-delegates-and-events.pt_BR.yaml @@ -0,0 +1,29 @@ +name: C# - Delegates e eventos +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: Distinção entre Delegates e Eventos" + link: https://docs.microsoft.com/pt-br/dotnet/csharp/distinguish-delegates-events + - type: SITE + title: "Microsoft Docs: Manipular e gerar eventos" + link: https://docs.microsoft.com/pt-br/dotnet/standard/events/ + - type: ARTICLE + title: "Delegates em C#: o que são, o que comem, onde vivem e pra que servem?" + link: https://medium.com/@alexandre.malavasi/delegates-em-c-o-que-s%C3%A3o-o-que-comem-onde-vivem-e-pra-que-serv-12b5336f3d9a + - type: YOUTUBE + title: "Matrix Code: C# Delegates e Eventos" + link: https://www.youtube.com/watch?v=Sice1GmFiuo + - type: YOUTUBE + title: "Ricardo Maroquio: Eventos e Delegates" + link: https://www.youtube.com/watch?v=0xxbsSIYDE8 +alura-contents: + - type: COURSE + title: "Curso C#: Eventos, Delegates e Lambda" + link: https://cursos.alura.com.br/course/csharp-eventos-delegates-lambda \ No newline at end of file diff --git a/_data/blocks/csharp-fundamentals.pt_BR.yaml b/_data/blocks/csharp-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..a6ef4c774 --- /dev/null +++ b/_data/blocks/csharp-fundamentals.pt_BR.yaml @@ -0,0 +1,68 @@ +name: C# - Fundamentos +logo: +short-description: +key-objectives: + - Conhecer os tipos primitivos + - Declarar variáveis, considerando os diferentes tipos + - 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 métodos + - Manipular arrays e listas + - Obter dados de uma API + - Fazer chamadas assíncronas, etc + - Criar construtores +aditional-objectives: + - Manipular objetos JSON + - Lidar com datas +contents: + - type: SITE + title: "Microsoft Docs: Um tour pela linguagem C#" + link: https://docs.microsoft.com/pt-br/dotnet/csharp/tour-of-csharp/ + - type: ARTICLE + title: "Iniciando com C# - O C# e o Ambiente de Desenvolvimento" + link: https://medium.com/blogmikaeriohana/iniciando-com-c-parte-1-o-c-e-o-ambiente-de-desenvolvimento-d0e9c3cb2692 + - type: YOUTUBE + title: "Diogo Costa Dev: O que é C#" + link: https://www.youtube.com/watch?v=KiJOC1mXuTc + - type: YOUTUBE + title: "Márcio Fessini: C# - O que é .NET?" + link: https://www.youtube.com/watch?v=C-7YXpLsFmI +alura-contents: + - type: PODCAST + title: "Hipster.tech: Presente e Futuro do .NET – Hipsters 26" + link: https://www.hipsters.tech/passado-e-futuro-do-net-hipsters-26/ + - type: ARTICLE + title: "Como separar palavras em String com C#" + link: https://www.alura.com.br/artigos/como-separar-palavras-em-string-com-c + - type: ARTICLE + title: "Lidando com data e hora C#" + link: https://www.alura.com.br/artigos/lidando-com-data-e-hora-c + - type: ARTICLE + title: "C#: entendendo classes e structs" + link: https://www.alura.com.br/artigos/c-sharp-entendendo-classes-e-structs + - type: SITE + title: "Apostila: C# e Orientação a Objetos" + link: https://www.alura.com.br/apostila-csharp-orientacao-objetos + - type: YOUTUBE + title: "Alura: O que é o C#?" + link: https://www.youtube.com/watch?v=0JWMVc1CqpA + - type: YOUTUBE + title: "Alura: Saiba tudo sobre uma das linguagens de programação mais populares do mundo" + link: https://www.youtube.com/watch?v=eUl0mWTnL_A + - type: COURSE + title: "Formação C# e Orientação a Objetos" + link: https://cursos.alura.com.br/formacao-c-sharp-orientacao-objetos + - type: COURSE + title: "Formação Windows Forms com C#" + link: https://cursos.alura.com.br/formacao-windows-forms-csharp + - type: COURSE + title: "Formação Boas práticas em C#" + link: https://cursos.alura.com.br/formacao-boas-praticas-c-sharp + - type: CHALLENGE + title: "7 Days of Code: C#" + link: https://7daysofcode.io/matricula/csharp + - type: CHALLENGE + title: "7 Days of Code: Windows Forms C#" + link: https://7daysofcode.io/matricula/windows-forms \ No newline at end of file diff --git a/_data/blocks/csharp-memory-management.pt_BR.yaml b/_data/blocks/csharp-memory-management.pt_BR.yaml new file mode 100644 index 000000000..5be6243dc --- /dev/null +++ b/_data/blocks/csharp-memory-management.pt_BR.yaml @@ -0,0 +1,19 @@ +name: C# - Gerenciamento de Memória +logo: +short-description: +key-objectives: + - Entender como a memória é administrada + - Conhecer o Garbage Collector + - Entender sobre o Stack e o Heap gerenciado +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: Gerenciamento automático de memória" + link: https://docs.microsoft.com/pt-br/dotnet/standard/automatic-memory-management + - type: ARTICLE + title: "Gerenciamento de memória — C#" + link: https://medium.com/@mateusgoncalvesgeracino/gerenciamento-de-mem%C3%B3ria-c-bcb5f2c89464 + - type: YOUTUBE + title: "Dias de Dev: Gerenciamento de memória - Stack vs Heap" + link: https://www.youtube.com/watch?v=7kJwVQGJCbw +alura-contents: \ No newline at end of file diff --git a/_data/blocks/csharp-multithreading.pt_BR.yaml b/_data/blocks/csharp-multithreading.pt_BR.yaml new file mode 100644 index 000000000..551ef1ab0 --- /dev/null +++ b/_data/blocks/csharp-multithreading.pt_BR.yaml @@ -0,0 +1,24 @@ +name: C# - Multithreading +logo: +short-description: +key-objectives: + - Executar múltiplas tarefas simultaneamente + - Entender como threads são executadas +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: Usando threads e threading" + link: https://docs.microsoft.com/pt-br/dotnet/standard/threading/using-threads-and-threading + - type: ARTICLE + title: "Multi-threading em C# (programação concorrente)" + link: https://marcionizzola.medium.com/multi-threading-em-c-programa%C3%A7%C3%A3o-concorrente-3d872ce4c8ae + - type: ARTICLE + title: "Implementando Threads em C#" + link: https://medium.com/@samuell_santos/implementando-threads-em-c-4d4e6b14a398 + - type: YOUTUBE + title: "Código Logo: C# Avançado - Introdução à Threads" + link: https://www.youtube.com/watch?v=DEYkxz1QEDY + - type: YOUTUBE + title: "Abre Chaves: Desenvolvimento em C# - Conceitos Básicos de Threads" + link: https://www.youtube.com/watch?v=dljWM-Yf-LQ +alura-contents: \ No newline at end of file diff --git a/_data/blocks/csharp-networking-and-sockets.pt_BR.yaml b/_data/blocks/csharp-networking-and-sockets.pt_BR.yaml new file mode 100644 index 000000000..e59189587 --- /dev/null +++ b/_data/blocks/csharp-networking-and-sockets.pt_BR.yaml @@ -0,0 +1,27 @@ +name: C# - Rede e Sockets +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: Sockets" + link: https://docs.microsoft.com/pt-br/dotnet/framework/network-programming/sockets + - type: ARTICLE + title: "Microsoft Docs: Como criar um soquete" + link: https://docs.microsoft.com/pt-br/dotnet/framework/network-programming/how-to-create-a-socket + - type: ARTICLE + title: "Microsoft Docs: Exemplos de código de soquete" + link: https://docs.microsoft.com/pt-br/dotnet/framework/network-programming/socket-code-examples + - type: YOUTUBE + title: "Filipe Deschamps: WebSockets na prática é MUITO poderoso" + link: https://www.youtube.com/watch?v=bQ7NNSyGV2U + - type: YOUTUBE + title: "Eduardo Palandrani: O que é WebSocket?" + link: https://www.youtube.com/watch?v=YJxKYv7GLIg +alura-contents: + - type: YOUTUBE + title: "Alura: Entendendo WebSockets" + link: https://www.youtube.com/watch?v=RwUbUnPdWqs \ No newline at end of file diff --git a/_data/blocks/csharp-serialization.pt_BR.yaml b/_data/blocks/csharp-serialization.pt_BR.yaml new file mode 100644 index 000000000..a34a5a9d2 --- /dev/null +++ b/_data/blocks/csharp-serialization.pt_BR.yaml @@ -0,0 +1,25 @@ +name: C# - Serialização +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: Serialização (C#)" + link: https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/concepts/serialization/ + - type: SITE + title: "Microsoft Docs: Serialização básica" + link: https://docs.microsoft.com/pt-br/dotnet/standard/serialization/basic-serialization + - type: ARTICLE + title: "O que é serialização/serialization?" + link: https://medium.com/@thaisdalencar/o-que-%C3%A9-serializa%C3%A7%C3%A3o-serialization-fc0887bd0970 + - type: YOUTUBE + title: "Miguel Jordan: Aprenda a serializar e deserializar objetos em C#" + link: https://www.youtube.com/watch?v=wWuagfG-1sY + - type: YOUTUBE + title: "Derek Banas: C# Serialization (inglês)" + link: https://www.youtube.com/watch?v=jbwjbbc5PjI +alura-contents: \ No newline at end of file diff --git a/_data/blocks/csharp-system-io.pt_BR.yaml b/_data/blocks/csharp-system-io.pt_BR.yaml new file mode 100644 index 000000000..d35fed58e --- /dev/null +++ b/_data/blocks/csharp-system-io.pt_BR.yaml @@ -0,0 +1,34 @@ +name: C# - System.IO +logo: +short-description: +key-objectives: + - Ler dados de arquivos + - Escrever dados em arquivos + - Gerenciar arquivos com Using +aditional-objectives: +contents: + - type: ARTICLE + title: "Trabalhando com a biblioteca System.IO no C#" + link: http://luisfelipetorres.com.br/2017/11/02/trabalhando-com-a-biblioteca-system-io-no-c/ + - type: SITE + title: "Microsoft Docs: System.IO Namespace" + link: https://docs.microsoft.com/pt-br/dotnet/api/system.io?view=net-6.0 + - type: SITE + title: "Microsoft Docs: E/S de arquivo e de fluxo" + link: https://docs.microsoft.com/pt-br/dotnet/standard/io/ + - type: YOUTUBE + title: "Código Logo: C# Tutorial de IO 1 - Introdução" + link: https://www.youtube.com/watch?v=LYTZXQpy3RY + - type: YOUTUBE + title: "Código Logo: C# Tutorial de IO 15 - Como Copiar Arquivo usando o FileStream" + link: https://www.youtube.com/watch?v=f9OOnzV6vlE +alura-contents: + - type: SITE + title: "Apostila: C# e Orientação a Objetos - System.IO" + link: https://www.alura.com.br/apostila-csharp-orientacao-objetos/system-io + - type: SITE + title: "Primeiras aulas do curso C# Parte 9: entrada e saída (I/O) com streams" + link: https://www.alura.com.br/conteudo/csharp-io + - type: COURSE + title: "Curso C# Parte 9: entrada e saída (I/O) com streams" + link: https://cursos.alura.com.br/course/csharp-io \ No newline at end of file diff --git a/_data/blocks/csharp-testing.pt_BR.yaml b/_data/blocks/csharp-testing.pt_BR.yaml new file mode 100644 index 000000000..b1460a6a3 --- /dev/null +++ b/_data/blocks/csharp-testing.pt_BR.yaml @@ -0,0 +1,50 @@ +name: C# - Testes +logo: +short-description: +key-objectives: + - Usar testes unitários + - Usar testes de integração + - Usar testes de comportamento (behavior) + - Usar mocks +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: Passo a passo: Criar e executar testes de unidade para código gerenciado" + link: https://docs.microsoft.com/pt-br/visualstudio/test/walkthrough-creating-and-running-unit-tests-for-managed-code?view=vs-2022 + - type: SITE + title: "Microsoft Docs: Passo a passo: desenvolvimento controlado por teste usando o Gerenciador de Testes" + link: https://docs.microsoft.com/pt-br/visualstudio/test/quick-start-test-driven-development-with-test-explorer?view=vs-2022 + - type: ARTICLE + title: "Testes unitários em .NET com xUnit" + link: https://medium.com/unicoidtech/testes-unit%C3%A1rios-em-net-com-xunit-d7c78c593832 + - type: ARTICLE + title: ".NET 6, C# 10 e implementação de testes: novos recursos para simplificar a codificação" + link: https://renatogroffe.medium.com/net-6-c-10-e-implementa%C3%A7%C3%A3o-de-testes-novos-recursos-para-simplificar-a-codifica%C3%A7%C3%A3o-5faec474ccc2 + - type: ARTICLE + title: "Testes Unitários com C#" + link: https://aldocostasantos.wordpress.com/2012/12/21/testes-unitarios-parte01/ + - type: YOUTUBE + title: "Canal TI: Testes Unitários com C# (XUnit)" + link: https://www.youtube.com/watch?v=40TujcOnLdQ + - type: YOUTUBE + title: "Matheus Rizzi: Mock de objetos para teste unitário com c#" + link: https://www.youtube.com/watch?v=ezxBMZQ8d84 +alura-contents: + - type: ARTICLE + title: "Tipos de testes: quais os principais e por que utilizá-los?" + link: https://www.alura.com.br/artigos/tipos-de-testes-principais-por-que-utiliza-los + - type: PODCAST + title: "Hipsters.tech: Testes Automatizados" + link: https://cursos.alura.com.br/extra/hipsterstech/testes-automatizados-hipsters-51-a535 + - type: YOUTUBE + title: "Alura: Curso de Testes: TDD com C#" + link: https://www.youtube.com/watch?v=DZSgaWE5XFk + - type: COURSE + title: "Curso Mocks em C#: testes de Integração com xUnit e Moq" + link: https://cursos.alura.com.br/course/csharp-testes-de-integracao-com-xunit-e-moq + - type: COURSE + title: "Curso Selenium WebDriver e C# parte 1: testes da sua web app" + link: https://cursos.alura.com.br/course/selenium-csharp-webdriver + - type: COURSE + title: "Formação Testes em .NET" + link: https://www.alura.com.br/formacao-testes-em-dotnet \ No newline at end of file diff --git a/_data/blocks/css-fundamentals.pt_BR.yaml b/_data/blocks/css-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..49d186f50 --- /dev/null +++ b/_data/blocks/css-fundamentals.pt_BR.yaml @@ -0,0 +1,102 @@ +name: CSS - Fundamentos +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: + - Usar um arquivo CSS básico para resetar as atribuições dos navegadores + - Aprender seletores como '+', '>', '~', etc + - Conhecer o conceito de 'Componentes' (Atomic design é uma referência) e 'B.E.M.' + - Tornar a página responsiva com 'media queries' + - Aprender o conceito de Mobile First + - Bootstrap e frameworks de CSS + - Pré-processadores +contents: + - type: site + title: "MDN Web Docs: Iniciando com CSS" + link: https://developer.mozilla.org/pt-BR/docs/Learn/CSS/First_steps/Getting_started + - type: site + title: "MDN Web Docs: Seletores" + link: https://developer.mozilla.org/pt-BR/docs/Learn/CSS/Building_blocks/Selectors + - type: site + title: "MDN Web Docs: Cascata e herança" + link: https://developer.mozilla.org/pt-BR/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance + - type: site + title: "MDN Web Docs: Propriedade 'display'" + link: https://developer.mozilla.org/pt-BR/docs/Web/CSS/display + - type: site + title: "MDN Web Docs: Conceitos básicos de Flexbox" + link: https://developer.mozilla.org/pt-BR/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox + - type: site + title: "MDN Web Docs: Grid Layout" + link: https://developer.mozilla.org/pt-BR/docs/Web/CSS/CSS_Grid_Layout/Basic_Concepts_of_Grid_Layout + - type: youtube + title: "Rafaella Ballerini: O QUE É CSS?" + link: https://www.youtube.com/watch?v=LWU2OR19ZG4 + - type: youtube + title: "Rafaella Ballerini: FLEXBOX CSS! Como posicionar elementos na página web - parte 1" + link: https://www.youtube.com/watch?v=KbjLtEgmZ_E + - type: youtube + title: "Rafaella Ballerini: FLEXBOX CSS! Como posicionar elementos na página web - parte 2" + link: https://www.youtube.com/watch?v=hjz6ezV9_uc + - type: youtube + title: "Matheus Castiglioni: Arquitetura CSS - BEM" + link: https://www.youtube.com/watch?v=yKPXW9aSxQI + - type: youtube + title: "Matheus Castiglioni: CSS Grid Layout" + link: https://www.youtube.com/watch?v=HBlBNAtFcdw + - type: youtube + title: "Mario Souto - Dev Soutinho: Como centralizar no CSS" + link: https://www.youtube.com/watch?v=Cu-HP-gvggg +alura-contents: + - type: podcast + title: "Hipster 09 - CSS: Cansei de Ser Simples" + link: https://www.hipsters.tech/css-cansei-de-ser-simples-hipsters-09/ + - type: article + title: "HTML, CSS e Javascript, quais as diferenças?" + link: https://www.alura.com.br/artigos/html-css-e-js-definicoes + - type: article + title: "Guia de unidades no CSS" + link: https://www.alura.com.br/artigos/guia-de-unidades-no-css + - type: article + title: "CSS: Guia do Flexbox" + link: https://www.alura.com.br/artigos/css-guia-do-flexbox + - type: article + title: "Como fazer Grids e a Responsividade na Web" + link: https://www.alura.com.br/artigos/como-fazer-grids-e-a-responsividade-na-web + - type: youtube + title: "Alura: CSS FlexBox: Dicas para começar" + link: https://www.youtube.com/watch?v=326-B1avuYo + - type: youtube + title: "Alura: Box Model e Sizing no CSS" + link: https://www.youtube.com/watch?v=qcNUxyOWXIw + - type: youtube + title: "Alura: Curso de HTML5 e CSS3" + link: https://www.youtube.com/watch?v=78AyiuxYceg + - type: course + title: "Apostila: Desenvolvimento Web com HTML, CSS e JavaScript" + link: https://www.alura.com.br/apostila-html-css-javascript + - type: course + title: "Formação HTML e CSS" + link: https://www.alura.com.br/formacao-html-e-css + - type: course + title: "HTML e CSS: responsividade com mobile-first" + link: https://www.alura.com.br/curso-online-html-css-responsividade-mobile-first + - type: challenge + title: "7 Days of Code: HTML e CSS" + link: https://7daysofcode.io/matricula/html-css + - type: challenge + title: "7 Days of Code: Responsividade" + link: https://7daysofcode.io/matricula/responsividade diff --git a/_data/blocks/css-in-js.pt_BR.yaml b/_data/blocks/css-in-js.pt_BR.yaml new file mode 100644 index 000000000..9cfdf0519 --- /dev/null +++ b/_data/blocks/css-in-js.pt_BR.yaml @@ -0,0 +1,43 @@ +name: CSS-in-JS +logo: +short-description: +key-objectives: + - Lidar com código CSS usando JavaScript + - Utilizar styled-components + - Conhecer Styled-JSX +aditional-objectives: +contents: + - type: site + title: "React: Documentação - Estilização e CSS" + link: https://pt-br.reactjs.org/docs/faq-styling.html + - type: site + title: "Microsoft Docs: Edição de estilo das estruturas CSS-in-JS" + link: https://docs.microsoft.com/pt-br/microsoft-edge/devtools-guide-chromium/css/css-in-js + - type: site + title: "Chrome Developers: CSS-in-JS support in DevTools (inglês)" + link: https://developer.chrome.com/blog/css-in-js/ + - type: youtube + title: "Mario Souto - Dev Soutinho: Os poderes do CSS in JS" + link: https://www.youtube.com/watch?v=QdfjWRc4ySA + - type: youtube + title: "Mario Souto - Dev Soutinho: CSS-in-JS na prática! Criando componentes com React e CSS no NextJS" + link: https://www.youtube.com/watch?v=aDKxJfJiM28 + - type: article + title: "A Thorough Analysis of CSS-in-JS (inglês)" + link: https://css-tricks.com/a-thorough-analysis-of-css-in-js/ +alura-contents: + - type: article + title: "CSS com NextJS" + link: https://www.alura.com.br/artigos/css-com-next-js + - type: course + title: "Imersão React: AluraCord - Aula 01" + link: https://cursos.alura.com.br/imersoes/aulas/aula-01-criando-o-nosso-projeto-aluracord-c68 + - type: site + title: "Primeiras aulas do curso React: abstraindo seu CSS com Styled Components" + link: https://www.alura.com.br/conteudo/react-styled-components + - type: course + title: "Curso React: abstraindo seu CSS com Styled Components" + link: https://www.alura.com.br/curso-online-react-styled-components + - type: course + title: "Curso React: escrevendo com Typescript" + link: https://www.alura.com.br/curso-online-react-modernizando-escrever-typescript diff --git a/_data/blocks/cypress.pt_BR.yaml b/_data/blocks/cypress.pt_BR.yaml new file mode 100644 index 000000000..6bd4079a6 --- /dev/null +++ b/_data/blocks/cypress.pt_BR.yaml @@ -0,0 +1,32 @@ +name: Cypress +logo: +short-description: +key-objectives: + - Criar e executar testes +aditional-objectives: +contents: + - type: site + title: "Cypress: Documentação (inglês)" + link: https://docs.cypress.io/guides/getting-started/installing-cypress + - type: article + title: "Um Overview sobre Cypress.io — Framework de Automação de Testes end-to-end" + link: https://medium.com/@faelbercam/um-overview-sobre-cypress-io-framework-de-automa%C3%A7%C3%A3o-de-testes-end-to-end-dc438b9ee7a1 + - type: youtube + title: "Embaixadora da Qualidade: Guia Rápido Sobre Cypress" + link: https://www.youtube.com/watch?v=ZWF7QT3ogk0 + - type: youtube + title: "Otavio Lemos: Guia Rápido Sobre Cypress" + link: https://www.youtube.com/watch?v=e5SuUUFlDss +alura-contents: + - type: youtube + title: "Alura: Testes em Javascript - Alura Live 50" + link: https://www.youtube.com/watch?v=r1rndQwFLMY + - type: site + title: "Primeiras aulas do curso Cypress: automação de testes E2E" + link: https://www.alura.com.br/conteudo/cypress-automacao-testes-e2e + - type: course + title: "Curso Cypress: automação de testes E2E" + link: https://www.alura.com.br/curso-online-cypress-automacao-testes-e2e + - type: course + title: "Formação Carreira QA: processos e automação de testes" + link: https://www.alura.com.br/formacao-carreira-tester-qa diff --git a/_data/blocks/dapper.pt_BR.yaml b/_data/blocks/dapper.pt_BR.yaml new file mode 100644 index 000000000..ada45cd33 --- /dev/null +++ b/_data/blocks/dapper.pt_BR.yaml @@ -0,0 +1,24 @@ +name: Dapper +logo: +short-description: +key-objectives: + - Realizar consultas a bancos de dados + - Manipular bancos de dados +aditional-objectives: +contents: + - type: article + title: "Descomplicando o Dapper com .Net Core" + link: https://medium.com/jundevelopers/descomplicando-o-dapper-com-net-core-11118941e255 + - type: article + title: ".NET 5 + Dapper: exemplos de implementação" + link: https://renatogroffe.medium.com/net-5-dapper-exemplos-de-implementa%C3%A7%C3%A3o-c3a9ce2be802 + - type: article + title: "Introdução ao Dapper" + link: http://www.andrealveslima.com.br/blog/index.php/2017/10/04/introducao-ao-dapper/ + - type: youtube + title: "Leonardo Buta: Dapper - Introdução, conceitos e prática com .NET Core" + link: https://www.youtube.com/watch?v=MnfxKnY3bDI +alura-contents: + - type: youtube + title: "Alura: O que é o Dapper?" + link: https://www.youtube.com/watch?v=-USSV3LfdYw diff --git a/_data/blocks/data-extraction-and-processing.pt_BR.yaml b/_data/blocks/data-extraction-and-processing.pt_BR.yaml new file mode 100644 index 000000000..9e442fa96 --- /dev/null +++ b/_data/blocks/data-extraction-and-processing.pt_BR.yaml @@ -0,0 +1,27 @@ +name: Extração e Tratamento de Dados +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: +contents: + - type: ARTICLE + title: "Tratamento e Transformação de Dados NaN: Uma visão geral e prática" + link: https://medium.com/data-hackers/tratamento-e-transforma%C3%A7%C3%A3o-de-dados-nan-uma-vis%C3%A3o-geral-e-pr%C3%A1tica-54efa9fc7a98 + - type: YOUTUBE + title: "Awari: Importação e Tratamento de Dados em Data Science" + link: https://www.youtube.com/watch?v=i1TK8pWRQas + - type: YOUTUBE + title: "Celso Cestaro: Iniciando em coleta e tratamento de dados com Python" + link: https://www.youtube.com/watch?v=3DF54MnH9KM + - type: YOUTUBE + title: "Celso Cestaro: Python para data science - limpando dados" + link: https://www.youtube.com/watch?v=t18Ogc8rNyo +alura-contents: + - type: COURSE + title: "Curso Data Science: analise e visualização de dados" + link: https://cursos.alura.com.br/course/data-science-primeiros-passos + - type: COURSE + title: "Curso Python Pandas: tratando e analisando dados" + link: https://cursos.alura.com.br/course/introducao-python-pandas \ No newline at end of file diff --git a/_data/blocks/data-modeling.pt_BR.yaml b/_data/blocks/data-modeling.pt_BR.yaml new file mode 100644 index 000000000..7295f5efb --- /dev/null +++ b/_data/blocks/data-modeling.pt_BR.yaml @@ -0,0 +1,41 @@ +name: Modelagem de Dados +logo: +short-description: +key-objectives: + - A Modelagem de Dados é o processo de análise e definição de todos os diferentes dados que uma organização recolhe e produz, bem como as relações entre esses dados. + - Criar modelos conceituais + - Criar modelos lógicos + - Criar modelos físicos +aditional-objectives: +contents: + - type: ARTICLE + title: "Guia da Modelagem de Dados: introdução & modelo conceitual" + link: https://medium.com/@felipeozalmeida/guia-da-modelagem-de-dados-introdu%C3%A7%C3%A3o-modelo-conceitual-238c1f8be48 + - type: ARTICLE + title: "Guia da Modelagem de Dados: 5 passos para criação do modelo conceitual (parte 1)" + link: https://medium.com/@felipeozalmeida/guia-da-modelagem-de-dados-6-passos-modelo-conceitual-parte-1-e27a364412be + - type: ARTICLE + title: "Como Fazer um Projeto de Modelagem de Dados para Data Engineering" + link: https://medium.com/@meigarom/como-fazer-um-projeto-de-modelagem-de-dados-para-data-engineering-fde87ca21212 + - type: ARTICLE + title: "Como montamos defesas no CartolaFC? Com estatística e modelagem de dados" + link: https://medium.com/@hpgomide/como-montamos-defesas-no-cartolafc-com-estat%C3%ADstica-e-modelagem-de-dados-6f5d58ac1034 + - type: YOUTUBE + title: "Miriam TechCod: Modelagem de dados - modelo conceitual, lógico e físico" + link: https://www.youtube.com/watch?v=8CkMX2qXgdY + - type: YOUTUBE + title: "Kamys Academy: Introdução a Modelagem de Dados - Aula 1" + link: https://www.youtube.com/watch?v=Xtp_DTI2C_c&list=PLLbQNZHBOJtaK4vGBmdvOaPaxDJxRT0fe +alura-contents: + - type: ARTICLE + title: "MER e DER: Definições, Banco de Dados e Exemplos" + link: https://www.alura.com.br/artigos/mer-e-der-funcoes + - type: ARTICLE + title: "Relacionamento reflexivo na modelagem de banco de dados" + link: https://www.alura.com.br/artigos/relacionamento-reflexivo-modelagem-banco-de-dados + - type: ARTICLE + title: "SGBD’s Relacionais" + link: https://www.alura.com.br/artigos/sgbds-relacionais + - type: COURSE + title: "Formação Modelagem de dados" + link: https://cursos.alura.com.br/formacao-modelagem-dados \ No newline at end of file diff --git a/_data/blocks/data-science-fundamentals.pt_BR.yaml b/_data/blocks/data-science-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..19a6f20dc --- /dev/null +++ b/_data/blocks/data-science-fundamentals.pt_BR.yaml @@ -0,0 +1,54 @@ +name: Ciência de Dados - Fundamentos +logo: +short-description: +key-objectives: + - Utilizar algoritmos e sistemas para extrair, organizar e analisar dados a partir de diversas fontes, a fim de detectar padrões e tomar decisões de negócios + - As áreas de aplicação são infindáveis, como em negócios, biologia, medicina, engenharia, etc. +aditional-objectives: +contents: + - type: SITE + title: "Wikipédia: Ciência de dados" + link: https://pt.wikipedia.org/wiki/Ci%C3%AAncia_de_dados + - type: ARTICLE + title: "Como iniciar na carreira de ciência de dados?" + link: https://medium.com/@mikaeriohana/como-iniciar-na-carreira-de-ci%C3%AAncia-de-dados-9b37aa525181 + - type: ARTICLE + title: "O que é ciência de dados? Conceitos pra quem está começando" + link: https://medium.com/pizzadedados/ci%C3%AAncia-de-dados-para-iniciantes-3c0a855d16c7 + - type: ARTICLE + title: "Ciência de dados e a importância de sua humanização" + link: https://medium.temporalitylab.com/ci%C3%AAncia-de-dados-e-a-import%C3%A2ncia-de-sua-humaniza%C3%A7%C3%A3o-6b3bd3ab30ba + - type: YOUTUBE + title: "Mariane Neiva: Ciência de dados: o que é, o que estudar e como é o trabalho" + link: https://www.youtube.com/watch?v=_zk5Sg-hQnE + - type: YOUTUBE + title: "Jerry Strazzeri: O que realmente Faz um Cientista de Dados?" + link: https://www.youtube.com/watch?v=_365KpviZ9o +alura-contents: + - type: ARTICLE + title: "Assuntos que assombram em Data Science" + link: https://www.alura.com.br/artigos/assuntos-que-assombram-em-data-science + - type: ARTICLE + title: "Data Science em " + link: https://www.alura.com.br/artigos/data-science-em-t + - type: PODCAST + title: "Hipsters.tech: Primeiros Passos em Data Science: Do Excel e BI ao Python – Hipsters 134" + link: https://www.hipsters.tech/primeiros-passos-em-data-science-do-excel-e-bi-ao-python-hipsters-134/ + - type: PODCAST + title: "Hipsters.tech: Guia do Iniciante em Data Science – Hipsters Ponto Tech 221" + link: https://www.hipsters.tech/guia-do-iniciante-em-data-science-hipsters-ponto-tech-221/ + - type: PODCAST + title: "Hipsters.tech: Casos bacanas de Data Science – Hipsters 106" + link: https://www.hipsters.tech/casos-bacanas-de-data-science-hipsters-106/ + - type: YOUTUBE + title: "Alura: O que é Data Science?" + link: https://www.youtube.com/watch?v=5b9Z8toVaAU + - type: YOUTUBE + title: "Alura: O que faz uma Cientista de Dados?" + link: https://www.youtube.com/watch?v=Zwvq-rlIHAw + - type: YOUTUBE + title: "Alura: Data Science - por onde eu começo?" + link: https://www.youtube.com/watch?v=K-eaT4V8j-w + - type: COURSE + title: "Formação Data Science" + link: https://cursos.alura.com.br/formacao-data-science \ No newline at end of file diff --git a/_data/blocks/data-science-testing.pt_BR.yaml b/_data/blocks/data-science-testing.pt_BR.yaml new file mode 100644 index 000000000..7d8287b7b --- /dev/null +++ b/_data/blocks/data-science-testing.pt_BR.yaml @@ -0,0 +1,31 @@ +name: Ciência de Dados - Testes +logo: +short-description: +key-objectives: + - Criar intervalos de confiança para amostras + - Comparar grupos de amostras + - Executar testes estatísticos + - Planejar experimentos para a coleta de dados + - Propor modelos matemáticos para entender um dado problema + - Construir mapas de cores para auxiliar a interpretação dos dados +aditional-objectives: +contents: + - type: SITE + title: "ICD-UFMG: Testes AB - Como comparar dois grupos" + link: https://icd-ufmg.github.io/10-ab/ + - type: ARTICLE + title: "Testes de normalidade" + link: https://medium.com/dados-e-saude/testes-de-normalidade-9dc9068bcf80 + - type: YOUTUBE + title: "Prof. Dr. Petronio Silva: Ciência de Dados - Métricas e Testes" + link: https://www.youtube.com/watch?v=gRfS2ns-r0Q +alura-contents: + - type: YOUTUBE + title: "Alura: Data Science - Introdução a testes estatísticos com Python" + link: https://www.youtube.com/watch?v=PnfqWdmCHSo + - type: COURSE + title: "Curso Data Science: testes estatísticos com Python" + link: https://cursos.alura.com.br/course/data-science-introducao-a-testes-estatisticos-com-python + - type: COURSE + title: "Curso Análise de experimentos: testes, mapas de cores e análises dos dados" + link: https://cursos.alura.com.br/course/analise-de-experimentos \ No newline at end of file diff --git a/_data/blocks/data-structures.pt_BR.yaml b/_data/blocks/data-structures.pt_BR.yaml new file mode 100644 index 000000000..163feedef --- /dev/null +++ b/_data/blocks/data-structures.pt_BR.yaml @@ -0,0 +1,51 @@ +name: Estruturas de Dados +logo: +short-description: +key-objectives: + - Conhecer as principais estruturas de dados + - Implementar as principais estruturas de dados +aditional-objectives: +contents: + - type: ARTICLE + title: "Estrutura de dados" + link: https://medium.com/php-word/estrutura-de-dados-6afb386a6fc1 + - type: ARTICLE + title: "Estrutura de Dados e Algoritmo - parte 1" + link: https://medium.com/@PaoloProdossimoLopes/01-estrutura-de-dados-e-algoritmo-9cb6a9b14aa + - type: ARTICLE + title: "Estrutura de Dados e Algoritmo - parte 2" + link: https://medium.com/@PaoloProdossimoLopes/02-estrutura-de-dados-e-algoritmo-deba0b384a0f + - type: YOUTUBE + title: "Mario Souto - Dev Soutinho: Estruturas de dados com JavaScript" + link: https://www.youtube.com/watch?v=MweeZn1rR8s + - type: YOUTUBE + title: "Fabio Akita: Árvores" + link: https://www.youtube.com/watch?v=9GdesxWtOgs + - type: YOUTUBE + title: "Loiane Groner: Estrutura de Dados com Java | Lista Encadeada" + link: https://www.youtube.com/watch?v=RW0oD2L_tSg + - type: YOUTUBE + title: "Loiane Groner: Estrutura de Dados com Java | Filas" + link: https://www.youtube.com/watch?v=RdoLTgJSV_c + - type: YOUTUBE + title: "Loiane Groner: Estrutura de Dados com Java | Pilhas" + link: https://www.youtube.com/watch?v=ZdU4wMyiTSs +alura-contents: + - type: SITE + title: "Apostila Python: Estruturas de dados" + link: https://www.alura.com.br/apostila-python-orientacao-a-objetos/estrutura-de-dados + - type: ARTICLE + title: "Estruturas de dados: uma introdução" + link: https://www.alura.com.br/artigos/estruturas-de-dados-introducao + - type: PODCAST + title: "Hipsters.tech: Algoritmos e estrutura de dados - Hipsters 186" + link: https://www.alura.com.br/podcast/hipsterstech-algoritmos-e-estrutura-de-dados-hipsters-186-a375 + - type: COURSE + title: "Curso PHP: dominando as Collections" + link: https://cursos.alura.com.br/course/php-dominando-collections + - type: COURSE + title: "Curso Estrutura de Dados: computação na prática com Java" + link: https://cursos.alura.com.br/course/estrutura-de-dados + - type: COURSE + title: "Curso Python: avançando na linguagem" + link: https://cursos.alura.com.br/course/python-3-avancando-na-linguagem \ No newline at end of file diff --git a/_data/blocks/data-visualization.pt_BR.yaml b/_data/blocks/data-visualization.pt_BR.yaml new file mode 100644 index 000000000..0ca71437e --- /dev/null +++ b/_data/blocks/data-visualization.pt_BR.yaml @@ -0,0 +1,52 @@ +name: Visualização de Dados +logo: +short-description: +key-objectives: + - A visualização de dados é uma expressão contemporânea da comunicação visual que consiste na representação visual de dados[1]. + - Mapear dados abstratos em representações visuais + - Representar visualmente os dados que estão presentes no nosso mundo real +aditional-objectives: +contents: + - type: ARTICLE + title: "Princípios básicos da Visualização de Dados" + link: https://medium.com/datavizbr/princ%C3%ADpios-b%C3%A1sicos-da-visualiza%C3%A7%C3%A3o-de-dados-5ebc7150fc81 + - type: ARTICLE + title: "3 dicas para criar uma Visualização de Dados de sucesso" + link: https://medium.com/datavizbr/3-dicas-para-criar-uma-visualiza%C3%A7%C3%A3o-de-dados-de-sucesso-dica-0-n%C3%A3o-comece-pela-visualiza%C3%A7%C3%A3o-73154f5e56f3 + - type: YOUTUBE + title: "Luiz Ludwig: O que é visualização dos dados?" + link: https://www.youtube.com/watch?v=TgLIgmE13rI + - type: YOUTUBE + title: "Canal FLAI: 6 Dicas de Visualização de Dados" + link: https://www.youtube.com/watch?v=gtkrwzt5NJ0 +alura-contents: + - type: ARTICLE + title: "Visualizando informações com um gráfico" + link: https://www.alura.com.br/artigos/visualizando-informacoes-com-um-grafico + - type: ARTICLE + title: "Análise de dados: analisando minha distribuição com três alternativas de visualização" + link: https://www.alura.com.br/artigos/analise-de-dados-analisando-minha-distribuicao-com-tres-alternativas-de-visualizacao + - type: ARTICLE + title: "Visualizando dados de frequência" + link: https://www.alura.com.br/artigos/visualizando-dados-de-frequencia + - type: COURSE + title: "Curso Data Science: análise e visualização de dados" + link: https://cursos.alura.com.br/course/data-science-primeiros-passos + - type: COURSE + title: "Curso Data Visualization: técnicas de visualização com Google Sheets" + link: https://www.alura.com.br/curso-online-data-visualization-visualizacao-google-sheets + - type: COURSE + title: "Curso Data Visualization parte 1: gráficos com uma variável" + link: https://cursos.alura.com.br/course/data-visualization-graficos + - type: COURSE + title: "Curso Data Visualization parte 2: gráficos com multivariáveis" + link: https://cursos.alura.com.br/course/data-visualization-multivariaveis + - type: COURSE + title: "Curso Data Visualization: explorando com Seaborn" + link: https://cursos.alura.com.br/course/data-visualization-com-seaborn + - type: COURSE + title: "Curso Data Visualization: criação de gráficos com o Matplotlib" + link: https://cursos.alura.com.br/course/customizacao-matplot + - type: COURSE + title: "Curso Oracle Analytics: visualizando dados" + link: https://cursos.alura.com.br/course/oracle-analytics-visualizando-dados \ No newline at end of file diff --git a/_data/blocks/ddd-concepts.pt_BR.yaml b/_data/blocks/ddd-concepts.pt_BR.yaml new file mode 100644 index 000000000..dbd0f36f2 --- /dev/null +++ b/_data/blocks/ddd-concepts.pt_BR.yaml @@ -0,0 +1,40 @@ +name: Conceitos de Desenvolvimento Orientado a Domínio (Domain-driven Design) +logo: +short-description: +key-objectives: + - Modelar domínios de forma efetiva + - Basear projetos complexos em modelos do domínio + - Conhecer os blocos de construção de DDD +aditional-objectives: +contents: + - type: ARTICLE + title: "Domain-Driven Design, do início ao código" + link: https://medium.com/cwi-software/domain-driven-design-do-in%C3%ADcio-ao-c%C3%B3digo-569b23cb3d47 + - type: ARTICLE + title: "Introdução ao DDD" + link: https://medium.com/xp-inc/introdu%C3%A7%C3%A3o-ao-ddd-2cad38e4234a + - type: YOUTUBE + title: "Dias de Dev: O que é Domain-Driven Design" + link: https://www.youtube.com/watch?v=SNdGV0c40yo + - type: YOUTUBE + title: "Otavio Lemos: DDD + Clean Architecture" + link: https://www.youtube.com/watch?v=cZuyPPrRGAw +alura-contents: + - type: YOUTUBE + title: "Alura: Domain Driven Design" + link: https://www.youtube.com/watch?v=n40Z1c9Ryog + - type: SITE + title: "Domain-Driven Design (DDD) - O que é?" + link: https://cursos.alura.com.br/extra/alura-mais/domain-driven-design-ddd-o-que-e--c283 + - type: SITE + title: "Primeiras aulas do curso Java e Domain Driven Design: apresentando os conceitos" + link: https://www.alura.com.br/conteudo/java-domain-driven-design-conceitos + - type: COURSE + title: "Curso Java e Domain Driven Design: apresentando os conceitos" + link: https://www.alura.com.br/curso-online-java-domain-driven-design-conceitos + - type: SITE + title: "Primeiras aulas do curso PHP e Domain Driven Design: apresentando os conceitos" + link: https://www.alura.com.br/conteudo/domain-driven-design-php + - type: COURSE + title: "Curso PHP e Domain Driven Design: apresentando os conceitos" + link: https://www.alura.com.br/curso-online-domain-driven-design-php \ No newline at end of file diff --git a/_data/blocks/deep-learning.pt_BR.yaml b/_data/blocks/deep-learning.pt_BR.yaml new file mode 100644 index 000000000..cc8c392bd --- /dev/null +++ b/_data/blocks/deep-learning.pt_BR.yaml @@ -0,0 +1,58 @@ +name: Deep Learning +logo: +short-description: +key-objectives: + - Deep Learning é um ramo de Machine Learning baseado em um conjunto de algoritmos que tentam modelar abstrações de alto nível de dados usando um grafo profundo com várias camadas de processamento, compostas de várias transformações lineares e não lineares. + - Construir e treinar modelos com Keras + - Construir e treinar modelos com Tensorflow + - Selecionar as camadas de um modelo + - Classificar imagens + - Entender os conceitos de pesos e vieses + - Estruturas de dados para a previsão + - Redes neurais para regressão + - Entender o conceito de Redes recorrentes +aditional-objectives: +contents: + - type: SITE + title: "IBM: Deep learning" + link: https://www.ibm.com/br-pt/cloud/deep-learning + - type: SITE + title: "Oracle: O que é aprendizado profundo?" + link: https://www.oracle.com/br/artificial-intelligence/machine-learning/what-is-deep-learning/ + - type: ARTICLE + title: "Diferença entre Aprendizado de Máquina (Machine Learning) & Aprendizagem Profunda (Deep Learning)" + link: https://medium.com/@gabi.viana11/diferen%C3%A7a-entre-aprendizado-de-m%C3%A1quina-machine-learning-aprendizagem-profunda-deep-learning-3035e95ba1d1 + - type: ARTICLE + title: "Qual a diferença entre Inteligência Artificial, Machine Learning e Deep Learning?" + link: https://medium.com/@sergio_henr_/qual-a-diferen%C3%A7a-entre-intelig%C3%AAncia-artificial-machine-learning-e-deep-learning-c33d8910bf31 + - type: YOUTUBE + title: "Guiminam: Aplicações de Deep Learning a Genética" + link: https://www.youtube.com/watch?v=GiL6RnXLjvI + - type: YOUTUBE + title: "Ciência Todo Dia: Deep Learning explicado" + link: https://www.youtube.com/watch?v=ggmDI9_fm54 + - type: YOUTUBE + title: "Argonalyst: O que é Deep Learning?" + link: https://www.youtube.com/watch?v=R-63YMTnuZw +alura-contents: + - type: ARTICLE + title: "Deep Learning e Deep Fake" + link: https://www.alura.com.br/artigos/deep-learning-deep-fake + - type: ARTICLE + title: "Principais frameworks de deep learning em 2021" + link: https://www.alura.com.br/artigos/principais-frameworks-de-deep-learning-em-2021 + - type: YOUTUBE + title: "Alura: O que é Deep Learning?" + link: https://www.youtube.com/watch?v=kryIBKPVZ7A + - type: YOUTUBE + title: "Alura: Deep Learning com Pytorch" + link: https://www.youtube.com/watch?v=UGJ-wdrOyzg + - type: COURSE + title: "Curso Deep Learning parte 1: Keras" + link: https://cursos.alura.com.br/course/deep-learning-introducao-com-keras + - type: COURSE + title: "Curso Deep Learning parte 2: como a rede aprende" + link: https://cursos.alura.com.br/course/deep-learning-como-a-rede-aprende + - type: COURSE + title: "Curso Deep Learning: previsão com Keras" + link: https://cursos.alura.com.br/course/deep-learning-previsao-keras \ No newline at end of file diff --git a/_data/blocks/dependency-injection.pt_BR.yaml b/_data/blocks/dependency-injection.pt_BR.yaml new file mode 100644 index 000000000..64dd969e1 --- /dev/null +++ b/_data/blocks/dependency-injection.pt_BR.yaml @@ -0,0 +1,37 @@ +name: Injeção de Dependências +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: +contents: + - type: ARTICLE + title: "Injeção de Dependência" + link: https://medium.com/@eduardolanfredi/inje%C3%A7%C3%A3o-de-depend%C3%AAncia-ff0372a1672 + - type: YOUTUBE + title: "CódigoEscola: O que é injeção de dependência na prática?" + link: https://www.youtube.com/watch?v=F_Rts61IE3g + - type: YOUTUBE + title: "Code Easy: Injeção de Dependência, Entenda o que é e para que serve" + link: https://www.youtube.com/watch?v=pIyNfpgHpFU + - type: YOUTUBE + title: "DevSuperior: Injeção de dependência e inversão de controle" + link: https://www.youtube.com/watch?v=O07XFebgw-g +alura-contents: + - type: ARTICLE + title: "Services e injeção de dependência no Angular: o que são e como funcionam?" + link: https://www.alura.com.br/artigos/services-injecao-dependencia-angular-o-que-sao-como-funcionam + - type: ARTICLE + title: "Injeção de dependência no Android com o Hilt" + link: https://www.alura.com.br/artigos/injecao-de-dependencia-do-android-com-o-hilt + - type: SITE + title: "Injeção de dependências: O que é?" + link: https://cursos.alura.com.br/extra/alura-mais/injecao-de-dependencias-o-que-e--c224 + - type: COURSE + title: "Curso C# Reflection parte 2: implementando injeção de dependência do zero" + link: https://cursos.alura.com.br/course/reflection-parte-2 + - type: COURSE + title: "Curso Mocks em C#: testes de Integração com xUnit e Moq" + link: https://cursos.alura.com.br/course/csharp-testes-de-integracao-com-xunit-e-moq \ No newline at end of file diff --git a/_data/blocks/design-components.pt_BR.yaml b/_data/blocks/design-components.pt_BR.yaml new file mode 100644 index 000000000..9aaaaabba --- /dev/null +++ b/_data/blocks/design-components.pt_BR.yaml @@ -0,0 +1,23 @@ +name: Componentes de design +logo: +short-description: +key-objectives: + - Conhecer os componentes descrevem um layout ou interface +aditional-objectives: +contents: + - type: article + title: "Componentes Principais UI" + link: https://medium.com/@prikuwer/componentes-principais-ui-8b538a3aaaa5 + - type: youtube + title: "danielmacedoco: UI Design e Design System - Visão geral e prática sobre alguns componentes" + link: https://www.youtube.com/watch?v=VpgQNeSItpA + - type: youtube + title: "4 Exemplos de Componentes interativos no Figma" + link: https://www.youtube.com/watch?v=mGL3jrY-OBc +alura-contents: + - type: course + title: "Curso Design System: criando componentes e documentando" + link: https://www.alura.com.br/curso-online-design-system-componentes-documentando + - type: course + title: "Curso Figma: conhecendo componentes da interface" + link: https://www.alura.com.br/curso-online-figma-conhecendo-componentes-interface diff --git a/_data/blocks/design-patterns.pt_BR.yaml b/_data/blocks/design-patterns.pt_BR.yaml new file mode 100644 index 000000000..2a08ba5d1 --- /dev/null +++ b/_data/blocks/design-patterns.pt_BR.yaml @@ -0,0 +1,48 @@ +name: Design Patterns +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: +contents: + - type: ARTICLE + title: "Design Patterns — O que são e quais os benefícios?" + link: https://djesusnet.medium.com/design-patterns-gof-o-que-s%C3%A3o-e-quais-os-benef%C3%ADcios-9cd0cfdd6ebf + - type: ARTICLE + title: "Design Patterns" + link: https://medium.com/xp-inc/design-patterns-727494af001d + - type: YOUTUBE + title: "Matheus Castiglioni: O que são design patterns (padrões de projetos) e para que servem?" + link: https://www.YOUTUBE.com/watch?v=KNWd1aWtsMw + - type: YOUTUBE + title: "RinaldoDev: Design Patterns: o que são? Por que aprender a utilizar?" + link: https://www.YOUTUBE.com/watch?v=AWOf6Wo6gtg +alura-contents: + - type: ARTICLE + title: "Design patterns: Breve introdução aos padrões de projeto" + link: https://www.alura.com.br/artigos/design-patterns-introducao-padroes-projeto + - type: PODCAST + title: "Hipsters.tech: Design Patterns - Hipsters 206" + link: https://cursos.alura.com.br/extra/hipsterstech/design-patterns-hipsters-206-a345 + - type: YOUTUBE + title: "Alura: Design Patterns - Alura Live 33" + link: https://www.YOUTUBE.com/watch?v=YMMsDTA5deA + - type: YOUTUBE + title: "Alura: Como fazer códigos mais simples com Design Patterns Java I" + link: https://www.YOUTUBE.com/watch?v=QgVIwrid_4E + - type: COURSE + title: "Curso Design Patterns em Java I: boas práticas de programação" + link: https://cursos.alura.com.br/COURSE/introducao-design-patterns-java + - type: COURSE + title: "Curso Design Patterns C# I: boas práticas de programação" + link: https://cursos.alura.com.br/COURSE/design-patterns-dotnet + - type: COURSE + title: "Curso Design Patterns em PHP: padrões estruturais" + link: https://cursos.alura.com.br/COURSE/php-design-pattern-comportamental + - type: COURSE + title: "Curso Design Patterns em PHP: padrões estruturais" + link: https://cursos.alura.com.br/COURSE/php-design-pattern-estrutural + - type: COURSE + title: "Curso Design Patterns em PHP: padrões criacionais" + link: https://cursos.alura.com.br/COURSE/php-design-pattern-criacional \ No newline at end of file diff --git a/_data/blocks/design-system-libraries.pt_BR.yaml b/_data/blocks/design-system-libraries.pt_BR.yaml new file mode 100644 index 000000000..a4cb8e68c --- /dev/null +++ b/_data/blocks/design-system-libraries.pt_BR.yaml @@ -0,0 +1,41 @@ +name: Bibliotecas de Design System +logo: +short-description: +key-objectives: + - Criar e manter bibliotecas que serão consumidas e usadas como padrão para a construção de um projeto +aditional-objectives: +contents: + - type: article + title: "Criando uma biblioteca de Design System utilizando React" + link: https://medium.com/iclubs/criando-uma-biblioteca-de-design-system-utilizando-react-214f31219a33 + - type: article + title: "Aplicando Design System com Styled Components em ReactJS" + link: https://medium.com/gbtech/aplicando-design-system-com-styled-components-em-reactjs-49e9f40e9bc + - type: youtube + title: "Caio Gonzalez: O que é Design System? / Guia para começar o seu próprio design system" + link: https://www.youtube.com/watch?v=ajqbXpFVaAw +alura-contents: + - type: article + title: "O que é Design System?" + link: https://www.alura.com.br/artigos/o-que-e-design-system + - type: article + title: "Design Systems: exemplos práticos" + link: https://www.alura.com.br/artigos/design-systems-exemplos-praticos + - type: youtube + title: "Alura: Design System & Style Guide" + link: https://www.youtube.com/watch?v=rSLvpOqC5wQ + - type: youtube + title: "Alura: Design Systems (com Charles Assunção)" + link: https://www.youtube.com/watch?v=MLGFctEtmYQ + - type: youtube + title: "Alura: O que é Design System? | Hipsters.Talks" + link: https://www.youtube.com/watch?v=LNQ4fZbjqWM + - type: podcast + title: "Hipsters.tech: Design Systems - Hipsters 170" + link: https://www.alura.com.br/podcast/hipsterstech-design-systems-hipsters-170-a399 + - type: podcast + title: "Layers.tech: Design System – Layers ponto tech 36" + link: https://www.alura.com.br/podcast/layerstech-design-system-layers-ponto-tech-36-a1056 + - type: course + title: "Formação Design System" + link: https://www.alura.com.br/formacao-design-system diff --git a/_data/blocks/design-systems.pt_BR.yaml b/_data/blocks/design-systems.pt_BR.yaml new file mode 100644 index 000000000..99ce34f10 --- /dev/null +++ b/_data/blocks/design-systems.pt_BR.yaml @@ -0,0 +1,44 @@ +name: Design Systems +logo: +short-description: +key-objectives: + - Criar e manter bibliotecas que serão consumidas e usadas como padrão para a construção de um projeto +aditional-objectives: +contents: + - type: article + title: "Design System: o que é e quais os benefícios?" + link: https://medium.com/ipnet-growth-partner/design-system-o-que-e-438773dd811 + - type: article + title: "Afinal, o que é Design System?" + link: https://brasil.uxdesign.cc/afinal-o-que-%C3%A9-design-system-448c257b0021 + - type: article + title: "O que são Design Tokens" + link: https://medium.com/pretux/design-tokens-112b2ee11ddf + - type: youtube + title: "Caio Gonzalez: O que é Design System? / Guia para começar o seu próprio Design System" + link: https://www.youtube.com/watch?v=ajqbXpFVaAw +alura-contents: + - type: article + title: "O que é Design System?" + link: https://www.alura.com.br/artigos/o-que-e-design-system + - type: article + title: "Design Systems: exemplos práticos" + link: https://www.alura.com.br/artigos/design-systems-exemplos-praticos + - type: youtube + title: "Alura: Design System & Style Guide" + link: https://www.youtube.com/watch?v=rSLvpOqC5wQ + - type: youtube + title: "Alura: Design Systems (com Charles Assunção)" + link: https://www.youtube.com/watch?v=MLGFctEtmYQ + - type: youtube + title: "Alura: O que é Design System? | Hipsters.Talks" + link: https://www.youtube.com/watch?v=LNQ4fZbjqWM + - type: podcast + title: "Hipsters.tech: Design Systems - Hipsters 170" + link: https://www.alura.com.br/podcast/hipsterstech-design-systems-hipsters-170-a399 + - type: podcast + title: "Layers.tech: Design System – Layers ponto tech 36" + link: https://www.alura.com.br/podcast/layerstech-design-system-layers-ponto-tech-36-a1056 + - type: course + title: "Formação Design System" + link: https://www.alura.com.br/formacao-design-system diff --git a/_data/blocks/django-rest-framework.pt_BR.yaml b/_data/blocks/django-rest-framework.pt_BR.yaml new file mode 100644 index 000000000..f756fd7bf --- /dev/null +++ b/_data/blocks/django-rest-framework.pt_BR.yaml @@ -0,0 +1,38 @@ +name: Django Rest Framework +logo: +short-description: +key-objectives: + - Desenvolver APIs + - Trabalhar com modelos, serializers e views + - Incluir filtros, buscas e ordenação + - Limitar o número de requisições +aditional-objectives: +contents: + - type: SITE + title: "Documentação Rest Framework (inglês)" + link: https://www.django-rest-framework.org/ + - type: ARTICLE + title: "Introduçao ao Django Rest Framework" + link: https://nelziositoe.medium.com/introducao-ao-django-rest-framework-47ecb9ae0e6b + - type: ARTICLE + title: "API com Python e Django Rest Framework" + link: https://medium.com/@guilhermegoesgarcia/api-com-python-e-django-rest-framework-f01fcb37aea5 + - type: YOUTUBE + title: "Fernando Rodrigues: Django Rest Framework 01 - Introdução" + link: https://www.youtube.com/watch?v=uly58gcUGv8&list=PLsTx8TSx2fHY01FnuxBdwiBiOdZdPGik7 + - type: YOUTUBE + title: "Gregory Pacheco: Django Rest Framework em 30 minutos" + link: https://www.youtube.com/watch?v=gFsIGJR5R8I +alura-contents: + - type: ARTICLE + title: "Django e Django Rest: Diferenças e aplicações" + link: https://www.alura.com.br/artigos/django-django-rest-diferencas + - type: ARTICLE + title: "Django Rest Framework: Versionamento" + link: https://www.alura.com.br/artigos/django-rest-framework-versionamento + - type: ARTICLE + title: "Django: Upload de imagens em uma API Rest" + link: https://www.alura.com.br/artigos/django-upload-de-imagens-em-uma-api-rest + - type: COURSE + title: "Formação Django REST APIs" + link: https://cursos.alura.com.br/formacao-django-rest \ No newline at end of file diff --git a/_data/blocks/django.pt_BR.yaml b/_data/blocks/django.pt_BR.yaml new file mode 100644 index 000000000..36c55fbf5 --- /dev/null +++ b/_data/blocks/django.pt_BR.yaml @@ -0,0 +1,57 @@ +name: Django +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: +contents: + - type: SITE + title: "Documentação Django" + link: https://docs.djangoproject.com/pt-br/4.1/ + - type: SITE + title: "MDN Web Docs: Introdução ao Django" + link: https://developer.mozilla.org/pt-BR/docs/Learn/Server-side/Django/Introduction + - type: ARTICLE + title: "Introdução ao Django — Começando um projeto do zero" + link: https://medium.com/@thais.ribeiro/introdu%C3%A7%C3%A3o-ao-django-come%C3%A7ando-um-projeto-do-zero-57a953e0614b + - type: YOUTUBE + title: "Samuel Gonçalves: O que é o Django Framework - Para iniciantes" + link: https://www.youtube.com/watch?v=NnxhXfkuJlY + - type: YOUTUBE + title: "Thiago Kaiser: Como funciona o Django - Modelo MTV" + link: https://www.youtube.com/watch?v=2XaZXJ5P81k +alura-contents: + - type: ARTICLE + title: "Django: instalação, configuração e escrevendo seu primeiro app" + link: https://www.alura.com.br/artigos/django-instalacao-configuracao-e-escrevendo-seu-primeiro-app + - type: ARTICLE + title: "Django ou Flask: Características, semelhanças e diferenças" + link: https://www.alura.com.br/artigos/django-ou-flask + - type: ARTICLE + title: "Fazendo o deploy de uma aplicação Django" + link: https://www.alura.com.br/artigos/fazendo-o-deploy-de-uma-aplicacao-django + - type: ARTICLE + title: "Django: QuerySets e ORM" + link: https://www.alura.com.br/artigos/django-query-sets-e-orm + - type: ARTICLE + title: "Django: Diferença entre null e blank" + link: https://www.alura.com.br/artigos/django-diferenca-entre-null-e-blank + - type: ARTICLE + title: "Django e Django Rest: Diferenças e aplicações" + link: https://www.alura.com.br/artigos/django-django-rest-diferencas + - type: YOUTUBE + title: "Alura: Python na web com Django" + link: https://www.youtube.com/watch?v=URfpp5s_CkI + - type: YOUTUBE + title: "Alura: Criando uma API com Django - Hipsters Ponto Talks 11" + link: https://www.youtube.com/watch?v=BKChTO8GADk + - type: YOUTUBE + title: "Alura: Para o que serve o Django?" + link: https://www.youtube.com/watch?v=vhv82UCIt3k + - type: COURSE + title: "Formação Django" + link: https://cursos.alura.com.br/formacao-django \ No newline at end of file diff --git a/_data/blocks/dom-fundamentals.pt_BR.yaml b/_data/blocks/dom-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..7d2ce4517 --- /dev/null +++ b/_data/blocks/dom-fundamentals.pt_BR.yaml @@ -0,0 +1,34 @@ +name: DOM - Fundamentos +logo: +short-description: +key-objectives: + - Entender como funciona a árvore do DOM + - Acessar e manipular elementos do HTML e CSS + - Acessar os pais e filhos de um elemento + - Inserir um novo elemento na árvore + - Remover um elemento da árvore + - Esperar por um evento em certo elemento da página usando 'addEventListener()' +aditional-objectives: +contents: + - type: site + title: "MDN Web Docs: Introdução ao DOM" + link: https://developer.mozilla.org/pt-BR/docs/Web/API/Document_Object_Model/Introduction + - type: site + title: "MDN Web Docs: querySelectorAll()" + link: https://developer.mozilla.org/pt-BR/docs/Web/API/Document/querySelectorAll + - type: site + title: "MDN Web Docs: addEventListener()" + link: https://developer.mozilla.org/pt-BR/docs/Web/API/EventTarget/addEventListener + - type: youtube + title: "Felipe Aguiar - Laboratório de javascript: Javascript DOM 01 - DOM - A base da manipulação e criação de páginas dinâmicas" + link: https://www.youtube.com/watch?v=G31EuXNMDPk +alura-contents: + - type: course + title: "Curso JavaScript: manipulando o DOM" + link: https://cursos.alura.com.br/course/javascript-manipulando-dom + - type: challenge + title: "7 Days of Code: JavaScript e DOM" + link: https://7daysofcode.io/matricula/javascript-e-dom + - type: challenge + title: "7 Days of Code: JavaScript e DOM com API" + link: https://7daysofcode.io/matricula/javascript-e-dom-api diff --git a/_data/blocks/entity-framework-core.pt_BR.yaml b/_data/blocks/entity-framework-core.pt_BR.yaml new file mode 100644 index 000000000..ec4e55e7e --- /dev/null +++ b/_data/blocks/entity-framework-core.pt_BR.yaml @@ -0,0 +1,34 @@ +name: Entity Framework Core +logo: +short-description: +key-objectives: + - Manipular bancos de dados usando objetos .NET + - Criar modelos correspondentes a um banco de dados + - Realizar consultas +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: Entity Framework Core" + link: https://docs.microsoft.com/pt-br/ef/core/ + - type: ARTICLE + title: "Série: Entity Framework. Introdução" + link: https://medium.com/@alexandre.malavasi/s%C3%A9rie-entity-framework-introdu%C3%A7%C3%A3o-parte-1-13ab52b0bdaf + - type: YOUTUBE + title: "ProgrAmada Mente: Introdução ao Entity Framework Core" + link: https://www.youtube.com/watch?v=OIsM0LklYH0 + - type: YOUTUBE + title: "A Escola de Software: O que é Entity Framework Core?" + link: https://www.youtube.com/watch?v=ZaVyLFTDuIQ +alura-contents: + - type: SITE + title: "Primeiras aulas do curso Entity Framework Core: banco de dados de forma eficiente" + link: https://www.alura.com.br/conteudo/entity-framework-core + - type: COURSE + title: "Curso Entity Framework Core: banco de dados de forma eficiente" + link: https://www.alura.com.br/curso-online-entity-framework-core + - type: COURSE + title: "Curso Entity Framework Core parte 1: mapeando um banco pré-existente" + link: https://www.alura.com.br/curso-online-entity-framework-core-banco-pre-existente-parte1 + - type: COURSE + title: "Curso Entity Framework Core parte 2: mapeando um banco pré-existente" + link: https://www.alura.com.br/curso-online-entity-framework-core-banco-pre-existente-parte2 \ No newline at end of file diff --git a/_data/blocks/feature-engineering.pt_BR.yaml b/_data/blocks/feature-engineering.pt_BR.yaml new file mode 100644 index 000000000..ef6193165 --- /dev/null +++ b/_data/blocks/feature-engineering.pt_BR.yaml @@ -0,0 +1,35 @@ +name: Feature Engineering +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: +contents: + - type: ARTICLE + title: "Engenharia de Atributos" + link: https://ricardomatsumura.medium.com/engenharia-de-atributos-87370c31d0eb + - type: ARTICLE + title: "Engenharia de características" + link: https://datascience.eu/pt/aprendizado-de-maquina/engenharia-de-caracteristicas/ + - type: ARTICLE + title: "Automated feature engineering: como utilizar o featuretools" + link: https://medium.com/datarisk-io/automated-feature-engineering-como-utilizar-o-featuretools-25586438df3d + - type: ARTICLE + title: "Deep Feature Synthesis (DFS)" + link: https://medium.com/data-hackers/deep-feature-synthesis-dfs-835cbc7a3290 + - type: YOUTUBE + title: "Gabriel Tozatto Zago: Técnicas de Engenharia de Características" + link: https://www.youtube.com/watch?v=DH4hzOLHF0Y + - type: YOUTUBE + title: "BeeData USP: Introdução à Feature Engineering para Datas" + link: https://www.youtube.com/watch?v=Tt9_a4u2ml4 +alura-contents: + - type: ARTICLE + title: "Desmistificando termos em Machine Learning" + link: https://www.alura.com.br/artigos/desmistificando-termos-machine-learning + - type: COURSE + title: "Curso Data Science: analise e visualização de dados" + link: https://cursos.alura.com.br/course/data-science-primeiros-passos \ No newline at end of file diff --git a/_data/blocks/figma-fundamentals.pt_BR.yaml b/_data/blocks/figma-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..dc6531486 --- /dev/null +++ b/_data/blocks/figma-fundamentals.pt_BR.yaml @@ -0,0 +1,47 @@ +name: Figma - Fundamentos +logo: +short-description: +key-objectives: + - Criar layouts de páginas e componentes +aditional-objectives: +contents: + - type: site + title: "Figma Básico - Primeiros passos com Figma" + link: https://www.figma.com/community/file/968941070328353882 + - type: article + title: "O que é o Figma e por que usar ele?" + link: https://medium.com/nerdzao/o-que-%C3%A9-o-figma-e-por-que-usar-ele-a71fbf1dbdd8 + - type: article + title: "Entenda o que é e como usar o Figma para criar designs" + link: https://blog.b2bstack.com.br/figma/ + - type: youtube + title: "Marco Bruno: Como usar o Figma!" + link: https://www.youtube.com/watch?v=qoE-2YFeW-Q + - type: youtube + title: "4 Exemplos de Componentes interativos no Figma" + link: https://www.youtube.com/watch?v=mGL3jrY-OBc +alura-contents: + - type: site + title: "Como Front-End utiliza o Figma - Alura+" + link: https://cursos.alura.com.br/extra/alura-mais/como-front-end-utiliza-o-figma-c858 + - type: article + title: "Top 5 plugins no Figma para trabalhar com Design System" + link: https://www.alura.com.br/artigos/top-5-plugins-figma-trabalhar-com-design-system + - type: article + title: "5 plugins essenciais que você precisa ter no seu Figma" + link: https://www.alura.com.br/artigos/5-plugins-essenciais-do-figma + - type: article + title: "10 truques incríveis e pouco conhecidos no Figma" + link: https://www.alura.com.br/artigos/10-truques-incriveis-pouco-conhecidos-figma + - type: podcast + title: "Layers.tech: Figma do Design ao Código 03" + link: https://www.alura.com.br/podcast/layerstech-figma-do-design-ao-codigo-layers-ponto-tech-03-a726 + - type: youtube + title: "Primeiros passos com Figma - Hipsters.Talks 20" + link: https://www.youtube.com/watch?v=rup43vQ-Krs + - type: youtube + title: "Como fazer estilos locais mais rapidamente no Figma?" + link: https://www.youtube.com/watch?v=fCHd2_lAcQQ + - type: course + title: "Formação Figma" + link: https://www.alura.com.br/formacao-figma diff --git a/_data/blocks/first-deploy.pt_BR.yaml b/_data/blocks/first-deploy.pt_BR.yaml new file mode 100644 index 000000000..e254730d6 --- /dev/null +++ b/_data/blocks/first-deploy.pt_BR.yaml @@ -0,0 +1,16 @@ +name: First Deploy +logo: +short-description: +key-objectives: + - +aditional-objectives: +contents: + - + type: + title: + link: +alura-contents: + - + type: + title: + link: diff --git a/_data/blocks/flask.pt_BR.yaml b/_data/blocks/flask.pt_BR.yaml new file mode 100644 index 000000000..3603edd13 --- /dev/null +++ b/_data/blocks/flask.pt_BR.yaml @@ -0,0 +1,37 @@ +name: Flask +logo: +short-description: +key-objectives: + - Criar aplicações web + - Definir rotas, redirecionamentos e templates + - Validar formulários +aditional-objectives: +contents: + - type: SITE + title: "Documentação Flask" + link: https://flask-ptbr.readthedocs.io/en/latest/ + - type: ARTICLE + title: "PythOn Flask — Iniciando ao Framework" + link: https://medium.com/@cfmedeiros/python-flask-iniciando-ao-framework-efd66250addd + - type: ARTICLE + title: "Introdução ao desenvolvimento web com Python e Flask" + link: https://medium.com/@urapython.community/introdu%C3%A7%C3%A3o-ao-desenvolvimento-web-com-python-e-flask-636e81b0b884 + - type: YOUTUBE + title: "Eduardo Mendes: Introdução ao Flask" + link: https://www.youtube.com/watch?v=yxUm_QnP4Qo + - type: YOUTUBE + title: "Eduardo Mendes: Início da construção da API em Python #1 [venv + Flask + Dev Container]" + link: https://www.youtube.com/watch?v=veYF2g9M6lA +alura-contents: + - type: ARTICLE + title: "Flask: Instalação" + link: https://www.alura.com.br/artigos/flask-instalacao + - type: ARTICLE + title: "Django ou Flask: Características, semelhanças e diferenças" + link: https://www.alura.com.br/artigos/django-ou-flask + - type: YOUTUBE + title: "Alura: O que é Flask?" + link: https://www.youtube.com/watch?v=l2SdqHcKmnU + - type: COURSE + title: "Formação Começando com Flask" + link: https://cursos.alura.com.br/formacao-flask \ No newline at end of file diff --git a/_data/blocks/framer-motion.pt_BR.yaml b/_data/blocks/framer-motion.pt_BR.yaml new file mode 100644 index 000000000..40bfa21ad --- /dev/null +++ b/_data/blocks/framer-motion.pt_BR.yaml @@ -0,0 +1,20 @@ +name: Framer Motion +logo: +short-description: +key-objectives: + - Criar animações +aditional-objectives: +contents: + - type: site + title: "Documentação: Framer Motion (inglês)" + link: https://www.framer.com/motion/ + - type: article + title: "Framer Motion + React (Exemplo de Utilização)" + link: https://medium.com/@leonardord99/framer-motion-react-514f39a9d03e + - type: article + title: "Galeria De Páginas Deslizantes Animadas Usando Framer-motion E React.js" + link: https://acervolima.com/galeria-de-paginas-deslizantes-animadas-usando-framer-motion-e-react-js/ + - type: youtube + title: "Animations In React - Framer-Motion Tutorial (inglês)" + link: https://www.youtube.com/watch?v=GOuwOI-WSkE +alura-contents: diff --git a/_data/blocks/frontend-semantic-versioning.pt_BR.yaml b/_data/blocks/frontend-semantic-versioning.pt_BR.yaml new file mode 100644 index 000000000..697442e20 --- /dev/null +++ b/_data/blocks/frontend-semantic-versioning.pt_BR.yaml @@ -0,0 +1,26 @@ +name: Versionamento Semântico para Front-end +logo: +short-description: +key-objectives: + - Organizar as dependências de um projeto +aditional-objectives: +contents: + - type: site + title: "Documentação: Versionamento Semântico" + link: https://semver.org/lang/pt-BR/ + - type: article + title: "Versionamento semântico - O que é e como usar" + link: https://imasters.com.br/codigo/versionamento-semantico-o-que-e-e-como-usar + - type: article + title: "Criando e automatizando o versionamento semântico de projetos NodeJS" + link: https://dev.to/wnqueiroz/criando-e-automatizando-o-versionamento-semantico-de-projetos-nodejs-3ogj + - type: youtube + title: "Mario Souto - Dev Soutinho: Como padronizar commits? Conventional Commits + Semantic Release" + link: https://www.youtube.com/watch?v=1eTofdmfq1g + - type: youtube + title: "Filho da nuvem: O que é SEMVER e como entender versões de bibliotecas?" + link: https://www.youtube.com/watch?v=sgheXCK-Rfw +alura-contents: + - type: article + title: "Git Flow: entenda o que é, como e quando utilizar" + link: https://www.alura.com.br/artigos/git-flow-o-que-e-como-quando-utilizar diff --git a/_data/blocks/git-and-github-fundamentals.pt_BR.yaml b/_data/blocks/git-and-github-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..74e6e7a9c --- /dev/null +++ b/_data/blocks/git-and-github-fundamentals.pt_BR.yaml @@ -0,0 +1,55 @@ +name: Git e GitHub - Fundamentos +logo: +short-description: +key-objectives: + - Criar um repositório + - Clonar um repositório + - Fazer commit, push e pull de e para o repositório + - Reverter um commit + - Lidar com merge e conflitos +aditional-objectives: + - Fazer deploy do seu código com o GitHub Pages +contents: + - type: site + title: "GitHub Documentação" + link: https://docs.github.com/pt + - type: site + title: "GitHub Pages Documentação" + link: https://docs.github.com/pt/pages/getting-started-with-github-pages/about-github-pages + - type: youtube + title: "Rafaella Ballerini: O QUE É GIT E GITHUB? - definição e conceitos importantes 1/2" + link: https://www.youtube.com/watch?v=DqTITcMq68k + - type: youtube + title: "Rafaella Ballerini: COMO USAR GIT E GITHUB NA PRÁTICA! - desde o primeiro commit até o pull request! 2/2" + link: https://www.youtube.com/watch?v=UBAX-13g8OM + - type: youtube + title: "Mario Souto - Dev Soutinho: Como colocar seu projeto no ar DE GRAÇA via GitHub! | Hospedagem com GitHub Pages" + link: https://www.youtube.com/watch?v=BU-w2_Aae54 +alura-contents: + - type: article + title: "Git e Github: O que são, Como Configurar e Primeiros Passos" + link: https://www.alura.com.br/artigos/o-que-e-git-github + - type: article + title: "Mais git com o hub: a linha de comando do Github" + link: https://www.alura.com.br/artigos/github-na-linha-de-comando + - type: site + title: "Websérie: Git e Github para Sobrevivência" + link: https://www.alura.com.br/webseries/git-e-github-para-sobrevivencia + - type: podcast + title: "Hipsters 109: Git e Github" + link: https://www.alura.com.br/podcast/hipsterstech-git-e-github-hipsters-109-a474 + - type: youtube + title: "Alura: Git e Github para Sobrevivência 01: Como o Git funciona?" + link: https://www.youtube.com/watch?v=BAmvmaKQklQ + - type: course + title: "Curso Git e Github: controle e compartilhe seu código" + link: https://www.alura.com.br/curso-online-git-github-controle-de-versao + - type: course + title: "Curso Git e Github: estratégias de ramificação, Conflitos e Pull Requests" + link: https://www.alura.com.br/curso-online-git-github-branching-conflitos-pull-requests + - type: course + title: "Curso Git e GitHub: repositório, commit e versões" + link: https://www.alura.com.br/curso-online-git-github-repositorio-commit-versoes + - type: challenge + title: "7 Days of Code: GitHub" + link: https://7daysofcode.io/matricula/github diff --git a/_data/blocks/graphql.pt_BR.yaml b/_data/blocks/graphql.pt_BR.yaml new file mode 100644 index 000000000..8720ddd01 --- /dev/null +++ b/_data/blocks/graphql.pt_BR.yaml @@ -0,0 +1,51 @@ +name: GraphQL +logo: +short-description: +key-objectives: + - Fazer consultas + - Consumir APIs +aditional-objectives: +contents: + - type: site + title: "RedHat: O que é GraphQL?" + link: https://www.redhat.com/pt-br/topics/api/what-is-graphql + - type: article + title: "GraphQL: O que é e como usar" + link: https://medium.com/@emerson_pereira/introdu%C3%A7%C3%A3o-a-graphql-cbd1697784bf + - type: article + title: "Dev.to: Entendendo um pouco sobre o que é GraphQL" + link: https://dev.to/amaurygoncalves/entendendo-um-pouco-sobre-o-que-e-graphql-9l7 + - type: youtube + title: "Mateus Silva: GraphQL: Pra que serve, Conceitos e Hello World" + link: https://www.youtube.com/watch?v=ZWF7QT3ogk0 + - type: youtube + title: "Washington Developer: Curso COMPLETO de GraphQL 1: Introdução | O Que é ? | O Que veio resolver?" + link: https://www.youtube.com/watch?v=RyqLvFhPNy8 +alura-contents: + - type: youtube + title: "Alura: O que é GraphQL?" + link: https://www.youtube.com/watch?v=trf3ZR_K1nk + - type: podcast + title: "Hipsters.tech: Python, GraphQL e Serverless no Zé Delivery (Hipsters On The Road 53)" + link: https://www.alura.com.br/podcast/python-graphql-e-serverless-no-ze-delivery-hipsters-on-the-road-53-a804 + - type: site + title: "Primeiras aulas do curso GraphQL: construindo uma API com Apollo Server" + link: https://www.alura.com.br/conteudo/graphql-construindo-api-apollo-server + - type: course + title: "Curso GraphQL: construindo uma API com Apollo Server" + link: https://www.alura.com.br/curso-online-graphql-construindo-api-apollo-server + - type: course + title: "Curso GraphQL: criação de APIs com Prisma 2 e Nexus" + link: https://www.alura.com.br/curso-online-graphql-criacao-apis-prisma-2-nexus + - type: site + title: "Primeiras aulas do curso GraphQL: integração de dados e relacionamentos" + link: https://www.alura.com.br/conteudo/graphql-integracao-dados-relacionamentos + - type: course + title: "Curso GraphQL: integração de dados e relacionamentos" + link: https://www.alura.com.br/curso-online-graphql-integracao-dados-relacionamentos + - type: site + title: "Primeiras aulas do curso GraphQL parte 3: integrando com sua aplicação" + link: https://www.alura.com.br/conteudo/graphql-integrando-com-front-end + - type: course + title: "Curso GraphQL parte 3: integrando com sua aplicação" + link: https://www.alura.com.br/curso-online-graphql-integrando-com-front-end diff --git a/_data/blocks/how-to-use-fonts.pt_BR.yaml b/_data/blocks/how-to-use-fonts.pt_BR.yaml new file mode 100644 index 000000000..0d1895db4 --- /dev/null +++ b/_data/blocks/how-to-use-fonts.pt_BR.yaml @@ -0,0 +1,35 @@ +name: Como usar fontes +logo: +short-description: +key-objectives: + - Escolher a fonte mais adequada para determinado projeto +aditional-objectives: +contents: + - type: article + title: "Você sabe usar tipografia em UI Design?" + link: https://medium.com/ui-lab-school/voc%C3%AA-sabe-usar-tipografia-em-ui-design-9ce4ccdbab43 + - type: article + title: "As 20 fontes mais usadas pelos designers gráficos" + link: https://apenasumchico.medium.com/as-20-fontes-mais-populares-de-todos-os-tempos-38a6c121dfb + - type: youtube + title: "Nadine Fronza: Como escolher a melhor fonte para seu projeto" + link: https://www.youtube.com/watch?v=MSKPUtIdadI + - type: youtube + title: "Thiago Abreu: Como Escolher Fontes para um Trabalho de Design" + link: https://www.youtube.com/watch?v=l-TrNbZi-aU +alura-contents: + - type: article + title: "10 tipografias gratuitas para um design incrível" + link: https://www.alura.com.br/artigos/10-tipografias-gratuitas-design-incrivel + - type: site + title: "Tipografia para Web" + link: https://tipografiaparaweb.netlify.app/ + - type: site + title: "Primeiras aulas do curso Tipografia: conhecendo o que há por trás dos tipos" + link: https://www.alura.com.br/conteudo/tipografia-conceito + - type: course + title: "Curso Tipografia: conhecendo o que há por trás dos tipos" + link: https://www.alura.com.br/curso-online-tipografia-conceito + - type: course + title: "Curso Design editorial: criação de materiais gráficos" + link: https://www.alura.com.br/curso-online-design-editorial diff --git a/_data/blocks/html-fundamentals.pt_BR.yaml b/_data/blocks/html-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..3f48c8635 --- /dev/null +++ b/_data/blocks/html-fundamentals.pt_BR.yaml @@ -0,0 +1,63 @@ +name: HTML - Fundamentos +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: + - Estabelecer o charset da página + - Importar uma fonte da web + - Aprender sobre HTML semântico +contents: + - type: site + title: "MDN Web Docs: HTML básico" + link: https://developer.mozilla.org/pt-BR/docs/Learn/Getting_started_with_the_web/HTML_basics + - type: youtube + title: "Rafaella Ballerini: 5 MINUTOS DE HTML PARA INICIAR EM PROGRAMAÇÃO!" + link: https://www.youtube.com/watch?v=3oSIqIqzN3M + - type: youtube + title: "Rafaella Ballerini: LANDING PAGE COM HTML e CSS!" + link: https://www.youtube.com/watch?v=llF6vD-RljE + - type: youtube + title: "Rafaella Ballerini: FORMULÁRIOS COM HTML e CSS!" + link: https://www.youtube.com/watch?v=wwqOJ2o84S4 +alura-contents: + - type: article + title: "HTML, CSS e Javascript, quais as diferenças?" + link: https://www.alura.com.br/artigos/html-css-e-js-definicoes + - type: article + title: "O que é o HTML e suas tags? Parte 1: estrutura básica" + link: https://www.alura.com.br/artigos/o-que-e-html-suas-tags-parte-1-estrutura-basica + - type: article + title: "O que é o HTML e suas tags? Parte 2: elementos inline" + link: https://www.alura.com.br/artigos/o-que-e-html-suas-tags-parte-2-elementos-inline + - type: article + title: "O que é o HTML e suas tags? Parte 3: elementos block-level" + link: https://www.alura.com.br/artigos/html-tags-elementos-block-level + - type: article + title: "O que é o HTML e suas tags? Parte 4: elementos de um formulário" + link: https://www.alura.com.br/artigos/o-que-e-html-suas-tags-parte-4-elementos-formulario + - type: article + title: "O que é o HTML e suas tags? Parte 5: atributos dos elementos" + link: https://www.alura.com.br/artigos/o-que-e-html-suas-tags-parte-5-atributos-elementos + - type: youtube + title: "Alura: Curso de HTML5 e CSS3" + link: https://www.youtube.com/watch?v=78AyiuxYceg + - type: course + title: "Formação HTML e CSS" + link: https://www.alura.com.br/formacao-html-e-css + - type: course + title: "Apostila: Desenvolvimento Web com HTML, CSS e JavaScript" + link: https://www.alura.com.br/apostila-html-css-javascript + - type: challenge + title: "7 Days of Code: HTML e CSS" + link: https://7daysofcode.io/matricula/html-css diff --git a/_data/blocks/http-fundamentals.pt_BR.yaml b/_data/blocks/http-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..df1fbdeb5 --- /dev/null +++ b/_data/blocks/http-fundamentals.pt_BR.yaml @@ -0,0 +1,46 @@ +name: HTTP - Fundamentos +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: + - fazer um post com POSTMAN +contents: + - type: site + title: "MDN Web Docs: Uma visão geral do HTTP" + link: https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Overview + - type: site + title: "MDN Web Docs: Métodos de requisição HTTP" + link: https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Methods + - type: youtube + title: "Fabiano Gabardo Lemos: Requisições HTTP - GET, POST, PUT, PATCH DELETE" + link: https://www.youtube.com/watch?v=kncOJZrnkTg + - type: youtube + title: "Programador a Bordo: Protocolo HTTP e TCP/IP - Introdução" + link: https://www.youtube.com/watch?v=V4XZ81vRGtM +alura-contents: + - type: article + title: "HTTP: Desmistificando o protocolo da Web" + link: https://www.alura.com.br/artigos/desmistificando-o-protocolo-http-parte-1 + - type: article + title: "Métodos de requisição do HTTP" + link: https://www.alura.com.br/artigos/metodos-de-requisicao-do-http + - type: article + title: "Qual é a diferença entre HTTP e HTTPS?" + link: https://www.alura.com.br/artigos/qual-e-diferenca-entre-http-e-https + - type: podcast + title: "Hipsters.tech: HTTP/2: magia com o novo protocolo - Hipsters 13" + link: https://www.alura.com.br/podcast/http-2-magia-com-o-novo-protocolo-hipsters-13-a573 + - type: youtube + title: "Alura: HTTP - Entendendo a web" + link: https://www.youtube.com/watch?v=1IKkSJ8yMMA + - type: course + title: "Primeiras aulas do Curso HTTP: Entendendo a web por baixo dos panos" + link: https://www.alura.com.br/conteudo/http-fundamentos + - type: course + title: "Curso HTTP: Entendendo a web por baixo dos panos" + link: https://www.alura.com.br/curso-online-http-fundamentos diff --git a/_data/blocks/java-build-tools.pt_BR.yaml b/_data/blocks/java-build-tools.pt_BR.yaml new file mode 100644 index 000000000..3d5811530 --- /dev/null +++ b/_data/blocks/java-build-tools.pt_BR.yaml @@ -0,0 +1,33 @@ +name: Java Build Tools +logo: +short-description: +key-objectives: + - Conheça as principais ferramentas de build do Java + - Aprenda a usar uma delas +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: Maven e outras ferramentas de build para java (com legenda em português)" + link: https://docs.microsoft.com/pt-br/shows/java-for-beginners/maven-and-other-build-tools-for-java + - type: ARTICLE + title: "Entenda o que são build tools do mundo Java" + link: https://medium.com/@alex.felipe/entenda-o-que-s%C3%A3o-build-tools-do-mundo-java-682a26e38ff2 + - type: ARTICLE + title: "Ant e o deploy e build de Projetos Java" + link: http://www.linhadecodigo.com.br/artigo/657/ant-e-o-deploy-e-build-de-projetos-java.aspx + - type: YOUTUBE + title: "by { iorio }: Introdução ao Maven e Instalando a ferramenta" + link: https://www.youtube.com/watch?v=T-1Lgkqs6SM + - type: YOUTUBE + title: "Pedro Cavalero: Entendendo Maven no Spring Boot" + link: https://www.youtube.com/watch?v=-KGAckgJKQA +alura-contents: + - type: YOUTUBE + title: "Alura: Conhecendo as build tools no mundo Java" + link: https://www.youtube.com/watch?v=6llRWbdnmuk + - type: YOUTUBE + title: "Alura: Começando com o Gradle: Tasks e comandos básicos" + link: https://www.youtube.com/watch?v=uX6Ezf73OEY + - type: COURSE + title: "Curso Maven: gerenciamento de dependências e build de aplicações Java" + link: https://cursos.alura.com.br/course/maven-gerenciamento-dependencias-build-aplicacoes-java \ No newline at end of file diff --git a/_data/blocks/java-collections.pt_BR.yaml b/_data/blocks/java-collections.pt_BR.yaml new file mode 100644 index 000000000..f66c70855 --- /dev/null +++ b/_data/blocks/java-collections.pt_BR.yaml @@ -0,0 +1,35 @@ +name: Java - Coleções +logo: +short-description: +key-objectives: + - Aprender os usos e diferenças entre List, Set e Map + - Aprender os usos e diferenças entre Equals e HashCode + - Saiba trabalhar com ArrayList, LinkedList ou Vector + - Classes Wrappers +aditional-objectives: +contents: + - type: SITE + title: "Acervo Lima: Coleções em Java" + link: https://acervolima.com/colecoes-em-java/ + - type: ARTICLE + title: "Dev.to: Básico efetivo sobre Coleções e Mapas com Java" + link: https://dev.to/gabrielsantosba/basico-efetivo-sobre-colecoes-e-mapas-com-java-4bnc + - type: ARTICLE + title: "Equals e HashCode: O que é, porque usar e como implementar" + link: https://dev.to/gabrielsantosba/basico-efetivo-sobre-colecoes-e-mapas-com-java-4bnc + - type: YOUTUBE + title: "Caio Rodrigues: O Poder das Collections do Java" + link: https://www.youtube.com/watch?v=eLiHH9Bu04E +alura-contents: + - type: YOUTUBE + title: "Alura: Aprofundando no Java: domine as Collections" + link: https://www.youtube.com/watch?v=PeFDQtLBlto + - type: COURSE + title: "Curso Java e java.util: Coleções, Wrappers e Lambda expressions" + link: https://cursos.alura.com.br/course/java-util-lambdas + - type: SITE + title: "Primeiras aulas do curso Java Collections: Dominando Listas, Sets e Mapas" + link: https://www.alura.com.br/conteudo/java-collections + - type: COURSE + title: "Curso Java Collections: Dominando Listas, Sets e Mapas" + link: https://cursos.alura.com.br/course/java-collections \ No newline at end of file diff --git a/_data/blocks/java-concurrency.pt_BR.yaml b/_data/blocks/java-concurrency.pt_BR.yaml new file mode 100644 index 000000000..2b32e9a49 --- /dev/null +++ b/_data/blocks/java-concurrency.pt_BR.yaml @@ -0,0 +1,40 @@ +name: Java - Concorrência +logo: +short-description: +key-objectives: + - Executar tarefas simultaneamente + - Colocar tarefas para aguardar até que um determinado evento ocorra + - Entender como a memória funciona nessa situação +aditional-objectives: +contents: + - type: ARTICLE + title: "Concorrência e Paralelismo — Threads, múltiplos processos e AsyncIO — Parte 1" + link: https://medium.com/diogommartins/concorr%C3%AAncia-e-paralelismo-threads-m%C3%BAltiplos-processos-e-asyncio-parte-1-fbbdd2309d74 + - type: ARTICLE + title: "Concorrência e Paralelismo — Threads, múltiplos processos e AsyncIO — Parte 2" + link: https://medium.com/diogommartins/concorr%C3%AAncia-e-paralelismo-threads-m%C3%BAltiplos-processos-e-asyncio-parte-2-8e539c59a16a + - type: ARTICLE + title: "Understanding Java threads once and for all (inglês)" + link: https://medium.com/swlh/understanding-java-threads-once-and-for-all-711f71e0ec1e + - type: YOUTUBE + title: "Loiane Groner: Criando Threads + métodos start, run e sleep" + link: https://www.youtube.com/watch?v=v5l30QMKv6c + - type: YOUTUBE + title: "Michelli Brito: Threads em java" + link: https://www.youtube.com/watch?v=rVsyXGwbmag +alura-contents: + - type: SITE + title: "Programação Concorrente E Threads" + link: https://www.alura.com.br/apostila-java-orientacao-objetos/apendice-programacao-concorrente-e-threads + - type: YOUTUBE + title: "Alura: Threads 1: Programação paralela em Java - Aula 1" + link: https://www.youtube.com/watch?v=NAOkIbpsbzs + - type: COURSE + title: "Curso Threads em Java 1: programação paralela" + link: https://cursos.alura.com.br/course/threads-java-1 + - type: SITE + title: "Primeiras aulas do curso Threads em Java 2: programação concorrente avançada" + link: https://www.alura.com.br/conteudo/threads-java-2 + - type: COURSE + title: "Curso Threads em Java 2: programação concorrente avançada" + link: https://cursos.alura.com.br/course/threads-java-2 \ No newline at end of file diff --git a/_data/blocks/java-error-handling.pt_BR.yaml b/_data/blocks/java-error-handling.pt_BR.yaml new file mode 100644 index 000000000..ca764f6ed --- /dev/null +++ b/_data/blocks/java-error-handling.pt_BR.yaml @@ -0,0 +1,38 @@ +name: Java - Manipulação de Erros +logo: +short-description: +key-objectives: + - Tratar exceções pré-definidas + - Uso de 'try' e 'catch' + - Criar exceções específicas + - Fazer o processo de Debug +aditional-objectives: +contents: + - type: SITE + title: "Wikibooks: Java - Exceções" + link: https://pt.wikibooks.org/wiki/Java/Exce%C3%A7%C3%B5es + - type: ARTICLE + title: "Exceções em Java: Uma Primeira Conversa" + link: https://www.linkedin.com/pulse/exce%C3%A7%C3%B5es-em-java-uma-primeira-conversa-vanessa/?originalSubdomain=pt + - type: YOUTUBE + title: "Loiane Groner: Exceptions: try, catch" + link: https://www.youtube.com/watch?v=ld2C4GcAtsg +alura-contents: + - type: ARTICLE + title: "Exceções e Erros em JavaScript" + link: http://gabrielprates.com/2017/06/02/excecoes-e-erros-em-js.html + - type: ARTICLE + title: "Evite o NullPointerException no Java" + link: https://www.alura.com.br/artigos/evite-o-nullpointerexception-no-java + - type: SITE + title: "Java Exceções e Controle de Erros" + link: https://www.alura.com.br/apostila-java-orientacao-objetos/excecoes-e-controle-de-erros + - type: SITE + title: "Primeiras aulas do curso Java Exceções: aprenda a criar, lançar e controlar exceções" + link: https://www.alura.com.br/conteudo/java-excecoes + - type: COURSE + title: "Curso Java Exceções: aprenda a criar, lançar e controlar exceções" + link: https://cursos.alura.com.br/course/java-excecoes + - type: COURSE + title: "Curso Java Debug: técnicas para entender e melhorar o seu código" + link: https://www.alura.com.br/curso-online-java-debug \ No newline at end of file diff --git a/_data/blocks/java-errorhandling.pt_BR.yaml b/_data/blocks/java-errorhandling.pt_BR.yaml new file mode 100644 index 000000000..ca764f6ed --- /dev/null +++ b/_data/blocks/java-errorhandling.pt_BR.yaml @@ -0,0 +1,38 @@ +name: Java - Manipulação de Erros +logo: +short-description: +key-objectives: + - Tratar exceções pré-definidas + - Uso de 'try' e 'catch' + - Criar exceções específicas + - Fazer o processo de Debug +aditional-objectives: +contents: + - type: SITE + title: "Wikibooks: Java - Exceções" + link: https://pt.wikibooks.org/wiki/Java/Exce%C3%A7%C3%B5es + - type: ARTICLE + title: "Exceções em Java: Uma Primeira Conversa" + link: https://www.linkedin.com/pulse/exce%C3%A7%C3%B5es-em-java-uma-primeira-conversa-vanessa/?originalSubdomain=pt + - type: YOUTUBE + title: "Loiane Groner: Exceptions: try, catch" + link: https://www.youtube.com/watch?v=ld2C4GcAtsg +alura-contents: + - type: ARTICLE + title: "Exceções e Erros em JavaScript" + link: http://gabrielprates.com/2017/06/02/excecoes-e-erros-em-js.html + - type: ARTICLE + title: "Evite o NullPointerException no Java" + link: https://www.alura.com.br/artigos/evite-o-nullpointerexception-no-java + - type: SITE + title: "Java Exceções e Controle de Erros" + link: https://www.alura.com.br/apostila-java-orientacao-objetos/excecoes-e-controle-de-erros + - type: SITE + title: "Primeiras aulas do curso Java Exceções: aprenda a criar, lançar e controlar exceções" + link: https://www.alura.com.br/conteudo/java-excecoes + - type: COURSE + title: "Curso Java Exceções: aprenda a criar, lançar e controlar exceções" + link: https://cursos.alura.com.br/course/java-excecoes + - type: COURSE + title: "Curso Java Debug: técnicas para entender e melhorar o seu código" + link: https://www.alura.com.br/curso-online-java-debug \ No newline at end of file diff --git a/_data/blocks/java-fundamentals.pt_BR.yaml b/_data/blocks/java-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..d16619f0f --- /dev/null +++ b/_data/blocks/java-fundamentals.pt_BR.yaml @@ -0,0 +1,77 @@ +name: Java - Fundamentos +logo: +short-description: +key-objectives: + - Conhecer os tipos primitivos + - Declarar variáveis, considerando os diferentes tipos + - 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 métodos + - Manipular arrays e listas + - Obter dados de uma API + - Fazer chamadas assíncronas 'Future', etc + - Criar construtores +aditional-objectives: + - Manipular objetos JSON + - Lidar com datas +contents: + - type: SITE + title: "O que é Java?" + link: https://aws.amazon.com/pt/what-is/java/ + - type: ARTICLE + title: "Aprenda Comigo: Java — Parte 1" + link: https://medium.com/clebertech/aprenda-comigo-java-parte-1-42ef8fddd8b6 + - type: YOUTUBE + title: "FernandaDev: Java (Aula 1 - Classes, Objetos, Atributos e Métodos)" + link: https://www.youtube.com/watch?v=ohmHbdUhAGc +alura-contents: + - type: PODCAST + title: "Hipster 313 - Ecossistema Java revisitado" + link: https://www.hipsters.tech/ecossistema-java-revisitado-hipsters-ponto-tech-313/ + - type: ARTICLE + title: "Como começar a desenvolver em Java?" + link: https://www.alura.com.br/artigos/comecando-com-o-desenvolvimento-java + - type: ARTICLE + title: "Meu primeiro programa em Java" + link: https://www.alura.com.br/artigos/meu-primeiro-programa-em-java + - type: ARTICLE + title: "Java: Conheça o método main" + link: https://www.alura.com.br/artigos/metodo-main-em-java + - type: ARTICLE + title: "Desenvolvendo aplicações Java com o VS Code" + link: https://www.alura.com.br/artigos/desenvolvendo-aplicacoes-java-vs-code + - type: ARTICLE + title: "Diferença entre int e Integer em Java" + link: https://www.alura.com.br/artigos/diferenca-entre-int-e-integer-em-java + - type: ARTICLE + title: "Como converter String para Date em Java" + link: https://www.alura.com.br/artigos/como-converter-string-para-date-em-java + - type: ARTICLE + title: "Iterando uma lista em Java" + link: https://www.alura.com.br/artigos/iterando-uma-lista-em-java + - type: ARTICLE + title: "Importando classes no Java" + link: https://www.alura.com.br/artigos/importando-classes-em-java + - type: SITE + title: "Apostila: Java e Orientação a Objetos" + link: https://www.alura.com.br/apostila-java-orientacao-objetos + - type: SITE + title: "Apostila: Java para Desenvolvimento Web" + link: https://www.alura.com.br/apostila-java-web + - type: YOUTUBE + title: "Alura: O que é o Java?" + link: https://www.youtube.com/watch?v=90NcVNsKGik + - type: YOUTUBE + title: "Alura: Curso de 'O básico de Java' - Aula 1" + link: https://www.youtube.com/watch?v=38BwTaGmnFg + - type: COURSE + title: "Formação Java e Orientação a Objetos" + link: https://cursos.alura.com.br/formacao-java + - type: COURSE + title: "Formação Java JRE e JDK: compile e execute o seu programa" + link: https://cursos.alura.com.br/course/java-primeiros-passos + - type: CHALLENGE + title: "7 Days of Code: Java" + link: https://7daysofcode.io/matricula/java \ No newline at end of file diff --git a/_data/blocks/java-logging.pt_BR.yaml b/_data/blocks/java-logging.pt_BR.yaml new file mode 100644 index 000000000..86fa896c2 --- /dev/null +++ b/_data/blocks/java-logging.pt_BR.yaml @@ -0,0 +1,23 @@ +name: Java - Logging +logo: +short-description: +key-objectives: + - Realizar logging de mensagens para indicar o comportamento de determinada aplicação +aditional-objectives: +contents: + - type: ARTICLE + title: "Log em Java do jeito certo – parte 1: frameworks" + link: https://aroliveira.com/2017/07/10/log-em-java-frameworks/ + - type: ARTICLE + title: "InfoQ: Google Flogger - um novo framework Java para logs" + link: https://www.infoq.com/br/news/2019/06/java-logging-framework-flogger/ + - type: YOUTUBE + title: "Alan Augusto Souza: Utilizando Logging Slf4j com Spring Boot no Java" + link: https://www.youtube.com/watch?v=ChIy6-ySpPM + - type: YOUTUBE + title: "Dev Eficiente: Realizando logging de maneira sistemática" + link: https://www.youtube.com/watch?v=gRrDUKxcqLM +alura-contents: + - type: ARTICLE + title: "Log4j: entenda mais sobre a vulnerabilidade do bug" + link: https://www.alura.com.br/artigos/log4j-entenda-sobre-vulnerabilidade \ No newline at end of file diff --git a/_data/blocks/java-memory-management.pt_BR.yaml b/_data/blocks/java-memory-management.pt_BR.yaml new file mode 100644 index 000000000..5f67d0500 --- /dev/null +++ b/_data/blocks/java-memory-management.pt_BR.yaml @@ -0,0 +1,21 @@ +name: Java - Gerenciamento da Memória +logo: +short-description: +key-objectives: + - Entender como funciona a memória e seu gerenciamento em Java + - Entender como funciona a memória o Garbage Collector +aditional-objectives: +contents: + - type: ARTICLE + title: "Gerenciamento de Memória Java" + link: https://medium.com/@danilomoraiis/gerenciamento-de-mem%C3%B3ria-java-3969e7b8423c + - type: ARTICLE + title: "Java Garbage Collector — Por que precisamos conhecê-lo?" + link: https://medium.com/luizalabs/java-garbage-collector-porque-precisamos-conhec%C3%AA-lo-9d26ebb0a6d8 + - type: YOUTUBE + title: "Loiane Groner: Garbage Collector (Coletor de Lixo)" + link: https://www.youtube.com/watch?v=_11TPkgZARk + - type: YOUTUBE + title: "Dias de Dev: Estratégias de gestão de memória - O que é Garbage Collector" + link: https://www.youtube.com/watch?v=SZqp3_Mw9zk +alura-contents: \ No newline at end of file diff --git a/_data/blocks/java-microservices.pt_BR.yaml b/_data/blocks/java-microservices.pt_BR.yaml new file mode 100644 index 000000000..3354b23a7 --- /dev/null +++ b/_data/blocks/java-microservices.pt_BR.yaml @@ -0,0 +1,76 @@ +name: Microsserviços +logo: +short-description: +key-objectives: + - Aprender o conceito de arquitetura planejada para microsserviços + - Realizar a comunicação usando APIs + - Melhorar a escalabilidade de um sistema +aditional-objectives: +contents: + - type: ARTICLE + title: "Amazon: O que são microsserviços?" + link: https://aws.amazon.com/pt/microservices/ + - type: ARTICLE + title: "Dev.to: Microsserviços com Spring Cloud: Introdução" + link: https://dev.to/womakerscode/microsservicos-com-spring-cloud-introducao-3cn6 + - type: SITE + title: "Vídeo aula sobre microsserviços em Java com Spring Boot" + link: https://gasparbarancelli.com/post/video-aula-sobre-microsservicos-em-java-com-spring-boot?lang=pt + - type: ARTICLE + title: "Oracle: Desenvolva um Aplicativo Java RESTful baseado em Microsserviços" + link: https://docs.oracle.com/pt-br/solutions/develop-microservice-java-app/index.html + - type: YOUTUBE + title: "Otavio Lemos: Microsserviços | O mínimo que você precisa saber" + link: https://www.youtube.com/watch?v=eN8dFfTrEtQ + - type: YOUTUBE + title: "Douglas Mugnos: O que é arquitetura de microsserviços? Como ela funciona?" + link: https://www.youtube.com/watch?v=_Oyy5PFOIcU +alura-contents: + - type: YOUTUBE + title: "Alura: O que são Microsserviços?" + link: https://www.youtube.com/watch?v=jSnLOoGjQ80 + - type: YOUTUBE + title: "Alura: Fundamentos de Microsserviços" + link: https://www.youtube.com/watch?v=KMzE6y8ACnU + - type: YOUTUBE + title: "Alura: Spring Boot acelere o desenvolvimento de microsserviços" + link: https://www.youtube.com/watch?v=TX1NztPbvMw + - type: PODCAST + title: "Hipsters.tech: Microserviços - Hipsters 17" + link: https://cursos.alura.com.br/extra/hipsterstech/microservicos-hipsters-17-a569 + - type: PODCAST + title: "Hipsters.tech: Microsserviços na Caelum - Hipsters On The Road 6" + link: https://cursos.alura.com.br/extra/hipsterstech/microsservicos-na-caelum-hipsters-on-the-road-6-a436 + - type: PODCAST + title: "Hipsters.tech: Microsserviços autônomos na Usabilla - Hipsters On The Road 10" + link: https://cursos.alura.com.br/extra/hipsterstech/microsservicos-autonomos-na-usabilla-hipsters-on-the-road-10-a424 + - type: SITE + title: "Alura+: O que são Microsserviços?" + link: https://cursos.alura.com.br/extra/alura-mais/o-que-sao-microsservicos--c699 + - type: SITE + title: "Alura+: Tipos de Microservices" + link: https://cursos.alura.com.br/extra/alura-mais/tipos-de-microservices-c698 + - type: COURSE + title: "Curso Microsserviços: padrões de projeto" + link: https://cursos.alura.com.br/course/microsservicos-padroes-projeto + - type: COURSE + title: "Curso Microsserviços: explorando os conceitos" + link: https://cursos.alura.com.br/course/fundamentos-microsservicos-aprofundando-conceitos + - type: COURSE + title: "Curso Microsserviços na prática: entendendo a tomada de decisões" + link: https://cursos.alura.com.br/course/Microsservicos-pratica-tomada-decisoes + - type: COURSE + title: "Curso Microsserviços na prática: implementando com Java e Spring" + link: https://cursos.alura.com.br/course/microsservicos-implementando-java-spring + - type: COURSE + title: "Curso Microservices com Spring Cloud: Registry, Config Server e Distributed Tracing" + link: https://cursos.alura.com.br/course/microservices-spring-cloud-service-registry-config-server + - type: COURSE + title: "Curso Microservices com Spring Cloud: Circuit Breaker, Hystrix e API Gateway" + link: https://cursos.alura.com.br/course/microservices-spring-cloud-circuit-breaker-api-gateway + - type: COURSE + title: "Formação Java e Microsserviços com Spring e RabbitMQ" + link: https://cursos.alura.com.br/formacao-java-microsservicos + - type: SITE + title: "Livro Casa do Código: Back-end Java - Microsserviços, Spring Boot e Kubernetes" + link: https://www.casadocodigo.com.br/products/livro-backend-java \ No newline at end of file diff --git a/_data/blocks/java-networking-and-sockets.pt_BR.yaml b/_data/blocks/java-networking-and-sockets.pt_BR.yaml new file mode 100644 index 000000000..8c43abcce --- /dev/null +++ b/_data/blocks/java-networking-and-sockets.pt_BR.yaml @@ -0,0 +1,33 @@ +name: Java - Rede e Sockets +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: +contents: + - type: SITE + title: "MDN Web Docs: WebSockets" + link: https://developer.mozilla.org/pt-BR/docs/Web/API/WebSockets_API + - type: SITE + title: "MDN Web Docs: Escrevendo aplicações cliente WebSocket" + link: https://developer.mozilla.org/pt-BR/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications + - type: ARTICLE + title: "Usando a API do WebSocket em uma Aplicação Web" + link: https://netbeans.apache.org/kb/docs/javaee/maven-websocketapi_pt_BR.html + - type: ARTICLE + title: "InfoQ: WebSocket no Java e Java EE: da especificação a exemplos" + link: https://www.infoq.com/br/articles/websocket-java-javaee/ + - type: ARTICLE + title: "Usando o Spring Boot para implementação do WebSocket com STOMP" + link: https://medium.com/@paulouskipsk/usando-o-spring-boot-para-implementa%C3%A7%C3%A3o-do-websocket-com-stomp-cf02155f8c4d + - type: YOUTUBE + title: "Filipe Deschamps: WebSockets na prática é MUITO poderoso" + link: https://www.youtube.com/watch?v=bQ7NNSyGV2U + - type: YOUTUBE + title: "Eduardo Palandrani: O que é WebSocket?" + link: https://www.youtube.com/watch?v=YJxKYv7GLIg +alura-contents: + - type: YOUTUBE + title: "Alura: Entendendo WebSockets" + link: https://www.youtube.com/watch?v=RwUbUnPdWqs \ No newline at end of file diff --git a/_data/blocks/java-packages.pt_BR.yaml b/_data/blocks/java-packages.pt_BR.yaml new file mode 100644 index 000000000..c50781729 --- /dev/null +++ b/_data/blocks/java-packages.pt_BR.yaml @@ -0,0 +1,36 @@ +name: Java - Pacotes +logo: +short-description: +key-objectives: + - Use imports e organize o seu código através de packages + - Conhecer a java.lang + - Entender a imutabilidade e a classe String + - Entender a classe java.lang.Object + - Conhecer a java.io +aditional-objectives: +contents: + - type: SITE + title: "Acervo Lima: Como criar um pacote em Java" + link: https://acervolima.com/como-criar-um-pacote-em-java/ + - type: SITE + title: "Acervo Lima: Pacotes em Java" + link: https://acervolima.com/pacotes-em-java/ + - type: ARTICLE + title: "Padronizando pacotes em uma arquitetura REST" + link: https://medium.com/@thaleslima19/padronizando-pacotes-em-uma-arquitetura-rest-280e7a6c38bb + - type: YOUTUBE + title: "Loiane Groner: Orientação a Objetos: Pacotes e import" + link: https://www.youtube.com/watch?v=aRQHjfYBpM8 + - type: YOUTUBE + title: "Pedro Cavalero: Criando Pacotes no Eclipse" + link: https://www.youtube.com/watch?v=wFPXkNCOuf4 +alura-contents: + - type: YOUTUBE + title: "Alura: Aprofundando no Java: domine as Collections" + link: https://www.youtube.com/watch?v=PeFDQtLBlto + - type: SITE + title: "Pacotes - Organizando suas classes e bibliotecas" + link: https://www.alura.com.br/apostila-java-orientacao-objetos/pacotes-organizando-suas-classes-e-bibliotecas + - type: COURSE + title: "Curso Java e java.lang: programe com a classe Object e String" + link: https://cursos.alura.com.br/course/java-pacotes-e-java-lang \ No newline at end of file diff --git a/_data/blocks/java-persistence.pt_BR.yaml b/_data/blocks/java-persistence.pt_BR.yaml new file mode 100644 index 000000000..6f06c5b90 --- /dev/null +++ b/_data/blocks/java-persistence.pt_BR.yaml @@ -0,0 +1,51 @@ +id: 65e19085-338a-44ad-a0d4-359f1638e48d +name: Java - Persistência +logo: +short-description: +key-objectives: + - Entender sobre JDBC e JPA + - Comunicar-se com um banco de dados relacional + - Entender a diferença entre relacionamentos EAGER e LAZY + - Planejar queries com join fetch + - Encapsular o acesso em um DAO + - Entender como a memória funciona nessa situação +aditional-objectives: + - Realizar consultas via JPQL +contents: + - type: SITE + title: "IBM Docs: API de Persistência Java (JPA)" + link: https://www.ibm.com/docs/pt-br/was-liberty/zos?topic=overview-java-persistence-api-jpa + - type: ARTICLE + title: "Do JDBC ao Spring Data (ou: é possível reduzir código?)" + link: https://dev.to/rodrigovp/do-jdbc-ao-spring-data-ou-e-possivel-reduzir-codigo-361f + - type: YOUTUBE + title: "Rafael Mesquita: Persistência de Dados - Java JDBC" + link: https://www.youtube.com/watch?v=D-By3tUHcys + - type: YOUTUBE + title: "Rafael Mesquita: Persistência de Dados - Java JDBC Códigos" + link: https://www.youtube.com/watch?v=cjFSgYv4RjI + - type: YOUTUBE + title: "Michelli Brito: JPA - Java Persistence API" + link: https://www.youtube.com/watch?v=yvXCxWkLpfA + - type: YOUTUBE + title: "Michelli Brito: JPA e Hibernate - configurando a transação manualmente" + link: https://www.youtube.com/watch?v=TQQki9yQaLg +alura-contents: + - type: SITE + title: "Apostila Java Ppra Desenvolvimento Web: Bancos de Dados e JDBC" + link: https://www.alura.com.br/apostila-java-web/bancos-de-dados-e-jdbc + - type: YOUTUBE + title: "Alura: Curso de Java e JDBC - Aula 1" + link: https://www.youtube.com/watch?v=P-psR8L9zUI + - type: SITE + title: "Primeiras aulas do curso Java e JDBC: trabalhando com um banco de dados" + link: https://www.alura.com.br/conteudo/jdbc-dao-persistencia + - type: COURSE + title: "Curso Java e JDBC: trabalhando com um banco de dados" + link: https://cursos.alura.com.br/course/jdbc-dao-persistencia + - type: COURSE + title: "Curso Java e JPA: consultas avançadas, performance e modelos complexos" + link: https://cursos.alura.com.br/course/java-jpa-consultas-avancadas-performance-modelos-complexos + - type: COURSE + title: "Curso Persistência com JPA: Hibernate" + link: https://cursos.alura.com.br/course/persistencia-jpa-introducao-hibernate diff --git a/_data/blocks/java-serialization.pt_BR.yaml b/_data/blocks/java-serialization.pt_BR.yaml new file mode 100644 index 000000000..4332ff31c --- /dev/null +++ b/_data/blocks/java-serialization.pt_BR.yaml @@ -0,0 +1,26 @@ +name: Java - Serialização +logo: +short-description: +key-objectives: + - Realizar a criação de um objeto a partir de um fluxo de bytes e vice-versa +aditional-objectives: +contents: + - type: SITE + title: "Acervo Lima: Serialização e Desserialização em Java com exemplo" + link: https://acervolima.com/serializacao-e-desserializacao-em-java-com-exemplo/ + - type: ARTICLE + title: "Oracle: Entendendo serialização de objetos e o serialVersionUID" + link: https://www.oracle.com/br/technical-resources/articles/java/serialversionuid.html + - type: YOUTUBE + title: "Rodrigo Freitas: Serialização e Desserialização" + link: https://www.youtube.com/watch?v=ruFhN953Rkk + - type: YOUTUBE + title: "Ricardo Maroquio: Serialização de Objetos" + link: https://www.youtube.com/watch?v=FcILyezs0x8 +alura-contents: + - type: SITE + title: "Primeiras aulas do curso Java e java.io: Streams, Reader e Writers" + link: https://www.alura.com.br/conteudo/java-trabalhando-com-io + - type: COURSE + title: "Curso Java e java.io: Streams, Reader e Writers" + link: https://www.alura.com.br/curso-online-java-trabalhando-com-io \ No newline at end of file diff --git a/_data/blocks/java-servlets.pt_BR.yaml b/_data/blocks/java-servlets.pt_BR.yaml new file mode 100644 index 000000000..894d9e524 --- /dev/null +++ b/_data/blocks/java-servlets.pt_BR.yaml @@ -0,0 +1,52 @@ +name: Java - Servlets +logo: +short-description: +key-objectives: + - Criar páginas web dinâmicas em Java + - Lidar com requisições para um servidor + - Conhecer o ciclo de vida de um servlet +aditional-objectives: +contents: + - type: SITE + title: "Acervo Lima: Introdução aos Servlets Java" + link: https://acervolima.com/introducao-aos-servlets-java/ + - type: ARTICLE + title: "Complete Introduction to Java Servlets (inglês)" + link: https://medium.com/app-dev-community/complete-introduction-to-java-servlets-d445cec67ce2 + - type: ARTICLE + title: "Persistindo dados com JPA+Servlets" + link: https://felipece7.medium.com/utilizando-servlet-puro-82e55ab32fbe + - type: YOUTUBE + title: "Luiz Curado: Introdução a Servlets e JSP" + link: https://www.youtube.com/watch?v=ATcbPEOH7fk + - type: YOUTUBE + title: "Prof. Razer: Java Web 03 - Servlets Parte I" + link: https://www.youtube.com/watch?v=zr7iWZDArdQ +alura-contents: + - type: SITE + title: "Apostila Java para Desenvolvimento Web: Servlets" + link: https://www.alura.com.br/apostila-java-web/servlets + - type: ARTICLE + title: "Criando uma aplicação Java Web com Servlet" + link: https://www.alura.com.br/artigos/criando-uma-aplicacao-java-web-com-servlet + - type: ARTICLE + title: "JavaServer Pages: Utilizando os servlets" + link: https://www.alura.com.br/artigos/javaserver-pages + - type: ARTICLE + title: "Recebendo dados de um formulário HTML com Servlets" + link: https://www.alura.com.br/artigos/recebendo-dados-de-um-formulario-html-com-servlets + - type: YOUTUBE + title: "Alura: Servlets Parte 1: Fundamentos da programação web Java" + link: https://www.youtube.com/watch?v=O6U4e-I4v7g + - type: YOUTUBE + title: "Alura: Curso de Servlets - Aula 1" + link: https://www.youtube.com/watch?v=57AOamMl4PY + - type: SITE + title: "Primeiras aulas do curso Java Servlet: programação web Java" + link: https://www.alura.com.br/conteudo/servlets-fundamentos-programacao-web-java + - type: COURSE + title: "Curso Java Servlet: programação web Java" + link: https://cursos.alura.com.br/course/servlets-fundamentos-programacao-web-java + - type: COURSE + title: "Curso Java Servlet: autenticação, autorização e o padrão MVC" + link: https://cursos.alura.com.br/course/servlet-autenticacao-autorizacao-mvc \ No newline at end of file diff --git a/_data/blocks/java-spring-boot.pt_BR.yaml b/_data/blocks/java-spring-boot.pt_BR.yaml new file mode 100644 index 000000000..eca7a49c0 --- /dev/null +++ b/_data/blocks/java-spring-boot.pt_BR.yaml @@ -0,0 +1,36 @@ +name: Spring Boot +logo: +short-description: +key-objectives: + - Criar aplicações Spring standalone + - Usar os servidores HTTP embutidos +aditional-objectives: +contents: + - type: SITE + title: "Documentação Spring Boot (inglês)" + link: https://spring.io/projects/spring-boot + - type: ARTICLE + title: "EngDB: Como o Spring Boot está ajudando os desenvolvedores?" + link: https://blog.engdb.com.br/spring-boot/ + - type: ARTICLE + title: "Porque você deve usar Spring Boot" + link: https://medium.com/@duduxss3/porque-voc%C3%AA-deve-usar-spring-boot-a22f75da0955 + - type: ARTICLE + title: "Resumo Curso Spring Boot API REST: Construa uma API - Alura" + link: https://www.linkedin.com/pulse/resumo-curso-spring-boot-api-rest-construa-uma-alura-maikel-souza-1f/?trk=articles_directory&originalSubdomain=pt + - type: YOUTUBE + title: "Michelli Brito: Iniciando uma aplicação Spring Boot" + link: https://www.youtube.com/watch?v=OHn1jLHGptw + - type: YOUTUBE + title: "Michelli Brito: API REST com Spring Boot" + link: https://www.youtube.com/watch?v=bpBRFNKg8k4&list=PL8iIphQOyG-D2FP9wkg12AavzmVRWEcnJ +alura-contents: + - type: YOUTUBE + title: "Alura: Criando um projeto com Spring Boot em 5 minutos" + link: https://www.youtube.com/watch?v=-U9QpXcCh10 + - type: SITE + title: "Primeiras aulas do curso Spring Boot API REST: construa uma API" + link: https://www.alura.com.br/conteudo/spring-boot-api-rest + - type: COURSE + title: "Curso Spring Boot API REST: construa uma API" + link: https://www.alura.com.br/curso-online-spring-boot-api-rest \ No newline at end of file diff --git a/_data/blocks/java-spring-framework.pt_BR.yaml b/_data/blocks/java-spring-framework.pt_BR.yaml new file mode 100644 index 000000000..01ea6a433 --- /dev/null +++ b/_data/blocks/java-spring-framework.pt_BR.yaml @@ -0,0 +1,49 @@ +name: Spring Framework +logo: +short-description: +key-objectives: + - Entender os usos do Spring Framework + - Entender o conceito de Injeção de Dependências + - Entender o padrão MVC +aditional-objectives: +contents: + - type: SITE + title: "Documentação Spring Framework (inglês)" + link: https://spring.io/projects/spring-framework + - type: ARTICLE + title: "Spring Framework: existem muitos, mas para que cada um serve?" + link: https://arthur-almeida.medium.com/spring-framework-existem-muitos-mas-para-que-cada-um-serve-b1773bcb69f0 + - type: ARTICLE + title: "MVC não é Arquitetura!" + link: https://arthur-almeida.medium.com/mvc-n%C3%A3o-%C3%A9-arquitetura-1f5cca077f18 + - type: YOUTUBE + title: "Michelli Brito: Spring MVC" + link: https://www.youtube.com/watch?v=2RSrcKDqWyo + - type: YOUTUBE + title: "Michelli Brito: O que é um bean em Spring Framework" + link: https://www.youtube.com/watch?v=-PT-pXe-7UM +alura-contents: + - type: ARTICLE + title: "Spring: Conheça esse framework Java" + link: https://www.alura.com.br/artigos/spring-conheca-esse-framework-java + - type: ARTICLE + title: "Primeiros passos com o Spring Framework" + link: https://www.alura.com.br/artigos/primeiros-passos-spring + - type: PODCAST + title: "Hipsters.tech: Spring Framework – Hipsters 87" + link: https://www.hipsters.tech/spring-framework-hipsters-87/ + - type: YOUTUBE + title: "Alura: O que é Spring Framework?" + link: https://www.youtube.com/watch?v=5XPojnx9bb8 + - type: YOUTUBE + title: "Alura: Melhores práticas com Spring Framework" + link: https://www.youtube.com/watch?v=xDuPI3pA_R8 + - type: COURSE + title: "Formação Spring Framework" + link: https://cursos.alura.com.br/formacao-spring-framework + - type: COURSE + title: "Formação Java e Microsserviços com Spring e RabbitMQ" + link: https://cursos.alura.com.br/formacao-java-microsservicos + - type: SITE + title: "Livro da Casa do Código: Vire o jogo com Spring Framework" + link: https://www.casadocodigo.com.br/products/livro-spring-framework \ No newline at end of file diff --git a/_data/blocks/java-swing.pt_BR.yaml b/_data/blocks/java-swing.pt_BR.yaml new file mode 100644 index 000000000..fc9f00096 --- /dev/null +++ b/_data/blocks/java-swing.pt_BR.yaml @@ -0,0 +1,32 @@ +name: Java Swing +logo: +short-description: +key-objectives: + - Renderizar os componentes da interface gráfica de um sistema +aditional-objectives: +contents: + - type: SITE + title: "Wikilivros: Java/Swing " + link: https://pt.wikibooks.org/wiki/Java/Swing + - type: SITE + title: "Acervo Lima: Java/Swing " + link: https://acervolima.com/diferenca-entre-awt-e-swing-em-java/ + - type: SITE + title: "Introdução ao Java Swing e AWT" + link: http://cee.uma.pt/people/faculty/pedro.campos/docs/guia-ihm.pdf + - type: ARTICLE + title: "Netbeans Apache: Projetando uma GUI Swing no NetBeans IDE" + link: https://netbeans.apache.org/kb/docs/java/quickstart-gui_pt_BR.html + - type: YOUTUBE + title: "MonkeyWit: Como instalar o Swing GUI Designer no Eclipse" + link: https://www.youtube.com/watch?v=tD_kHo_HAwM + - type: YOUTUBE + title: "Lucas Dicas TI: Java Swing - Como utilizar JCheckbox?" + link: https://www.youtube.com/watch?v=-CJg06KyJXg + - type: YOUTUBE + title: "Coding Mind Brasil: Como criar uma calculadora de imc usando Java Swing" + link: https://www.youtube.com/watch?v=-CJg06KyJXg + - type: YOUTUBE + title: "Do zero ao Dev: Introdução ao Swing" + link: https://www.youtube.com/watch?v=6TA6sXQY1A8 +alura-contents: \ No newline at end of file diff --git a/_data/blocks/java-testing.pt_BR.yaml b/_data/blocks/java-testing.pt_BR.yaml new file mode 100644 index 000000000..0579c27a1 --- /dev/null +++ b/_data/blocks/java-testing.pt_BR.yaml @@ -0,0 +1,68 @@ +name: Java - Testes +logo: +short-description: +key-objectives: + - Usar testes unitários + - Usar testes de integração + - Usar testes de comportamento (behavior) + - Usar mocks +aditional-objectives: +contents: + - type: ARTICLE + title: "Testes 101 — Testando aplicações Java" + link: https://vepo.medium.com/testes-101-testando-aplica%C3%A7%C3%B5es-java-a12465319e61 + - type: ARTICLE + title: "Iniciando em testes automatizados com Java - Parte 1" + link: https://medium.com/@pauloloboneto/iniciando-seus-estudos-em-testes-automatizados-configure-sua-m%C3%A1quina-windows-87e72e6fe1d1 + - type: ARTICLE + title: "Iniciando em testes automatizados com Java - Parte 2" + link: https://medium.com/@pauloloboneto/iniciando-em-testes-automatizados-com-java-parte-2-ddf43a63b422 + - type: ARTICLE + title: "Qualidade e JUnit: introduzindo automatização de testes unitários do seu software Java no dia-a-dia" + link: https://mari-azevedo.medium.com/qualidade-e-junit-introduzindo-automatiza%C3%A7%C3%A3o-de-testes-unit%C3%A1rios-do-seu-software-java-no-dia-a-dia-849611de5574 + - type: ARTICLE + title: "Criando mocks e escrevendo testes unitários com Junit 5" + link: https://mmarcosab.medium.com/criando-mocks-e-escrevendo-testes-unit%C3%A1rios-com-junit-5-f54e6407bd7c + - type: ARTICLE + title: "Turbinando sua aplicação Java com Testes Parametrizados" + link: https://medium.com/@vandernobrel/turbinando-sua-aplica%C3%A7%C3%A3o-java-com-testes-parametrizados-70517f885f81 + - type: ARTICLE + title: "Aplicando automação de testes em Java com BDD utilizando Cucumber" + link: https://medium.com/vhsys-engineering/aplicando-automa%C3%A7%C3%A3o-de-testes-em-java-com-bdd-utilizando-cucumber-b0907cdd273b + - type: YOUTUBE + title: "Leonardo Barauna: Teste Unitário em Java - Conceito" + link: https://www.youtube.com/watch?v=PPaqtVUrQr8 + - type: YOUTUBE + title: "Michelli Brito: TDD na prática com Java usando MockBean" + link: https://www.youtube.com/watch?v=4VmbETu-dcA + - type: YOUTUBE + title: "Michelli Brito: TDD na prática com Java usando MockMvc" + link: https://www.youtube.com/watch?v=AGDcPgXj8BU + - type: YOUTUBE + title: "Jean: Testes unitários em @Service com Mockito" + link: https://www.youtube.com/watch?v=c8PFBxiVO8o +alura-contents: + - type: ARTICLE + title: "Tipos de testes: quais os principais e por que utilizá-los?" + link: https://www.alura.com.br/artigos/tipos-de-testes-principais-por-que-utiliza-los + - type: PODCAST + title: "Hipsters.tech: Testes Automatizados" + link: https://cursos.alura.com.br/extra/hipsterstech/testes-automatizados-hipsters-51-a535 + - type: YOUTUBE + title: "Alura: Curso de Testes: TDD com Java" + link: https://www.youtube.com/watch?v=Dyls2ljtAZQ + - type: COURSE + title: "Curso TDD e Java: testes automatizados com JUnit" + link: https://cursos.alura.com.br/course/tdd-java-testes-automatizados-junit + - type: COURSE + title: "Curso Testes de Integração: testes de SQL e DAOs automatizados em Java" + link: https://cursos.alura.com.br/course/teste-integracao-sql-daos-automatizados-java + - type: COURSE + title: "Curso Mocks em Java: conhecendo o Mockito" + link: https://cursos.alura.com.br/course/mocks-java-mockito + - type: COURSE + title: "Curso Selenium: testes automatizados de aceitação em Java" + link: https://cursos.alura.com.br/course/selenium-testes-automatizados-aceitacao-java + - type: COURSE + title: "Curso BDD e Java: Behavior Driven Development com Cucumber" + link: https://cursos.alura.com.br/course/bdd-cucumber-java \ No newline at end of file diff --git a/_data/blocks/javascript-accessibility.pt_BR.yaml b/_data/blocks/javascript-accessibility.pt_BR.yaml new file mode 100644 index 000000000..368fe27b1 --- /dev/null +++ b/_data/blocks/javascript-accessibility.pt_BR.yaml @@ -0,0 +1,29 @@ +name: Acessibilidade em Javascript +logo: +short-description: +key-objectives: + - Escrever código com acessibilidade em mente +aditional-objectives: +contents: + - type: SITE + title: "MDN Web Docs: CSS e JavaScript - melhores práticas de acessibilidade" + link: https://developer.mozilla.org/pt-BR/docs/Learn/Accessibility/CSS_and_JavaScript + - type: ARTICLE + title: "Escrevendo JavaScript com acessibilidade em mente" + link: https://medium.com/emanuelg-blog/escrevendo-javascript-com-acessibilidade-em-mente-3720e9779969 + - type: ARTICLE + title: "Garantindo acessibilidade com Javascript não obstrusivo" + link: https://klauslaube.com.br/2010/11/18/acessibilidade-javascript-nao-obstrusivo.html + - type: YOUTUBE + title: "Matheus Castiglioni: Acessibilidade em páginas web" + link: https://www.youtube.com/watch?v=pOmdL9LzDJg +alura-contents: + - type: PODCAST + title: "Hipsters.tech: Acessibilidade web - Hipsters 21" + link: https://www.alura.com.br/podcast/hipsterstech-acessibilidade-web-hipsters-21-a565 + - type: YOUTUBE + title: "Alura: Acessibilidade na Web - Alura Live 47" + link: https://www.youtube.com/watch?v=vrLx1yJjsXU + - type: COURSE + title: "Formação Acessibilidade Web" + link: https://www.alura.com.br/formacao-acessibilidade-web \ No newline at end of file diff --git a/_data/blocks/javascript-callbacks-promises.pt_BR.yaml b/_data/blocks/javascript-callbacks-promises.pt_BR.yaml new file mode 100644 index 000000000..a7033605f --- /dev/null +++ b/_data/blocks/javascript-callbacks-promises.pt_BR.yaml @@ -0,0 +1,45 @@ +name: JavaScript - Callbacks e Promises +logo: +short-description: +key-objectives: + - Fazer chamadas assíncronas usando 'Async/Await', 'Promise', etc + - Obter dados de uma API +aditional-objectives: +contents: + - type: site + title: "MDN Web Docs: Funções assíncronas" + link: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/async_function + - type: site + title: "MDN Web Docs: Promise" + link: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Promise + - type: site + title: "MDN Web Docs: Função Callback" + link: https://developer.mozilla.org/pt-BR/docs/Glossary/Callback_function + - type: site + title: "MDN Web Docs: Introdução ao JavaScript Async" + link: https://developer.mozilla.org/pt-BR/docs/Learn/JavaScript/Asynchronous/Introducing + - type: youtube + title: "Mario Souto - Dev Soutinho: Como usar Async/Await? Promises no JavaScript?" + link: https://www.youtube.com/watch?v=q28lfkBd9F4 + - type: youtube + title: "Mario Souto - Dev Soutinho: Callbacks, Sincrono, Assíncrono e Event Loop no JavaScript" + link: https://www.youtube.com/watch?v=6lbBaM18X3g + - type: article + title: "Entendendo como fazer AJAX com a FetchAPI" + link: https://medium.com/@omariosouto/entendendo-como-fazer-ajax-com-a-fetchapi-977ff20da3c6 + - type: youtube + title: "Mario Souto - Dev Soutinho: Como pegar dados de uma API? Como fazer AJAX? | Pegando dados de serviços via JavaScript" + link: https://www.youtube.com/watch?v=85vJXFpXLQw +alura-contents: + - type: article + title: "Async/await no JavaScript: o que é e quando usar a programação assíncrona?" + link: https://www.alura.com.br/artigos/async-await-no-javascript-o-que-e-e-quando-usar + - type: site + title: "Alura+: JavaScript assíncrono e Fetch" + link: https://cursos.alura.com.br/extra/alura-mais/javascript-assincrono-e-fetch-c93 + - type: course + title: "Formação JavaScript para Front-end" + link: https://cursos.alura.com.br/formacao-javascript-front-end + - type: challenge + title: "7 Days of Code: JavaScript e DOM com API" + link: https://7daysofcode.io/matricula/javascript-e-dom-api diff --git a/_data/blocks/javascript-concurrency.pt_BR.yaml b/_data/blocks/javascript-concurrency.pt_BR.yaml new file mode 100644 index 000000000..a6b22efc6 --- /dev/null +++ b/_data/blocks/javascript-concurrency.pt_BR.yaml @@ -0,0 +1,27 @@ +name: JavaScript - Concorrência +logo: +short-description: +key-objectives: + - Conhecer o conceito de programação concorrente em JavaScript + - Executar tarefas paralelamente +aditional-objectives: +contents: + - type: SITE + title: "MDN Web Docs: Thread (inglês)" + link: https://developer.mozilla.org/en-US/docs/Glossary/Thread + - type: ARTICLE + title: "Multithreading using Javascript (inglês)" + link: https://medium.com/@sarthakvit/multithreading-using-javascript-cf9ad7cf9cfe + - type: ARTICLE + title: "Multithreading Javascript (inglês)" + link: https://medium.com/techtrument/multithreading-javascript-46156179cf9a + - type: YOUTUBE + title: "DevPleno: Mono ou multi thread? POO para JS" + link: https://www.youtube.com/watch?v=iGV8gjzx3to + - type: YOUTUBE + title: "Canal dotNET: Desenvolvimento Multithread em Aplicações JavaScript" + link: https://www.youtube.com/watch?v=jroozZAWeTg +alura-contents: + - type: ARTICLE + title: "Concorrência ou paralelismo: Threads, Processes, Fibers e Actors" + link: https://www.alura.com.br/artigos/concorrencia-ou-paralelismo-threads-processes-fibers-e-actors \ No newline at end of file diff --git a/_data/blocks/javascript-errorhandling.pt_BR.yaml b/_data/blocks/javascript-errorhandling.pt_BR.yaml new file mode 100644 index 000000000..8a841915e --- /dev/null +++ b/_data/blocks/javascript-errorhandling.pt_BR.yaml @@ -0,0 +1,28 @@ +name: JavaScript - Manipulação de Erros +logo: +short-description: +key-objectives: + - Tratar exceções pré-definidas + - Uso de 'try' e 'catch' + - Criar exceções específicas +aditional-objectives: +contents: + - type: site + title: "MDN Web Docs: Controle de Fluxo e Manipulação de Erro" + link: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Guide/Control_flow_and_error_handling#declara%C3%A7%C3%B5es_de_manipula%C3%A7%C3%A3o_de_error + - type: site + title: "Microsoft TechNet: JavaScript: Tratamento de erros" + link: https://social.technet.microsoft.com/wiki/pt-br/contents/articles/32455.javascript-tratamento-de-erros.aspx + - type: article + title: "Exceções e Erros em JavaScript" + link: http://gabrielprates.com/2017/06/02/excecoes-e-erros-em-js.html + - type: youtube + title: "Tratando erros no Javascript - Uso do Try Catch" + link: https://www.youtube.com/watch?v=xPpK0X0zEbA +alura-contents: + - type: course + title: "Curso JavaScript: programando na linguagem da web" + link: https://www.alura.com.br/curso-online-javascript-programando-na-linguagem-web + - type: course + title: "Formação JavaScript para Front-end" + link: https://www.alura.com.br/formacao-javascript-front-end diff --git a/_data/blocks/javascript-es6.pt_BR.yaml b/_data/blocks/javascript-es6.pt_BR.yaml new file mode 100644 index 000000000..8185cf44c --- /dev/null +++ b/_data/blocks/javascript-es6.pt_BR.yaml @@ -0,0 +1,35 @@ +name: JavaScript - ES6 +logo: +short-description: +key-objectives: + - Conhecer as diferenças dessa versão do JavaScript +aditional-objectives: +contents: + - type: SITE + title: "Acervo Lima: Introdução ao ES6" + link: https://acervolima.com/introducao-ao-es6/ + - type: ARTICLE + title: "O Guia do ES6: TUDO que você precisa saber" + link: https://medium.com/@matheusml/o-guia-do-es6-tudo-que-voc%C3%AA-precisa-saber-8c287876325f + - type: ARTICLE + title: "Sim, outro post sobre ECMAScript 2015 ou ES6" + link: https://medium.com/tech-grupozap/sim-outro-post-sobre-ecmascript-2015-ou-es6-6d50a7f33bd4 + - type: ARTICLE + title: "Entendendo módulos ES6" + link: https://medium.com/trainingcenter/entendendo-m%C3%B3dulos-no-javascript-73bce1d64dbf + - type: YOUTUBE + title: "CODECASTS: O que é ES6?" + link: https://www.youtube.com/watch?v=yRr8Wo4XfYY + - type: YOUTUBE + title: "Tiago Matos: Reutilizando funções dinamicamente com javascript ES6 módulos (import/export)" + link: https://www.youtube.com/watch?v=yRr8Wo4XfYY +alura-contents: + - type: YOUTUBE + title: "Alura: JavaScript avançado I: ES6, orientação a objetos e padrões de projetos" + link: https://www.youtube.com/watch?v=T-JVRDnykYg + - type: COURSE + title: "Curso JavaScript: conhecendo o Browser e padrões de projeto" + link: https://www.alura.com.br/curso-online-javascript-es6-orientacao-a-objetos-parte-1 + - type: COURSE + title: "Curso JavaScript: aprofundando em MVC, padrão Proxy e Factory" + link: https://www.alura.com.br/curso-online-javascript-es6-orientacao-a-objetos-parte-2 \ No newline at end of file diff --git a/_data/blocks/javascript-fundamentals.pt_BR.yaml b/_data/blocks/javascript-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..ebafacd32 --- /dev/null +++ b/_data/blocks/javascript-fundamentals.pt_BR.yaml @@ -0,0 +1,102 @@ +name: JavaScript - Fundamentos +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: + - Manipular objetos JSON + - Usar 'template literals' + - Usar funções 'arrow' + - Fazer desestruturação ao ler arrays + - Usar 'forEach' + - Manipular arrays com 'map', 'filter' e 'reduce' +contents: + - type: site + title: "MDN Web Docs: Um primeiro mergulho no JavaScript" + link: https://developer.mozilla.org/pt-BR/docs/Learn/JavaScript/First_steps/A_first_splash + - type: site + title: "MDN Web Docs: Trabalhando com texto — strings em JavaScript" + link: https://developer.mozilla.org/pt-BR/docs/Learn/JavaScript/First_steps/Strings + - type: site + title: "MDN Web Docs: if...else" + link: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/if...else + - type: site + title: "MDN Web Docs: while" + link: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/while + - type: site + title: "MDN Web Docs: for" + link: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/for + - type: site + title: "MDN Web Docs: Arrays" + link: https://developer.mozilla.org/pt-BR/docs/Learn/JavaScript/First_steps/Arrays + - type: site + title: "MDN Web Docs: Template strings" + link: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Template_literals + - type: article + title: "Definindo Funções em Javascript" + link: https://blog.matheuscastiglioni.com.br/definindo-funcoes-em-javascript/ + - type: youtube + title: "Mario Souto - Dev Soutinho: Como manipular arrays e objetos em JavaScript" + link: https://www.youtube.com/watch?v=yS7AcF-xRUg + - type: youtube + title: "Marco Bruno: O que é Json e como criar um objeto" + link: https://www.youtube.com/watch?v=yS7AcF-xRUg + - type: youtube + title: "Mario Souto - Dev Soutinho: Como usar Async/Await? Promises no JavaScript?" + link: https://www.youtube.com/watch?v=q28lfkBd9F4 + - type: youtube + title: "Mario Souto - Dev Soutinho: Como pegar dados de uma API? Como fazer AJAX? | Pegando dados de serviços via JavaScript" + link: https://www.youtube.com/watch?v=85vJXFpXLQw +alura-contents: + - type: podcast + title: Hipster 38 - O Reino encantado do JavaScript + link: https://www.hipsters.tech/o-reino-encantado-do-javascript-hipsters-38/ + - type: podcast + title: "Hipster 169 - JavaScript: manual de sobrevivência 2020" + link: https://www.hipsters.tech/javascript-manual-de-sobrevivencia-2020-hipsters-169/ + - type: podcast + title: "Hipster 236 - Evolução do JavaScript" + link: https://www.hipsters.tech/evolucao-do-javascript-hipsters-ponto-tech-236/ + - type: article + title: "Strings com JavaScript: o que são e como manipulá-las" + link: https://www.alura.com.br/artigos/strings-com-javascript-o-que-sao-e-como-manipular + - type: article + title: "Como utilizar operadores de comparação em Javascript" + link: https://www.alura.com.br/artigos/operadores-matematicos-em-javascript + - type: article + title: "Para que serve um Array?" + link: https://www.alura.com.br/artigos/javascript-para-que-serve-array + - type: article + title: "Quando usar forEach e map?" + link: https://www.alura.com.br/artigos/javascript-quando-devo-usar-foreach-e-map + - type: article + title: "Manipulação de array com map, filter e reduce" + link: https://www.alura.com.br/artigos/manipulacao-de-array-com-map-filter-e-reduce + - type: course + title: "Formação JavaScript para Front-end" + link: https://cursos.alura.com.br/formacao-javascript-front-end + - type: youtube + title: "Alura: O que é JavaScript?" + link: https://www.youtube.com/watch?v=NaVSbnnV75Q + - type: youtube + title: "Alura: Destructuring em JavaScript" + link: https://www.youtube.com/watch?v=f8a-qwKC5yk + - type: youtube + title: "Alura: Classes x funções no Javascript" + link: https://www.youtube.com/watch?v=iohhj-k9L6s + - type: challenge + title: "7 Days of Code: JavaScript e DOM" + link: https://7daysofcode.io/matricula/javascript-e-dom + - type: challenge + title: "7 Days of Code: JavaScript e DOM com API" + link: https://7daysofcode.io/matricula/javascript-e-dom-api diff --git a/_data/blocks/javascript-modularization.pt_BR.yaml b/_data/blocks/javascript-modularization.pt_BR.yaml new file mode 100644 index 000000000..80b080822 --- /dev/null +++ b/_data/blocks/javascript-modularization.pt_BR.yaml @@ -0,0 +1,33 @@ +name: JavaScript - Modularização +logo: +short-description: +key-objectives: + - Isolar partes do código em módulos + - Usar import e export +aditional-objectives: +contents: + - type: SITE + title: "MDN Web Docs: Módulos JavaScript" + link: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Guide/Modules + - type: ARTICLE + title: "Modularização em Javascript 101" + link: https://medium.com/liferay-engineering-brazil/modulariza%C3%A7%C3%A3o-em-javascript-101-8bf5282bcc56 + - type: ARTICLE + title: "Módulos em JavaScript" + link: https://gabrieluizramos.com.br/modulos-em-javascript + - type: YOUTUBE + title: "Evandro Falleiros: Introdução à POO com JS - Modularização e importações" + link: https://www.youtube.com/watch?v=wzdKc0AFY6k&list=PLGxZ4Rq3BOBoSRcKWEdQACbUCNWLczg2G&index=51 + - type: YOUTUBE + title: "Professor Edson Maia: JS OO Modularizar o código import e export" + link: https://www.youtube.com/watch?v=8OHoAZ6j0Rg&list=PLGxZ4Rq3BOBoSRcKWEdQACbUCNWLczg2G&index=52 +alura-contents: + - type: ARTICLE + title: "Um guia para importação e exportação de módulos com JavaScript" + link: https://www.alura.com.br/artigos/guia-importacao-exportacao-modulos-javascript + - type: SITE + title: "Primeiras aulas do curso JavaScript: de padrões a uma abordagem funcional" + link: https://www.alura.com.br/conteudo/javascript-padroes-abordagem-funcional + - type: COURSE + title: "Curso JavaScript: de padrões a uma abordagem funcional" + link: https://www.alura.com.br/curso-online-javascript-padroes-abordagem-funcional \ No newline at end of file diff --git a/_data/blocks/javascript-storage.pt_BR.yaml b/_data/blocks/javascript-storage.pt_BR.yaml new file mode 100644 index 000000000..d151fc767 --- /dev/null +++ b/_data/blocks/javascript-storage.pt_BR.yaml @@ -0,0 +1,37 @@ +name: JavaScript - Armazenamento +logo: +short-description: +key-objectives: + - Armazenar dados no front-end com localStorage + - Manipular dados armazenados + - Persistir dados armazenados +aditional-objectives: +contents: + - type: SITE + title: "MDN Web Docs: Armazenamento do lado do cliente" + link: https://developer.mozilla.org/pt-BR/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage + - type: SITE + title: "MDN Web Docs: Usando a API Web Storage" + link: https://developer.mozilla.org/pt-BR/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API + - type: ARTICLE + title: "Armazenando e manipulando dados no localstorage" + link: https://medium.com/@lameckanao/armazenando-e-manipulando-dados-no-localstorage-7bcc901ba12b + - type: ARTICLE + title: "Funcionalidades do Local Storage" + link: https://medium.com/jaguaribetech/dlskaddaldkslkdlskdlk-333dae8ef9b8 + - type: YOUTUBE + title: "Fabiano Gabardo Lemos: Armazenando dados do formulário em LocalStorage" + link: https://www.youtube.com/watch?v=i04nMOowrII + - type: YOUTUBE + title: "Roger Melo: Como armazenar e persistir dados no front-end com o localStorage" + link: https://www.youtube.com/watch?v=hNTozXl-qJA + - type: YOUTUBE + title: "Luis Tavares: Como armazenar vários dados (array) no localStorage" + link: https://www.youtube.com/watch?v=YlAs11EiIJc +alura-contents: + - type: SITE + title: "Primeiras aulas do curso JavaScript na Web: armazenando dados no navegador" + link: https://www.alura.com.br/conteudo/javascript-web-armazenando-dados-navegador--amp + - type: COURSE + title: "Curso JavaScript na Web: armazenando dados no navegador" + link: https://www.alura.com.br/curso-online-javascript-web-armazenando-dados-navegador \ No newline at end of file diff --git a/_data/blocks/javascript-testing.pt_BR.yaml b/_data/blocks/javascript-testing.pt_BR.yaml new file mode 100644 index 000000000..7bb2a68e3 --- /dev/null +++ b/_data/blocks/javascript-testing.pt_BR.yaml @@ -0,0 +1,38 @@ +name: JavaScript - Testes +logo: +short-description: +key-objectives: + - Usar testes unitários + - Usar testes de integração + - Usar testes de comportamento (behavior) + - Usar mocks +aditional-objectives: +contents: + - type: ARTICLE + title: "Uma visão geral de testes em Javascript" + link: https://medium.com/devzera/uma-vis%C3%A3o-geral-de-testes-em-javascript-em-2018-8484154caf63 + - type: ARTICLE + title: "Criando testes unitários em javascript" + link: https://ryuogawa.medium.com/criando-testes-unit%C3%A1rios-em-javascript-ce34c3079ab9 + - type: ARTICLE + title: "O que é teste de software? Iniciando TDD com JavaScript" + link: https://medium.com/@murilo001os/o-que-%C3%A9-teste-de-software-iniciando-tdd-com-javascript-985e9dc7fc09 + - type: YOUTUBE + title: "Roger Melo: JavaScript puro: Introdução ao TDD" + link: https://www.youtube.com/watch?v=hwgy0l7_XRE + - type: YOUTUBE + title: "Erick Wendel: Como fazer testes automatizados em JavaScript" + link: https://www.youtube.com/watch?v=8hxhZkBzWhk + - type: YOUTUBE + title: "DevPleno: Como criar teste unitários em Angular" + link: https://www.youtube.com/watch?v=MQs8_KIj_PU + - type: YOUTUBE + title: "Hype IT Brasil: Testes Unitários com JASMINE" + link: https://www.youtube.com/watch?v=tYe_5ufcka4 +alura-contents: + - type: YOUTUBE + title: "Alura: Curso de Jasmine: Testes automatizados em JavaScript" + link: https://www.youtube.com/watch?v=u9dD93mj9U4 + - type: YOUTUBE + title: "Alura: Testes em Javascript - Alura Live 50" + link: https://www.youtube.com/watch?v=HgKRC14Ab5c \ No newline at end of file diff --git a/_data/blocks/jest.pt_BR.yaml b/_data/blocks/jest.pt_BR.yaml new file mode 100644 index 000000000..9fca164ef --- /dev/null +++ b/_data/blocks/jest.pt_BR.yaml @@ -0,0 +1,20 @@ +name: Jest +logo: +short-description: +key-objectives: + - Testar componentes +aditional-objectives: +contents: + - type: site + title: "Jest: Documentação" + link: https://jestjs.io/pt-BR/docs/getting-started + - type: site + title: "React: Documentação - Visão Geral sobre Testes" + link: https://pt-br.reactjs.org/docs/testing.html#gatsby-focus-wrapper + - type: youtube + title: "Washington Developer: React: Teste seus componentes | Jest | Testing Library" + link: https://www.youtube.com/watch?v=pbwXsjVEMqg + - type: youtube + title: "Matheus Castiglioni: Jest - Iniciando com testes e TDD" + link: https://www.youtube.com/watch?v=pbwXsjVEMqg +alura-contents: diff --git a/_data/blocks/jms.pt_BR.yaml b/_data/blocks/jms.pt_BR.yaml new file mode 100644 index 000000000..64b464ca8 --- /dev/null +++ b/_data/blocks/jms.pt_BR.yaml @@ -0,0 +1,17 @@ +name: JMS +logo: +short-description: +key-objectives: + - Enviar e receber mensagens +aditional-objectives: +contents: + - type: ARTICLE + title: "Oracle: Trabalhando com Mensagens JMS no OSB" + link: https://www.oracle.com/br/technical-resources/articles/sounds/working-with-messages-jms-osb.html + - type: ARTICLE + title: "IBM: Java Message Service (JMS)" + link: https://www.ibm.com/docs/pt-br/bpm/8.5.7?topic=systems-java-message-service-jms + - type: YOUTUBE + title: "TiToYou: JMS Apresentação e exemplo de implementação" + link: https://www.youtube.com/watch?v=npxiy45CPuM +alura-contents: \ No newline at end of file diff --git a/_data/blocks/jsf.pt_BR.yaml b/_data/blocks/jsf.pt_BR.yaml new file mode 100644 index 000000000..e9f888da1 --- /dev/null +++ b/_data/blocks/jsf.pt_BR.yaml @@ -0,0 +1,28 @@ +name: JSF +logo: +short-description: +key-objectives: + - Escrever e manter aplicações executadas em um servidor + - Renderizar a interface de usuário + - Migrar os dados da aplicação para a interface +aditional-objectives: +contents: + - type: SITE + title: "Introdução ao JavaServer Faces 2.x" + link: https://netbeans.apache.org/kb/docs/web/jsf20-intro_pt_BR.html + - type: ARTICLE + title: "Entendendo o ciclo de vida do JSF" + link: https://medium.com/@rafaelvicio/entendendo-o-ciclo-de-vida-do-jsf-c003a76924da + - type: YOUTUBE + title: "Professor Danilo: Programação Web com JSF" + link: https://www.youtube.com/watch?v=4jwVZCJ7L4U + - type: YOUTUBE + title: "Javali Ninja: Integrando JSF, Spring e JPA" + link: https://www.youtube.com/watch?v=UZnBrgDuOZI +alura-contents: + - type: YOUTUBE + title: "Alura: Curso de Java e JSF I" + link: https://www.youtube.com/watch?v=1LMrjCYEttA + - type: SITE + title: "Livro Casa do Código: Aplicações Java para a web com JSF e JPA" + link: https://www.casadocodigo.com.br/products/livro-jsf-jpa \ No newline at end of file diff --git a/_data/blocks/json.pt_BR.yaml b/_data/blocks/json.pt_BR.yaml new file mode 100644 index 000000000..96883cf77 --- /dev/null +++ b/_data/blocks/json.pt_BR.yaml @@ -0,0 +1,29 @@ +name: JSON +logo: +short-description: +key-objectives: + - Criar um objeto + - Transformar em string + - Transformar uma string em objeto + - Manipular um objeto +aditional-objectives: +contents: + - type: site + title: "MDN Web Docs: JSON" + link: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/JSON + - type: site + title: "MDN Web Docs: Trabalhando com JSON" + link: https://developer.mozilla.org/pt-BR/docs/Learn/JavaScript/Objects/JSON + - type: article + title: "Introdução ao JSON" + link: https://juliocarneiro.medium.com/introdu%C3%A7%C3%A3o-ao-json-7825b1a550ff + - type: youtube + title: "Marco Bruno: O que é JSON e como criar um objeto" + link: https://www.youtube.com/watch?v=UeMkXvmk68Q +alura-contents: + - type: article + title: "O que é JSON?" + link: https://www.alura.com.br/artigos/o-que-e-json + - type: course + title: "Curso MySQL e JSON: persistindo JSON de maneira eficiente" + link: https://www.alura.com.br/curso-online-mysql-json-persistencia diff --git a/_data/blocks/jvm.pt_BR.yaml b/_data/blocks/jvm.pt_BR.yaml new file mode 100644 index 000000000..aa89e31a3 --- /dev/null +++ b/_data/blocks/jvm.pt_BR.yaml @@ -0,0 +1,38 @@ +name: JVM +logo: +short-description: +key-objectives: + - Entender como funciona a máquina virtual do Java +aditional-objectives: +contents: + - type: SITE + title: "Java Virtual Machine (JVM)" + link: https://sites.google.com/site/jvmtotal/home/conceitos/java-virtual-machine + - type: SITE + title: "Wikipédia: Máquina virtual Java" + link: https://pt.wikipedia.org/wiki/M%C3%A1quina_virtual_Java + - type: ARTICLE + title: "JVM por dentro" + link: https://vepo.medium.com/jvm-por-dentro-553bab89a027 + - type: YOUTUBE + title: "Descompila: O Poder das Collections do Java" + link: https://www.youtube.com/watch?v=4Qd16jfJDaY + - type: YOUTUBE + title: "Lucas Silva: O que é JVM, JRE e JDK?" + link: https://www.youtube.com/watch?v=BNrf3yT8IcU +alura-contents: + - type: PODCAST + title: "Hipsters.tech: E o futuro do Java! – Hipsters 27" + link: https://www.hipsters.tech/e-o-futuro-do-java-hipsters-27/ + - type: YOUTUBE + title: "Alura: JVM do Java 8" + link: https://www.youtube.com/watch?v=IujuK83NXCI + - type: YOUTUBE + title: "Alura: Java é lento? JIT e Otimizações na Java Virtual Machine" + link: https://www.youtube.com/watch?v=rrhO_P0IM3s + - type: SITE + title: "Primeiras aulas do curso Java JRE e JDK: compile e execute o seu programa" + link: https://www.alura.com.br/conteudo/java-primeiros-passos + - type: COURSE + title: "Curso Java JRE e JDK: compile e execute o seu programa" + link: https://www.alura.com.br/curso-online-java-primeiros-passos \ No newline at end of file diff --git a/_data/blocks/laravel.pt_BR.yaml b/_data/blocks/laravel.pt_BR.yaml new file mode 100644 index 000000000..2e112ba4e --- /dev/null +++ b/_data/blocks/laravel.pt_BR.yaml @@ -0,0 +1,46 @@ +name: Laravel +logo: +short-description: +key-objectives: + - Conhecer as características do framework Laravel + - Trabalhar com rotas + - Usar arquivos Blade +aditional-objectives: +contents: + - type: SITE + title: "Documentação Laravel (inglês)" + link: https://laravel.com/docs/8.x/readme + - type: ARTICLE + title: "O que é Laravel? Porque usá-lo?" + link: https://medium.com/desenvolvendo-com-paixao/o-que-%C3%A9-laravel-porque-us%C3%A1-lo-955c95d2453d + - type: ARTICLE + title: "Como o Laravel funciona" + link: https://medium.com/jundevelopers/como-o-laravel-funciona-71136a262cee + - type: ARTICLE + title: "Começando com Laravel" + link: https://medium.com/@marcelgsantos/come%C3%A7ando-com-laravel-parte-01-e76567408b1f + - type: YOUTUBE + title: "Gustavo Neitzke: Laravel - 02 | Criando o primeiro projeto" + link: https://www.youtube.com/watch?v=1ZCM6F3DRWc&list=PLSHNk_yA5fNhzjjOGcIdSB1nyhv6NR0W1&index=2 + - type: YOUTUBE + title: "Cristian Bernardes: Criando uma API Rest com Laravel em 10 minutos" + link: https://www.youtube.com/watch?v=daq5S5-55Lw +alura-contents: + - type: PODCAST + title: "Hipsters.tech: PHP não é coisa de sobrinho - Hipsters Ponto Tech 36" + link: https://cursos.alura.com.br/extra/hipsterstech/php-nao-e-coisa-de-sobrinho-hipsters-36-a550 + - type: COURSE + title: "Curso Laravel: criando uma aplicação com MVC" + link: https://cursos.alura.com.br/course/laravel-criando-aplicacao-mvc + - type: COURSE + title: "Curso Laravel: validando formulários, usando sessões e definindo relacionamentos" + link: https://cursos.alura.com.br/course/laravel-formularios-sessoes-relacionamentos + - type: COURSE + title: "Curso Laravel: transações, service container e autenticação" + link: https://cursos.alura.com.br/course/laravel-transacoes-service-container-autenticacao + - type: COURSE + title: "Curso Laravel: e-mails, eventos assíncronos, uploads e testes" + link: https://cursos.alura.com.br/course/laravel-e-mails-eventos-uploads-testes + - type: COURSE + title: "Curso Laravel: construindo APIs" + link: https://cursos.alura.com.br/course/laravel-construindo-apis \ No newline at end of file diff --git a/_data/blocks/linq.pt_BR.yaml b/_data/blocks/linq.pt_BR.yaml new file mode 100644 index 000000000..71131df88 --- /dev/null +++ b/_data/blocks/linq.pt_BR.yaml @@ -0,0 +1,44 @@ +name: LINQ +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: LINQ (Consulta Integrada à Linguagem) (C#)" + link: https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/concepts/linq/ + - type: SITE + title: "Microsoft Docs: Introdução a consultas LINQ (C#)" + link: https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/concepts/linq/introduction-to-linq-queries + - type: ARTICLE + title: "LINQ: Menos esforço, mais dados" + link: https://lucas-eschechola.medium.com/linq-menos-esfor%C3%A7o-mais-dados-7354640afba1 + - type: YOUTUBE + title: "Willian Menezes: C# - Introdução ao LINQ" + link: https://www.youtube.com/watch?v=ja1nORsswSU + - type: YOUTUBE + title: "Willian Menezes: C# - LINQ - Criando a primeira consulta" + link: https://www.youtube.com/watch?v=gC4A54H-EdQ + - type: YOUTUBE + title: "André Secco: Recursos do C# - LINQ" + link: https://www.youtube.com/watch?v=z7SsqZEDKts +alura-contents: + - type: COURSE + title: "Curso C# parte 8: List, lambda, linq" + link: https://www.alura.com.br/curso-online-csharp-list-lambda-linq + - type: SITE + title: "Primeiras aulas do curso Entity LinQ parte 1: crie queries poderosas em C#" + link: https://www.alura.com.br/conteudo/linq-c-sharp + - type: COURSE + title: "Curso Entity LinQ parte 1: crie queries poderosas em C#" + link: https://www.alura.com.br/curso-online-linq-c-sharp + - type: SITE + title: "Primeiras aulas do curso Entity LinQ parte 2: Store Procedures e consultas com o LinQPad" + link: https://www.alura.com.br/conteudo/linq-c-sharp-parte-2 + - type: COURSE + title: "Curso Entity LinQ parte 2: Store Procedures e consultas com o LinQPad" + link: https://www.alura.com.br/curso-online-linq-c-sharp-parte-2 \ No newline at end of file diff --git a/_data/blocks/linux-fundamentals.pt_BR.yaml b/_data/blocks/linux-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..b1f57b090 --- /dev/null +++ b/_data/blocks/linux-fundamentals.pt_BR.yaml @@ -0,0 +1,51 @@ +name: Linux - Fundamentos +logo: +short-description: +key-objectives: + - 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. + - Conhecer o sistema de diretórios do Linux + - Compactar e descompactar arquivos + - Editar arquivos no console com o VI + - Gerenciar os processos rodando na máquina + - Conhecer as variáveis de ambiente e o PATH + - Gerenciar pacotes + - Realizar comunicação remota com o SSH e SCP +aditional-objectives: +contents: + - type: ARTICLE + title: "Comandos linux" + link: https://pllara.medium.com/comandos-linux-4db7307c17b7 + - type: ARTICLE + title: "Comandos básicos no Linux" + link: https://medium.com/linkapi-solutions/comandos-b%C3%A1sicos-no-linux-95079363ab0e + - type: YOUTUBE + title: "Ninja do Linux: Comandos básicos da linha de comando do Linux" + link: https://www.youtube.com/watch?v=rs_yshFGu8E +alura-contents: + - type: ARTICLE + title: "Linux: download, instalação, distribuições e principais comandos" + link: https://www.alura.com.br/artigos/linux-download-instalacao-distribuicoes-e-principais-comandos + - type: ARTICLE + title: "Procurando arquivos no Linux" + link: https://www.alura.com.br/artigos/procurando-arquivos-no-linux + - type: ARTICLE + title: "Criando comandos no Linux com Bash" + link: https://www.alura.com.br/artigos/criando-comandos-no-linux-com-bash + - type: ARTICLE + title: "Linux - Visualizando tamanhos de Diretórios" + link: https://www.alura.com.br/artigos/como-visualizar-o-tamanho-de-diretorios-no-linux + - type: ARTICLE + title: "Entendendo as permissões no Linux" + link: https://www.alura.com.br/artigos/entendendo-as-permissoes-no-linux + - type: ARTICLE + title: "Linux: compactando e descompactando arquivos com o tar" + link: https://www.alura.com.br/artigos/linux-compactando-e-descompactando-arquivos-com-o-tar + - type: ARTICLE + title: "SSH: o acesso remoto aos servidores" + link: https://www.alura.com.br/artigos/como-acessar-servidores-remotamente-com-ssh + - type: COURSE + title: "Curso Linux I: conhecendo e utilizando o terminal" + link: https://cursos.alura.com.br/course/linux-ubuntu + - type: COURSE + title: "Curso Linux II: programas, processos e pacotes" + link: https://cursos.alura.com.br/course/linux-ubuntu-processos \ No newline at end of file diff --git a/_data/blocks/lodash.pt_BR.yaml b/_data/blocks/lodash.pt_BR.yaml new file mode 100644 index 000000000..334d72a68 --- /dev/null +++ b/_data/blocks/lodash.pt_BR.yaml @@ -0,0 +1,23 @@ +name: Lodash +logo: +short-description: +key-objectives: + - Melhorar o código e a performance +aditional-objectives: +contents: + - type: site + title: "Documentação: Lodash (inglês)" + link: https://lodash.com/ + - type: article + title: "Limpando seu código javascript com Lodash" + link: https://medium.com/codigorefinado/limpando-seu-c%C3%B3digo-javascript-com-lodash-93ca10f3f1fe + - type: youtube + title: "Tiago Matos: Conhecendo o Lodash, uma biblioteca javascript" + link: https://www.youtube.com/watch?v=ly7D-YL-rdU + - type: youtube + title: "Tiago Matos: 10 funções imperdíveis da biblioteca javascript lodash" + link: https://www.youtube.com/watch?v=2JKGGadhFxU +alura-contents: + - type: course + title: "Livro Casa do Código: Primeiros passos com Node.js" + link: https://www.casadocodigo.com.br/products/livro-primeiros-passos-node diff --git a/_data/blocks/lottie.pt_BR.yaml b/_data/blocks/lottie.pt_BR.yaml new file mode 100644 index 000000000..9b3af9fc8 --- /dev/null +++ b/_data/blocks/lottie.pt_BR.yaml @@ -0,0 +1,26 @@ +name: Lottie +logo: +short-description: +key-objectives: + - Criar animações +aditional-objectives: +contents: + - type: site + title: "Documentação: Lottie (inglês)" + link: https://airbnb.io/lottie/#/README + - type: site + title: "Componentes Lottie (inglês)" + link: https://lottiereact.com/components/Lottie + - type: article + title: "Animações com Lottie no React Native" + link: https://medium.com/@victor96novais/anima%C3%A7%C3%B5es-com-lottie-no-react-native-d6f8ffa749a9 + - type: youtube + title: "Mario Souto - Dev Soutinho: Lottie: Animações com React" + link: https://www.youtube.com/watch?v=dZH9aDX8T-0 + - type: youtube + title: "Wendel Dev: Como usar animações Lottie em apenas 3 minutos com ReactJS" + link: https://www.youtube.com/watch?v=bWo_wlqPfQY +alura-contents: + - type: podcast + title: "Layers.tech: WEB Animation LottieFiles" + link: https://www.alura.com.br/podcast/web-animation-lottiefiles-layers-ponto-tech-42-a1107 diff --git a/_data/blocks/machine-learning-clustering.pt_BR.yaml b/_data/blocks/machine-learning-clustering.pt_BR.yaml new file mode 100644 index 000000000..9f5bb97ce --- /dev/null +++ b/_data/blocks/machine-learning-clustering.pt_BR.yaml @@ -0,0 +1,52 @@ +name: Machine Learning - Clustering +logo: +short-description: +key-objectives: + - 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 + - Avaliar a qualidade de uma clusterização + - Parametrizar métodos de clusterização através do máximo coeficiente de silhueta + - Entender a matemática por trás das métricas de validação Silhouette, Davies Bouldin e Calinski Harabasz +aditional-objectives: +contents: + - type: ARTICLE + title: "Análises com algoritmos de Clustering" + link: https://medium.com/@isnardgurgel/an%C3%A1lises-com-algoritmos-de-clustering-40d52f36f67c + - type: ARTICLE + title: "Clustering — Conceitos básicos, principais algoritmos e aplicações" + link: https://medium.com/turing-talks/clustering-conceitos-b%C3%A1sicos-principais-algoritmos-e-aplica%C3%A7%C3%A3o-ace572a062a9 + - type: ARTICLE + title: "Entendendo Clusters e K-Means" + link: https://medium.com/cwi-software/entendendo-clusters-e-k-means-56b79352b452 + - type: ARTICLE + title: "Entendendo DBSCAN" + link: https://gabriellm.medium.com/entendendo-dbscan-770f680d9160 + - type: YOUTUBE + title: "Canalytics: O que é Clusterização de Dados?" + link: https://www.youtube.com/watch?v=8CkMX2qXgdY + - type: YOUTUBE + title: "André Eugenio Lazzaretti: Métodos de Clustering" + link: https://www.youtube.com/watch?v=kEGjyNs23UY + - type: YOUTUBE + title: "Canal Sandeco: K-Means com Python" + link: https://www.youtube.com/watch?v=piDlrtfz58s + - type: YOUTUBE + title: "Python DS: Machine Learning - Clustering (agrupamento) com DBSCAN" + link: https://www.youtube.com/watch?v=TmCf9M_NNqQ +alura-contents: + - type: ARTICLE + title: "Conhecendo os tipos de aprendizado de máquina" + link: https://www.alura.com.br/artigos/conhecendo-os-tipos-de-aprendizado-de-maquina + - type: YOUTUBE + title: "Alura: Como funciona o Clustering?" + link: https://www.youtube.com/watch?v=USELkRZrkIA + - type: COURSE + title: "Curso Clustering: K-Means, DBSCAN e mean shift" + link: https://cursos.alura.com.br/course/clustering-dados-sem-classificacao + - type: COURSE + title: "Curso Clustering aplicado: recomendando músicas com K-Means" + link: https://cursos.alura.com.br/course/clustering-aplicado-recomendando-musicas-k-means + - type: COURSE + title: "Curso Clustering: extraindo padrões de dados" + link: https://cursos.alura.com.br/course/cluster-analysis \ No newline at end of file diff --git a/_data/blocks/machine-learning-cross-validation.pt_BR.yaml b/_data/blocks/machine-learning-cross-validation.pt_BR.yaml new file mode 100644 index 000000000..c19f6b67c --- /dev/null +++ b/_data/blocks/machine-learning-cross-validation.pt_BR.yaml @@ -0,0 +1,37 @@ +name: Machine Learning - Validação cruzada +logo: +short-description: +key-objectives: + - Validação cruzada é uma técnica para avaliar como os resultados de uma análise estatística podem ser generalizados para um conjunto de dados independente. É um método de reamostragem que utiliza diferentes porções dos dados para testar e treinar um modelo em diferentes iterações. + - Utilizar a aleatoriedade + - Conhecer diferentes estratégias de validação cruzada + - Aprender a usar o KFold, StratifiedKFold, GroupKFold + - Trabalhar na previsão de novos grupos quando nem todos os dados são leituras independentes entre si + - Utilizar um pipeline para treino e validação +aditional-objectives: +contents: + - type: SITE + title: "Amazon AWS: Validação cruzada" + link: https://docs.aws.amazon.com/pt_br/machine-learning/latest/dg/cross-validation.html + - type: ARTICLE + title: "Machine Learning: Métricas, Validação Cruzada, Bias e Variância" + link: https://medium.com/@jvsavietto6/machine-learning-m%C3%A9tricas-valida%C3%A7%C3%A3o-cruzada-bias-e-vari%C3%A2ncia-380513d97c95 + - type: ARTICLE + title: "Introdução a Validação-Cruzada: K-Fold" + link: https://drigols.medium.com/introdu%C3%A7%C3%A3o-a-valida%C3%A7%C3%A3o-cruzada-k-fold-2a6bced32a90 + - type: YOUTUBE + title: "Canal USP: Sobreajuste, validação cruzada e medição de performance" + link: https://www.youtube.com/watch?v=pohax_OCUbs + - type: YOUTUBE + title: "Fernando dos Santos: Avaliação de Modelos Preditivos: Validação cruzada K-fold" + link: https://www.youtube.com/watch?v=E1VAYcKnLxg + - type: YOUTUBE + title: "Iury Rosal: Validação Cruzada (Cross Validation)" + link: https://www.youtube.com/watch?v=CWxaXyXZ-1A +alura-contents: + - type: ARTICLE + title: "Conhecendo a validação cruzada" + link: https://www.alura.com.br/artigos/conhecendo-a-validacao-cruzada + - type: COURSE + title: "Curso Machine Learning: validação de modelos" + link: https://cursos.alura.com.br/course/machine-learning-validando-modelos \ No newline at end of file diff --git a/_data/blocks/machine-learning-fundamentals.pt_BR.yaml b/_data/blocks/machine-learning-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..13d89a8cb --- /dev/null +++ b/_data/blocks/machine-learning-fundamentals.pt_BR.yaml @@ -0,0 +1,62 @@ +name: Machine Learning - Fundamentos +logo: +short-description: +key-objectives: + - 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. + - Utilizar algoritmos de classificação + - Comparar algoritmos lineares e não lineares + - Conhecer os modelos K-vizinhos mais próximos, Bernoulli Naïve Bayes e Árvore de Decisão + - Constrir matrizes de correlação + - Utilizar o Scikit-learn para criar modelos de seleção de feature automáticos + - Utilizar técnicas de redução de dimensionalidade +aditional-objectives: +contents: + - type: SITE + title: "Amazon AWS: O que é machine learning?" + link: https://aws.amazon.com/pt/what-is/machine-learning/ + - type: ARTICLE + title: "A explicação mais simples sobre aprendizado de máquina que você lerá" + link: https://kozyrk.medium.com/a-explica%C3%A7%C3%A3o-mais-simples-sobre-aprendizado-de-m%C3%A1quina-que-voc%C3%AA-ler%C3%A1-6d4e61002401 + - type: ARTICLE + title: "Introdução ao Aprendizado de Máquina" + link: https://medium.com/@avinicius.adorno/introdu%C3%A7%C3%A3o-a-aprendizado-de-m%C3%A1quina-e39ec5ef459b + - type: ARTICLE + title: "Árvores de Decisão" + link: https://medium.com/machine-learning-beyond-deep-learning/%C3%A1rvores-de-decis%C3%A3o-3f52f6420b69 + - type: YOUTUBE + title: "Nerdologia: Machine Learning - como ensinar uma máquina a aprender" + link: https://www.youtube.com/watch?v=mhe5e2B9bL8 + - type: YOUTUBE + title: "Filipe Deschamps: Qual a diferença entre Inteligência Artificial, Machine Learning, Data Science, Deep Learning, etc?" + link: https://www.youtube.com/watch?v=ccZ2pyr3YDw + - type: YOUTUBE + title: "Filipe Deschamps: Machine Learning - Tutorial prático usando apenas o navegador" + link: https://www.youtube.com/watch?v=JyGGMyR3x5I +alura-contents: + - type: ARTICLE + title: "Desmistificando termos em Machine Learning" + link: https://www.alura.com.br/artigos/desmistificando-termos-machine-learning + - type: ARTICLE + title: "Desmistificando termos em Machine Learning - tipos de aprendizado" + link: https://www.alura.com.br/artigos/desmistificando-termos-machine-learning-tipos-aprendizado + - type: PODCAST + title: "Hipsters.tech: Machine Learning – Hipsters 89" + link: https://www.hipsters.tech/machine-learning-hipsters-88/ + - type: PODCAST + title: "Hipsters.tech: Desafios em Machine Learning – Hipsters 137" + link: https://www.hipsters.tech/desafios-em-machine-learning-hipsters-137/ + - type: PODCAST + title: "Hipsters.tech: Engenharia de machine learning – Hipsters Ponto Tech 248" + link: https://www.hipsters.tech/engenharia-de-machine-learning-hipsters-ponto-tech-248/ + - type: YOUTUBE + title: "Alura: O que é Machine Learning?" + link: https://www.youtube.com/watch?v=Iuz_jc96bQk + - type: YOUTUBE + title: "Alura: O que faz uma pessoa engenheira de Machine Learning?" + link: https://www.youtube.com/watch?v=BRhz6v-jfMM + - type: YOUTUBE + title: "Alura: Como funciona o Machine Learning?" + link: https://www.youtube.com/watch?v=CAu97npy7zQ + - type: COURSE + title: "Formação Machine Learning" + link: https://cursos.alura.com.br/formacao-machine-learning \ No newline at end of file diff --git a/_data/blocks/maui.pt_BR.yaml b/_data/blocks/maui.pt_BR.yaml new file mode 100644 index 000000000..b7abb3f04 --- /dev/null +++ b/_data/blocks/maui.pt_BR.yaml @@ -0,0 +1,22 @@ +name: MAUI +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: O que é o MAUI do .NET?" + link: https://docs.microsoft.com/pt-br/dotnet/maui/what-is-maui + - type: ARTICLE + title: "All About .NET MAUI (inglês)" + link: https://medium.com/volosoft/all-about-net-maui-5a1e774803ac + - type: YOUTUBE + title: "Jose Async: .NET MAUI - Por onde começar" + link: https://www.youtube.com/watch?v=vV_KVf_OQaI + - type: YOUTUBE + title: "balta.io: O futuro do Cross Platform com MAUI" + link: https://www.youtube.com/watch?v=wjPx7BPEpQk +alura-contents: \ No newline at end of file diff --git a/_data/blocks/microservices.pt_BR.yaml b/_data/blocks/microservices.pt_BR.yaml new file mode 100644 index 000000000..3354b23a7 --- /dev/null +++ b/_data/blocks/microservices.pt_BR.yaml @@ -0,0 +1,76 @@ +name: Microsserviços +logo: +short-description: +key-objectives: + - Aprender o conceito de arquitetura planejada para microsserviços + - Realizar a comunicação usando APIs + - Melhorar a escalabilidade de um sistema +aditional-objectives: +contents: + - type: ARTICLE + title: "Amazon: O que são microsserviços?" + link: https://aws.amazon.com/pt/microservices/ + - type: ARTICLE + title: "Dev.to: Microsserviços com Spring Cloud: Introdução" + link: https://dev.to/womakerscode/microsservicos-com-spring-cloud-introducao-3cn6 + - type: SITE + title: "Vídeo aula sobre microsserviços em Java com Spring Boot" + link: https://gasparbarancelli.com/post/video-aula-sobre-microsservicos-em-java-com-spring-boot?lang=pt + - type: ARTICLE + title: "Oracle: Desenvolva um Aplicativo Java RESTful baseado em Microsserviços" + link: https://docs.oracle.com/pt-br/solutions/develop-microservice-java-app/index.html + - type: YOUTUBE + title: "Otavio Lemos: Microsserviços | O mínimo que você precisa saber" + link: https://www.youtube.com/watch?v=eN8dFfTrEtQ + - type: YOUTUBE + title: "Douglas Mugnos: O que é arquitetura de microsserviços? Como ela funciona?" + link: https://www.youtube.com/watch?v=_Oyy5PFOIcU +alura-contents: + - type: YOUTUBE + title: "Alura: O que são Microsserviços?" + link: https://www.youtube.com/watch?v=jSnLOoGjQ80 + - type: YOUTUBE + title: "Alura: Fundamentos de Microsserviços" + link: https://www.youtube.com/watch?v=KMzE6y8ACnU + - type: YOUTUBE + title: "Alura: Spring Boot acelere o desenvolvimento de microsserviços" + link: https://www.youtube.com/watch?v=TX1NztPbvMw + - type: PODCAST + title: "Hipsters.tech: Microserviços - Hipsters 17" + link: https://cursos.alura.com.br/extra/hipsterstech/microservicos-hipsters-17-a569 + - type: PODCAST + title: "Hipsters.tech: Microsserviços na Caelum - Hipsters On The Road 6" + link: https://cursos.alura.com.br/extra/hipsterstech/microsservicos-na-caelum-hipsters-on-the-road-6-a436 + - type: PODCAST + title: "Hipsters.tech: Microsserviços autônomos na Usabilla - Hipsters On The Road 10" + link: https://cursos.alura.com.br/extra/hipsterstech/microsservicos-autonomos-na-usabilla-hipsters-on-the-road-10-a424 + - type: SITE + title: "Alura+: O que são Microsserviços?" + link: https://cursos.alura.com.br/extra/alura-mais/o-que-sao-microsservicos--c699 + - type: SITE + title: "Alura+: Tipos de Microservices" + link: https://cursos.alura.com.br/extra/alura-mais/tipos-de-microservices-c698 + - type: COURSE + title: "Curso Microsserviços: padrões de projeto" + link: https://cursos.alura.com.br/course/microsservicos-padroes-projeto + - type: COURSE + title: "Curso Microsserviços: explorando os conceitos" + link: https://cursos.alura.com.br/course/fundamentos-microsservicos-aprofundando-conceitos + - type: COURSE + title: "Curso Microsserviços na prática: entendendo a tomada de decisões" + link: https://cursos.alura.com.br/course/Microsservicos-pratica-tomada-decisoes + - type: COURSE + title: "Curso Microsserviços na prática: implementando com Java e Spring" + link: https://cursos.alura.com.br/course/microsservicos-implementando-java-spring + - type: COURSE + title: "Curso Microservices com Spring Cloud: Registry, Config Server e Distributed Tracing" + link: https://cursos.alura.com.br/course/microservices-spring-cloud-service-registry-config-server + - type: COURSE + title: "Curso Microservices com Spring Cloud: Circuit Breaker, Hystrix e API Gateway" + link: https://cursos.alura.com.br/course/microservices-spring-cloud-circuit-breaker-api-gateway + - type: COURSE + title: "Formação Java e Microsserviços com Spring e RabbitMQ" + link: https://cursos.alura.com.br/formacao-java-microsservicos + - type: SITE + title: "Livro Casa do Código: Back-end Java - Microsserviços, Spring Boot e Kubernetes" + link: https://www.casadocodigo.com.br/products/livro-backend-java \ No newline at end of file diff --git a/_data/blocks/natural-language-processing.pt_BR.yaml b/_data/blocks/natural-language-processing.pt_BR.yaml new file mode 100644 index 000000000..e5f8bd8ca --- /dev/null +++ b/_data/blocks/natural-language-processing.pt_BR.yaml @@ -0,0 +1,71 @@ +name: "PLN: Processamento de Linguagem Natural" +logo: +short-description: +key-objectives: + - 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 + - Criar visualizações para facilitar a análise de dados textuais + - Conhecer as bibliotecas NLTK e Scikit-Learn + - Normalizar textos + - Usar TF-IDF e Ngrams para melhorar a classificação + - Utilizar o SKlearn + - Utilizar Regex em PLN + - Conhecer o Word2Vec + - Combinar vetores de palavras para representar textos e classificá-los +aditional-objectives: +contents: + - type: ARTICLE + title: "Introdução a Processamento de Linguagem Natural" + link: https://medium.com/ensina-ai/introdu%C3%A7%C3%A3o-a-processamento-de-linguagem-natural-174936c096b + - type: ARTICLE + title: "Introdução ao Processamento de Linguagem Natural — Natural Language Processing(NLP)" + link: https://medium.com/data-hackers/introdu%C3%A7%C3%A3o-ao-processamento-de-linguagem-natural-natural-language-processing-nlp-be907cd06c71 + - type: YOUTUBE + title: "Aprendiz do Futuro: O que é Processamento de Linguagem Natural (NLP)?" + link: https://www.youtube.com/watch?v=Kaz-osMcdxk + - type: YOUTUBE + title: "Turing USP: Introdução ao Processamento de Linguagem Natural" + link: https://www.youtube.com/watch?v=ivTIgsLUfc4 +alura-contents: + - type: ARTICLE + title: "PLN: O que é processamento de linguagem natural?" + link: https://www.alura.com.br/artigos/o-que-e-pln + - type: ARTICLE + title: "Guia de NLP - conceitos e técnicas" + link: https://www.alura.com.br/artigos/guia-nlp-conceitos-tecnicas + - type: ARTICLE + title: "Aplicações de NLP no mercado de trabalho" + link: https://www.alura.com.br/artigos/aplicacoes-nlp-mercado-de-trabalho + - type: ARTICLE + title: "NLTK vs. SpaCy" + link: https://www.alura.com.br/artigos/nltk-vs-spacy + - type: ARTICLE + title: "Relação da Linguística com o Processamento de Linguagem Natural" + link: https://www.alura.com.br/artigos/relacao-linguistica-processamento-de-linguagem-natural + - type: ARTICLE + title: "TextBlob - uma alternativa para o Processamento de Linguagem Natural" + link: https://www.alura.com.br/artigos/textblob-alternativa-para-processamento-linguagem-natural + - type: ARTICLE + title: "Lemmatization vs. stemming: quando usar cada uma?" + link: https://www.alura.com.br/artigos/lemmatization-vs-stemming-quando-usar-cada-uma + - type: ARTICLE + title: "Spark NLP: trabalhando linguagem natural de forma mais otimizada" + link: https://www.alura.com.br/artigos/spark-nlp-linguagem-natural-forma-otimizada + - type: PODCAST + title: "Hipsters.tech: NLP, Inteligência Artificial e o futuro – Hipsters Ponto Tech 217" + link: https://www.hipsters.tech/nlp-inteligencia-artificial-e-o-futuro-hipsters-ponto-tech-217/ + - type: COURSE + title: "Curso Linguagem Natural parte 1: NLP com análise de sentimento" + link: https://cursos.alura.com.br/course/introducao-a-nlp-com-analise-de-sentimento + - type: COURSE + title: "Curso Linguagem Natural parte 2: continuando com a análise de sentimento" + link: https://cursos.alura.com.br/course/nlp-com-analise-de-sentimento + - type: COURSE + title: "Curso NLP: regex e modelos de linguagem" + link: https://cursos.alura.com.br/course/nlp-modelos-linguagem + - type: COURSE + title: "Curso Word2Vec: interpretação da linguagem humana com Word embedding" + link: https://cursos.alura.com.br/course/introducao-word-embedding + - type: COURSE + title: "Curso Word2Vec: treinamento de Word Embedding" + link: https://cursos.alura.com.br/course/word2vec-treinamento-word-embedding diff --git a/_data/blocks/nestjs-fundamentals.pt_BR.yaml b/_data/blocks/nestjs-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..bcb79d50b --- /dev/null +++ b/_data/blocks/nestjs-fundamentals.pt_BR.yaml @@ -0,0 +1,29 @@ +name: Nest.js - Fundamentos +logo: +short-description: +key-objectives: + - Construir um backend em Node.js +aditional-objectives: +contents: + - type: ARTICLE + title: "Nest.js —backend com cara de Angular sobre NodeJs" + link: https://medium.com/codigorefinado/nest-js-typescript-pra-node-js-e-expess-e5042b77cae0 + - type: ARTICLE + title: "O que é NestJS" + link: https://eduardo-diogo.medium.com/o-que-%C3%A9-nestjs-9287d9a8dcd3 + - type: ARTICLE + title: "Construindo uma API com NestJS, PostgreSQL e Docker — Parte 1" + link: https://medium.com/@iago.maiasilva/construindo-uma-api-com-nestjs-postgresql-e-docker-parte-1-criando-nosso-primeiro-endpoint-248d4b8ecc9c + - type: YOUTUBE + title: "Código Falado: Por que Nest.js?" + link: https://www.youtube.com/watch?v=ledmemIH9jA + - type: YOUTUBE + title: "Paulo Salvatore: NestJS, o melhor framework backend de NodeJS" + link: https://www.youtube.com/watch?v=bAH4nBb1NFc +alura-contents: + - type: YOUTUBE + title: "Alura: Conhecendo NestJS | AluraMais" + link: https://www.youtube.com/watch?v=YHpG6t91oW8 + - type: COURSE + title: "Curso NestJS: criando uma API Rest com TypeScript" + link: https://cursos.alura.com.br/course/nestjs-api-rest-typescript diff --git a/_data/blocks/nextjs-fundamentals.pt_BR.yaml b/_data/blocks/nextjs-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..6e97d5393 --- /dev/null +++ b/_data/blocks/nextjs-fundamentals.pt_BR.yaml @@ -0,0 +1,52 @@ +name: NextJS - Fundamentos +logo: +short-description: +key-objectives: + - Construir interfaces Web + - Diminuir o tempo de carregamento das páginas + - Renderizar páginas no lado do servidor + - Melhorar a performance em React + - Construir rotas de API com funções serveless + - CSS-in-JS +aditional-objectives: +contents: + - type: site + title: "Documentação: NextJS (inglês)" + link: https://nextjs.org/ + - type: article + title: "Introdução ao Next.js" + link: https://prensa.li/api-playbook/introducao-ao-nextjs/ + - type: article + title: "Next.js: O que é e porque utilizar este framework" + link: https://medium.com/codelblog/next-js-o-que-%C3%A9-e-porque-utilizar-este-framework-6180bad09133 +alura-contents: + - type: article + title: "NextJS: por que usar?" + link: https://www.alura.com.br/artigos/next-js-vantagens + - type: article + title: "Navegação com Next.Js utilizando rotas dinâmicas" + link: https://www.alura.com.br/artigos/navegacao-next-js-utilizando-rotas-dinamicas + - type: article + title: "CSS com NextJS" + link: https://www.alura.com.br/artigos/css-com-next-js + - type: article + title: "Como o Next.js ajuda no SEO das SPAs?" + link: https://www.alura.com.br/artigos/como-next-js-ajuda-no-seo-spas + - type: article + title: "SEO: como adicionar meta-tags no Next.js?" + link: https://www.alura.com.br/artigos/seo-como-adicionar-meta-tags-next-js + - type: podcast + title: "Hipsters.tech: Nextjs - Hipsters 220" + link: https://www.alura.com.br/podcast/nextjs-hipsters-ponto-tech-220-a652 + - type: youtube + title: "Alura: Primeiros passos Next.js" + link: https://www.youtube.com/watch?v=slmtdlWNwcE + - type: youtube + title: "Alura: NextJs é o melhor framework (com Mario Souto)" + link: https://www.youtube.com/watch?v=7x4_HNC4Uu4 + - type: youtube + title: "Conhecendo o Next.js - Hipsters.Talks 24" + link: https://www.youtube.com/watch?v=8uoRx4_6mOE + - type: course + title: "Formação Next.JS" + link: https://www.alura.com.br/formacao-next-js diff --git a/_data/blocks/nodejs-authentication-tokens.pt_BR.yaml b/_data/blocks/nodejs-authentication-tokens.pt_BR.yaml new file mode 100644 index 000000000..ea10bf788 --- /dev/null +++ b/_data/blocks/nodejs-authentication-tokens.pt_BR.yaml @@ -0,0 +1,33 @@ +name: Node.js - Autenticação e Tokens +logo: +short-description: +key-objectives: + - Construir um sistema de autenticação usando tokens + - Entender o funcionamento do JSON Web Token + - Construir uma allowlist para guardar tokens opacos + - Implementar refresh tokens que atualizam JSON Web token + - Construir um sistema de verificação de e-mails usando tokens +aditional-objectives: +contents: + - type: ARTICLE + title: "NodeJS: Autenticação com JWT" + link: https://medium.com/@filipefilpe/nodejs-autentica%C3%A7%C3%A3o-com-jwt-6e274fb205dc + - type: ARTICLE + title: "JWT — Usando tokens para comunicação eficiente" + link: https://medium.com/trainingcenter/jwt-usando-tokens-para-comunica%C3%A7%C3%A3o-eficiente-cf0551c0dd99 + - type: YOUTUBE + title: "LuizTools: Autenticação JSON Web Token (JWT) em Node.js" + link: https://www.youtube.com/watch?v=D0gpL8-DVrc + - type: YOUTUBE + title: "Overstack: Autenticação Através de Tokens com JWT" + link: https://www.youtube.com/watch?v=sYa4h44L-N0 +alura-contents: + - type: COURSE + title: "Curso Node.js e JWT: autenticação com tokens" + link: https://cursos.alura.com.br/course/node-jwt-autenticacao-tokens + - type: COURSE + title: "Curso Node.js: Refresh Tokens e confirmação de cadastro" + link: https://cursos.alura.com.br/course/nodejs-refresh-tokens-confirmacao-cadastro + - type: COURSE + title: "Curso NodeJS: controle de acesso e autorização com RBAC" + link: https://cursos.alura.com.br/course/nodejs-controle-acesso-autorizacao-rbac \ No newline at end of file diff --git a/_data/blocks/nodejs-express.pt_BR.yaml b/_data/blocks/nodejs-express.pt_BR.yaml new file mode 100644 index 000000000..81bb541b6 --- /dev/null +++ b/_data/blocks/nodejs-express.pt_BR.yaml @@ -0,0 +1,26 @@ +name: Node.js - Express +logo: +short-description: +key-objectives: + - Criar APIs REST em Node com Express +aditional-objectives: +contents: + - type: ARTICLE + title: "Express, realizando upload com multer" + link: http://cangaceirojavascript.com.br/express-realizando-upload-multer/ + - type: ARTICLE + title: "Tutorial Node.js — Como usar o Express.js" + link: https://pedrompinto.medium.com/tutorial-node-js-como-usar-o-express-js-7d3027f4f57b + - type: ARTICLE + title: "Criando uma API Node em 10 passos com Express.js" + link: https://medium.com/xp-inc/criando-uma-api-node-em-10-passos-com-express-js-52b2d612a8a9 + - type: YOUTUBE + title: "Victor Lima - Guia do Programador: Node.js - Introdução ao Express" + link: https://www.youtube.com/watch?v=pohvlFd0byI + - type: YOUTUBE + title: "WebDevBr: Node.js - Express, noções básicas" + link: https://www.youtube.com/watch?v=wVo-UMit5Ig +alura-contents: + - type: COURSE + title: "Formação Node.js com Express" + link: https://www.alura.com.br/formacao-node-js-express \ No newline at end of file diff --git a/_data/blocks/nodejs-fundamentals.pt_BR.yaml b/_data/blocks/nodejs-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..4fddf2b7a --- /dev/null +++ b/_data/blocks/nodejs-fundamentals.pt_BR.yaml @@ -0,0 +1,45 @@ +name: Node.js - Fundamentos +logo: +short-description: +key-objectives: + - Criar projetos web em JavaScript + - Conhecer as minúcias do framework Node.js +aditional-objectives: +contents: + - type: ARTICLE + title: "Node.js — O que é, por que usar e primeiros passos" + link: https://medium.com/thdesenvolvedores/node-js-o-que-%C3%A9-por-que-usar-e-primeiros-passos-1118f771b889 + - type: ARTICLE + title: "Conheça o Node.js" + link: https://medium.com/@desenvolvedormateusbarbosa/conhe%C3%A7a-o-node-js-252f5de4550f + - type: ARTICLE + title: "Começando a desenvolver com o Node.js" + link: https://medium.com/desenvolvimento-com-node-js/come%C3%A7ando-a-desenvolver-com-o-node-js-74b70af01a0d + - type: ARTICLE + title: "Criando serviços com Node.js" + link: https://medium.com/desenvolvimento-com-node-js/criando-servicos-com-nodejs-432c11b5d50d + - type: YOUTUBE + title: "Everton Braga: Curso Node.js - O que é Node?" + link: https://www.youtube.com/watch?v=r7VqPD-kqH4 +alura-contents: + - type: ARTICLE + title: "Node.JS: definição, características, vantagens e usos possíveis" + link: https://www.alura.com.br/artigos/node-js-definicao-caracteristicas-vantagens-usos + - type: ARTICLE + title: "Utilizando export.modules no Node.js" + link: https://www.alura.com.br/artigos/utilizando-export-modules-no-node-js + - type: PODCAST + title: "Hipsters.tech: Node.js - Hipsters 19" + link: https://cursos.alura.com.br/extra/hipsterstech/node-js-hipsters-199-a356 + - type: YOUTUBE + title: "Alura: O que é Node JS?" + link: https://www.youtube.com/watch?v=GKR6uSvEj8w + - type: YOUTUBE + title: "Alura: O que é Node.js? | AluraMais" + link: https://www.youtube.com/watch?v=8VSTrZY8vwI + - type: YOUTUBE + title: "Alura: Ecossistema Node.js" + link: https://www.youtube.com/watch?v=2hrIwQWx9w4 + - type: COURSE + title: "Curso NodeJS: criando sua biblioteca" + link: https://cursos.alura.com.br/course/nodejs-criando-biblioteca \ No newline at end of file diff --git a/_data/blocks/nodejs-orm.pt_BR.yaml b/_data/blocks/nodejs-orm.pt_BR.yaml new file mode 100644 index 000000000..2a27e0b5f --- /dev/null +++ b/_data/blocks/nodejs-orm.pt_BR.yaml @@ -0,0 +1,30 @@ +name: Node.js - ORM +logo: +short-description: +key-objectives: + - Entender como funciona um ORM + - Conhecer e aprender a usar sequelize +aditional-objectives: +contents: + - type: ARTICLE + title: "ORM no NodeJS com TypeORM" + link: https://medium.com/@matheusbessa_44838/orm-no-nodejs-com-typeorm-a3b3d8a22240 + - type: ARTICLE + title: "Rest API com typeorm e express.js" + link: https://mfortunat0.medium.com/rest-api-com-typeorm-e-express-js-307e8a1e232e + - type: YOUTUBE + title: "Josias Pereira: Iniciando API com NodeJs e Sequelize ORM" + link: https://www.youtube.com/watch?v=mpKXSe08yqA + - type: YOUTUBE + title: "Nicolas Teófilo: O melhor ORM para Node.js: Prisma" + link: https://www.youtube.com/watch?v=tF-ly2sB3hU + - type: YOUTUBE + title: "LuizTools: Sequelize em 15 minutos" + link: https://www.youtube.com/watch?v=g5ij7NIPR2s +alura-contents: + - type: COURSE + title: "Curso ORM com NodeJS: API com Sequelize e MySQL" + link: https://cursos.alura.com.br/course/orm-nodejs-api-sequelize-mysql + - type: COURSE + title: "Curso ORM com NodeJS: avançando nas funcionalidades do Sequelize" + link: https://cursos.alura.com.br/course/orm-nodejs-avancando-sequelize \ No newline at end of file diff --git a/_data/blocks/nodejs-testing.pt_BR.yaml b/_data/blocks/nodejs-testing.pt_BR.yaml new file mode 100644 index 000000000..f41458ffb --- /dev/null +++ b/_data/blocks/nodejs-testing.pt_BR.yaml @@ -0,0 +1,23 @@ +name: Node.js - Testes +logo: +short-description: +key-objectives: + - Usar testes unitários + - Usar testes de integração + - Usar testes de comportamento (behavior) + - Usar mocks +aditional-objectives: +contents: + - type: ARTICLE + title: "Testes Automatizados com o Jest — Node.js e Typescript" + link: https://gabriel-amorim.medium.com/testes-automatizados-com-o-jest-node-js-e-typescript-6d6c6fe8158f + - type: ARTICLE + title: "Testes Unitários em Node.js usando Chai e Mocha" + link: https://medium.com/@matheusalves_45120/testes-unit%C3%A1rios-em-node-js-usando-chai-e-mocha-c415c9f84764 + - type: YOUTUBE + title: "CodarMe: Aprenda a testar rotas de api com Jest no NodeJS" + link: https://www.youtube.com/watch?v=HzjHDsoHwB4 +alura-contents: + - type: COURSE + title: "Curso Node.js: testes unitários e de integração" + link: https://cursos.alura.com.br/course/nodejs-testes-unitarios-integracao \ No newline at end of file diff --git a/_data/blocks/nuget.pt_BR.yaml b/_data/blocks/nuget.pt_BR.yaml new file mode 100644 index 000000000..18a4c3591 --- /dev/null +++ b/_data/blocks/nuget.pt_BR.yaml @@ -0,0 +1,24 @@ +name: NuGet +logo: +short-description: +key-objectives: + - Gerenciar pacotes + - Compartilhar bibliotecas +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: Uma introdução ao NuGet" + link: https://docs.microsoft.com/pt-br/nuget/what-is-nuget + - type: ARTICLE + title: "Criando pacotes NuGet" + link: https://alexalvess.medium.com/criando-pacotes-nuget-ec04dc6425a3 + - type: YOUTUBE + title: "Milton Sampaio - Programação: Nuget e pacotes .Net" + link: https://www.youtube.com/watch?v=6GYcRJbOJYk +alura-contents: + - type: SITE + title: "Primeiras aulas do curso C# parte 5: bibliotecas DLLs, documentação e usando o NuGet" + link: https://www.alura.com.br/conteudo/csharp-biblioteca-dll-documentacao-nuget + - type: COURSE + title: "Curso C# parte 5: bibliotecas DLLs, documentação e usando o NuGet" + link: https://www.alura.com.br/curso-online-csharp-biblioteca-dll-documentacao-nuget \ No newline at end of file diff --git a/_data/blocks/object-calisthenics.pt_BR.yaml b/_data/blocks/object-calisthenics.pt_BR.yaml new file mode 100644 index 000000000..de09642c0 --- /dev/null +++ b/_data/blocks/object-calisthenics.pt_BR.yaml @@ -0,0 +1,25 @@ +name: Object Calisthenics +logo: +short-description: +key-objectives: + - Conhecer as regras de Object Calisthenics + - Simplificar classes e métodos + - Manter o código mais curto e coeso +aditional-objectives: +contents: + - type: ARTICLE + title: "Desenvolva um código melhor com Object Calisthenics" + link: https://medium.com/@rafaelcruz_48213/desenvolva-um-c%C3%B3digo-melhor-com-object-calisthenics-d5364767a9ba + - type: ARTICLE + title: "Object Calisthenics de Jeff Bay" + link: https://dev.to/andrefilipp3/object-calisthenics-from-jeff-bay-501f + - type: YOUTUBE + title: "Dias de Dev: Object Calisthenics - Apenas 1 nível de indentação por método" + link: https://www.youtube.com/watch?v=u_bg3k82uCE + - type: YOUTUBE + title: "Dias de Dev: Nunca use ELSE" + link: https://www.youtube.com/watch?v=z4fxFU5MoAA +alura-contents: + - type: COURSE + title: "Curso Object Calisthenics: exercitando a Orientação a Objetos" + link: https://cursos.alura.com.br/course/object-calisthenics-exercitando-orientacao-objetos \ No newline at end of file diff --git a/_data/blocks/observer-pattern.pt_BR.yaml b/_data/blocks/observer-pattern.pt_BR.yaml new file mode 100644 index 000000000..38fa9f36a --- /dev/null +++ b/_data/blocks/observer-pattern.pt_BR.yaml @@ -0,0 +1,47 @@ +name: O Pattern Observer +logo: +short-description: +key-objectives: + - Entender o que são Design Patterns + - Atualizar diversos elementos simultaneamente + - Declarar os Subjects + - Criar programas baseados em eventos +aditional-objectives: +contents: + - type: ARTICLE + title: "Padrões em JS: Observer Pattern" + link: https://oieduardorabelo.medium.com/padr%C3%B5es-em-js-observer-pattern-bff0ecc55d01 + - type: ARTICLE + title: "Observer Pattern - Design Patterns com Typescript" + link: https://meneguite.com/2019/06/23/design-patterns-com-typescript-observer/ + - type: ARTICLE + title: "Entendendo RxJS Observable com Angular" + link: https://medium.com/tableless/entendendo-rxjs-observable-com-angular-6f607a9a6a00 + - type: YOUTUBE + title: "Filipe Deschamps: Observer Pattern" + link: https://www.youtube.com/watch?v=4OLCrClb_So + - type: YOUTUBE + title: "Paulo Eduardo Melo: Observable" + link: https://www.youtube.com/watch?v=3n-WCiSxu2k + - type: YOUTUBE + title: "Paulo Eduardo Melo: Observable a fundo" + link: https://www.youtube.com/watch?v=dm_9xWPxLUg +alura-contents: + - type: YOUTUBE + title: "Alura: Programação Reativa - Alura Live 54" + link: https://www.youtube.com/watch?v=N0ie4xe48Ng + - type: PODCAST + title: "Design Patterns - Hipsters 206" + link: https://www.alura.com.br/podcast/design-patterns-hipsters-206-a345 + - type: SITE + title: "Primeiras aulas do curso Angular e RxJS: programação reativa" + link: https://www.alura.com.br/conteudo/angular-rxjs-introducao-programacao-reativa + - type: COURSE + title: "Curso Design Patterns em Java I: boas práticas de programação" + link: https://www.alura.com.br/curso-online-introducao-design-patterns-java + - type: COURSE + title: "Curso Design Patterns em PHP: padrões comportamentais" + link: https://www.alura.com.br/curso-online-php-design-pattern-comportamental + - type: COURSE + title: "Curso Design Patterns C# I: boas práticas de programação" + link: https://www.alura.com.br/curso-online-design-patterns-dotnet \ No newline at end of file diff --git a/_data/blocks/oop-concepts.pt_BR.yaml b/_data/blocks/oop-concepts.pt_BR.yaml new file mode 100644 index 000000000..fa9f64994 --- /dev/null +++ b/_data/blocks/oop-concepts.pt_BR.yaml @@ -0,0 +1,55 @@ +name: Conceitos de Orientação a Objetos +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: +contents: + - type: SITE + title: "Unicamp: Conceitos de Orientação a Objetos" + link: http://ftp.unicamp.br/pub/apoio/treinamentos/linguagens/POO.pdf + - type: ARTICLE + title: "Princípios básicos da Programação Orientação a Objetos (POO)" + link: https://yanborowski.medium.com/princ%C3%ADpios-b%C3%A1sicos-da-programa%C3%A7%C3%A3o-orienta%C3%A7%C3%A3o-a-objetos-poo-62da3998b7ce + - type: YOUTUBE + title: "FernandaDev: O que é Programação Orientada a Objetos?(POO)" + link: https://www.youtube.com/watch?v=QJjY2TNyl-8 +alura-contents: + - type: ARTICLE + title: "POO: o que é programação orientada a objetos?" + link: https://www.alura.com.br/artigos/poo-programacao-orientada-a-objetos + - type: ARTICLE + title: "POO: o que é programação orientada a objetos?" + link: https://www.alura.com.br/artigos/poo-programacao-orientada-a-objetos + - type: SITE + title: "Apostila: Java e Orientação a Objetos" + link: https://www.alura.com.br/apostila-java-orientacao-objetos + - type: SITE + title: "Livro: Orientação a Objetos" + link: https://www.casadocodigo.com.br/products/livro-oo-conceitos + - type: YOUTUBE + title: "Alura: Orientação a objetos (com Roberta Arcoverde)" + link: https://www.youtube.com/watch?v=jpuJ1qrluoU + - type: YOUTUBE + title: "Alura: Imersão Java: Orientação a Objetos, APIs e além (e live coding!)" + link: https://www.youtube.com/watch?v=WdT90ffB-0Q + - type: COURSE + title: "Formação Java e Orientação a Objetos" + link: https://cursos.alura.com.br/formacao-java + - type: COURSE + title: "Formação C# e Orientação a Objetos" + link: https://cursos.alura.com.br/formacao-c-sharp-orientacao-objetos + - type: COURSE + title: "Formação Python e orientação a objetos" + link: https://cursos.alura.com.br/formacao-Python-linguagem + - type: COURSE + title: "Curso Orientação a Objetos com PHP: Classes, métodos e atributos" + link: https://cursos.alura.com.br/course/php-oo-classes-metodos-atributos \ No newline at end of file diff --git a/_data/blocks/php-asynchronous.pt_BR.yaml b/_data/blocks/php-asynchronous.pt_BR.yaml new file mode 100644 index 000000000..3f6394059 --- /dev/null +++ b/_data/blocks/php-asynchronous.pt_BR.yaml @@ -0,0 +1,32 @@ +name: PHP Assíncrono +logo: +short-description: +key-objectives: + - Entender sobre programação assíncrona + - Aprender a usar sockets + - Conhecer bibliotecas de programação reativa + - Aprender sobre corrotinas +aditional-objectives: +contents: + - type: ARTICLE + title: "PHP assíncrono de forma nativa" + link: https://dias.dev/2020-09-16-php-assincrono-de-forma-nativa/ + - type: ARTICLE + title: "Aplicações assíncronas com PHP, Swoole e Lumen" + link: https://medium.com/@erycson.nobrega/aplica%C3%A7%C3%B5es-ass%C3%ADncronas-com-php-swoole-e-lumen-bdce5eb200f0 + - type: ARTICLE + title: "I/O assíncrono em PHP" + link: https://medium.com/@jefersondaniel/i-o-ass%C3%ADncrono-em-php-b38e7aa91ff9 + - type: YOUTUBE + title: "Dias de Dev: Programação assíncrona vs Programação paralela - Entenda a diferença" + link: https://www.youtube.com/watch?v=zLfXPSeCkB8 + - type: YOUTUBE + title: "Dias de Dev: Coroutines - O que são corrotinas?" + link: https://www.youtube.com/watch?v=Nbt0eQHChoI +alura-contents: + - type: COURSE + title: "Curso PHP Reativo: programação assíncrona em tempo real" + link: https://cursos.alura.com.br/course/php-reativo-programacao-assincrona-tempo-real + - type: COURSE + title: "Curso Swoole PHP: servidor assíncrono e corrotinas com PHP" + link: https://cursos.alura.com.br/course/swoole-php-servidor-assincrono-corrotinas-php \ No newline at end of file diff --git a/_data/blocks/php-composer.pt_BR.yaml b/_data/blocks/php-composer.pt_BR.yaml new file mode 100644 index 000000000..ece7529f6 --- /dev/null +++ b/_data/blocks/php-composer.pt_BR.yaml @@ -0,0 +1,27 @@ +name: PHP - Composer +logo: +short-description: +key-objectives: + - Gerenciar dependências + - Incluir bibliotecas de terceiros +aditional-objectives: +contents: + - type: SITE + title: "Documentação Composer (inglês)" + link: https://getcomposer.org/doc/ + - type: ARTICLE + title: "O que é PHP Composer?" + link: https://medium.com/@morkhusz/o-que-%C3%A9-php-composer-974960bccf0e + - type: ARTICLE + title: "O que é o Composer do PHP" + link: https://felipeelia.com.br/o-que-e-o-composer-do-php/ + - type: YOUTUBE + title: "Felipe Elia WP: COMPOSER (PHP) - O que é, como instalar e como usar" + link: https://www.youtube.com/watch?v=kQNZz7smW3k +alura-contents: + - type: ARTICLE + title: "PHP Composer: autoloading, executáveis e scripts" + link: https://www.alura.com.br/artigos/avancando-com-o-composer + - type: COURSE + title: "Curso PHP Composer: Dependências, Autoload e Publicação" + link: https://www.alura.com.br/curso-online-php-composer \ No newline at end of file diff --git a/_data/blocks/php-errorhandling.pt_BR.yaml b/_data/blocks/php-errorhandling.pt_BR.yaml new file mode 100644 index 000000000..27f0ad0ac --- /dev/null +++ b/_data/blocks/php-errorhandling.pt_BR.yaml @@ -0,0 +1,25 @@ +name: PHP - Manipulação de Erros +logo: +short-description: +key-objectives: + - Tratar exceções pré-definidas + - Uso de 'try' e 'catch' + - Criar exceções específicas +aditional-objectives: +contents: + - type: SITE + title: "Documentação PHP - Exceções" + link: https://www.php.net/manual/pt_BR/language.exceptions.php + - type: ARTICLE + title: "Não vá dizer que Exception é o mesmo que Erro" + link: https://cristianounix.medium.com/n%C3%A3o-v%C3%A1-dizer-que-exception-%C3%A9-o-mesmo-que-erro-850ea83e72a + - type: YOUTUBE + title: "WDEV: Try, catch e finally: tratando exceptions com PHP" + link: https://www.youtube.com/watch?v=S-3-9UkVKi4 + - type: YOUTUBE + title: "daves tecnologia: Tratamento de Erros em PHP" + link: https://www.youtube.com/watch?v=rSvtPN5F3sk +alura-contents: + - type: COURSE + title: "Curso PHP Exceptions: tratamento de erros" + link: https://cursos.alura.com.br/course/php-exceptions-tratamento-erros \ No newline at end of file diff --git a/_data/blocks/php-files-streams.pt_BR.yaml b/_data/blocks/php-files-streams.pt_BR.yaml new file mode 100644 index 000000000..b05fb3643 --- /dev/null +++ b/_data/blocks/php-files-streams.pt_BR.yaml @@ -0,0 +1,35 @@ +name: PHP - Arquivos e Streams +logo: +short-description: +key-objectives: + - Abrir, ler e manipular arquivos + - Aplicar wrappers e filtros nos streams + - Usar streams + - Conhecer encodings e character sets +aditional-objectives: +contents: + - type: ARTICLE + title: "Wrapper de Streams PHP" + link: https://dias.dev/2020-11-03-wraper-de-streams-php/ + - type: ARTICLE + title: "Leitura de arquivos CSV com PHP" + link: https://medium.com/mestredev/leitura-de-arquivos-csv-com-php-33819d78d03b + - type: ARTICLE + title: "Classe de upload de arquivos com PHP — Como criar" + link: https://marciioluucas.medium.com/criando-classe-de-upload-de-arquivos-com-php-40892cc63b78 + - type: ARTICLE + title: "Como ler arquivos JSON muito grandes com PHP" + link: https://herisonassuncao.medium.com/como-ler-arquivos-json-muito-grandes-com-php-1a269f78a8c6 + - type: YOUTUBE + title: "Marcelo Josué Telles: Como ler arquivos em PHP?" + link: https://www.youtube.com/watch?v=2SWBxr8BNtM + - type: YOUTUBE + title: "WDEV: Upload de arquivos com PHP orientado a objetos" + link: https://www.youtube.com/watch?v=bIAyp12FuQY +alura-contents: + - type: SITE + title: "Upload de arquivos com PHP" + link: https://cursos.alura.com.br/extra/alura-mais/upload-de-arquivos-com-php-c205 + - type: COURSE + title: "Curso PHP I/O: trabalhando com arquivos e streams" + link: https://cursos.alura.com.br/course/php-io-arquivos-streams \ No newline at end of file diff --git a/_data/blocks/php-functional.pt_BR.yaml b/_data/blocks/php-functional.pt_BR.yaml new file mode 100644 index 000000000..0eb354b21 --- /dev/null +++ b/_data/blocks/php-functional.pt_BR.yaml @@ -0,0 +1,22 @@ +name: PHP Funcional +logo: +short-description: +key-objectives: + - Entender a fundo sobre funções em PHP + - Conhecer funções de manipulação de arrays + - Realizar composição de funções usando pipelines +aditional-objectives: +contents: + - type: ARTICLE + title: "PHP Funcional? Map, filter e reduce, conheça!" + link: https://medium.com/@jul10l1r4/php-funcional-map-filter-e-reduce-conhe%C3%A7a-ceaf24392376 + - type: YOUTUBE + title: "Dias de Dev: Programação funcional - Aplicação parcial de funções" + link: https://www.youtube.com/watch?v=N1EJTy-HYkk + - type: YOUTUBE + title: "Dias de Dev: Mônadas - Como representar tipos opcionais" + link: https://www.youtube.com/watch?v=1FdK8adSo4Y +alura-contents: + - type: COURSE + title: "Curso PHP: Programação Funcional" + link: https://www.alura.com.br/curso-online-php-programacao-funcional \ No newline at end of file diff --git a/_data/blocks/php-fundamentals.pt_BR.yaml b/_data/blocks/php-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..3b59850c6 --- /dev/null +++ b/_data/blocks/php-fundamentals.pt_BR.yaml @@ -0,0 +1,66 @@ +name: PHP - Fundamentos +logo: +short-description: +key-objectives: + - Conhecer os tipos primitivos + - Declarar variáveis + - 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 +aditional-objectives: +contents: + - type: SITE + title: "Documentação PHP" + link: https://www.php.net/manual/pt_BR/index.php + - type: ARTICLE + title: "Introdução ao PHP" + link: https://medium.com/caf%C3%A9-com-java/introdu%C3%A7%C3%A3o-ao-php-91472783da7c + - type: ARTICLE + title: "Guia prático do Modern PHP: desenvolvimento e ecossistema" + link: https://medium.com/@FernandoDebrand/guia-pr%C3%A1tico-do-modern-php-desenvolvimento-e-ecossistema-c9715184e463 + - type: ARTICLE + title: "Curso de PHP Básico" + link: https://medium.com/walternascimentobarroso-pt/curso-de-php-b%C3%A1sico-fa984be7c9b9 + - type: YOUTUBE + title: "Mjailton: O que é PHP ? Saiba tudo sobre esta Linguagem" + link: https://www.youtube.com/watch?v=va4WIzo211Y + - type: YOUTUBE + title: "Mjailton: Aprenda Como Rodar o PHP" + link: https://www.youtube.com/watch?v=xKkipZ133_s +alura-contents: + - type: PODCAST + title: "Hipsters.tech: PHP não é coisa de sobrinho - Hipsters Ponto Tech 36" + link: https://cursos.alura.com.br/extra/hipsterstech/php-nao-e-coisa-de-sobrinho-hipsters-36-a550 + - type: PODCAST + title: "Hipsters.tech: PHP8, Mudanças e Ecossistema - Hipsters Ponto Tech 241" + link: https://cursos.alura.com.br/extra/hipsterstech/php8-mudancas-e-ecossistema-hipsters-ponto-tech-241-a789 + - type: YOUTUBE + title: "Alura: Ecossistema PHP | HipstersPontoTube" + link: https://www.alura.com.br/conteudo/angular-comecando-framework + - type: ARTICLE + title: "PHP - Uma Introdução à Linguagem" + link: https://www.alura.com.br/artigos/php-uma-introducao-linguagem + - type: ARTICLE + title: "Quando usar == ou === em php?" + link: https://www.alura.com.br/artigos/quando-usar-ou-em-php + - type: ARTICLE + title: "PHP: operação com números decimais" + link: https://www.alura.com.br/artigos/php-operacoes-com-numeros-decimais + - type: ARTICLE + title: "Trabalhando com arrays em PHP" + link: https://www.alura.com.br/artigos/trabalhando-com-arrays-em-php + - type: COURSE + title: "Formação PHP" + link: https://www.alura.com.br/formacao-linguagem-php + - type: COURSE + title: "Curso PHP: conceitos, lidando com dados, loops e mais" + link: https://www.alura.com.br/curso-online-php-primeiros-passos + - type: COURSE + title: "Curso PHP: manipulando coleções com Arrays" + link: https://www.alura.com.br/curso-online-php-manipulando-colecoes-arrays + - type: COURSE + title: "Curso PHP Strings: manipulando textos com PHP" + link: https://www.alura.com.br/curso-online-php-strings-manipulando-textos-php \ No newline at end of file diff --git a/_data/blocks/php-mvc.pt_BR.yaml b/_data/blocks/php-mvc.pt_BR.yaml new file mode 100644 index 000000000..e92bd0aa2 --- /dev/null +++ b/_data/blocks/php-mvc.pt_BR.yaml @@ -0,0 +1,24 @@ +name: PHP - MVC +logo: +short-description: +key-objectives: + - Entender o conceito do padrão MVC (Model-View-Controller) + - Separar as responsabilidades entre as camadas MVC +aditional-objectives: +contents: + - type: ARTICLE + title: "Construindo um simples framework MVC com PHP" + link: https://medium.com/@jardelgoncalves/construindo-um-simples-framework-mvc-com-php-349e9cacbeb1 + - type: ARTICLE + title: "MVC ¬ framework: usando a arquitetura sem código de terceiros" + link: https://medium.com/trainingcenter/mvc-framework-usando-a-arquitetura-sem-c%C3%B3digo-de-terceiros-bf95a744c66d + - type: YOUTUBE + title: "WDEV: MVC em PHP - Conceito e início do projeto" + link: https://www.youtube.com/watch?v=TmeyoTNu748&list=PL_zkXQGHYosGQwNkMMdhRZgm4GjspTnXs&index=1 + - type: YOUTUBE + title: "Miriam TechCod: Aprenda MVC com PHP" + link: https://www.youtube.com/watch?v=dctNvYVwDtI&list=PLYGFJHWj9BYqyAxiT02orCWbta5lWsCCL&index=1 +alura-contents: + - type: COURSE + title: "Curso MVC com PHP: entenda o padrão Model-View-Controller" + link: https://cursos.alura.com.br/course/php-model-view-controller \ No newline at end of file diff --git a/_data/blocks/php-persistence.pt_BR.yaml b/_data/blocks/php-persistence.pt_BR.yaml new file mode 100644 index 000000000..4067531a9 --- /dev/null +++ b/_data/blocks/php-persistence.pt_BR.yaml @@ -0,0 +1,31 @@ +name: PHP - Persistência +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: +contents: + - type: ARTICLE + title: "PHP Data Object (PDO) de maneira Produtiva: boas práticas e produtividade na interação com a camada de dados" + link: https://sergiodanilojr.medium.com/php-data-object-pdo-de-maneira-produtiva-boas-pr%C3%A1ticas-e-produtividade-na-intera%C3%A7%C3%A3o-com-a-b86ec61e66f2 + - type: ARTICLE + title: "Entendendo a classe PDO" + link: https://medium.com/trainingcenter/entendendo-e-utilizando-a-classe-pdo-836b3fcaf75 + - type: ARTICLE + title: "Primeiros passos com PHP e PDO" + link: https://medium.com/@valdiney/primeiros-passos-com-php-e-pdo-191a9dccf210 + - type: YOUTUBE + title: "Professor Edson Maia: Persistência com PHP OO e PDO" + link: https://www.youtube.com/watch?v=5FPTKe5PXLo + - type: YOUTUBE + title: "Daniel Alves: PHP - Classe de Persistência" + link: https://www.youtube.com/watch?v=ayo2Qa37Mrg +alura-contents: + - type: ARTICLE + title: "Como acessar o banco de dados com PHP7: mysqli ou PDO?" + link: https://www.alura.com.br/artigos/como-acessar-o-banco-de-dados-com-php-7 + - type: COURSE + title: "Curso PHP e PDO: trabalhando com bancos de dados" + link: https://cursos.alura.com.br/course/php-pdo-banco-de-dados \ No newline at end of file diff --git a/_data/blocks/php-symfony.pt_BR.yaml b/_data/blocks/php-symfony.pt_BR.yaml new file mode 100644 index 000000000..c3b3f20f6 --- /dev/null +++ b/_data/blocks/php-symfony.pt_BR.yaml @@ -0,0 +1,41 @@ +name: PHP - Symfony +logo: +short-description: +key-objectives: + - Conhecer as principais características do framework + - Utilizar componentes + - Definir recursos e rotas + - Templates Twig +aditional-objectives: +contents: + - type: SITE + title: "Documentação Symfony (inglês)" + link: https://symfony.com/doc/current/index.html + - type: ARTICLE + title: "Como criar uma página com Symfony" + link: https://medium.com/code-maestro/como-criar-uma-p%C3%A1gina-com-symfony-91193e80b3d0 + - type: ARTICLE + title: "Crud no Symfony com Doctrine" + link: https://medium.com/php-word/crud-no-symfony-com-doctrine-b7ddb820c332 + - type: YOUTUBE + title: "PoliCast: Symfony 5 - Criando seu primeiro projeto" + link: https://www.youtube.com/watch?v=zhuYBGQGDBc + - type: YOUTUBE + title: "Code Experts: API REST com Symfony 6 | Primeiros Passos e Setup Projeto" + link: https://www.youtube.com/watch?v=zhuYBGQGDBc +alura-contents: + - type: PODCAST + title: "Hipsters.tech: PHP não é coisa de sobrinho - Hipsters Ponto Tech 36" + link: https://cursos.alura.com.br/extra/hipsterstech/php-nao-e-coisa-de-sobrinho-hipsters-36-a550 + - type: COURSE + title: "Curso Symfony Parte 1: criação de uma API Restful" + link: https://cursos.alura.com.br/course/php-symfony-api-restful + - type: COURSE + title: "Curso Symfony Parte 2: autenticação e HATEOAS" + link: https://cursos.alura.com.br/course/php-symfony-api-restful-autenticacao + - type: COURSE + title: "Curso Symfony Parte 3: tratamento de erros, cache, logs e testes" + link: https://cursos.alura.com.br/course/symfony-tratamento-erros-cache-log-testes + - type: COURSE + title: "Formação Symfony e Doctrine" + link: https://cursos.alura.com.br/formacao-symfony-e-doctrine \ No newline at end of file diff --git a/_data/blocks/php-testing.pt_BR.yaml b/_data/blocks/php-testing.pt_BR.yaml new file mode 100644 index 000000000..c7c85fe21 --- /dev/null +++ b/_data/blocks/php-testing.pt_BR.yaml @@ -0,0 +1,53 @@ +name: PHP - Testes +logo: +short-description: +key-objectives: + - Usar testes unitários + - Usar testes de integração + - Usar testes de comportamento (behavior) + - Usar mocks +aditional-objectives: +contents: + - type: ARTICLE + title: "Testes unitários com PHP 7" + link: https://medium.com/@bernardoamaral/testes-unit%C3%A1rios-com-php-7-b018164cd284 + - type: ARTICLE + title: "Os Diferentes Tipos de Testes" + link: https://medium.com/elefante-yogue/m1-aula-1-os-diferentes-tipos-de-testes-8943dfe1c476 + - type: ARTICLE + title: "Uma Breve introdução a testes em PHP" + link: https://medium.com/trainingcenter/phpunit-e-cobertura-de-c%C3%B3digo-uma-breve-introdu%C3%A7%C3%A3o-a-testes-em-php-47c7ffb7b5ba + - type: ARTICLE + title: "Testes de Aceitação com PHP" + link: https://medium.com/trainingcenter/testes-de-aceita%C3%A7%C3%A3o-com-php-da06054c64dd + - type: YOUTUBE + title: "Dias de Dev: PHPUnit: Crie testes de maneira profissional em PHP" + link: https://www.youtube.com/watch?v=1oTRpTPEyX0 + - type: YOUTUBE + title: "Dias de Dev: O que são Testes Automatizados" + link: https://www.youtube.com/watch?v=O81uVNg4nEk + - type: YOUTUBE + title: "Dias de Dev: Pest - Uma nova forma de escrever testes em PHP" + link: https://www.youtube.com/watch?v=c7s4MW1OGoY +alura-contents: + - type: ARTICLE + title: "Tipos de testes: quais os principais e por que utilizá-los?" + link: https://www.alura.com.br/artigos/tipos-de-testes-principais-por-que-utiliza-los + - type: PODCAST + title: "Hipsters.tech: Testes Automatizados - Hipsters 51" + link: https://cursos.alura.com.br/extra/hipsterstech/testes-automatizados-hipsters-51-a535 + - type: YOUTUBE + title: "Alura: Pirâmide de Testes" + link: https://www.youtube.com/watch?v=gVJ1Lap-JYA + - type: COURSE + title: "Curso PHP e TDD: testes com PHPUnit" + link: https://cursos.alura.com.br/course/phpunit-tdd + - type: COURSE + title: "Curso Testes de integração com PHP: testando o acesso à API e ao banco de dados" + link: https://cursos.alura.com.br/course/php-testes-integracao + - type: COURSE + title: "Curso PHP e Selenium: testes de ponta a ponta" + link: https://cursos.alura.com.br/course/php-testes-end-to-end + - type: COURSE + title: "Curso PHP e Behavior Driven Development: BDD com Behat" + link: https://cursos.alura.com.br/course/php-introducao-bdd \ No newline at end of file diff --git a/_data/blocks/php-xdebug.pt_BR.yaml b/_data/blocks/php-xdebug.pt_BR.yaml new file mode 100644 index 000000000..2f32e269e --- /dev/null +++ b/_data/blocks/php-xdebug.pt_BR.yaml @@ -0,0 +1,35 @@ +name: PHP - XDebug +logo: +short-description: +key-objectives: + - Usar e aprimorar o var_dump com XDebug + - Analisar e entender a stack (pilha) de execução + - Depurar o código + - Depurar remotamente com Docker +aditional-objectives: +contents: + - type: SITE + title: "Documentação XDebug (inglês)" + link: https://xdebug.org/docs/ + - type: ARTICLE + title: "Laravel e Xdebug" + link: https://andrelugomes.medium.com/laravel-e-xdebug-795ac66457dc + - type: ARTICLE + title: "Ambiente de Desenvolvimento PHP com Docker + XDebug + VSCode" + link: https://medium.com/@alexcvcoelho/ambiente-de-desenvolvimento-php-com-docker-xdebug-vscode-94bda2b49be9 + - type: YOUTUBE + title: "Pensando em Software: PHP - Instalando e utilizando o XDebug" + link: https://www.youtube.com/watch?v=kQNZz7smW3k + - type: YOUTUBE + title: "Code Easy: Configurar o XDebug para PHP com o VSCode" + link: https://www.youtube.com/watch?v=MDUAxMPYQPA + - type: YOUTUBE + title: "Dias de Dev: XDebug e Docker - Configurar PHPStorm e VSCode para funcionar com XDebug usando Docker" + link: https://www.youtube.com/watch?v=kbq3FJOYmQ0 +alura-contents: + - type: ARTICLE + title: "Configurando o Xdebug em editores da Jetbrains" + link: https://www.alura.com.br/artigos/configurando-xdebug-em-editores-jetbrains + - type: COURSE + title: "Curso XDebug: ferramenta de debug e profiling" + link: https://cursos.alura.com.br/course/xdebug-ferramenta-debug-profiling \ No newline at end of file diff --git a/_data/blocks/python-collections.pt_BR.yaml b/_data/blocks/python-collections.pt_BR.yaml new file mode 100644 index 000000000..4ae8d70b5 --- /dev/null +++ b/_data/blocks/python-collections.pt_BR.yaml @@ -0,0 +1,43 @@ +name: Python - Coleções +logo: +short-description: +key-objectives: + - Utilizar listas e tuplas + - Utilizar polimorfismo nas coleções + - Utilizar conjuntos e dicionários +aditional-objectives: +contents: + - type: ARTICLE + title: "Coleções em Python — Tuplas" + link: https://medium.com/@desk467/cole%C3%A7%C3%B5es-em-python-tuplas-4444d683963a + - type: ARTICLE + title: "Entenda o que é, e quais as diferenças entre Listas, Sets, Tuplas e Dicionários no Python" + link: https://medium.com/ensina-ai/entenda-o-que-e-e-quais-as-diferencas-entre-listas-sets-tuplas-e-dicionarios-no-python-aa927ed64796 + - type: YOUTUBE + title: "Refatorando: Collections, Lists e Tuples" + link: https://www.youtube.com/watch?v=5gqpc-nCq7w + - type: YOUTUBE + title: "Refatorando: Coleções - set e dictionary" + link: https://www.youtube.com/watch?v=7uVwpmuw4Yg + - type: YOUTUBE + title: "Python 42: Coleções no Python | Listas, tuplas, conjuntos e dicionários" + link: https://www.youtube.com/watch?v=7uVwpmuw4Yg +alura-contents: + - type: ARTICLE + title: "Compreensão de listas no Python" + link: https://www.alura.com.br/artigos/simplicando-o-processamento-com-compreensao-de-lista-do-python + - type: ARTICLE + title: "Ordenando listas no Python" + link: https://www.alura.com.br/artigos/ordenando-listas-no-python + - type: ARTICLE + title: "Conhecendo as tuplas no Python" + link: https://www.alura.com.br/artigos/conhecendo-as-tuplas-no-python + - type: ARTICLE + title: "Python: Trabalhando com dicionários" + link: https://www.alura.com.br/artigos/trabalhando-com-o-dicionario-no-python + - type: COURSE + title: "Curso Python Collections parte 1: listas e tuplas" + link: https://cursos.alura.com.br/course/python-collections-listas-e-tuplas + - type: COURSE + title: "Curso Python Collections parte 2: conjuntos e dicionários" + link: https://cursos.alura.com.br/course/python-collections-conjuntos-e-dicionarios \ No newline at end of file diff --git a/_data/blocks/python-coroutines.pt_BR.yaml b/_data/blocks/python-coroutines.pt_BR.yaml new file mode 100644 index 000000000..6ea18e046 --- /dev/null +++ b/_data/blocks/python-coroutines.pt_BR.yaml @@ -0,0 +1,29 @@ +name: Python - Corrotinas +logo: +short-description: +key-objectives: + - Escrever aplicações assíncronas + - Lidar com concorrência + - Conhecer o conceito de objetos aguardáveis + - Criar tarefas concorrentemente +aditional-objectives: +contents: + - type: SITE + title: "Documentação - Corrotinas" + link: https://docs.python.org/pt-br/3.8/library/asyncio-task.html + - type: SITE + title: "Acervo Lima: Corrotina em Python" + link: https://acervolima.com/corrotina-em-python/ + - type: ARTICLE + title: "Async/await: Introdução à programação assíncrona em Python" + link: https://medium.com/@edytarcio/async-await-introdu%C3%A7%C3%A3o-%C3%A0-programa%C3%A7%C3%A3o-ass%C3%ADncrona-em-python-fa30d077018e + - type: YOUTUBE + title: "Eduardo Mendes: Uma introdução histórica à corrotinas" + link: https://www.youtube.com/watch?v=b6LT6O1s3_8 + - type: YOUTUBE + title: "Thiago Silva: AsyncIO: Corrotinas, Tarefas e Loop de Eventos" + link: https://www.youtube.com/watch?v=LKSp0SGWRTk + - type: YOUTUBE + title: "pythonbrasil: Corrotinas e Concorrência" + link: https://www.youtube.com/watch?v=djj20SpxO4s +alura-contents: \ No newline at end of file diff --git a/_data/blocks/python-for-data-science.pt_BR.yaml b/_data/blocks/python-for-data-science.pt_BR.yaml new file mode 100644 index 000000000..82d853c3c --- /dev/null +++ b/_data/blocks/python-for-data-science.pt_BR.yaml @@ -0,0 +1,42 @@ +name: Python para Ciência de Dados +logo: +short-description: +key-objectives: + - Python é uma linguagem de programação interpretada de alto nível e que suporta múltiplos paradigmas de programação, como imperativo, orientado a objetos e funcional. É uma linguagem com tipagem dinâmica e gerenciamento automático de memória. + - Aprender lógica de programação em Python + - Aprenda os fundamentos da linguagem como variáveis, funções, listas, condicionais e imports + - Criar análises de dados + - Utilizar o Matplotlib para gerar gráficos + - Usar e manipular listas para agrupar dados + - Conhecer a biblioteca NumPy + - Conhecer a biblioteca Pandas +aditional-objectives: +contents: + - type: ARTICLE + title: "Primeiros passos em Data Science utilizando Python para análise de dados" + link: https://medium.com/data-hackers/primeiros-passos-em-data-science-utilizando-python-para-an%C3%A1lise-de-dados-823436432b28 + - type: ARTICLE + title: "Python para Análise de Dados" + link: https://medium.com/@aasouzaconsult/python-para-an%C3%A1lise-de-dados-24028d7013b3 + - type: YOUTUBE + title: "Filipe Deschamps: Introdução a Ciência de Dados (Primeira aula prática programando em Python)" + link: https://www.youtube.com/watch?v=F608hzn_ygo + - type: YOUTUBE + title: "Jerry Strazzeri: Como estudar Python para Ciência de Dados" + link: https://www.youtube.com/watch?v=kIKdbBc6npU + - type: YOUTUBE + title: "Prof. Cíntia Pinho: Introdução a Python para Ciências de Dados" + link: https://www.youtube.com/watch?v=M13p7EHA6Ro +alura-contents: + - type: ARTICLE + title: "Vingadores - Visualizando diversos futuros simultaneamente usando Python e Data Science" + link: https://www.alura.com.br/artigos/vingadores-visualizando-diversos-futuros-simultaneamente + - type: PODCAST + title: "Hipsters.tech: Primeiros Passos em Data Science: Do Excel e BI ao Python – Hipsters 134" + link: https://www.hipsters.tech/primeiros-passos-em-data-science-do-excel-e-bi-ao-python-hipsters-134/ + - type: COURSE + title: "Formação Python para Data Science" + link: https://cursos.alura.com.br/formacao-python-data-science + - type: COURSE + title: "Formação Estatística com Python" + link: https://cursos.alura.com.br/formacao-estatistica-python \ No newline at end of file diff --git a/_data/blocks/python-fundamentals.pt_BR.yaml b/_data/blocks/python-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..85459409c --- /dev/null +++ b/_data/blocks/python-fundamentals.pt_BR.yaml @@ -0,0 +1,72 @@ +name: Python - Fundamentos +logo: +short-description: +key-objectives: + - Conhecer os tipos primitivos + - Declarar variáveis, considerando os diferentes tipos + - 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 métodos + - Manipular arrays e listas + - Obter dados de uma API + - Fazer chamadas assíncronas + - Criar construtores + - Funções anônimas +aditional-objectives: + - Manipular objetos JSON + - Lidar com datas +contents: + - type: SITE + title: "Documentação Python" + link: https://docs.python.org/pt-br/3/tutorial/ + - type: ARTICLE + title: "Programação | Python — Parte 1" + link: https://medium.com/turing-talks/turing-talks-4-python-parte-1-29b8d9efd0a5 + - type: ARTICLE + title: "Introdução ao Python" + link: https://medium.com/reflex%C3%A3o-computacional/introdu%C3%A7%C3%A3o-a7d3736a9817 + - type: ARTICLE + title: "Introdução ao Python" + link: https://medium.com/@goularteduarda.a/introdu%C3%A7%C3%A3o-ao-python-d30c29eba0d6 + - type: YOUTUBE + title: "Dabieu: Introdução à programação com Python - Conceitos Básicos" + link: https://www.youtube.com/watch?v=uKq3Scxz0cU + - type: YOUTUBE + title: "Eduardo Mendes: Curso introdutório de Python" + link: https://www.youtube.com/watch?v=yTQDbqmv8Ho +alura-contents: + - type: PODCAST + title: "Hipsters.tech: Python – Hipsters 122" + link: https://www.hipsters.tech/python-hipsters-122/ + - type: PODCAST + title: "Hipsters.tech: Python Fluente – Hipsters Ponto Tech 179" + link: https://www.hipsters.tech/python-fluente-hipsters-ponto-tech-179/ + - type: YOUTUBE + title: "Alura: A linguagem Python - Alura Live 94" + link: https://www.youtube.com/watch?v=Nbt0eQHChoI + - type: YOUTUBE + title: "Alura: O que é Python?" + link: https://www.youtube.com/watch?v=-LATVnPcvHI + - type: ARTICLE + title: "Python - Uma Introdução à Linguagem" + link: https://www.alura.com.br/artigos/python-uma-introducao-a-linguagem + - type: ARTICLE + title: "Python: Trabalhando com precisão em números decimais" + link: https://www.alura.com.br/artigos/precisao-numeros-decimais-python + - type: ARTICLE + title: "Listas em Python: operações básicas" + link: https://www.alura.com.br/artigos/listas-no-python + - type: ARTICLE + title: "Como comparar objetos no Python?" + link: https://www.alura.com.br/artigos/como-comparar-objetos-no-python + - type: ARTICLE + title: "Python datetime: Lidando com datas e horários" + link: https://www.alura.com.br/artigos/lidando-com-datas-e-horarios-no-python + - type: COURSE + title: "Curso Python: começando com a linguagem" + link: https://cursos.alura.com.br/course/python-introducao-a-linguagem + - type: COURSE + title: "Formação Python e orientação a objetos" + link: https://cursos.alura.com.br/formacao-Python-linguagem diff --git a/_data/blocks/python-generators.pt_BR.yaml b/_data/blocks/python-generators.pt_BR.yaml new file mode 100644 index 000000000..9a3dba1e3 --- /dev/null +++ b/_data/blocks/python-generators.pt_BR.yaml @@ -0,0 +1,32 @@ +name: Python - Geradores +logo: +short-description: +key-objectives: + - Criar objetos iteradores + - Usar avaliação preguiçosa + - Executar tarefas simultâneas + - Uso da palavra reservada yield +aditional-objectives: +contents: + - type: SITE + title: "Wiki Python Brasil: Utilizando geradores (generators)" + link: https://wiki.python.org.br/UsandoGenerators + - type: ARTICLE + title: "Python Generators" + link: http://pythonclub.com.br/python-generators.html + - type: ARTICLE + title: "Introdução ao Python Generators" + link: http://blog.dunderlabs.com/introducao-ao-python-generators.html + - type: YOUTUBE + title: "Otávio Miranda: Geradores, Iteradores e Iteráveis em Python" + link: https://www.youtube.com/watch?v=gHrc6FLBh20 + - type: YOUTUBE + title: "Eduardo Mendes: Iteradores e Geradores" + link: https://www.youtube.com/watch?v=Xj5LlCeW0m0 + - type: YOUTUBE + title: "Eduardo Mendes: Desvendando o yield e as funções geradoras" + link: https://www.youtube.com/watch?v=ZjwZ9nfhsk4 +alura-contents: + - type: ARTICLE + title: "Conhecendo os geradores no Python" + link: https://www.alura.com.br/artigos/conhecendo-os-geradores-no-python \ No newline at end of file diff --git a/_data/blocks/python-metaprogramming.pt_BR.yaml b/_data/blocks/python-metaprogramming.pt_BR.yaml new file mode 100644 index 000000000..9972bbb31 --- /dev/null +++ b/_data/blocks/python-metaprogramming.pt_BR.yaml @@ -0,0 +1,23 @@ +name: Python - Metaprogramação +logo: +short-description: +key-objectives: + - Escrever um programa que manipula outros programas +aditional-objectives: +contents: + - type: SITE + title: "Acervo Lima: Metaprogramação com Metaclasses em Python" + link: https://acervolima.com/metaprogramacao-com-metaclasses-em-python/ + - type: ARTICLE + title: "Introdução à Metaprogramação em Python 3" + link: https://alcarsil.medium.com/introdu%C3%A7%C3%A3o-%C3%A0-metaprograma%C3%A7%C3%A3o-em-python-3-fa6688b08d67 + - type: ARTICLE + title: "Metaprogramação 101" + link: https://guimorg.github.io/metaprogramming-101-pt/ + - type: YOUTUBE + title: "Victor Vernalha: Introdução à Metaprogramação em Python" + link: https://www.youtube.com/watch?v=S0xdG5Ctluo + - type: YOUTUBE + title: "pythonbrasil: Atributos, propriedades e descritores - encapsulamento e metaprogramação" + link: https://www.youtube.com/watch?v=tF4Dlra3uNI +alura-contents: \ No newline at end of file diff --git a/_data/blocks/python-mixins.pt_BR.yaml b/_data/blocks/python-mixins.pt_BR.yaml new file mode 100644 index 000000000..52f438fd2 --- /dev/null +++ b/_data/blocks/python-mixins.pt_BR.yaml @@ -0,0 +1,18 @@ +name: Python - Mixins +logo: +short-description: +key-objectives: + - Usar orientação a objetos + - Entender o uso de herança múltipla +aditional-objectives: +contents: + - type: ARTICLE + title: "Python e Herança Múltipla: Como funciona?" + link: https://medium.com/rafaeltardivo/python-e-heran%C3%A7a-m%C3%BAltipla-como-funciona-876db0449efe + - type: ARTICLE + title: "Orientação a objetos de outra forma: Herança múltiplas e mixins" + link: https://dev.to/acaverna/orientacao-a-objetos-de-outra-forma-heranca-multiplas-e-mixins-31eb +alura-contents: + - type: COURSE + title: "Curso Python: avançando na orientação a objetos" + link: https://cursos.alura.com.br/course/python-3-avancando-orientacao-objetos \ No newline at end of file diff --git a/_data/blocks/python-mvc-mtv.pt_BR.yaml b/_data/blocks/python-mvc-mtv.pt_BR.yaml new file mode 100644 index 000000000..bd2161996 --- /dev/null +++ b/_data/blocks/python-mvc-mtv.pt_BR.yaml @@ -0,0 +1,25 @@ +name: Python - MVC e MTV +logo: +short-description: +key-objectives: + - Entender o padrão MVC + - Entender o padrão MTV + - Compreender a diferença entre os padrões MVC e MTV +aditional-objectives: +contents: + - type: SITE + title: "Acervo Lima: Diferença entre os padrões de design MVC e MVT" + link: https://acervolima.com/diferenca-entre-os-padroes-de-design-mvc-e-mvt/ + - type: ARTICLE + title: "Como funciona a arquitetura MTV (Django)" + link: https://diandrasilva.medium.com/como-funciona-a-arquitetura-mtv-django-86af916f1f63 + - type: YOUTUBE + title: "Thiago Kaiser: Como funciona o Django - Modelo MTV" + link: https://www.youtube.com/watch?v=2XaZXJ5P81k + - type: YOUTUBE + title: "Rafael Zottesso: Python e Django - Arquitetura Model View Template (MVT)" + link: https://www.youtube.com/watch?v=Zpl1w_Hn0CE +alura-contents: + - type: COURSE + title: "Formação Django" + link: https://cursos.alura.com.br/formacao-django \ No newline at end of file diff --git a/_data/blocks/python-operator-overloading.pt_BR.yaml b/_data/blocks/python-operator-overloading.pt_BR.yaml new file mode 100644 index 000000000..e2124ecc6 --- /dev/null +++ b/_data/blocks/python-operator-overloading.pt_BR.yaml @@ -0,0 +1,21 @@ +name: Python - Sobrecarga de operadores +logo: +short-description: +key-objectives: + - Definir métodos para um operador + - Realizar operações com objetos +aditional-objectives: +contents: + - type: SITE + title: "Acervo Lima: Sobrecarga de operadores em Python" + link: https://acervolima.com/sobrecarga-de-operador-em-python/ + - type: ARTICLE + title: "Sobrecarga de operadores e funções no Python 3" + link: https://medium.com/@pauloeddias/sobrecarga-de-operadores-e-fun%C3%A7%C3%B5es-no-python-3-2e66b80361b6 + - type: YOUTUBE + title: "Eduardo Mendes: Programação orientada a objetos - Sobrecarga de operadores" + link: https://www.youtube.com/watch?v=XSVvXso_Ukc + - type: YOUTUBE + title: "PETEE UFMG: Orientação a Objetos: Sobrecarga de Operadores" + link: https://www.youtube.com/watch?v=2FitezEqOH8 +alura-contents: \ No newline at end of file diff --git a/_data/blocks/python-process-pools.pt_BR.yaml b/_data/blocks/python-process-pools.pt_BR.yaml new file mode 100644 index 000000000..a23efbc50 --- /dev/null +++ b/_data/blocks/python-process-pools.pt_BR.yaml @@ -0,0 +1,24 @@ +name: Python - Pooling de processos +logo: +short-description: +key-objectives: + - Executar processos em paralelo + - Conhecer a classe Pool +aditional-objectives: +contents: + - type: SITE + title: "Documentação Python - Process Pools (inglês)" + link: https://docs.python.org/pt-br/3/library/multiprocessing.html#module-multiprocessing.pool + - type: SITE + title: "Acervo Lima: Sincronização e pooling de processos em Python" + link: https://acervolima.com/sincronizacao-e-pooling-de-processos-em-python/ + - type: ARTICLE + title: "Uma pequena introdução a programação paralela e multiprocessamento com Python" + link: https://medium.com/@adson.develop/uma-pequena-introdu%C3%A7%C3%A3o-a-programa%C3%A7%C3%A3o-paralela-e-multiprocessamento-com-python-232bbf72a8f7 + - type: YOUTUBE + title: "Eduardo Mendes: Usando Processos - Multiprocessamento" + link: https://www.youtube.com/watch?v=ANGM6Tjf9zM + - type: YOUTUBE + title: "Ignorância Zero: Execução Paralela V - Multiprocessing" + link: https://www.youtube.com/watch?v=EGJipyZBjbU +alura-contents: \ No newline at end of file diff --git a/_data/blocks/python-special-methods.pt_BR.yaml b/_data/blocks/python-special-methods.pt_BR.yaml new file mode 100644 index 000000000..208fc1884 --- /dev/null +++ b/_data/blocks/python-special-methods.pt_BR.yaml @@ -0,0 +1,30 @@ +name: Python - Métodos Especiais +logo: +short-description: +key-objectives: + - Entender o conceito de métodos especiais (ou mágicos) + - Conhecer os principais métodos mágicos e como usá-los +aditional-objectives: +contents: + - type: SITE + title: "Acervo Lima: Métodos mágicos ou Dunder" + link: https://acervolima.com/personalize-sua-classe-python-com-metodos-magic-ou-dunder/ + - type: SITE + title: "Python - Métodos especiais" + link: http://www.estruturas.ufpr.br/material/computacaoCientifica/classes/metodosespeciais/ + - type: YOUTUBE + title: "Eduardo Mendes: Objetos e métodos especiais (dunders)" + link: https://www.youtube.com/watch?v=syctPjStwQU + - type: YOUTUBE + title: "pythonando: Faça __mágica__ com Python" + link: https://www.youtube.com/watch?v=yxUm_QnP4Qo + - type: YOUTUBE + title: "pythonando: Orientação a Objetos: Métodos especiais" + link: https://www.youtube.com/watch?v=H1ZNau44xAI +alura-contents: + - type: COURSE + title: "Curso String em Python: extraindo informações de uma URL" + link: https://cursos.alura.com.br/course/string-python-extraindo-informacoes-url + - type: COURSE + title: "Curso Python: avançando na orientação a objetos" + link: https://cursos.alura.com.br/course/python-3-avancando-orientacao-objetos \ No newline at end of file diff --git a/_data/blocks/python-static-typing.pt_BR.yaml b/_data/blocks/python-static-typing.pt_BR.yaml new file mode 100644 index 000000000..6745c0b0f --- /dev/null +++ b/_data/blocks/python-static-typing.pt_BR.yaml @@ -0,0 +1,23 @@ +name: Python - Tipagem estática +logo: +short-description: +key-objectives: + - Utilizar tipagem estática em Python +aditional-objectives: +contents: + - type: ARTICLE + title: "Python 3 e Type Hints" + link: https://diogommartins.medium.com/python-3-e-type-hints-40e80a9e8214 + - type: YOUTUBE + title: "pythonando: Tipagem estática com Python?" + link: https://www.youtube.com/watch?v=jvLjANgC-wk + - type: YOUTUBE + title: "pythonbrasil: Python e Tipagem Estática" + link: https://www.youtube.com/watch?v=oeacyCi3u_o + - type: YOUTUBE + title: "Vinta Software: Medalhões, Patos e Protocolos: tipos em Python 3.8" + link: https://www.youtube.com/watch?v=UVhGUINj1e0 +alura-contents: + - type: ARTICLE + title: "O que são as tipagens estática e dinâmica em programação" + link: https://www.alura.com.br/artigos/o-que-sao-as-tipagens-estatica-e-dinamica-em-programacao \ No newline at end of file diff --git a/_data/blocks/python-testing.pt_BR.yaml b/_data/blocks/python-testing.pt_BR.yaml new file mode 100644 index 000000000..ddbca020c --- /dev/null +++ b/_data/blocks/python-testing.pt_BR.yaml @@ -0,0 +1,44 @@ +name: Python - Testes +logo: +short-description: +key-objectives: + - Usar testes unitários + - Usar testes de integração + - Usar testes de comportamento (behavior) + - Usar mocks +aditional-objectives: +contents: + - type: SITE + title: "Documentação Python - Framework de Testes Unitários" + link: https://docs.python.org/pt-br/dev/library/unittest.html + - type: ARTICLE + title: "Tutorial: Testes Unitários e Python — Parte I" + link: https://medium.com/mercos-engineering/tutorial-testes-unit%C3%A1rios-e-python-parte-i-bb77182db93f + - type: ARTICLE + title: "Testes Unitários e Python — Parte II: Mocks, APIs & Star Wars" + link: https://medium.com/mercos-engineering/testes-unit%C3%A1rios-e-python-parte-ii-mocks-apis-star-wars-ou-como-consumir-uma-api-rest-3a24d153db59 + - type: ARTICLE + title: "Testes em Python - Parte 1: Introdução" + link: https://dev.to/womakerscode/testes-em-python-parte-1-introducao-43ei + - type: YOUTUBE + title: "pythonando: Introdução a testes unitários com Python e Django" + link: https://www.youtube.com/watch?v=cEXt8hDyKQw + - type: YOUTUBE + title: "Programando Com Roger: Criando testes automatizados com Python usando unittest" + link: https://www.youtube.com/watch?v=F3qKoXicgIo + - type: YOUTUBE + title: "Programador Lhama: Python Conceitos Rápidos - Testes Unitários" + link: https://www.youtube.com/watch?v=CwaHM-KLKC8 +alura-contents: + - type: ARTICLE + title: "Tipos de testes: quais os principais e por que utilizá-los?" + link: https://www.alura.com.br/artigos/tipos-de-testes-principais-por-que-utiliza-los + - type: PODCAST + title: "Hipsters.tech: Testes Automatizados - Hipsters 51" + link: https://cursos.alura.com.br/extra/hipsterstech/testes-automatizados-hipsters-51-a535 + - type: YOUTUBE + title: "Alura: Pirâmide de Testes" + link: https://www.youtube.com/watch?v=gVJ1Lap-JYA + - type: COURSE + title: "Curso Python e TDD: explorando testes unitários" + link: https://cursos.alura.com.br/course/python-tdd-explorando-testes-unitarios \ No newline at end of file diff --git a/_data/blocks/r-for-data-science.pt_BR.yaml b/_data/blocks/r-for-data-science.pt_BR.yaml new file mode 100644 index 000000000..5c0096ca2 --- /dev/null +++ b/_data/blocks/r-for-data-science.pt_BR.yaml @@ -0,0 +1,37 @@ +name: R para Ciência de Dados +logo: +short-description: +key-objectives: + - R é uma linguagem de programação comumente usada em estatística computacional e análise de dados. + - Aprender a analisar, limpar e visualizar dados + - Elaborar gráficos + - Juntar bancos de dados + - Tirar sumários estatísticos + - Aprender modelos preditivos no R +aditional-objectives: +contents: + - type: ARTICLE + title: "Introdução à programação em R" + link: https://medium.com/rladiesbh/introdu%C3%A7%C3%A3o-%C3%A0-programa%C3%A7%C3%A3o-em-r-d0193eb4e458 + - type: ARTICLE + title: "Introdução a linguagem R" + link: https://medium.com/rapaduratech/introdu%C3%A7%C3%A3o-a-linguagem-r-77306b5f703 + - type: YOUTUBE + title: "EstaTiDados: Introdução ao R para ciências de dados" + link: https://www.youtube.com/watch?v=hnTHBzmmkTI +alura-contents: + - type: ARTICLE + title: "Aplicando a regressão linear com R" + link: https://www.alura.com.br/artigos/aplicando-a-regressao-linear-com-r + - type: COURSE + title: "Formação Estatística com R" + link: https://cursos.alura.com.br/formacao-estatistica-r + - type: COURSE + title: "Curso R: análise de dados" + link: https://cursos.alura.com.br/course/business-analytics-com-r + - type: COURSE + title: "Curso (I/O) com R: formatos diferentes de entrada e saída" + link: https://cursos.alura.com.br/course/io-em-r + - type: COURSE + title: "Curso Programação em R: desenvolva dashboards online com Shiny" + link: https://cursos.alura.com.br/course/programacao-r-dashboard-online-shiny- \ No newline at end of file diff --git a/_data/blocks/react-components.pt_BR.yaml b/_data/blocks/react-components.pt_BR.yaml new file mode 100644 index 000000000..269d9765e --- /dev/null +++ b/_data/blocks/react-components.pt_BR.yaml @@ -0,0 +1,54 @@ +name: React - Componentes +logo: +short-description: +key-objectives: + - Para que servem e como funcionam componentes + - Conhecer a biblioteca Styled Components +aditional-objectives: +contents: + - type: article + title: "Criando Styled Components Com React" + link: https://blog.matheuscastiglioni.com.br/criando-styled-components-com-react/ + - type: site + title: "React: Documentação - Componentes e Props" + link: https://pt-br.reactjs.org/docs/components-and-props.html#gatsby-focus-wrapper + - type: site + title: "MDN Web Docs: Começando com React - Explorando seu primeiro componente React" + link: https://developer.mozilla.org/pt-BR/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started#explorando_seu_primeiro_componente_react_%E2%80%94_%3Capp%3E + - type: youtube + title: "Mario Souto - Dev Soutinho: CSS-in-JS na prática! Criando componentes com React e CSS no NextJS" + link: https://www.youtube.com/watch?v=aDKxJfJiM28 +alura-contents: + - type: article + title: "React: componentes com Styled Components" + link: https://www.alura.com.br/artigos/react-componentes-com-styled-components + - type: site + title: "Ciclo de vida de um componente React" + link: https://cursos.alura.com.br/extra/alura-mais/ciclo-de-vida-de-um-componente-react-c1333 + - type: site + title: "Primeiras aulas do curso React: abstraindo seu CSS com Styled Components" + link: https://www.alura.com.br/conteudo/react-styled-components + - type: course + title: "Imersão React: AluraFlix" + link: https://cursos.alura.com.br/imersoes/aulas/aula-1-react-components-e-aluraflix-c18 + - type: course + title: "Imersão React: AluraQuiz" + link: https://cursos.alura.com.br/imersoes/aulas/aula-1-react-styled-components-e-next-js-c33 + - type: course + title: "Imersão React: AluraKut" + link: https://cursos.alura.com.br/imersoes/aulas/aula-1-components-com-react-styled-components-e-nextjs-c53 + - type: course + title: "Imersão React: AluraCord" + link: https://cursos.alura.com.br/imersoes/aulas/aula-01-criando-o-nosso-projeto-aluracord-c68 + - type: course + title: "Curso React: abstraindo seu CSS com Styled Components" + link: https://www.alura.com.br/curso-online-react-styled-components + - type: site + title: "Primeiras aulas do curso React: testando os seus componentes" + link: https://www.alura.com.br/conteudo/react-testando-componentes + - type: course + title: "Curso React: testando os seus componentes" + link: https://www.alura.com.br/curso-online-react-testando-componentes + - type: "course" + title: "Curso React: escrevendo com Typescript" + link: https://www.alura.com.br/curso-online-react-modernizando-escrever-typescript diff --git a/_data/blocks/react-dev-tools.pt_BR.yaml b/_data/blocks/react-dev-tools.pt_BR.yaml new file mode 100644 index 000000000..18ead4442 --- /dev/null +++ b/_data/blocks/react-dev-tools.pt_BR.yaml @@ -0,0 +1,26 @@ +name: React Developer Tools +logo: +short-description: +key-objectives: + - Executar o 'debugging' de aplicações +aditional-objectives: +contents: + - type: site + title: "Extensão React Developer Tools para o Google Chrome" + link: https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi + - type: site + title: "Documentação: Analisando componentes com o DevTools Profiler" + link: https://pt-br.reactjs.org/docs/optimizing-performance.html#profiling-components-with-the-devtools-profiler + - type: article + title: "O que é React Developer Tool?" + link: https://acervolima.com/o-que-e-react-developer-tool/ + - type: article + title: "Debug React applications with React DevTools (inglês)" + link: https://blog.logrocket.com/debug-react-applications-with-the-new-react-devtools/ + - type: youtube + title: "Rubens Guimarães: Depuração no React com o React Developer Tools" + link: https://www.youtube.com/watch?v=GHoeoW88Jis +alura-contents: + - type: course + title: "Curso React: otimizando a performance" + link: https://www.alura.com.br/curso-online-react-otimizando-performance diff --git a/_data/blocks/react-hooks-callback.pt_BR.yaml b/_data/blocks/react-hooks-callback.pt_BR.yaml new file mode 100644 index 000000000..0017577b3 --- /dev/null +++ b/_data/blocks/react-hooks-callback.pt_BR.yaml @@ -0,0 +1,20 @@ +name: React Hooks - Callback +logo: +short-description: +key-objectives: + - Retornar uma versão memoizada do callback caso as entradas tenham sido alteradas +aditional-objectives: +contents: + - type: site + title: "React: Documentação - useCallback" + link: https://pt-br.reactjs.org/docs/hooks-reference.html#usecallback + - type: article + title: "Primeiros passos com React Hooks — useMemo e useCallback" + link: https://medium.com/@devjpnobrega/primeiros-passos-com-react-hooks-usememo-e-usecallback-13d54da4f9ba + - type: youtube + title: "React Floripa: Os mitos sobre useMemo e useCallback" + link: https://www.youtube.com/watch?v=ZntFz_DDakQ + - type: article + title: "Your Guide to React.useCallback() (inglês)" + link: https://dmitripavlutin.com/dont-overuse-react-usecallback/ +alura-contents: diff --git a/_data/blocks/react-hooks-effect.pt_BR.yaml b/_data/blocks/react-hooks-effect.pt_BR.yaml new file mode 100644 index 000000000..920278fc4 --- /dev/null +++ b/_data/blocks/react-hooks-effect.pt_BR.yaml @@ -0,0 +1,37 @@ +name: React Hooks - Effect +logo: +short-description: +key-objectives: + - Executar um componente somente após a renderização + - Acessar as props de um elemento + - Fazer chamadas a APIs +aditional-objectives: +contents: + - type: site + title: "React: Documentação - Introdução aos Hooks" + link: https://pt-br.reactjs.org/docs/hooks-intro.html#gatsby-focus-wrapper + - type: site + title: "React: Documentação - Usando Effect Hook (Hook de Efeito)" + link: https://pt-br.reactjs.org/docs/hooks-effect.html + - type: article + title: "Entenda como funciona o useEffect" + link: https://medium.com/reactbrasil/entenda-como-funciona-o-useeffect-e743b86f104 + - type: article + title: "Um guia completo para useEffect" + link: https://overreacted.io/pt-br/a-complete-guide-to-useeffect/ +alura-contents: + - type: article + title: "React Hooks: o que é e como eles funcionam" + link: https://www.alura.com.br/artigos/react-hooks + - type: course + title: "Imersão React: AluraQuiz - Aula 03" + link: https://cursos.alura.com.br/imersoes/aulas/aula-3-inputs-e-pagina-de-quiz-c35 + - type: course + title: "Imersão React: AluraKut - Aula 02" + link: https://cursos.alura.com.br/imersoes/aulas/aula-2-react-state-e-o-primeiro-formulario-c54 + - type: course + title: "Curso React: gerenciamento de estados globais com ContextAPI" + link: https://cursos.alura.com.br/course/react-context-estados-globais-contextapi + - type: course + title: "Curso React: escrevendo com Typescript" + link: https://www.alura.com.br/curso-online-react-modernizando-escrever-typescript diff --git a/_data/blocks/react-hooks-form.pt_BR.yaml b/_data/blocks/react-hooks-form.pt_BR.yaml new file mode 100644 index 000000000..e26722cb9 --- /dev/null +++ b/_data/blocks/react-hooks-form.pt_BR.yaml @@ -0,0 +1,17 @@ +name: React Hooks - Form +logo: +short-description: +key-objectives: + - Gerenciar formulários +aditional-objectives: +contents: + - type: site + title: "React Hook Form: Documentação (inglês)" + link: https://react-hook-form.com/get-started + - type: article + title: "Dev.to: React Hook Form" + link: https://dev.to/stanley/react-hook-form-1hk + - type: youtube + title: "Huriel: Como usar o React Hook Form!" + link: https://www.youtube.com/watch?v=QEdm3EVrhY0 +alura-contents: diff --git a/_data/blocks/react-hooks-memo.pt_BR.yaml b/_data/blocks/react-hooks-memo.pt_BR.yaml new file mode 100644 index 000000000..5a9286d9e --- /dev/null +++ b/_data/blocks/react-hooks-memo.pt_BR.yaml @@ -0,0 +1,26 @@ +name: React Hooks - Memo +logo: +short-description: +key-objectives: + - Controlar o estado de variáveis externas +aditional-objectives: +contents: + - type: site + title: "React: Documentação - useMemo" + link: https://pt-br.reactjs.org/docs/hooks-reference.html#usememo + - type: article + title: "React.useMemo na prática" + link: https://medium.com/reactbrasil/react-usememo-na-pr%C3%A1tica-692110771c01 + - type: article + title: "Diminuindo Processamento com useMemo em React" + link: https://blog.matheuscastiglioni.com.br/diminuindo-processamento-com-use-memo-em-react/ + - type: site + title: "useHooks.com: useMemo (inglês)" + link: https://usehooks.com/useMemo/ + - type: youtube + title: "React Floripa: Os mitos sobre useMemo e useCallback" + link: https://www.youtube.com/watch?v=ZntFz_DDakQ +alura-contents: + - type: course + title: "Curso React: gerenciamento de estados globais com ContextAPI" + link: https://cursos.alura.com.br/course/react-context-estados-globais-contextapi diff --git a/_data/blocks/react-hooks-ref.pt_BR.yaml b/_data/blocks/react-hooks-ref.pt_BR.yaml new file mode 100644 index 000000000..7b1748fd6 --- /dev/null +++ b/_data/blocks/react-hooks-ref.pt_BR.yaml @@ -0,0 +1,23 @@ +name: React Hooks - Ref +logo: +short-description: +key-objectives: + - Criar objetos mutáveis +aditional-objectives: +contents: + - type: site + title: "React: Documentação - useRef" + link: https://pt-br.reactjs.org/docs/hooks-reference.html#useref + - type: article + title: "Conhecendo o useRef do React" + link: https://medium.com/@guigaoliveira_/conhecendo-o-useref-do-react-9d67e66 + - type: article + title: "Primeiros passos com React Hooks — useMemo e useCallback" + link: https://medium.com/@devjpnobrega/primeiros-passos-com-react-hooks-usememo-e-usecallback-13d54da4f9ba + - type: article + title: "The Complete Guide to useRef() and Refs in React (inglês)" + link: https://dmitripavlutin.com/react-useref-guide/ +alura-contents: + - type: course + title: "Curso React: testando os seus componentes" + link: https://www.alura.com.br/curso-online-react-testando-componentes diff --git a/_data/blocks/react-hooks-state.pt_BR.yaml b/_data/blocks/react-hooks-state.pt_BR.yaml new file mode 100644 index 000000000..da1e1db44 --- /dev/null +++ b/_data/blocks/react-hooks-state.pt_BR.yaml @@ -0,0 +1,34 @@ +name: React Hooks - State +logo: +short-description: +key-objectives: + - Controlar o estado de componentes + - Manipular variáveis + - Atualizar o valor de elementos +aditional-objectives: +contents: + - type: site + title: "React: Documentação - Introdução aos Hooks" + link: https://pt-br.reactjs.org/docs/hooks-intro.html#gatsby-focus-wrapper + - type: site + title: "React: Documentação - Usando o State do Hook" + link: https://pt-br.reactjs.org/docs/hooks-state.html#gatsby-focus-wrapper + - type: site + title: "MDN Web Docs: React interactivity: Events and state (inglês)" + link: https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_interactivity_events_state + - type: article + title: "Primeiros passos com React Hooks — useState" + link: https://medium.com/@devjpnobrega/primeiros-passos-com-react-hooks-usestate-aa4eeeec5f4e +alura-contents: + - type: article + title: "React Hooks: o que é e como eles funcionam" + link: https://www.alura.com.br/artigos/react-hooks + - type: course + title: "Imersão React: AluraCord - Aula 02" + link: https://cursos.alura.com.br/imersoes/aulas/aula-02-state-novas-paginas-e-navegacao-spa-vs-a-tradicional-c69 + - type: course + title: "Curso React: gerenciamento de estados globais com ContextAPI" + link: https://cursos.alura.com.br/course/react-context-estados-globais-contextapi + - type: course + title: "Curso React: escrevendo com Typescript" + link: https://www.alura.com.br/curso-online-react-modernizando-escrever-typescript diff --git a/_data/blocks/react-props.pt_BR.yaml b/_data/blocks/react-props.pt_BR.yaml new file mode 100644 index 000000000..926f45cbd --- /dev/null +++ b/_data/blocks/react-props.pt_BR.yaml @@ -0,0 +1,30 @@ +name: React - Props +logo: +short-description: +key-objectives: + - Como passar props + - Como manipular props +aditional-objectives: +contents: + - type: site + title: "React: Documentação - Componentes e Props" + link: https://pt-br.reactjs.org/docs/components-and-props.html#gatsby-focus-wrapper + - type: site + title: "React: Documentação - Render Props" + link: https://pt-br.reactjs.org/docs/render-props.html#gatsby-focus-wrapper + - type: site + title: "MDN Web Docs: Começando com React - Variáveis e props" + link: https://developer.mozilla.org/pt-BR/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started#vari%C3%A1veis_e_props +alura-contents: + - type: site + title: "Primeiras aulas do curso React: abstraindo seu CSS com Styled Components" + link: https://www.alura.com.br/conteudo/react-styled-components + - type: course + title: "Imersão React: AluraQuiz - Aula 02" + link: https://cursos.alura.com.br/imersoes/aulas/aula-2-linter-rotas-e-state-c34 + - type: course + title: "Curso React: abstraindo seu CSS com Styled Components" + link: https://www.alura.com.br/curso-online-react-styled-components + - type: course + title: "Curso React: escrevendo com Typescript" + link: https://www.alura.com.br/curso-online-react-modernizando-escrever-typescript diff --git a/_data/blocks/react-testing-library.pt_BR.yaml b/_data/blocks/react-testing-library.pt_BR.yaml new file mode 100644 index 000000000..3fca79513 --- /dev/null +++ b/_data/blocks/react-testing-library.pt_BR.yaml @@ -0,0 +1,20 @@ +name: React Testing Library +logo: +short-description: +key-objectives: + - Testar componentes React +aditional-objectives: +contents: + - type: site + title: "React: Documentação - Visão Geral sobre Testes" + link: https://pt-br.reactjs.org/docs/testing.html#gatsby-focus-wrapper + - type: youtube + title: "Washington Developer: React: Teste seus componentes | Jest | Testing Library" + link: https://www.youtube.com/watch?v=pbwXsjVEMqg + - type: site + title: "React Testing Library: Documentação (inglês)" + link: https://testing-library.com/docs/react-testing-library/intro/ +alura-contents: + - type: course + title: "Curso React: automatizando os testes em aplicações front-end" + link: https://www.alura.com.br/curso-online-react-automatizando-testes diff --git a/_data/blocks/react-webrouting.pt_BR.yaml b/_data/blocks/react-webrouting.pt_BR.yaml new file mode 100644 index 000000000..4ac63a09e --- /dev/null +++ b/_data/blocks/react-webrouting.pt_BR.yaml @@ -0,0 +1,32 @@ +name: Roteamento web para React +logo: +short-description: +key-objectives: + - Manipular a navegação entre interfaces e componentes +aditional-objectives: +contents: + - type: site + title: "Documentação: Divisão de Código Baseada em Rotas" + link: https://pt-br.reactjs.org/docs/code-splitting.html#route-based-code-splitting + - type: site + title: "Documentação: Analisando componentes com o DevTools Profiler" + link: https://pt-br.reactjs.org/docs/optimizing-performance.html#profiling-components-with-the-devtools-profiler + - type: article + title: "Roteamento no React com os poderes do React Router v4" + link: https://medium.com/collabcode/roteamento-no-react-com-os-poderes-do-react-router-v4-fbc191b9937d + - type: article + title: "ReactJs: Manipulando rotas com react-router" + link: https://ateliware.com/blog/react-router + - type: article + title: "Tutorial de React Router" + link: https://www.freecodecamp.org/portuguese/news/tutorial-de-react-router-como-usar-render-redirect-switch-link-e-mais-com-exemplos-de-codigo/ + - type: youtube + title: "Kevin Beltrão: Rotas com React Router Dom" + link: https://www.youtube.com/watch?v=9pB_lwmLc74 +alura-contents: + - type: youtube + title: "Alura: Como configurar o React Router para sua SPA" + link: https://www.youtube.com/watch?v=4Tb8dp5GYqI + - type: course + title: "Curso React: conhecendo a biblioteca React Router" + link: https://www.alura.com.br/curso-online-react-biblioteca-react-router diff --git a/_data/blocks/redux-saga.pt_BR.yaml b/_data/blocks/redux-saga.pt_BR.yaml new file mode 100644 index 000000000..9a77ce8dd --- /dev/null +++ b/_data/blocks/redux-saga.pt_BR.yaml @@ -0,0 +1,32 @@ +name: Redux Saga +logo: +short-description: +key-objectives: + - Criar e manter chamadas assíncronas e efeitos +aditional-objectives: +contents: + - type: site + title: "Documentação: Redux Saga (inglês)" + link: https://redux-saga.js.org/docs/introduction/GettingStarted + - type: article + title: "Redux-Saga: Gerenciando efeitos e ações" + link: https://oieduardorabelo.medium.com/redux-saga-gerenciando-efeitos-f518a31c744e + - type: article + title: "Redux Saga: Você no controle das operações assíncronas" + link: https://medium.com/nossa-coletividad/redux-saga-voc%C3%AA-no-controle-das-opera%C3%A7%C3%B5es-ass%C3%ADncronas-71c9e6b3aabc + - type: youtube + title: "Kuze: Entendendo o fluxo do Redux Saga - Criando um app" + link: https://www.youtube.com/watch?v=5NFIRaXwrOQ + - type: youtube + title: "Programador de Sucesso: O guia definitivo para aprender REDUX e REDUX SAGA" + link: https://www.youtube.com/watch?v=7YoMyQ-jsBk +alura-contents: + - type: article + title: "Redux: desvendando a arquitetura com Flux" + link: https://www.alura.com.br/artigos/redux-desvendando-arquitetura-flux + - type: youtube + title: "Alura: Como funciona o Redux?" + link: https://www.youtube.com/watch?v=DbEpBeZ6yic + - type: podcast + title: "Hipsters.tech: Guia do iniciante em React 209" + link: https://www.alura.com.br/podcast/guia-do-iniciante-em-react-hipsters-209-a341 diff --git a/_data/blocks/reflection-and-attributes.pt_BR.yaml b/_data/blocks/reflection-and-attributes.pt_BR.yaml new file mode 100644 index 000000000..e596ca62c --- /dev/null +++ b/_data/blocks/reflection-and-attributes.pt_BR.yaml @@ -0,0 +1,42 @@ +name: Reflection e atributos +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: Reflection (C#)" + link: https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/concepts/reflection + - type: ARTICLE + title: "Reflection in C# (inglês)" + link: https://medium.com/@ghadeer.kenawi/reflection-in-c-fa27d8f827f8 + - type: ARTICLE + title: "Reflection em Javascript" + link: https://medium.com/trainingcenter/reflection-em-javascript-73fc0e702e2 + - type: YOUTUBE + title: "Marco Diniz: C# em 5 minutos - Reflection" + link: https://www.youtube.com/watch?v=EX_0lf5zyrU + - type: YOUTUBE + title: "Kerplunk: C# Orientação a Objeto - Reflection " + link: https://www.youtube.com/watch?v=fl1ChSv2yqI + - type: YOUTUBE + title: "Dev Coffee BR: C# Orientação a Objeto - Reflection " + link: https://www.youtube.com/watch?v=XkgeNMvZyzo +alura-contents: + - type: COURSE + title: "Curso C# Reflection parte 1: metadados do seu código .NET" + link: https://cursos.alura.com.br/course/reflection-parte-1 + - type: COURSE + title: "Curso C# Reflection parte 2: implementando injeção de dependência do zero" + link: https://cursos.alura.com.br/course/reflection-parte-2 + - type: COURSE + title: "Curso Java Reflection parte 1: entendendo a metaprogramação" + link: https://cursos.alura.com.br/course/java-reflection-meta-programacao + - type: COURSE + title: "Curso Java Reflection parte 2: Anotações e Injeção de Dependências" + link: https://cursos.alura.com.br/course/java-reflection-anotacoes-injecao-dependencia + - type: COURSE + title: "Curso Metaprogramação com PHP: API de Reflection" + link: https://cursos.alura.com.br/course/metaprogramacao-php-api-reflection \ No newline at end of file diff --git a/_data/blocks/reinforcement-learning.pt_BR.yaml b/_data/blocks/reinforcement-learning.pt_BR.yaml new file mode 100644 index 000000000..fa1eca651 --- /dev/null +++ b/_data/blocks/reinforcement-learning.pt_BR.yaml @@ -0,0 +1,37 @@ +name: Aprendizado por Reforço +logo: +short-description: +key-objectives: + - O Aprendizado por Reforço é uma área de Machine Learning que se preocupa com a forma como agentes inteligentes devem tomar medidas num ambiente, a fim de maximizar a noção de recompensa cumulativa. + - Entender os conceitos de agente e recompensa + - Entender a diferença entre reforço positivo e negativo + - Conhecer o modelo Markov Decision Process + - Entender o conceito de Retorno + - Utilizar o algoritmo Q-learning +aditional-objectives: +contents: + - type: SITE + title: "Acervo Lima: Aprendizado por Reforço" + link: https://acervolima.com/aprendizagem-por-reforco/ + - type: ARTICLE + title: "Aprendizado por Reforço — Introdução" + link: https://medium.com/turing-talks/aprendizado-por-refor%C3%A7o-1-introdu%C3%A7%C3%A3o-7382ebb641ab + - type: ARTICLE + title: "Aprendizado por Reforço — Gym" + link: https://medium.com/turing-talks/aprendizado-por-refor%C3%A7o-4-gym-d18ac1280628 + - type: YOUTUBE + title: "Hemerson Pistori: Aprendizagem por reforço e Q-Learning" + link: https://www.youtube.com/watch?v=zQUFxZsZODY + - type: YOUTUBE + title: "PROF. FABIO SANTOS: Aprendizagem por Reforço" + link: https://www.youtube.com/watch?v=alX2JJoosIM + - type: YOUTUBE + title: "Instituto de Computação - UFF: Aprendizado por Reforço: conceitos, aplicações e desafios" + link: https://www.youtube.com/watch?v=HZ2CoPuMUB0 + - type: YOUTUBE + title: "Talendar: Inteligência Artificial Aprende a Jogar Super Mario Bros (Aprendizado por Reforço)" + link: https://www.youtube.com/watch?v=9nqwVYCxQls + - type: YOUTUBE + title: "Galdir Reges: Introdução ao aprendizado por reforço profundo (Deep Reinforcement Learning)" + link: https://www.youtube.com/watch?v=vBiUSREcde8 +alura-contents: \ No newline at end of file diff --git a/_data/blocks/responsive-design.pt_BR.yaml b/_data/blocks/responsive-design.pt_BR.yaml new file mode 100644 index 000000000..49baa8173 --- /dev/null +++ b/_data/blocks/responsive-design.pt_BR.yaml @@ -0,0 +1,31 @@ +name: Design Responsivo +logo: +short-description: +key-objectives: + - Ajustar suas páginas para o tamanho da tela do usuário + - Media queries + - Conhecer o conceito de Mobile first +aditional-objectives: +contents: + - type: ARTICLE + title: "Design responsivo para leigos" + link: https://medium.com/neworder/design-responsivo-para-leigos-888c9d0dfdaf + - type: ARTICLE + title: "Entendendo as diferenças entre design responsivo, adaptativo e mobile-first" + link: https://medium.com/@fnandaleite/entendendo-as-diferen%C3%A7as-entre-design-responsivo-adaptativo-e-mobile-first-ea3c61fc9181 + - type: ARTICLE + title: "Web Design Responsivo — O Que É e Como Usá-lo" + link: https://medium.com/@carlosverza/web-design-responsivo-o-que-%C3%A9-e-como-us%C3%A1-lo-12477b168fc7 + - type: YOUTUBE + title: "MobGeek: O que é Design Responsivo?" + link: https://www.youtube.com/watch?v=BJpf9VD7A5g + - type: YOUTUBE + title: "Ralf Lima: Mobile First e Desktop First" + link: https://www.youtube.com/watch?v=oqggJTC3_vA +alura-contents: + - type: YOUTUBE + title: "Alura: Curso de Web Design Responsivo: Páginas que se adaptam do mobile ao desk - Aula 1" + link: https://www.youtube.com/watch?v=Jd0SYr6LJKg + - type: COURSE + title: "Curso Layouts Responsivos: trabalhando com layouts mobile" + link: https://www.alura.com.br/curso-online-mobile-first-layouts-responsivos \ No newline at end of file diff --git a/_data/blocks/rxjs-fundamentals.pt_BR.yaml b/_data/blocks/rxjs-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..b19a5f177 --- /dev/null +++ b/_data/blocks/rxjs-fundamentals.pt_BR.yaml @@ -0,0 +1,35 @@ +name: RxJS - Fundamentos +logo: +short-description: +key-objectives: + - 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 +aditional-objectives: +contents: + - type: SITE + title: "Documentação RxJS (inglês)" + link: https://rxjs.dev/guide/overview + - type: ARTICLE + title: "O que é RxJS?" + link: https://blog.flavioflima.com/2018/08/o-que-e-rxjs.html + - type: ARTICLE + title: "RxJS – Entendendo o conceito na prática" + link: https://bognarjunior.wordpress.com/2018/10/07/rxjs-entendendo-o-conceito-na-pratica/ + - type: YOUTUBE + title: "Paulo Eduardo Melo: Observable" + link: https://www.youtube.com/watch?v=3n-WCiSxu2k + - type: YOUTUBE + title: "Paulo Eduardo Melo: Observable a fundo" + link: https://www.youtube.com/watch?v=dm_9xWPxLUg +alura-contents: + - type: YOUTUBE + title: "Alura: Programação Reativa - Alura Live 54" + link: https://www.youtube.com/watch?v=N0ie4xe48Ng + - type: SITE + title: "Primeiras aulas do curso Angular e RxJS: programação reativa" + link: https://www.alura.com.br/conteudo/angular-rxjs-introducao-programacao-reativa + - type: COURSE + title: "Curso Angular e RxJS: programação reativa" + link: https://www.alura.com.br/curso-online-angular-rxjs-introducao-programacao-reativa \ No newline at end of file diff --git a/_data/blocks/seo-strategies.pt_BR.yaml b/_data/blocks/seo-strategies.pt_BR.yaml new file mode 100644 index 000000000..2356e9559 --- /dev/null +++ b/_data/blocks/seo-strategies.pt_BR.yaml @@ -0,0 +1,35 @@ +name: Estratégias de SEO +logo: +short-description: +key-objectives: + - Escolher palavras-chave + - Entender como o Google classifica páginas + - Conhecer os fatores de rankeamento + - Fazer Link Building +aditional-objectives: +contents: + - type: ARTICLE + title: "Guia completo de SEO — Como fazer e quais são as boas práticas" + link: https://medium.com/@redacaogalata/guia-completo-de-seo-como-fazer-e-quais-s%C3%A3o-as-boas-pr%C3%A1ticas-529ea97fdc98 + - type: YOUTUBE + title: "Kenneth Corrêa: SEO - O que é SEO?" + link: https://www.youtube.com/watch?v=BJpf9VD7A5g + - type: YOUTUBE + title: "Canal do Consultor: Introdução ao SEO: O que é? Para que serve? Diferenças entre SEO e SEM" + link: https://www.youtube.com/watch?v=hn0DDvCB5eg +alura-contents: + - type: ARTICLE + title: "SEO: o que é, boas práticas e ferramentas para a sua estratégia dar certo" + link: https://www.alura.com.br/artigos/seo-o-que-e-boas-praticas-ferramentas-estrategia + - type: PODCAST + title: "Hipsters.tech: SEO moderno - Hipsters Ponto Tech 289" + link: https://www.alura.com.br/podcast/hipsterstech-seo-moderno-hipsters-ponto-tech-289-a1394 + - type: PODCAST + title: "Layers.tech: SEO e Youtube - Layers ponto tech 38" + link: https://www.alura.com.br/podcast/seo-e-youtube-layers-ponto-tech-38-a1081 + - type: YOUTUBE + title: "Alura: Como rankear bem no Google?" + link: https://www.youtube.com/watch?v=PfGyzrLGqZ8 + - type: COURSE + title: "Formação SEO" + link: https://www.alura.com.br/formacao-seo \ No newline at end of file diff --git a/_data/blocks/service-workers.pt_BR.yaml b/_data/blocks/service-workers.pt_BR.yaml new file mode 100644 index 000000000..b6c69a52a --- /dev/null +++ b/_data/blocks/service-workers.pt_BR.yaml @@ -0,0 +1,32 @@ +name: Service Workers +logo: +short-description: +key-objectives: + - Melhorar a performance e trabalhar offline +aditional-objectives: +contents: + - type: site + title: "MDN Web Docs: Usando Service Worker" + link: https://developer.mozilla.org/pt-BR/docs/Web/API/Service_Worker_API/Using_Service_Workers + - type: article + title: "Os primeiros passos para tornar uma aplicação web offline" + link: https://medium.com/aurum-tech/os-primeiros-passos-para-tornar-uma-aplica%C3%A7%C3%A3o-web-offline-8dee5958818b + - type: article + title: "Como o JavaScript funciona: Service Workers, seu ciclo de vida e casos de uso" + link: https://medium.com/reactbrasil/como-o-javascript-funciona-service-workers-seu-ciclo-de-vida-e-casos-de-uso-8404870ee728 + - type: article + title: "Service Workers in React (inglês)" + link: https://levelup.gitconnected.com/service-workers-in-react-8bcaccfd0356 + - type: youtube + title: "Matheus da Guia de Campos: Configurando service-worker em sua aplicação Reactjs para cache de páginas estáticas" + link: https://www.youtube.com/watch?v=dBigOB4p1zY +alura-contents: + - type: article + title: "Offline Web" + link: https://www.alura.com.br/artigos/palestra-offline-web-com-service-workers + - type: podcast + title: "Hipsters.tech: Progressive Web Apps - Hipsters 03" + link: https://www.alura.com.br/podcast/progressive-web-apps-hipsters-03-a583 + - type: youtube + title: "O que é uma Progressive Web App (PWA)?" + link: https://www.youtube.com/watch?v=UeMkXvmk68Q diff --git a/_data/blocks/solid.pt_BR.yaml b/_data/blocks/solid.pt_BR.yaml new file mode 100644 index 000000000..ac0f15f01 --- /dev/null +++ b/_data/blocks/solid.pt_BR.yaml @@ -0,0 +1,50 @@ +name: SOLID +logo: +short-description: +key-objectives: + - Conhecer boas práticas no desenvolvimento de software +aditional-objectives: +contents: + - type: ARTICLE + title: "Princípios de S.O.L.I.D em C# — Guia prático" + link: https://medium.com/beelabacademy/princ%C3%ADpios-de-s-o-l-i-d-em-c-guia-pr%C3%A1tico-cbb1e6584284 + - type: ARTICLE + title: "Um pouco sobre estruturas de dados em C#" + link: https://guih2127.medium.com/um-pouco-sobre-estruturas-de-dados-em-c-e4371fe651d8 + - type: YOUTUBE + title: "Filipe Deschamps: SOLID fica fácil com Essas Ilustrações" + link: https://www.youtube.com/watch?v=6SfrO3D4dHM + - type: YOUTUBE + title: "Central dotNET: Princípios de SOLID com C#" + link: https://www.youtube.com/watch?v=iU4BMUcjg8g + - type: YOUTUBE + title: "Felipe Pinheiro - Tech: Princípios SOLID, o que é DIP?" + link: https://www.youtube.com/watch?v=q0BGgQJcp7w +alura-contents: + - type: ARTICLE + title: "Design patterns: Breve introdução aos padrões de projeto" + link: https://www.alura.com.br/artigos/design-patterns-introducao-padroes-projeto + - type: PODCAST + title: "SOLID: Código bom e bonito - Hipsters Ponto Tech 219" + link: https://www.alura.com.br/podcast/hipsterstech-solid-codigo-bom-e-bonito-hipsters-ponto-tech-219-a649 + - type: YOUTUBE + title: "Alura: Clean Code e Solid" + link: https://www.youtube.com/watch?v=XV9B4LX_re8 + - type: YOUTUBE + title: "Alura: Curso de SOLID com Java" + link: https://www.youtube.com/watch?v=2SbKmijNi70 + - type: COURSE + title: "Curso SOLID com C#: princípios da programação orientada a objetos" + link: https://cursos.alura.com.br/course/solid-csharp-principios-orientacao-a-objetos + - type: COURSE + title: "Curso SOLID com Java: princípios da programação orientada a objetos" + link: https://cursos.alura.com.br/course/solid-orientacao-objetos-java + - type: COURSE + title: "Curso SOLID com PHP: princípios da programação orientada a objetos" + link: https://cursos.alura.com.br/course/solid-php-principios-orientacao-a-objetos + - type: COURSE + title: "Boas práticas em C#" + link: https://cursos.alura.com.br/formacao-boas-praticas-c-sharp + - type: COURSE + title: "Boas práticas em PHP" + link: https://cursos.alura.com.br/formacao-boas-praticas-php \ No newline at end of file diff --git a/_data/blocks/spa-concepts.pt_BR.yaml b/_data/blocks/spa-concepts.pt_BR.yaml new file mode 100644 index 000000000..1f87aeb1d --- /dev/null +++ b/_data/blocks/spa-concepts.pt_BR.yaml @@ -0,0 +1,42 @@ +name: Conceitos SPA +logo: +short-description: +key-objectives: + - Entender o que é uma SPA + - Estabelecer rotas para outras páginas + - Conhecer frameworks SPA + - Comunicação com APIs +aditional-objectives: + - Conhecer a biblioteca React Router +contents: + - type: site + title: "Wikipédia: Aplicativo de página única (SPA)" + link: https://pt.wikipedia.org/wiki/Aplicativo_de_p%C3%A1gina_%C3%BAnica + - type: site + title: "MDN Web Docs: SPA (Single-page application) (inglês)" + link: https://developer.mozilla.org/en-US/docs/Glossary/SPA + - type: article + title: "What I wish I had known about SPAs (inglês)" + link: https://stackoverflow.blog/2021/12/28/what-i-wish-i-had-known-about-single-page-applications/ +alura-contents: + - type: podcast + title: "Hipsters.tech: Single Page Applications" + link: https://www.hipsters.tech/single-page-applications-hipsters-16/ + - type: youtube + title: "Alura: O que é uma Single-Page Application? (SPA)" + link: https://www.youtube.com/watch?v=opxYpCKzlLk + - type: youtube + title: "Alura: Como configurar o React Router para sua SPA" + link: https://www.youtube.com/watch?v=4Tb8dp5GYqI + - type: course + title: "Imersão React: AluraCord - Aula 02" + link: https://cursos.alura.com.br/imersoes/aulas/aula-02-state-novas-paginas-e-navegacao-spa-vs-a-tradicional-c69 + - type: site + title: "Primeiras aulas do curso React Router: navegação em uma SPA" + link: https://www.alura.com.br/conteudo/react-router-navegacao-spa + - type: course + title: "Curso React Router: navegação em uma SPA" + link: https://www.alura.com.br/curso-online-react-router-navegacao-spa + - type: course + title: "Curso React: conhecendo a biblioteca React Router" + link: https://www.alura.com.br/curso-online-react-biblioteca-react-router diff --git a/_data/blocks/sql-fundamentals.pt_BR.yaml b/_data/blocks/sql-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..b330a3031 --- /dev/null +++ b/_data/blocks/sql-fundamentals.pt_BR.yaml @@ -0,0 +1,53 @@ +name: SQL - Fundamentos +logo: +short-description: +key-objectives: + - Conhecer os comandos mais comuns do SQL + - Usar SELECT para consultar uma tabela + - Usar INSERT para inserir dados em uma tabela + - Usar UPDATE para atualizar uma tabela + - Usar DELETE para remover dados de uma tabela + - Usar JOIN para conectar os dados de múltiplas tabelas + - Conhecer as cláusulas (FROM, ORDER BY, etc) +aditional-objectives: +contents: + - type: ARTICLE + title: "SQL — O que é e como funciona na prática?" + link: https://medium.com/pravaler-digital-team/sql-o-que-%C3%A9-e-como-funciona-na-pr%C3%A1tica-6ae7a322554a + - type: ARTICLE + title: "SQL: comandos básicos" + link: https://medium.com/nerdzao/sql-comandos-b%C3%A1sicos-483a8dc12909 + - type: YOUTUBE + title: "CreateSe: Comandos básicos do SQL" + link: https://www.youtube.com/watch?v=_rZxrqn0X-4 +alura-contents: + - type: ARTICLE + title: "O que é SQL?" + link: https://www.alura.com.br/artigos/o-que-e-sql + - type: ARTICLE + title: "SQL: Comandos básicos" + link: https://www.alura.com.br/artigos/sql-comandos-basicos + - type: ARTICLE + title: "SQL: consultas com SELECT" + link: https://www.alura.com.br/artigos/sql-consultas-com-select + - type: ARTICLE + title: "SQL JOIN: Aprenda INNER, LEFT, RIGHT, FULL e CROSS" + link: https://www.alura.com.br/artigos/join-em-sql + - type: ARTICLE + title: "SQL Injection" + link: https://www.alura.com.br/artigos/sql-injection-proteja-sua-aplicacao + - type: YOUTUBE + title: "Alura: Iniciando consultas em uma das maiores linguagens de banco de dados" + link: https://www.youtube.com/watch?v=gka6ZMnKTGs + - type: YOUTUBE + title: "Alura: O que é SQL e NoSQL?" + link: https://www.youtube.com/watch?v=aure5d3B88g + - type: COURSE + title: "Curso SQL com MySQL: manipule e consulte dados" + link: https://cursos.alura.com.br/course/mysql-manipule-dados-com-sql + - type: COURSE + title: "Curso Consultas SQL: avançando no SQL com MySQL" + link: https://cursos.alura.com.br/course/mysql-consultas-sql + - type: COURSE + title: "Formação SQL com MySQL Server da Oracle" + link: https://cursos.alura.com.br/formacao-oracle-mysql \ No newline at end of file diff --git a/_data/blocks/statistics-and-math-fundamentals.pt_BR.yaml b/_data/blocks/statistics-and-math-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..b68014f30 --- /dev/null +++ b/_data/blocks/statistics-and-math-fundamentals.pt_BR.yaml @@ -0,0 +1,52 @@ +name: Estatística e Matemática - Fundamentos +logo: +short-description: +key-objectives: + - Equações, funções e limites + - Logaritmos + - Matrizes, determinantes, vetores e espaço vetorial + - Derivadas e integrais + - Diferença entre média, mediana e moda + - Distribuição de frequência + - Variância e desvio padrão + - Distribuição binomial, poisson e normal + - Nível e intervalo de confiança + - Técnicas de amostragem + - Regressão linear + - Séries +aditional-objectives: +contents: + - type: ARTICLE + title: "Preciso saber matemática para aprender Ciência de Dados?" + link: https://beatrizyumi.medium.com/preciso-saber-matem%C3%A1tica-para-aprender-ci%C3%AAncia-de-dados-9a9b7c7846a9 + - type: ARTICLE + title: "Estatística Descritiva para Ciência de Dados" + link: https://paulors82.medium.com/estat%C3%ADstica-descritiva-para-ci%C3%AAncia-de-dados-582b02d97e82 + - type: YOUTUBE + title: "Mario Filho: As 3 Áreas da Matemática Usadas em Data Science" + link: https://www.youtube.com/watch?v=niF_T21vdZ4 + - type: YOUTUBE + title: "PrograMaria: Estatística básica para Ciência de Dados" + link: https://www.youtube.com/watch?v=xiZwte8D1Xs + - type: YOUTUBE + title: "Data Viking: Estatística básica para ciência de dados" + link: https://www.youtube.com/watch?v=K_q6uCgV0Mk + - type: YOUTUBE + title: "FC Nuvem: Introdução a Estatística para Ciência de Dados" + link: https://www.youtube.com/watch?v=NdRKIIFa63c +alura-contents: + - type: ARTICLE + title: "Média ou mediana? Entendendo cada uma" + link: https://www.alura.com.br/artigos/media-ou-mediana-entendendo-cada-uma + - type: ARTICLE + title: "Modelos matemáticos utilizados em séries temporais" + link: https://www.alura.com.br/artigos/modelos-matematicos-utilizados-em-series-temporais + - type: YOUTUBE + title: "Alura: Preciso saber matemática para programar?" + link: https://www.youtube.com/watch?v=WZo8s-zsfuY + - type: COURSE + title: "Formação Estatística com Python" + link: https://cursos.alura.com.br/formacao-estatistica-python + - type: COURSE + title: "Formação Estatística com R" + link: https://cursos.alura.com.br/formacao-estatistica-r \ No newline at end of file diff --git a/_data/blocks/storytelling-with-data.pt_BR.yaml b/_data/blocks/storytelling-with-data.pt_BR.yaml new file mode 100644 index 000000000..45b3d678d --- /dev/null +++ b/_data/blocks/storytelling-with-data.pt_BR.yaml @@ -0,0 +1,29 @@ +name: Storytelling com dados +logo: +short-description: +key-objectives: + - Storytelling é uma forma de contar histórias que engajam e chamam a atenção da pessoa que está ouvindo. Dentro da análise de dados, é algo muito importante para passar as informações ao receptor de modo que o mesmo compreenda não apenas os dados, mas também todo o contexto. +aditional-objectives: +contents: + - type: ARTICLE + title: "Como contar histórias com gráficos — Resumo do livro Storytelling com Dados" + link: https://medium.com/resumos-resenhas/storytelling-com-dados-resumo-fd63ebe4f704 + - type: ARTICLE + title: "Introdução a Validação-Cruzada: K-Fold" + link: https://drigols.medium.com/introdu%C3%A7%C3%A3o-a-valida%C3%A7%C3%A3o-cruzada-k-fold-2a6bced32a90 + - type: YOUTUBE + title: "Descomplica Estatistica: Storytelling com dados Parte I - A importância de entender o contexto" + link: https://www.youtube.com/watch?v=gEsWb4_pcA0 + - type: YOUTUBE + title: "Aprendendo na Prática: [Storytelling com dados] Transforme a Forma Como Você Mostra Seus Dados" + link: https://www.youtube.com/watch?v=8iZk1f8KA8s +alura-contents: + - type: ARTICLE + title: "Destaque-se com storytelling" + link: https://www.alura.com.br/artigos/destaque-se-com-storytelling + - type: COURSE + title: "Curso Storytelling: visão de negócios e desenvolvimento pessoal" + link: https://cursos.alura.com.br/course/storytelling-negocios-desenvolvimento-pessoal + - type: COURSE + title: "Curso Data Visualization: técnicas de visualização com Google Sheets" + link: https://cursos.alura.com.br/course/data-visualization-visualizacao-google-sheets \ No newline at end of file diff --git a/_data/blocks/styled-components.pt_BR.yaml b/_data/blocks/styled-components.pt_BR.yaml new file mode 100644 index 000000000..b5a85eaf7 --- /dev/null +++ b/_data/blocks/styled-components.pt_BR.yaml @@ -0,0 +1,35 @@ +name: Styled Components +logo: +short-description: +key-objectives: + - Lidar com código CSS em componentes +aditional-objectives: +contents: + - type: article + title: "Criando Styled Components Com React" + link: https://blog.matheuscastiglioni.com.br/criando-styled-components-com-react/ + - type: site + title: "Documentação - Styled Components (inglês)" + link: https://styled-components.com/docs + - type: youtube + title: "Mario Souto - Dev Soutinho: Styled Components, por onde começar? Os poderes do CSS in JS" + link: https://www.youtube.com/watch?v=QdfjWRc4ySA + - type: youtube + title: "Mario Souto - Dev Soutinho: Como começar a estruturar um projeto React? com NextJS, Styled Components" + link: https://www.youtube.com/watch?v=mJK5oGixSYo + - type: youtube + title: "Marco Bruno: Como usar styled-compoents - Introdução" + link: https://www.youtube.com/watch?v=B9z51O1ctzU + - type: youtube + title: "BrasilJS: Efeito Stagger com React e Styled Components" + link: https://www.youtube.com/watch?v=HGrXz6vHngI +alura-contents: + - type: article + title: "React: componentes com Styled Components" + link: https://www.alura.com.br/artigos/react-componentes-com-styled-components + - type: site + title: "Primeiras aulas do curso React: abstraindo seu CSS com Styled Components" + link: https://www.alura.com.br/conteudo/react-styled-components + - type: course + title: "Curso React: abstraindo seu CSS com Styled Components" + link: https://www.alura.com.br/curso-online-react-styled-components diff --git a/_data/blocks/typescript-fundamentals.pt_BR.yaml b/_data/blocks/typescript-fundamentals.pt_BR.yaml new file mode 100644 index 000000000..370cca081 --- /dev/null +++ b/_data/blocks/typescript-fundamentals.pt_BR.yaml @@ -0,0 +1,53 @@ +name: TypeScript - Fundamentos +logo: +short-description: +key-objectives: + - Conhecer os tipos + - Declarar variáveis, considerando a diferença entre '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 +aditional-objectives: + - Usar 'template literals' + - Usar funções 'arrow' + - Fazer desestruturação ao ler arrays + - Usar 'forEach' + - Manipular arrays com 'map', 'filter' e 'reduce' +contents: + - type: site + title: "Microsoft Docs: Compreendendo o TypeScript" + link: https://docs.microsoft.com/pt-br/archive/msdn-magazine/2015/january/typescript-understanding-typescript + - type: article + title: "TypeScript: O guia definitivo" + link: https://oieduardorabelo.medium.com/typescript-o-guia-definitivo-1a63b04259cc + - type: youtube + title: "Mario Souto - Dev Soutinho: Linguagens Sem Tipos, da pra ficar bom programando nelas? JavaScript vs TypeScript" + link: https://www.youtube.com/watch?v=t-9-pkh5FDQ + - type: site + title: "Documentação: TypeScript for the New Programmer (inglês)" + link: https://www.typescriptlang.org/docs/handbook/typescript-from-scratch.html +alura-contents: + - type: article + title: "Javascript ou Typescript?" + link: https://www.alura.com.br/artigos/javascript-ou-typescript + - type: podcast + title: "Hipster.tech: O Hype do TypeScript" + link: https://www.alura.com.br/podcast/o-hype-do-typescript-hipsters-207-a344 + - type: youtube + title: "Alura: Quais são as principais vantagens do Typescript?" + link: https://www.youtube.com/watch?v=snwevp02sIw + - type: youtube + title: "Alura: Imersão React Live 02 - TypeScript no nosso projeto React" + link: https://www.youtube.com/watch?v=SpWFDTvgS9k + - type: course + title: "Formação Typescript" + link: https://www.alura.com.br/formacao-typescript + - type: course + title: "Curso React: escrevendo com Typescript" + link: https://www.alura.com.br/curso-online-react-modernizando-escrever-typescript diff --git a/_data/blocks/web-scraping.pt_BR.yaml b/_data/blocks/web-scraping.pt_BR.yaml new file mode 100644 index 000000000..af534ba0f --- /dev/null +++ b/_data/blocks/web-scraping.pt_BR.yaml @@ -0,0 +1,42 @@ +name: Web Scraping +logo: +short-description: +key-objectives: + - Web scraping ou Raspagem web é a extração de dados de websites. + - Usar o BeautifulSoup e Python para coletar dados + - Pesquisar e navegar no HTML + - Acessar o conteúdo e atributos das tags HTML + - Construir um dataframe +aditional-objectives: +contents: + - type: ARTICLE + title: "Tutorial para iniciantes: Web Scraping em Python" + link: https://medium.com/data-hackers/tutorial-para-iniciantes-web-scraping-em-python-bb71778ed40c + - type: ARTICLE + title: "Como fazer Web Scraping em Python" + link: https://medium.com/data-hackers/como-fazer-web-scraping-em-python-23c9d465a37f + - type: ARTICLE + title: "Scraping em Gráficos Interativos com Python" + link: https://medium.com/data-hackers/scraping-em-gr%C3%A1ficos-interativos-com-python-92e7a70d1e64 + - type: ARTICLE + title: "Como capturar comentários do Youtube usando Python" + link: https://medium.com/data-hackers/como-capturar-coment%C3%A1rios-do-youtube-usando-python-64ea39a483e6 + - type: YOUTUBE + title: "Simpledata: Aprenda Web Scraping de maneira fácil" + link: https://www.youtube.com/watch?v=OpX5Y7dzNjI + - type: YOUTUBE + title: "Codifike: Como fazer web scraping com Python em sites dinâmicos" + link: https://www.youtube.com/watch?v=VGroXCEaBiA + - type: YOUTUBE + title: "Codifike: Web scraping com Python - Coletando dados em sites e salvando em arquivo" + link: https://www.youtube.com/watch?v=_Ri-QjToQ24 + - type: YOUTUBE + title: "Codifike: Web scraping com Python Pandas" + link: https://www.youtube.com/watch?v=mF9qEcQQdRs + - type: YOUTUBE + title: "Codifike: Como fazer web scraping para monitorar preços usando Python" + link: https://www.youtube.com/watch?v=YKennHXZyJU +alura-contents: + - type: COURSE + title: "Curso Scraping com Python: coleta de dados na web" + link: https://cursos.alura.com.br/course/web-scraping-data-science-python \ No newline at end of file diff --git a/_data/blocks/webrouting-react.pt_BR.yaml b/_data/blocks/webrouting-react.pt_BR.yaml new file mode 100644 index 000000000..760a951b5 --- /dev/null +++ b/_data/blocks/webrouting-react.pt_BR.yaml @@ -0,0 +1,40 @@ +name: Roteamento web para React +logo: +short-description: +key-objectives: + - Manipular a navegação entre interfaces e componentes +aditional-objectives: +contents: + - + type: site + title: Documentação: Divisão de Código Baseada em Rotas + link: https://pt-br.reactjs.org/docs/code-splitting.html#route-based-code-splitting + - + type: site + title: Documentação: Analisando componentes com o DevTools Profiler + link: https://pt-br.reactjs.org/docs/optimizing-performance.html#profiling-components-with-the-devtools-profiler + - + type: article + title: Roteamento no React com os poderes do React Router v4 + link: https://medium.com/collabcode/roteamento-no-react-com-os-poderes-do-react-router-v4-fbc191b9937d + - + type: article + title: ReactJs: Manipulando rotas com react-router + link: https://ateliware.com/blog/react-router + - + type: article + title: Tutorial de React Router + link: https://www.freecodecamp.org/portuguese/news/tutorial-de-react-router-como-usar-render-redirect-switch-link-e-mais-com-exemplos-de-codigo/ + - + type: youtube + title: Kevin Beltrão: Rotas com React Router Dom + link: https://www.youtube.com/watch?v=9pB_lwmLc74 +alura-contents: + - + type: youtube + title: Alura: Como configurar o React Router para sua SPA + link: https://www.youtube.com/watch?v=4Tb8dp5GYqI + - + type: course + title: Curso React: conhecendo a biblioteca React Router + link: https://www.alura.com.br/curso-online-react-biblioteca-react-router diff --git a/_data/blocks/websockets.pt_BR.yaml b/_data/blocks/websockets.pt_BR.yaml new file mode 100644 index 000000000..85e7da044 --- /dev/null +++ b/_data/blocks/websockets.pt_BR.yaml @@ -0,0 +1,39 @@ +name: WebSockets +logo: +short-description: +key-objectives: + - Abrir uma sessão de comunicação entre o navegador e um servidor + - Enviar mensagens e receber respostas de um servidor sem consultar o mesmo +aditional-objectives: +contents: + - type: SITE + title: "Documentação: Escrevendo aplicações cliente WebSocket" + link: https://developer.mozilla.org/pt-BR/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications + - type: ARTICLE + title: "A necessidade de criar um servidor WebSocket" + link: https://medium.com/tableless/a-necessidade-de-criar-um-servidor-web-socket-63a7c56a1698 + - type: ARTICLE + title: "Como o JavaScript funciona: Aprofundando em WebSockets e HTTP/2 com SSE" + link: https://medium.com/reactbrasil/como-o-javascript-funciona-aprofundando-em-websockets-e-http-2-com-sse-como-escolher-o-caminho-d4639995ef85 + - type: ARTICLE + title: "Node.js — Usando WebSockets" + link: https://oieduardorabelo.medium.com/node-js-usando-websockets-5d642456d1f3 + - type: ARTICLE + title: "Como usar WebSockets com o Redux Saga" + link: https://medium.com/@otaviobn/como-usar-websockets-com-o-redux-saga-9db41ee033e6 + - type: YOUTUBE + title: "Filipe Deschamps: WebSockets na prática é MUITO poderoso" + link: https://www.youtube.com/watch?v=bQ7NNSyGV2U + - type: YOUTUBE + title: "Eduardo Palandrani: O que é WebSocket?" + link: https://www.youtube.com/watch?v=YJxKYv7GLIg +alura-contents: + - type: ARTICLE + title: "Entendendo o socket no Python criando um bot de IRC" + link: https://www.alura.com.br/artigos/entendendo-socket-no-python-criando-um-bot-de-irc + - type: YOUTUBE + title: "Alura: Entendendo WebSockets" + link: https://www.youtube.com/watch?v=RwUbUnPdWqs + - type: COURSE + title: "Curso PHP Reativo: programação assíncrona em tempo real" + link: https://cursos.alura.com.br/course/php-reativo-programacao-assincrona-tempo-real diff --git a/_data/blocks/wpf.pt_BR.yaml b/_data/blocks/wpf.pt_BR.yaml new file mode 100644 index 000000000..a99652fc0 --- /dev/null +++ b/_data/blocks/wpf.pt_BR.yaml @@ -0,0 +1,30 @@ +name: WPF +logo: +short-description: +key-objectives: + - Criar aplicativos para Windows + - Usar marcação e code-behind + - Criar um layout + - Criar modelos + - Desenvolver uma interface +aditional-objectives: +contents: + - type: SITE + title: "Microsoft Docs: WPF" + link: https://docs.microsoft.com/pt-br/dotnet/desktop/wpf/introduction-to-wpf?view=netframeworkdesktop-4.8 + - type: SITE + title: "Microsoft Docs: Tutorial: Criar seu primeiro aplicativo WPF no Visual Studio 2019" + link: https://docs.microsoft.com/pt-br/dotnet/desktop/wpf/getting-started/walkthrough-my-first-wpf-desktop-application?view=netframeworkdesktop-4.8 + - type: ARTICLE + title: "Windows Forms vs WPF — Parte 1" + link: https://bertuzzi.medium.com/windows-forms-vs-wpf-parte-1-910d2b2134c2 + - type: YOUTUBE + title: "Cleiton Felipe - The Black Coder: Començando com WPF no .Net Core" + link: https://www.youtube.com/watch?v=R-nPvBVL11A +alura-contents: + - type: PODCAST + title: "Dev Sem Fronteiras: Desenvolvedor .NET em Donegal, Irlanda – Dev Sem Fronteiras 24" + link: https://www.devsemfronteiras.tech/desenvolvedor-net-em-donegal-irlanda-dev-sem-fronteiras-24/ + - type: COURSE + title: "Formação VB.NET" + link: https://www.alura.com.br/formacao-vb-net \ No newline at end of file diff --git a/_data/blocks/yarn.pt_BR.yaml b/_data/blocks/yarn.pt_BR.yaml new file mode 100644 index 000000000..174c3d17a --- /dev/null +++ b/_data/blocks/yarn.pt_BR.yaml @@ -0,0 +1,24 @@ +name: YARN +logo: +short-description: +key-objectives: + - Gerenciar pacotes + - Gerenciar dependências + - Instalação de pacotes offline + - Comandos + - Arquivo yarn.lock +aditional-objectives: +contents: + - type: site + title: "YARN: Documentação (inglês)" + link: https://classic.yarnpkg.com/en/docs + - type: article + title: "Porque você deveria dar uma chance ao Yarn?" + link: https://rafaell-lycan.com/2017/porque-voce-deveria-dar-uma-chance-yarn/ + - type: youtube + title: "Lucas Santos: Yarn VS NPM, qual é melhor?" + link: https://www.youtube.com/watch?v=vxES6rbrd-U +alura-contents: + - type: article + title: "NPM vs Yarn" + link: https://www.alura.com.br/artigos/npm-vs-yarn diff --git a/_data/guides/csharp.yaml b/_data/guides/csharp.yaml new file mode 100644 index 000000000..47bb5041d --- /dev/null +++ b/_data/guides/csharp.yaml @@ -0,0 +1,96 @@ +name: C# +expertise: + - name: C# Back-end Jr + blocks: + - csharp-fundamentals: + priority: 10 + - oop-concepts: + priority: 10 + - csharp-collections: + priority: 9 + - nuget: + priority: 8 + - csharp-system-io: + priority: 8 + - csharp-memory-management: + priority: 7 + - ado-dot-net: + priority: 9 + - entity-framework-core: + priority: 9 + - wpf: + priority: 8 + - name: C# Back-end Mid + blocks: + - clr: + priority: 8 + - linq: + priority: 9 + - csharp-testing: + priority: 8 + - csharp-serialization: + priority: 6 + - csharp-networking-and-sockets: + priority: 6 + - asp-net-core: + priority: 7 + - dapper: + priority: 7 + - dependency-injection: + priority: 7 + - solid: + priority: 7 + - name: C# Back-end in depth + blocks: + - csharp-delegates-and-events: + priority: 8 + - containers: + priority: 7 + - design-patterns: + priority: 7 + - clean-architecture: + priority: 7 + - csharp-anonymous-methods-and-lambda-expressions: + priority: 6 + - reflection-and-attributes: + priority: 5 + optional: true + - csharp-multithreading: + priority: 4 + optional: true + - data-structures: + priority: 8 + - maui: + priority: 4 + optional: true +collaboration: + - name: Infraestrutura e boas práticas + blocks: + - git-and-github-fundamentals: + priority: 9 + - http-fundamentals: + priority: 10 + - json: + priority: 8 + - command-line-fundamentals: + priority: 8 + - cloud-fundamentals: + priority: 6 + optional: true + - clean-code: + priority: 8 + - sql-fundamentals: + priority: 9 + - microservices: + priority: 8 + - ddd-concepts: + priority: 8 + - name: Front-end + blocks: + - html-fundamentals: + priority: 6 + - javascript-fundamentals: + priority: 4 + optional: true + - css-fundamentals: + priority: 5 diff --git a/_data/guides/data-scientist.yaml b/_data/guides/data-scientist.yaml new file mode 100644 index 000000000..0c9df26cb --- /dev/null +++ b/_data/guides/data-scientist.yaml @@ -0,0 +1,68 @@ +name: Data Scientist +expertise: + - name: Data Scientist Jr + blocks: + - data-science-fundamentals: + priority: 10 + - feature-engineering: + priority: 10 + - data-extraction-and-processing: + priority: 10 + - python-for-data-science: + priority: 10 + - r-for-data-science: + priority: 10 + optional: true + - statistics-and-math-fundamentals: + priority: 10 + - machine-learning-fundamentals: + priority: 9 + - data-visualization: + priority: 8 + - name: Data Scientist Mid + blocks: + - data-modeling: + priority: 10 + - machine-learning-clustering: + priority: 10 + - machine-learning-cross-validation: + priority: 10 + - sql-fundamentals: + priority: 9 + - web-scraping: + priority: 7 + - data-science-testing: + priority: 7 + - name: Data Scientist in depth + blocks: + - deep-learning: + priority: 9 + - reinforcement-learning: + priority: 9 + - computer-vision: + priority: 7 + - natural-language-processing: + priority: 7 +collaboration: + - name: Business e Soft skills + blocks: + - communication-skills: + priority: 9 + - business-process-management: + priority: 9 + - business-intelligence: + priority: 8 + - storytelling-with-data: + priority: 8 + - name: Cloud, Big Data e Sistemas + blocks: + - big-data-and-data-engineering: + priority: 9 + - cloud-fundamentals: + priority: 7 + - git-and-github-fundamentals: + priority: 7 + - linux-fundamentals: + priority: 7 + - command-line-fundamentals: + priority: 6 \ No newline at end of file diff --git a/_data/guides/front-end-angular.yaml b/_data/guides/front-end-angular.yaml new file mode 100644 index 000000000..b43a1115a --- /dev/null +++ b/_data/guides/front-end-angular.yaml @@ -0,0 +1,73 @@ +name: Front-end Angular +expertise: + - name: Front-end Angular Jr + blocks: + - javascript-fundamentals: + priority: 10 + - typescript-fundamentals: + priority: 10 + - rxjs-fundamentals: + priority: 10 + - angular-fundamentals: + priority: 10 + - observer-pattern: + priority: 9 + - name: Front-end Angular Mid + blocks: + - angular-templates: + priority: 9 + - angular-rendering: + priority: 9 + - angular-services: + priority: 8 + - angular-routing: + priority: 8 + - angular-cli: + priority: 7 + - name: Front-end Angular in depth + blocks: + - angular-state-management: + priority: 8 + - angular-forms: + priority: 8 + optional: true + - angular-modules: + priority: 8 + - angular-dependency-injection: + priority: 7 + - angular-testing: + priority: 7 + - graphql: + priority: 5 + optional: true + - apollo-client: + priority: 5 + optional: true +collaboration: + - name: Infraestrutura e Back-end + blocks: + - git-and-github-fundamentals: + priority: 10 + - http-fundamentals: + priority: 10 + - json: + priority: 8 + - design-patterns: + priority: 7 + - command-line-fundamentals: + priority: 7 + - cloud-fundamentals: + priority: 6 + optional: true + - name: UX e Design + blocks: + - design-systems: + priority: 4 + - figma-fundamentals: + priority: 8 + - design-components: + priority: 6 + - color-systems: + priority: 5 + - how-to-use-fonts: + priority: 5 \ No newline at end of file diff --git a/_data/guides/front-end.yaml b/_data/guides/front-end.yaml new file mode 100644 index 000000000..202452629 --- /dev/null +++ b/_data/guides/front-end.yaml @@ -0,0 +1,87 @@ +name: Front-end +expertise: + - name: Front-end JavaScript Jr + blocks: + - html-fundamentals: + priority: 10 + - css-fundamentals: + priority: 10 + - javascript-fundamentals: + priority: 10 + - dom-fundamentals: + priority: 9 + - javascript-accessibility: + priority: 8 + - seo-strategies: + priority: 7 + - responsive-design: + priority: 7 + - name: Front-end JavaScript Mid + blocks: + - javascript-callbacks-promises: + priority: 8 + - javascript-testing: + priority: 8 + - javascript-errorhandling: + priority: 7 + - yarn: + optional: true + priority: 6 + - javascript-es6: + priority: 8 + - javascript-modularization: + priority: 6 + - frontend-semantic-versioning: + priority: 6 + - jest: + priority: 6 + - cypress: + priority: 6 + - name: Front-end JavaScript in depth + blocks: + - data-structures: + priority: 8 + - oop-concepts: + priority: 8 + - javascript-storage: + priority: 7 + - javascript-concurrency: + priority: 6 + optional: true + - typescript-fundamentals: + priority: 5 + optional: true + - graphql: + priority: 5 + optional: true + - apollo-client: + priority: 5 + optional: true +collaboration: + - name: Infraestrutura e Back-end + blocks: + - git-and-github-fundamentals: + priority: 10 + - http-fundamentals: + priority: 10 + - json: + priority: 8 + - design-patterns: + priority: 7 + - command-line-fundamentals: + priority: 7 + - cloud-fundamentals: + priority: 6 + optional: true + - name: UX e Design + blocks: + - design-systems: + priority: 4 + - figma-fundamentals: + priority: 8 + - design-components: + priority: 6 + - color-systems: + priority: 5 + - how-to-use-fonts: + priority: 5 \ No newline at end of file diff --git a/_data/guides/java.yaml b/_data/guides/java.yaml new file mode 100644 index 000000000..e5972efcf --- /dev/null +++ b/_data/guides/java.yaml @@ -0,0 +1,92 @@ +name: Java +expertise: + - name: Java Back-end Jr + blocks: + - java-fundamentals: + priority: 10 + - oop-concepts: + priority: 10 + - java-error-handling: + priority: 10 + - java-collections: + priority: 9 + - java-packages: + priority: 8 + - java-memory-management: + priority: 7 + - java-concurrency: + priority: 8 + - java-persistence: + priority: 9 + - name: Java Back-end Mid + blocks: + - jvm: + priority: 8 + - java-spring-framework: + priority: 9 + - java-build-tools: + priority: 8 + - java-testing: + priority: 8 + - java-serialization: + priority: 6 + - java-networking-and-sockets: + priority: 6 + - java-servlets: + priority: 7 + - name: Java Back-end in depth + blocks: + - containers: + priority: 7 + - java-spring-boot: + priority: 7 + - data-structures: + priority: 8 + - design-patterns: + priority: 7 + - solid: + priority: 7 + - clean-architecture: + priority: 7 + - reflection-and-attributes: + priority: 5 + optional: true + - jsf: + priority: 3 + optional: true + - jms: + priority: 4 + optional: true + - java-logging: + priority: 3 + optional: true + - java-swing: + priority: 5 + optional: true +collaboration: + - name: Infraestrutura e boas práticas + blocks: + - git-and-github-fundamentals: + priority: 9 + - http-fundamentals: + priority: 10 + - json: + priority: 8 + - command-line-fundamentals: + priority: 8 + - cloud-fundamentals: + priority: 6 + optional: true + - microservices: + priority: 7 + - sql-fundamentals: + priority: 9 + - name: Front-end + blocks: + - html-fundamentals: + priority: 6 + - javascript-fundamentals: + priority: 4 + optional: true + - css-fundamentals: + priority: 5 diff --git a/_data/guides/nodejs.yaml b/_data/guides/nodejs.yaml new file mode 100644 index 000000000..9f6aeaee4 --- /dev/null +++ b/_data/guides/nodejs.yaml @@ -0,0 +1,78 @@ +name: NodeJS +expertise: + - name: Front-end JavaScript + blocks: + - javascript-fundamentals: + priority: 10 + - javascript-callbacks-promises: + priority: 9 + - javascript-testing: + priority: 8 + - javascript-errorhandling: + priority: 7 + - javascript-accessibility: + priority: 7 + - name: Node.js Ecosystem + blocks: + - nodejs-fundamentals: + priority: 10 + - nodejs-express: + priority: 9 + - nodejs-orm: + priority: 8 + - nodejs-authentication-tokens: + priority: 8 + - nodejs-testing: + priority: 7 + - jest: + priority: 6 + - name: Node.js in depth + blocks: + - typescript-fundamentals: + priority: 10 + - oop-concepts: + priority: 9 + - microservices: + priority: 9 + - solid: + priority: 7 + - nestjs-fundamentals: + priority: 8 + - websockets: + priority: 7 + - graphql: + priority: 6 + optional: true + - apollo-client: + priority: 6 + optional: true +collaboration: + - name: Front-end + blocks: + - html-fundamentals: + priority: 10 + - css-fundamentals: + priority: 9 + - dom-fundamentals: + priority: 8 + - seo-strategies: + priority: 6 + optional: true + - name: Infraestrutura e boas práticas + blocks: + - git-and-github-fundamentals: + priority: 10 + - http-fundamentals: + priority: 9 + - json: + priority: 8 + - design-patterns: + priority: 7 + - command-line-fundamentals: + priority: 7 + - cloud-fundamentals: + priority: 6 + optional: true + - containers: + priority: 6 + optional: true \ No newline at end of file diff --git a/_data/guides/php.yaml b/_data/guides/php.yaml new file mode 100644 index 000000000..3faaefa2f --- /dev/null +++ b/_data/guides/php.yaml @@ -0,0 +1,75 @@ +name: PHP +expertise: + - name: PHP Jr + blocks: + - php-fundamentals: + priority: 10 + - oop-concepts: + priority: 9 + - php-errorhandling: + priority: 9 + - php-testing: + priority: 8 + - php-persistence: + priority: 8 + - php-files-streams: + priority: 8 + - name: PHP Mid + blocks: + - php-composer: + priority: 10 + - php-mvc: + priority: 9 + - laravel: + priority: 9 + - php-symfony: + priority: 8 + optional: true + - php-xdebug: + priority: 7 + - name: PHP in depth + blocks: + - php-asynchronous: + priority: 8 + - php-functional: + priority: 7 + - solid: + priority: 7 + - design-patterns: + priority: 7 + - clean-architecture: + priority: 7 + - object-calisthenics: + priority: 7 + - reflection-and-attributes: + priority: 5 + optional: true +collaboration: + - name: Front-end + blocks: + - html-fundamentals: + priority: 10 + - css-fundamentals: + priority: 9 + - javascript-fundamentals: + priority: 8 + - seo-strategies: + priority: 6 + optional: true + - name: Infraestrutura e boas práticas + blocks: + - git-and-github-fundamentals: + priority: 10 + - http-fundamentals: + priority: 9 + - json: + priority: 8 + - command-line-fundamentals: + priority: 7 + - cloud-fundamentals: + priority: 6 + optional: true + - containers: + priority: 7 + - sql-fundamentals: + priority: 9 diff --git a/_data/guides/python.yaml b/_data/guides/python.yaml new file mode 100644 index 000000000..42a434bf3 --- /dev/null +++ b/_data/guides/python.yaml @@ -0,0 +1,73 @@ +name: Python +expertise: + - name: Python Jr + blocks: + - python-fundamentals: + priority: 10 + - oop-concepts: + priority: 10 + - data-structures: + priority: 10 + - python-special-methods: + priority: 10 + - python-collections: + priority: 9 + - name: Python Mid + blocks: + - python-testing: + priority: 9 + - flask: + priority: 8 + - design-patterns: + priority: 8 + - python-mixins: + priority: 8 + - python-operator-overloading: + priority: 7 + - django: + priority: 8 + - django-rest-framework: + priority: 6 + - name: Python in depth + blocks: + - python-static-typing: + priority: 7 + - python-coroutines: + priority: 8 + - python-generators: + priority: 8 + optional: true + - python-metaprogramming: + priority: 7 + - python-mvc-mtv: + priority: 7 + - python-process-pools: + priority: 7 +collaboration: + - name: Infraestrutura e boas práticas + blocks: + - git-and-github-fundamentals: + priority: 9 + - http-fundamentals: + priority: 10 + - json: + priority: 8 + - command-line-fundamentals: + priority: 8 + - cloud-fundamentals: + priority: 7 + - microservices: + priority: 7 + - sql-fundamentals: + priority: 9 + - name: Front-end + blocks: + - html-fundamentals: + priority: 7 + - css-fundamentals: + priority: 7 + - javascript-fundamentals: + priority: 5 + - seo-strategies: + priority: 5 + optional: true \ No newline at end of file diff --git a/_data/guides/react.yaml b/_data/guides/react.yaml new file mode 100644 index 000000000..eb078ec35 --- /dev/null +++ b/_data/guides/react.yaml @@ -0,0 +1,123 @@ +name: Front-end ReactJS +expertise: + - name: Front-end React Jr + blocks: + - javascript-fundamentals: + priority: 10 + - dom-fundamentals: + priority: 10 + - spa-concepts: + priority: 9 + - html-fundamentals: + priority: 7 + - css-fundamentals: + priority: 6 + - react-components: + priority: 9 + - react-props: + priority: 9 + - react-hooks-state: + priority: 9 + - create-react-app: + priority: 7 + - react-hooks-effect: + priority: 9 + - name: Front-end React Mid + blocks: + - react-hooks-memo: + priority: 7 + - react-hooks-callback: + priority: 9 + - react-hooks-ref: + priority: 10 + - design-system-libraries: + priority: 4 + - react-dev-tools: + priority: 5 + optional: true + - frontend-semantic-versioning: + priority: 6 + - css-in-js: + priority: 5 + - styled-components: + optional: true + priority: 4 + - react-webrouting: + priority: 7 + - typescript-fundamentals: + priority: 5 + optional: true + - yarn: + optional: true + priority: 6 + - react-testing-library: + priority: 8 + - jest: + priority: 8 + - cypress: + priority: 8 + - javascript-callbacks-promises: + priority: 8 + - javascript-errorhandling: + priority: 7 + - babel-fundamentals: + priority: 6 + optional: true + - name: Front-end React in depth + blocks: + - lottie: + priority: 5 + optional: true + - framer-motion: + priority: 5 + optional: true + - service-workers: + priority: 7 + - react-hooks-form: + priority: 7 + - lodash: + priority: 4 + optional: true + - graphql: + priority: 5 + optional: true + - apollo-client: + priority: 5 + optional: true + - redux-saga: + priority: 5 + optional: true + - nextjs-fundamentals: + priority: 5 + optional: true +collaboration: + - name: Infraestrutura e Back-end + blocks: + - git-and-github-fundamentals: + priority: 9 + - http-fundamentals: + priority: 10 + # - first-deploy: + # priority: 10 + - json: + priority: 8 + - command-line-fundamentals: + priority: 8 + - babel-fundamentals: + optional: true + priority: 3 + - cloud-fundamentals: + priority: 6 + optional: true + - name: UX e Design + blocks: + - design-systems: + priority: 4 + - figma-fundamentals: + priority: 8 + - design-components: + priority: 6 + - color-systems: + priority: 5 + - how-to-use-fonts: + priority: 5 \ No newline at end of file diff --git a/_data/locale/pt-BR.json b/_data/locale/pt-BR.json new file mode 100644 index 000000000..3069c7072 --- /dev/null +++ b/_data/locale/pt-BR.json @@ -0,0 +1,50 @@ +{ + "HEAD.TITLE": "Tech Guide: guias do Profissional em T", + "HEAD.DESCRIPTION": "Encontre o guia perfeito para a sua carreira de tecnologia. Dicas, sugestões, prioridades e links para conteúdo. Tudo isso com a abordagem do profissional em T.", + "HEAD.SHARE_IMAGE": "/assets/image/share-image.jpg", + "MENU.LOGO_ALT": "Logo Tech Guide Alura", + "MENU.CTA_TEXT": " Monte seu <T>", + "SCREEN_HERO_CONTAINER.PRE_TITLE": " Guie sua carreira!", + "SCREEN_HERO_CONTAINER.TITLE": "Descubra possíveis caminhos
para se tornar profissional <em T>", + "SCREEN_HERO_CONTAINER.SUB_TITLE": "A Alura criou o TechGuide.sh para ajudar na sua jornada de aprendizado. Um mapeamento das principais tecnologias demandadas pelo mercado, com nossas sugesões e opiniões.", + + "SCREEN_HERO_CONTAINER.FIRST_SECTION.TITLE": "Um guia em formato de <T>", + "SCREEN_HERO_CONTAINER.FIRST_SECTION.SUB_TITLE": "Profissionais em <T> têm profundidade (especialistas) em uma determinada área, além de possuírem conhecimento generalista em assuntos auxiliares.", + "SCREEN_HERO_CONTAINER.FIRST_SECTION.BTN": "Selecionar minha carreira!", + "SCREEN_HERO_CONTAINER.SECOND_SECTION.TITLE": "Descubra o que dominar em diferentes momentos da sua carreira", + "SCREEN_HERO_CONTAINER.SECOND_SECTION.SUB_TITLE": "Dependendo da sua carreira e da sua senioridade, cada tecnologia tem um peso diferente. Saiba a nossa opinião, baseada no mercado, de o que estudar e o quanto estudar.", + "SCREEN_HERO_CONTAINER.SECOND_SECTION.BTN": "Selecionar minha carreira!", + + "FEATURE_FLAG.BUILD_YOUR_T": false, + "PATH.T_BLOCK_SUGGESTED_CONTENT": "Conteúdo Recomendado", + "PATH.T_BLOCK_SUGGESTED_CONTENT.SITE.LABEL": "Site", + "PATH.T_BLOCK_SUGGESTED_CONTENT.SITE.BG": "#6DD5EC", + "PATH.T_BLOCK_SUGGESTED_CONTENT.SITE.COLOR": "#002A42", + + "PATH.T_BLOCK_SUGGESTED_CONTENT.ARTICLE.LABEL": "Artigo", + "PATH.T_BLOCK_SUGGESTED_CONTENT.ARTICLE.BG": "#FDB9C6", + "PATH.T_BLOCK_SUGGESTED_CONTENT.ARTICLE.COLOR": "#670032", + + "PATH.T_BLOCK_SUGGESTED_CONTENT.COURSE.LABEL": "Curso", + "PATH.T_BLOCK_SUGGESTED_CONTENT.COURSE.BG": "#BEEC6D", + "PATH.T_BLOCK_SUGGESTED_CONTENT.COURSE.COLOR": "#043300", + + "PATH.T_BLOCK_SUGGESTED_CONTENT.YOUTUBE.LABEL": "YouTube", + "PATH.T_BLOCK_SUGGESTED_CONTENT.YOUTUBE.BG": "#FF0000", + "PATH.T_BLOCK_SUGGESTED_CONTENT.YOUTUBE.COLOR": "#FFFFFF", + + "PATH.T_BLOCK_SUGGESTED_CONTENT.PODCAST.LABEL": "Podcast", + "PATH.T_BLOCK_SUGGESTED_CONTENT.PODCAST.BG": "#AB7EE4", + "PATH.T_BLOCK_SUGGESTED_CONTENT.PODCAST.COLOR": "#300031", + + "PATH.T_BLOCK_SUGGESTED_CONTENT.CONTENT.LABEL": "Conteúdo", + "PATH.T_BLOCK_SUGGESTED_CONTENT.CONTENT.BG": "#d4d4d4", + "PATH.T_BLOCK_SUGGESTED_CONTENT.CONTENT.COLOR": "#494848", + + "TSHAPE.BUTTON.BACK_TO_HOME": " Voltar para seleção de carreiras", + + "FOOTER.DESCRIPTION": "Desenvolva sua Carreira em <T> · Versão: ", + "FOOTER.OPEN_SOURCE_CTA": "O techguide.sh é um projeto open source, ", + "FOOTER.BRING_BY": "Trazido por", + "DEMO":"DEMO" +} diff --git a/_data/random-content/faq.json b/_data/random-content/faq.json new file mode 100644 index 000000000..8756ee440 --- /dev/null +++ b/_data/random-content/faq.json @@ -0,0 +1,19 @@ +{ + "questions": [ + { + "title": "01 - 3. Dignissim id eget lorem laoreet? Volutpat est?", + "answer": + "lorem dsudsahudias sopkd poaskdi wajuhdsuid sadihasu lorem dsudsahudias sopkd poaskdi wajuhdsuid sadihasu lorem dsudsahudias sopkd poaskdi wajuhdsuid sadihasu" + }, + { + "title": "02 - 3. Dignissim id eget lorem laoreet? Volutpat est?", + "answer": + "lorem dsudsahudias sopkd poaskdi wajuhdsuid sadihasu lorem dsudsahudias sopkd poaskdi wajuhdsuid sadihasu lorem dsudsahudias sopkd poaskdi wajuhdsuid sadihasu" + }, + { + "title": "03 - 3. Dignissim id eget lorem laoreet? Volutpat est?", + "answer": + "lorem dsudsahudias sopkd poaskdi wajuhdsuid sadihasu lorem dsudsahudias sopkd poaskdi wajuhdsuid sadihasu lorem dsudsahudias sopkd poaskdi wajuhdsuid sadihasu" + } + ] +} diff --git a/codegen-front.yml b/codegen-front.yml new file mode 100644 index 000000000..1c8c40c46 --- /dev/null +++ b/codegen-front.yml @@ -0,0 +1,9 @@ +overwrite: true +schema: "http://localhost:3000/api/graphql" +documents: "**/*.graphql" +generates: + ./src/gql_types.ts: + plugins: + - typescript + - typescript-operations + - typed-document-node diff --git a/codegen.yml b/codegen.yml new file mode 100644 index 000000000..c3e34aaf4 --- /dev/null +++ b/codegen.yml @@ -0,0 +1,14 @@ +overwrite: true +schema: "http://localhost:3000/api/graphql" +documents: null +generates: + _api/gql_types.ts: + plugins: + - "typescript" + - "typescript-resolvers" + config: + scalars: + UUID: string + ./graphql.schema.json: + plugins: + - "introspection" diff --git a/jest.config.ts b/jest.config.ts new file mode 100644 index 000000000..1d1c7ff81 --- /dev/null +++ b/jest.config.ts @@ -0,0 +1,207 @@ +import nextJest from "next/jest"; +import { pathsToModuleNameMapper } from "ts-jest"; +import { compilerOptions } from "./tsconfig.json"; + +const createJestConfig = nextJest({ + // Provide the path to your Next.js app to load next.config.js and .env files in your test environment + dir: "./", +}); + +/* + * For a detailed explanation regarding each configuration property, visit: + * https://jestjs.io/docs/configuration + */ + +// Add any custom config to be passed to Jest +const customJestConfig = { + // All imported modules in your tests should be mocked automatically + // automock: false, + + // Stop running tests after `n` failures + // bail: 0, + + // The directory where Jest should store its cached dependency information + // cacheDirectory: "/private/var/folders/w0/kr0q7xc54zqd3tk36_5rxzgm0000gn/T/jest_dx", + + // Automatically clear mock calls, instances, contexts and results before every test + clearMocks: true, + + // Indicates whether the coverage information should be collected while executing the test + collectCoverage: false, + + // An array of glob patterns indicating a set of files for which coverage information should be collected + // collectCoverageFrom: undefined, + + // The directory where Jest should output its coverage files + coverageDirectory: "coverage", + + // An array of regexp pattern strings used to skip coverage collection + // coveragePathIgnorePatterns: [ + // "/node_modules/" + // ], + + // Indicates which provider should be used to instrument code for coverage + // coverageProvider: "babel", + + // A list of reporter names that Jest uses when writing coverage reports + // coverageReporters: [ + // "json", + // "text", + // "lcov", + // "clover" + // ], + + // An object that configures minimum threshold enforcement for coverage results + // coverageThreshold: undefined, + + // A path to a custom dependency extractor + // dependencyExtractor: undefined, + + // Make calling deprecated APIs throw helpful error messages + // errorOnDeprecated: false, + + // The default configuration for fake timers + // fakeTimers: { + // "enableGlobally": false + // }, + + // Force coverage collection from ignored files using an array of glob patterns + // forceCoverageMatch: [], + + // A path to a module which exports an async function that is triggered once before all test suites + // globalSetup: undefined, + + // A path to a module which exports an async function that is triggered once after all test suites + // globalTeardown: undefined, + + // A set of global variables that need to be available in all test environments + // globals: {}, + + // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers. + // maxWorkers: "50%", + + // An array of directory names to be searched recursively up from the requiring module's location + // moduleDirectories: [ + // "node_modules" + // ], + + // An array of file extensions your modules use + // moduleFileExtensions: [ + // "js", + // "mjs", + // "cjs", + // "jsx", + // "ts", + // "tsx", + // "json", + // "node" + // ], + + // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module + moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, { + prefix: "/", + }), + + // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader + // modulePathIgnorePatterns: [], + + // Activates notifications for test results + // notify: false, + + // An enum that specifies notification mode. Requires { notify: true } + // notifyMode: "failure-change", + + // A preset that is used as a base for Jest's configuration + preset: "ts-jest", + + // Run tests from one or more projects + // projects: undefined, + + // Use this configuration option to add custom reporters to Jest + // reporters: undefined, + + // Automatically reset mock state before every test + // resetMocks: false, + + // Reset the module registry before running each individual test + // resetModules: false, + + // A path to a custom resolver + // resolver: undefined, + + // Automatically restore mock state and implementation before every test + // restoreMocks: false, + + // The root directory that Jest should scan for tests and modules within + // rootDir: undefined, + + // A list of paths to directories that Jest should use to search for files in + // roots: [ + // "" + // ], + + // Allows you to use a custom runner instead of Jest's default test runner + // runner: "jest-runner", + + // The paths to modules that run some code to configure or set up the testing environment before each test + // setupFiles: [], + + // A list of paths to modules that run some code to configure or set up the testing framework before each test + setupFilesAfterEnv: ["./jest.setup.js"], + + // The number of seconds after which a test is considered as slow and reported as such in the results. + // slowTestThreshold: 5, + + // A list of paths to snapshot serializer modules Jest should use for snapshot testing + // snapshotSerializers: [], + + // The test environment that will be used for testing + testEnvironment: "jsdom", + + // Options that will be passed to the testEnvironment + // testEnvironmentOptions: {}, + + // Adds a location field to test results + // testLocationInResults: false, + + // The glob patterns Jest uses to detect test files + // testMatch: [ + // "**/__tests__/**/*.[jt]s?(x)", + // "**/?(*.)+(spec|test).[tj]s?(x)" + // ], + + // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped + testPathIgnorePatterns: ["/node_modules/", "./cypress"], + + // The regexp pattern or array of patterns that Jest uses to detect test files + // testRegex: [], + + // This option allows the use of a custom results processor + // testResultsProcessor: undefined, + + // This option allows use of a custom test runner + // testRunner: "jest-circus/runner", + + // A map from regular expressions to paths to transformers + // transform: undefined, + + // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation + // transformIgnorePatterns: [ + // "/node_modules/", + // "\\.pnp\\.[^\\/]+$" + // ], + + // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them + // unmockedModulePathPatterns: undefined, + + // Indicates whether each individual test should be reported during the run + // verbose: undefined, + + // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode + // watchPathIgnorePatterns: [], + + // Whether to use watchman for file crawling + // watchman: true, +}; + +module.exports = createJestConfig(customJestConfig); diff --git a/jest.setup.js b/jest.setup.js new file mode 100644 index 000000000..ae6e8bc89 --- /dev/null +++ b/jest.setup.js @@ -0,0 +1,2 @@ +import "@testing-library/jest-dom/extend-expect"; +import "jest-styled-components"; diff --git a/next-env.d.ts b/next-env.d.ts new file mode 100644 index 000000000..4f11a03dc --- /dev/null +++ b/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/next.config.js b/next.config.js new file mode 100644 index 000000000..547f1a0f1 --- /dev/null +++ b/next.config.js @@ -0,0 +1,31 @@ +/** @type {import('next').NextConfig} */ + +const nextConfig = { + trailingSlash: true, + reactStrictMode: true, + compiler: { + styledComponents: true, + }, + async headers() { + return [ + { + source: "/api/:path*", + headers: [ + { key: "Access-Control-Allow-Credentials", value: "true" }, + { key: "Access-Control-Allow-Origin", value: "*" }, + { + key: "Access-Control-Allow-Methods", + value: "GET,OPTIONS,PATCH,DELETE,POST,PUT", + }, + { + key: "Access-Control-Allow-Headers", + value: + "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version, Authorization", + }, + ], + }, + ]; + }, +}; + +module.exports = nextConfig; diff --git a/package.json b/package.json new file mode 100644 index 000000000..a02230c03 --- /dev/null +++ b/package.json @@ -0,0 +1,77 @@ +{ + "name": "tshapeddev", + "version": "0.7.0", + "main": "index.js", + "repository": "git@github.com:alura/tshapeddev.git", + "author": "Mario Souto <13791385+omariosouto@users.noreply.github.com>", + "license": "MIT", + "scripts": { + "start": "next start", + "dev": "next dev", + "build": "next build", + "build:static": "next build && next export", + "lint": "eslint './src/**/*.{ts,tsx}' './_api/**/*.{ts,tsx}' && yamllint ./_data/**/*.yaml", + "test": "jest", + "generate:types": "yarn generate:types:back && yarn generate:types:front", + "generate:types:back": "graphql-codegen --config codegen.yml", + "generate:types:front": "graphql-codegen --config codegen-front.yml" + }, + "dependencies": { + "@apollo/client": "^3.6.9", + "@graphql-codegen/typed-document-node": "^2.3.2", + "@skynexui/responsive_stylesheet": "^1.10.3", + "@testing-library/react": "^13.3.0", + "@types/styled-components": "^5.1.25", + "@urql/core": "^2.6.1", + "apollo": "^2.34.0", + "apollo-server-core": "^3.10.0", + "apollo-server-micro": "^3.10.0", + "d3": "^7.6.1", + "deepmerge": "^4.2.2", + "graphql": "^16.5.0", + "graphql-scalars": "^1.17.0", + "graphql-tag": "2.12.6", + "html-react-parser": "^3.0.1", + "lodash": "^4.17.21", + "micro": "^9.3.4", + "micro-cors": "^0.1.1", + "next": "^12.2.3", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-is": "18.2.0", + "read-yaml-file": "^2.1.0", + "sift": "^16.0.0", + "styled-components": "^5.3.5", + "uuid": "^8.3.2", + "yaml-lint": "^1.7.0" + }, + "devDependencies": { + "@types/graphql": "^14.5.0", + "@types/lodash": "^4.14.182", + "@graphql-codegen/cli": "2.6.2", + "@graphql-codegen/introspection": "2.1.1", + "@graphql-codegen/typescript": "2.4.8", + "@graphql-codegen/typescript-operations": "2.3.5", + "@graphql-codegen/typescript-react-apollo": "3.2.11", + "@graphql-codegen/typescript-resolvers": "2.6.1", + "@next/eslint-plugin-next": "^12.2.3", + "@testing-library/jest-dom": "^5.16.4", + "@types/jest": "^28.1.6", + "@types/node": "^18.6.3", + "@types/react": "^18.0.15", + "@typescript-eslint/parser": "^5.31.0", + "eslint": "8.14.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-jest": "^26.6.0", + "eslint-plugin-jsx-a11y": "^6.6.1", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-react": "^7.30.1", + "jest": "^28.1.3", + "jest-environment-jsdom": "^28.1.3", + "jest-styled-components": "^7.0.8", + "prettier": "2.6.2", + "ts-jest": "^28.0.7", + "ts-node": "^10.9.1", + "typescript": "^4.7.4" + } +} diff --git a/pages/_app.tsx b/pages/_app.tsx new file mode 100644 index 000000000..f844ec206 --- /dev/null +++ b/pages/_app.tsx @@ -0,0 +1,12 @@ +import React from "react"; +import type { AppProps } from "next/app"; +import GlobalStyle from "@src/theme/GlobalStyle"; + +export default function MyApp({ Component, pageProps }: AppProps) { + return ( + <> + + + + ); +} diff --git a/pages/_document.tsx b/pages/_document.tsx new file mode 100644 index 000000000..3eb10ce53 --- /dev/null +++ b/pages/_document.tsx @@ -0,0 +1,77 @@ +import React from "react"; +import Document, { + DocumentContext, + Html, + Head, + Main, + NextScript, +} from "next/document"; +import Script from "next/script"; +import { ServerStyleSheet } from "styled-components"; + +export default class MyDocument extends Document { + static async getInitialProps(ctx: DocumentContext) { + const sheet = new ServerStyleSheet(); + const originalRenderPage = ctx.renderPage; + + try { + ctx.renderPage = () => + originalRenderPage({ + enhanceApp: (App) => (props) => + sheet.collectStyles(), + }); + + const initialProps = await Document.getInitialProps(ctx); + return { + ...initialProps, + styles: [initialProps.styles, sheet.getStyleElement()], + }; + } finally { + sheet.seal(); + } + } + + render() { + return ( + + + + + +