<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Maria Luisa Campos</title>
    <description>The latest articles on DEV Community by Maria Luisa Campos (@marialuisacampos).</description>
    <link>https://dev.to/marialuisacampos</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F842699%2F411ddbd8-74b8-4af7-a2ed-a60cc196041a.jpeg</url>
      <title>DEV Community: Maria Luisa Campos</title>
      <link>https://dev.to/marialuisacampos</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marialuisacampos"/>
    <language>en</language>
    <item>
      <title>useCallback</title>
      <dc:creator>Maria Luisa Campos</dc:creator>
      <pubDate>Sat, 31 Jan 2026 21:01:24 +0000</pubDate>
      <link>https://dev.to/marialuisacampos/usecallback-4491</link>
      <guid>https://dev.to/marialuisacampos/usecallback-4491</guid>
      <description></description>
    </item>
    <item>
      <title>Desenvolvedora Polivalente: meu passo a passo pessoal para uma curva de aprendizado exponencial em qualquer stack tecnológica</title>
      <dc:creator>Maria Luisa Campos</dc:creator>
      <pubDate>Fri, 07 Nov 2025 16:48:40 +0000</pubDate>
      <link>https://dev.to/marialuisacampos/desenvolvedora-polivalente-meu-passo-a-passo-pessoal-para-uma-curva-de-aprendizado-exponencial-em-58pk</link>
      <guid>https://dev.to/marialuisacampos/desenvolvedora-polivalente-meu-passo-a-passo-pessoal-para-uma-curva-de-aprendizado-exponencial-em-58pk</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgb01uplun4hogbn02mof.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgb01uplun4hogbn02mof.png" alt="Meme da série The Big Bang Theory com personagem principal falando " width="800" height="812"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em toda a minha carreira acabei caindo em diversos projetos em que eu não dominava ou nunca tinha tido nenhum contato com a stack utilizada. Porém, isso nunca foi um impeditivo para mim. Eu sempre me adaptei ao que vinha e acredito fielmente que essa é uma das maiores qualidades de um desenvolvedor: ser &lt;strong&gt;desenrolado&lt;/strong&gt;. E, quando eu falo de ser desenrolado, não é sobre pegar a tarefa e dar um jeito de fazer, mas sim de executá-la com qualidade e consciência do que está sendo feito. Aliás, até (principalmente) o código desenvolvido por IA precisa ser revisado por nós.&lt;/p&gt;

&lt;p&gt;Antes de começar, acho importante deixar claro que considero de extrema importância você se especializar em uma stack. Porém, acredito que a rigidez tecnológica limita oportunidades... e a adaptabilidade as multiplica. E, por isso, eu decidi compartilhar quais são os hábitos que sigo para ser uma desenvolvedora polivalente e ajudar colegas de carreira a terem essa skill também.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Pré-requisitos
&lt;/h2&gt;

&lt;p&gt;Antes de falar sobre estratégias, é importante reconhecer que certos fundamentos facilitam bastante a adaptação a novas linguagens.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔️ Base sólida em fundamentos
&lt;/h3&gt;

&lt;p&gt;A sintaxe muda, mas os conceitos permanecem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Estruturas de dados&lt;/strong&gt;: Arrays, listas, mapas, árvores, grafos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Algoritmos básicos&lt;/strong&gt;: Busca, ordenação, recursão&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complexidade&lt;/strong&gt;: Big O notation e otimização&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Princípios de design&lt;/strong&gt;: SOLID, DRY, KISS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Padrões de projeto&lt;/strong&gt;: Observer, Factory, Strategy, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Quando você domina esses fundamentos, aprender uma nova linguagem se torna questão de mapear sintaxe e modo de pensar.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔️ Mentalidade (juro que não é papo de coach)
&lt;/h3&gt;

&lt;p&gt;A mentalidade é tão importante quanto habilidade técnica:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Aceite o desconforto&lt;/strong&gt;: Não saber é parte do processo e resiliência é outro ponto-chave para ser uma engenheira de referência.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Seja curioso&lt;/strong&gt;: Pergunte "por quê?" constantemente e não aceite soluções vindas de IA sem entender completamente o que está sendo feito ali&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Peça ajuda&lt;/strong&gt;: Ninguém espera que você saiba tudo sozinho e pedir ajuda faz parte. Isso não é uma fraqueza! Muito pelo contrário.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sem medo&lt;/strong&gt;: desenvolvedor front-end não precisa ter medo do back-end e vice-versa. É tudo tecnologia, controlada por você... fica tranquilo que não vai te morder! É em conhecer o desconhecido que sua carreira vai dar um up, pode confiar.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✔️ Conhecimento de pelo menos 2-3 paradigmas
&lt;/h3&gt;

&lt;p&gt;Experiência com diferentes paradigmas acelera o aprendizado:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Imperativo/Procedural&lt;/strong&gt;: C, Go&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Orientado a Objetos&lt;/strong&gt;: Java, C#, Python&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Funcional&lt;/strong&gt;: Haskell, Elixir, ou recursos funcionais em linguagens multi-paradigma&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Declarativo&lt;/strong&gt;: SQL, HTML/CSS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Quanto mais paradigmas você conhece, mais ferramentas mentais tem para entender novas linguagens.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Estratégias Práticas
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ✔️ Entender o Paradigma e a Filosofia da Stack
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;"A language that doesn't affect the way you think about programming is not worth knowing." - Alan Perlis&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Antes de escrever código, você precisa entender não apenas o paradigma, mas &lt;strong&gt;como aquela stack pensa&lt;/strong&gt; e &lt;strong&gt;como o time específico usa essa stack&lt;/strong&gt;. Cada tecnologia tem sua própria "filosofia" e mental model, mas cada time adiciona suas próprias convenções também.&lt;/p&gt;

&lt;h4&gt;
  
  
  Perguntas fundamentais sobre Paradigma
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Qual o paradigma principal? (OOP, Funcional, Procedural, ou multi-paradigma?)&lt;/li&gt;
&lt;li&gt;Como a linguagem trata estado mutável? (Imutabilidade por padrão ou opt-in?)&lt;/li&gt;
&lt;li&gt;Qual o &lt;strong&gt;sistema de tipos&lt;/strong&gt;? (Estático vs dinâmico, forte vs fraco, inferência de tipos, generics?)&lt;/li&gt;
&lt;li&gt;Qual a filosofia de tratamento de erros? (Exceptions, Result/Option types, error codes?)&lt;/li&gt;
&lt;li&gt;Como funciona a concorrência/paralelismo? (Threads, async/await, goroutines, actors, event loop?)&lt;/li&gt;
&lt;li&gt;Como a linguagem trata memória? (GC, reference counting, ownership/borrow checker, manual?)&lt;/li&gt;
&lt;li&gt;Como funciona o &lt;strong&gt;escopo e closures&lt;/strong&gt;? (Lexical vs dynamic scope, hoisting, shadowing?)&lt;/li&gt;
&lt;li&gt;Qual o &lt;strong&gt;modelo de execução&lt;/strong&gt;? (Interpretado, compilado, JIT, bytecode?)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Perguntas fundamentais sobre a Filosofia da Stack
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Para Frameworks Frontend:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Como gerencia &lt;strong&gt;estado global e local&lt;/strong&gt;? (Context, Redux, Signals, Observables?)&lt;/li&gt;
&lt;li&gt;Como pensa sobre &lt;strong&gt;composição de componentes&lt;/strong&gt;? (Props, slots, children, HOCs?)&lt;/li&gt;
&lt;li&gt;Qual o &lt;strong&gt;ciclo de vida&lt;/strong&gt; dos componentes? (Mount, update, unmount, effects?)&lt;/li&gt;
&lt;li&gt;Como lida com &lt;strong&gt;side effects&lt;/strong&gt;? (useEffect, lifecycle hooks, reactive statements?)&lt;/li&gt;
&lt;li&gt;Como funciona &lt;strong&gt;reatividade&lt;/strong&gt;? (Virtual DOM, fine-grained reactivity, dirty checking?)&lt;/li&gt;
&lt;li&gt;Como fazer &lt;strong&gt;data fetching&lt;/strong&gt;? (Client-side, SSR, SSG, ISR?)&lt;/li&gt;
&lt;li&gt;Como lidar com &lt;strong&gt;roteamento&lt;/strong&gt; e navegação?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Para Backend:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Como definir &lt;strong&gt;rotas e middlewares&lt;/strong&gt;?&lt;/li&gt;
&lt;li&gt;Como funciona &lt;strong&gt;dependency injection&lt;/strong&gt; e inversão de controle?&lt;/li&gt;
&lt;li&gt;Como gerenciar &lt;strong&gt;migrations&lt;/strong&gt; e schema de banco de dados?&lt;/li&gt;
&lt;li&gt;Como são feitas &lt;strong&gt;validações&lt;/strong&gt; e tratamento de erros?&lt;/li&gt;
&lt;li&gt;Como lidar com &lt;strong&gt;transações&lt;/strong&gt; e consistência de dados?&lt;/li&gt;
&lt;li&gt;Como funciona &lt;strong&gt;autenticação e autorização&lt;/strong&gt;?&lt;/li&gt;
&lt;li&gt;Como lidar com &lt;strong&gt;concorrência&lt;/strong&gt; e operações assíncronas?&lt;/li&gt;
&lt;li&gt;Como implementar &lt;strong&gt;observabilidade&lt;/strong&gt;? (Logging, métricas, tracing, health checks?)&lt;/li&gt;
&lt;li&gt;Como funciona &lt;strong&gt;serialização/deserialização&lt;/strong&gt; de dados?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Para Mobile:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Como gerencia &lt;strong&gt;estado da aplicação&lt;/strong&gt;? (State management patterns específicos?)&lt;/li&gt;
&lt;li&gt;Como funciona o &lt;strong&gt;ciclo de vida&lt;/strong&gt; da aplicação e das telas?&lt;/li&gt;
&lt;li&gt;Como funciona &lt;strong&gt;navegação&lt;/strong&gt; entre telas? (Stack, tabs, drawer?)&lt;/li&gt;
&lt;li&gt;Como lidar com &lt;strong&gt;UI reativa&lt;/strong&gt; e atualizações de interface?&lt;/li&gt;
&lt;li&gt;Como gerenciar &lt;strong&gt;recursos limitados&lt;/strong&gt;? (Memória, bateria, processamento?)&lt;/li&gt;
&lt;li&gt;Como lidar com &lt;strong&gt;permissões&lt;/strong&gt; e acesso a APIs nativas?&lt;/li&gt;
&lt;li&gt;Como fazer &lt;strong&gt;networking&lt;/strong&gt; e persistência de dados?&lt;/li&gt;
&lt;li&gt;Como funciona o &lt;strong&gt;processo de build&lt;/strong&gt; e assinatura de apps?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Para qualquer área:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Qual &lt;strong&gt;arquitetura&lt;/strong&gt; é incentivada? (MVC, MVVM, Clean Architecture, Hexagonal?)&lt;/li&gt;
&lt;li&gt;Como funciona o &lt;strong&gt;sistema de build&lt;/strong&gt; e gerenciamento de dependências?&lt;/li&gt;
&lt;li&gt;Como escrever e rodar &lt;strong&gt;testes&lt;/strong&gt;? (Unitários, integração, E2E, ferramentas de mocking?)&lt;/li&gt;
&lt;li&gt;Como funciona &lt;strong&gt;CI/CD&lt;/strong&gt; para essa stack?&lt;/li&gt;
&lt;li&gt;Qual o melhor &lt;strong&gt;setup de desenvolvimento&lt;/strong&gt; para ter produtividade? (IDE, extensões, linters, formatters?)&lt;/li&gt;
&lt;li&gt;Quais &lt;strong&gt;convenções&lt;/strong&gt; o time segue? (Code style, estrutura de pastas, naming?)&lt;/li&gt;
&lt;li&gt;Como &lt;strong&gt;debugar&lt;/strong&gt; eficientemente? (Debugger, logging, profiling, ferramentas específicas?)&lt;/li&gt;
&lt;li&gt;Como a stack lida com &lt;strong&gt;versionamento&lt;/strong&gt; e breaking changes?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✔️ Aprender Através do Código Existente
&lt;/h3&gt;

&lt;p&gt;O código da aplicação é sua melhor documentação:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Estratégias:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Leia antes de escrever&lt;/strong&gt;: Explore o repositório por dias antes do primeiro código&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analise PRs antigos&lt;/strong&gt;: Veja como problemas foram resolvidos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Estude code reviews&lt;/strong&gt;: Aprenda com feedback dado a outros&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Faça debug propositalmente&lt;/strong&gt;: Coloque breakpoints e siga o fluxo&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Encontre padrões&lt;/strong&gt;: Identifique convenções do time&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✔️ Aproveitar Ferramentas Modernas (IA e Além)
&lt;/h3&gt;

&lt;p&gt;A IA revolucionou como aprendemos linguagens novas e pode ser sim uma grande amiga nesse momento também:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Peça exemplos de sintaxe específica&lt;/li&gt;
&lt;li&gt;Solicite explicações de código complexo&lt;/li&gt;
&lt;li&gt;Use para traduzir conceitos entre linguagens&lt;/li&gt;
&lt;li&gt;Peça comparações com alguma stack que você domina para melhor entendimento&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Mas ATENÇÃO:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;❌ Não copie código sem entender&lt;/li&gt;
&lt;li&gt;❌ Não confie cegamente nas sugestões&lt;/li&gt;
&lt;li&gt;✅ Use como tutor pessoal&lt;/li&gt;
&lt;li&gt;✅ Valide com documentação oficial&lt;/li&gt;
&lt;li&gt;✅ Teste e adapte ao estilo do projeto&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✔️ Pratique por fora das atividades de trabalho
&lt;/h3&gt;

&lt;p&gt;Conhecimento sem prática evapora:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Estratégias de prática:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Projetos pessoais pequenos&lt;/strong&gt;: Clone um app simples&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code katas&lt;/strong&gt;: Exercícios focados em sintaxe, caso sinta necessidade&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refatore código antigo&lt;/strong&gt;: Aplique novos conhecimentos dos seus estudos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ensine o que aprendeu&lt;/strong&gt;: Escreva um artigo, faça uma talk interna no time&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3. Gestão Inteligente do Processo de Adaptação
&lt;/h2&gt;

&lt;p&gt;Tudo isso estará acontecendo durante sprints e precisamos ter responsabilidade com o produto, sabendo equilibrar aprendizado com entregas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Estratégias:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Comunique expectativas&lt;/strong&gt;: Seja transparente sobre sua curva de aprendizado&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comece com tarefas menores&lt;/strong&gt;: Bugs, melhorias pequenas&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Faça pair programming&lt;/strong&gt;: Se possível, peça a algum desenvolvedor experiente na stack para fazer uma task junto com ele.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aumente complexidade gradualmente&lt;/strong&gt;: Conforme ganha confiança&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use tempo pessoal estrategicamente&lt;/strong&gt;: Nos primeiros meses, invista extra&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Just-in-time learning&lt;/strong&gt;: Aprenda o que precisa para a próxima task. Aprofunde conforme necessário. Não tente dominar tudo de uma vez.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Dinamismo é um privilégio da nossa profissão! Aproveite. Recentemente, fui alocada em um time de Kotlin, sendo a única desenvolvedora com background de Front-End, porém nenhuma experiência mobile. Poderia ter travado, mas eu estava mais do que animada para aprender ainda mais desse mundo que tanto amo (porque sou dessas que programa por amor, sim, com orgulho).&lt;/p&gt;

&lt;p&gt;Adaptabilidade técnica não é talento, é estratégia. É ter um processo confiável para extrair o máximo de qualquer stack em tempo mínimo e entregar ouro para seu time.&lt;/p&gt;

&lt;p&gt;Espero que, com esse artigo, eu tenha plantado alguma sementinha na sua carreira.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Enhancing your learning even while working</title>
      <dc:creator>Maria Luisa Campos</dc:creator>
      <pubDate>Sun, 07 May 2023 14:41:28 +0000</pubDate>
      <link>https://dev.to/marialuisacampos/enhancing-your-learning-even-while-working-4d65</link>
      <guid>https://dev.to/marialuisacampos/enhancing-your-learning-even-while-working-4d65</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foethu8taksyea6j1w1yl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foethu8taksyea6j1w1yl.png" alt="Dog on the computer with the title " width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These days I saw an Instagram Post which said that you can only improve your knowledge when coding outside of work. Ok, maybe this can be true for some work environments, projects, and seniority levels. But I need to say to you, Entry Level Developer (or not), that &lt;em&gt;you can grab this time you are doing your task/project and high your knowledge level by at least 1%&lt;/em&gt; (that talk of continuous improvement and stuff).&lt;/p&gt;

&lt;h2&gt;
  
  
  Really get out of your comfort zone (trust me, this is not a cliche)
&lt;/h2&gt;

&lt;p&gt;There are a lot of ways to get out of your comfort zone even while you are working.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Experiment to pick up a task you're not used to (f.e.: deployment, documentation, specific bugs…). I know that there is something which when you look at it, you think "Oh my god, this would be challenger for me". Is this task I am talking about!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If possible, give support to another team that might need it. To get in contact with different projects can be powerfull!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Try to get in contact with different languages. If your work is on the Back-End, you can talk to your manager and your team to see if it's possible to get simple tasks on the Front-End, for example. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Understand the problem instead of looking for the solution
&lt;/h2&gt;

&lt;p&gt;How many times did you solve something, but not really understood what was happening? Our “treasure chests” like Stack Overflow give us solutions, but often take from us the ability to solve problems.&lt;/p&gt;

&lt;p&gt;What I am saying here is not that you need to stop using these tools, but actually to &lt;em&gt;even when you need to use it, to seek to understand &lt;strong&gt;WHY&lt;/strong&gt; the problem is happing, &lt;strong&gt;WHY&lt;/strong&gt; this is the solution, and &lt;strong&gt;HOW&lt;/strong&gt; this solution works.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Understanding this, you are going to not just solve the problem, but you will also finish it with a better &lt;strong&gt;conscience&lt;/strong&gt; and &lt;strong&gt;perception&lt;/strong&gt; about the project and technology you work with. &lt;/p&gt;

&lt;h2&gt;
  
  
  Cherish documentation
&lt;/h2&gt;

&lt;p&gt;This topic is together with the last one! I know we have almost everything easy for us on the internet, but we can't disregard the documentation.&lt;br&gt;
 &lt;br&gt;
For example, if you work with ReactJS and you know that what you need to do has to do with States, probably you don't have to get it all done on Google as the answer will be on the React Docs and, consequently, I have to repeat: not just you will solve the problem, but you will also finish the task with a better &lt;strong&gt;conscience&lt;/strong&gt; and &lt;strong&gt;perception&lt;/strong&gt; about the project and technology you work with. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;To constantly read your stack documentations it's equally important, even outside your job. Courses, articles and workshops are great, but documentation gives us a great awareness of the tecnology straight from source and teaches us powerfull things.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Take notes about your knowledge gaps
&lt;/h2&gt;

&lt;p&gt;During your tasks is possible to notice some knowledge gaps. Maybe you are not understanding some functions on the Database, or it's being hard to use flexbox in CSS… when you notice this, don't ignore! Always have a place in which you write what your need to study more about in your free time and then improve it.&lt;/p&gt;

&lt;p&gt;I really enjoy using Notion for this, for example. I have a page with article links, topics, and other stuff I need to evolve and focus my studies on it, but you can also use Google Docs or any other platform you feel comfortable with.&lt;/p&gt;




&lt;p&gt;I hope this post has helped you in some way! It is based on my experience, so never forget to respect what works for you, always. ❤️&lt;/p&gt;

&lt;p&gt;Feel free to give contributions in the comments if you have something to add. Let's help our community :)&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>learning</category>
      <category>productivity</category>
    </item>
    <item>
      <title>The solidly roadmap to start working with Software Engineering</title>
      <dc:creator>Maria Luisa Campos</dc:creator>
      <pubDate>Sun, 16 Apr 2023 17:25:54 +0000</pubDate>
      <link>https://dev.to/marialuisacampos/the-real-roadmap-to-start-working-with-software-engineering-589e</link>
      <guid>https://dev.to/marialuisacampos/the-real-roadmap-to-start-working-with-software-engineering-589e</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftfbnhtlayoefc91swd1i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftfbnhtlayoefc91swd1i.png" alt="Illustration of a woman in a desk with a computer" width="800" height="417"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Illustration from &lt;a href="https://adevait.com/" rel="noopener noreferrer"&gt;Adevait&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In my first year at university, I didn't have any idea about where I was supposed to go or what I was supposed to do. I just knew I wanted to be a developer. So I started to look for some roadmaps to help me with this. The problem is that most part of the roadmaps advises us to start with Programming Logic and then move to a language, for example. But I don't agree with this approach. In my opinion, people are playing down that.&lt;/p&gt;

&lt;p&gt;And speaking of my opinion... let me bring a polemic one which is the core of this post: yes, I believe that graduating is important in your career. Not to have a diploma, a certificate, etc, but to have the knowledge that a university can give to you and most roadmaps and online courses don't provide to us. By the way, the market has not been easy for entry-level developers and it's imperative that we have a good curriculum!&lt;/p&gt;

&lt;p&gt;That's why I am writing this, to give you an initial roadmap with knowledge beyond programming according to my experience as a junior developer who is almost graduating and also completing one year of working soon. This roadmap will give you rich knowledge to study about development and other important topics which will help you to be a well-versed Junior Software Engineer. Let's go!&lt;/p&gt;

&lt;p&gt;OBS: Links are just suggestions for some subjects! &lt;strong&gt;Be curious!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Introduction to Programming and Programming Logic
&lt;/h2&gt;

&lt;p&gt;What is Programming and how it works | In and Out Instructions | Variables | Logical and Relational Operators | Conditionals | Repetition Structures | Functions&lt;/p&gt;

&lt;p&gt;Some good links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=zOjov-2OZ0E" rel="noopener noreferrer"&gt;Introduction to Programming and Computer Science&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=hMbWHlQiT7M&amp;amp;list=PLzZR2BJ8ICYu7uPFuvkjcIxkPE-1SEkNo" rel="noopener noreferrer"&gt;Introduction to Programming and Logic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Algorithms, Data Structure and Paradigms
&lt;/h2&gt;

&lt;p&gt;Asymptotic notation | Recurrence | Recursion | Sort and Order | Search | Stacks and queues | Linked Lists | Pointers and Objects | Hash Tables | Trees | Object Oriented Programming&lt;/p&gt;

&lt;p&gt;Some good links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=8hly31xKli0" rel="noopener noreferrer"&gt;Algorithms and Data Structures for beginners&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=ZA-tUyM_y7s&amp;amp;list=PLUl4u3cNGP63EdVPNLG3ToM6LaEUuStEY" rel="noopener noreferrer"&gt;MIT Introduction to Algorithms&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some good books:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein.&lt;/li&gt;
&lt;li&gt;Grokking Algorithms - Aditya Bhargava&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Git and GitHub
&lt;/h2&gt;

&lt;p&gt;What is Git and GitHub | Version Control | Git Commands | SSH Keys | Resolving Conflicts&lt;/p&gt;

&lt;p&gt;Some good links: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=RGOj5yH7evk&amp;amp;list=PLLJ1hZKyeCH1I8dP0UNTpWoIhsl6KpVbu" rel="noopener noreferrer"&gt;Git and GitHub course from scratch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Computer Networking
&lt;/h2&gt;

&lt;p&gt;Networks | Addressing | Protocols | OSI and TCP/IP and its layers, protocols, etc&lt;/p&gt;

&lt;p&gt;Some good links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=VwN91x5i25g&amp;amp;list=PLBlnK6fEyqRgMCUAG0XRw78UA8qnv6jEx" rel="noopener noreferrer"&gt;Computer Networking Course&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@adamzerner/overview-of-computer-networking-70848bd62710" rel="noopener noreferrer"&gt;Overview of computer networking&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. Choose your path in programming
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Web or mobile development?&lt;/li&gt;
&lt;li&gt;If Web, Front or Back-End? If mobile, Android, iOS, Flutter...? &lt;/li&gt;
&lt;li&gt;What stack (language, framework...) are you going to focus on at this moment? One tip for this is to study the market and see what the jobs are requiring, for example.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Create your own roadmap on this step for what you are going to work on, but, for example, if you choose to work on the Front-End, don't ignore the Back-End! It's important to know at least the basics of how it works.&lt;/p&gt;

&lt;p&gt;Never forget: you must practice and create your own projects for your portfolio.&lt;/p&gt;

&lt;p&gt;Some good links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://roadmap.sh/" rel="noopener noreferrer"&gt;Stack Roadmaps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codeburst.io/front-end-v-back-end-explained-by-waiting-tables-at-a-restaurant-174000a4498d" rel="noopener noreferrer"&gt;Front End v. Back End Explained by Waiting Tables At A Restaurant&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I repeat: &lt;strong&gt;be curious!&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Data Storage
&lt;/h2&gt;

&lt;p&gt;Some good links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=4cWkVbC2bNE" rel="noopener noreferrer"&gt;Database System&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=RSlqWnP-Dy8&amp;amp;list=PLUaB-1hjhk8GT6N5ne2qpf603sF26m2PW" rel="noopener noreferrer"&gt;SQL Basics&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some good books:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fundamentals of Database Systems - Ramez Elmasri e Shamkant Navathe&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  7. Software Testing
&lt;/h2&gt;

&lt;p&gt;Unit Tests, Integration Tests, End-To-End Tests... knowing how to test your code and your application is really important. What you will use here depends on the language, framework, etc. For ReactJS (a JavaScript library), for example, it's commonly used Jest and React Testing Library. &lt;/p&gt;

&lt;p&gt;Some good links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/educative/software-testing-101-get-started-with-software-testing-types-d30"&gt;Get started with software testing types&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  8. Software Engineering skills
&lt;/h2&gt;

&lt;p&gt;Software Process | Software Documentation&lt;/p&gt;

&lt;p&gt;Some good links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.com/omarelgabrys-blog/requirements-engineering-introduction-part-1-6d49001526d3" rel="noopener noreferrer"&gt;Software Engineering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.prototypr.io/software-documentation-types-and-best-practices-1726ca595c7f" rel="noopener noreferrer"&gt;Software Documentation Types and Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some good books:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Software Engineering - Ian Sommerville&lt;/li&gt;
&lt;li&gt;Modern Software Engineering - David Farley&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Finally, I have to say one more time: &lt;strong&gt;Be curious&lt;/strong&gt;! This is an advice I always give to my friends or any other people that are studying to become a developer. Be curious. Go after to really understand what you are doing. Know how to explain about WHAT and WHY you're doing what you're doing. Do not turn on automatic mode. Curiosity and consciousness are keys. Let's learn!&lt;/p&gt;

&lt;p&gt;If you think this Roadmap is missing something please put your contributions in the comments! Let's help our community :)&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
