<?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>Forem: Cen</title>
    <description>The latest articles on Forem by Cen (@dylantuna).</description>
    <link>https://forem.com/dylantuna</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%2F594443%2Fcde9677a-8394-4900-ac3c-ec4fbd82d35c.jpeg</url>
      <title>Forem: Cen</title>
      <link>https://forem.com/dylantuna</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/dylantuna"/>
    <language>en</language>
    <item>
      <title>TypeScript simple patterns for Web Developers</title>
      <dc:creator>Cen</dc:creator>
      <pubDate>Mon, 31 Jul 2023 09:28:28 +0000</pubDate>
      <link>https://forem.com/dylantuna/typescript-simple-patterns-for-web-developers-325l</link>
      <guid>https://forem.com/dylantuna/typescript-simple-patterns-for-web-developers-325l</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;TypeScript is a typed superset of JavaScript that adds static type checking to the language. This can help to prevent errors and make code more maintainable. In this article, I will share 5 of the most useful TypeScript patterns for web developers. These patterns can help you to write more concise, reusable, and maintainable code.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pattern list
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Using interfaces to define types
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;User&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;User&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;John Doe&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;johndoe@example.com&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code snippet shows how to use interfaces to define types in TypeScript. This can help to prevent errors and make code more maintainable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#interfaces"&gt;Full documentation of interfaces here&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Using generics to create reusable code
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;createList&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;T&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;T&lt;/span&gt;&lt;span class="p"&gt;[])&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;items&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;listOfStrings&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;createList&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;world&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;listOfNumbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;createList&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code snippet shows how to use generics to create reusable code in TypeScript. This can help to make code more concise and easier to understand.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.typescriptlang.org/docs/handbook/2/generics.html#handbook-content"&gt;Full documentation of generics here&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Using enums to represent sets of values
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;enum&lt;/span&gt; &lt;span class="nx"&gt;Direction&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;Up&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;UP&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;Down&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;DOWN&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;Left&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;LEFT&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;Right&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;RIGHT&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;myDirection&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Direction&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Up&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code snippet shows how to use enums to represent sets of values in TypeScript. This can help to make code more readable and easier to maintain.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.typescriptlang.org/docs/handbook/enums.html"&gt;Full documentation of enum here&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Using modules to organize code
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;module&lt;/span&gt; &lt;span class="nx"&gt;MyModule&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;sayHello&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello, world!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;sayHello&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;MyModule&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;sayHello&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code snippet shows how to use modules to organize code in TypeScript. This can help to make code more modular and easier to understand.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.typescriptlang.org/docs/handbook/modules.html"&gt;Full documentation of modules here&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Using type guards to check the type of a variable
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;sayHello&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;`Hello, &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;!`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Invalid name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code snippet shows how to use type guards to check the type of a variable in TypeScript. This can help to prevent errors and make code more robust.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.typescriptlang.org/docs/handbook/advanced-types.html"&gt;Full documentation of decorators here&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Using functional programming techniques
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;double&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;myNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;double&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code snippet shows how to use functional programming techniques. The double function takes a number as input and returns the number multiplied by 2. This is a more concise and elegant way of writing code than using traditional imperative programming techniques.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#functions"&gt;Full documentation of functions here&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Using decorators to add metadata to code)
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Decorator&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;MyClass&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// ...&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;myInstance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;MyClass&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code snippet shows how to use decorators to add metadata to code in TypeScript. This can help to make code more extensible and easier to understand.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.typescriptlang.org/docs/handbook/decorators.html"&gt;Full documentation of decorators here&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion:
&lt;/h2&gt;

&lt;p&gt;These are just 5 of the many TypeScript patterns that can be used by web developers. By using these patterns, you can write more concise, reusable, and maintainable code.&lt;/p&gt;

&lt;p&gt;I hope this article has been helpful!&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Automatic dual git config</title>
      <dc:creator>Cen</dc:creator>
      <pubDate>Fri, 05 Aug 2022 16:37:00 +0000</pubDate>
      <link>https://forem.com/dylantuna/automatic-dual-git-config-4lp2</link>
      <guid>https://forem.com/dylantuna/automatic-dual-git-config-4lp2</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Do you use the same computer for both personal and professional projects?&lt;br&gt;
Do you have one git account for pro and one for personal? &lt;br&gt;
Then follow this short guide and have everything set up for automatic git config switch. &lt;/p&gt;
&lt;h2&gt;
  
  
  What’s the idea
&lt;/h2&gt;

&lt;p&gt;We will tell git through a configuration file to use the correct user info like name and email based on the path we are currently on when using git commands.&lt;/p&gt;

&lt;p&gt;I use this setup on mac but it should work on Linux too.&lt;/p&gt;

&lt;p&gt;I use VSCode as my IDE and its CLI to open and edit my files.&lt;/p&gt;
&lt;h2&gt;
  
  
  Realization
&lt;/h2&gt;
&lt;h3&gt;
  
  
  First step
&lt;/h3&gt;

&lt;p&gt;Open your git config file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;code ~/.gitconfig
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Second step
&lt;/h3&gt;

&lt;p&gt;This is where the magic will works&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[include]
    path = ~/pro-git.conf
[includeIf "gitdir:~/perso/"]
    path = ~/perso-git.conf

[pull]
    rebase = true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;first include is the generic configuration used.&lt;/li&gt;
&lt;li&gt;second include with an if is a condition that tells git to use another specific conf when you are inside a specific directory.&lt;/li&gt;
&lt;li&gt;A little extra I recommend is to set pull rebase to true inside your git config but that’s not related to what we are doing now. Check on the web for a clear explanation for this point!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see I have 2 files at my root, 1 for each use case, pro and perso. Those files contain the related user info for each use case.&lt;/p&gt;

&lt;h3&gt;
  
  
  Third step
&lt;/h3&gt;

&lt;p&gt;Fill in the information of your user inside both config files.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user]
    name = Personal User
    email = personal@email.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and same for the pro file.&lt;/p&gt;

&lt;p&gt;As you guessed this is reproducible for more than 2 users and config.&lt;/p&gt;

&lt;p&gt;There are things to learn about writing a proper git config and what’s possible with it, this documentation gives a lot of information about it !&lt;/p&gt;

&lt;p&gt;&lt;a href="https://git-scm.com/docs/git-config#_configuration_file"&gt;https://git-scm.com/docs/git-config#_configuration_file&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hope this helps you set up your computer for efficient work with git on all your projects!&lt;/p&gt;

</description>
      <category>git</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>How to become a true full-stack developer</title>
      <dc:creator>Cen</dc:creator>
      <pubDate>Mon, 15 Mar 2021 11:03:22 +0000</pubDate>
      <link>https://forem.com/dylantuna/how-to-become-a-true-full-stack-developer-36d5</link>
      <guid>https://forem.com/dylantuna/how-to-become-a-true-full-stack-developer-36d5</guid>
      <description>&lt;h2&gt;
  
  
  What is the standard definition of a full stack developer
&lt;/h2&gt;

&lt;p&gt;When you look at the majority of &lt;code&gt;full-stack developer&lt;/code&gt; and the majority of job offers that look for a `full-stack we only have two big part that is dug up:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;the classic front end/back end duo&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;front end dev capabilities being often only js, little HTML, and little CSS.&lt;/p&gt;

&lt;p&gt;back end capabilities, often only js and database.&lt;/p&gt;

&lt;p&gt;But that's not my definition of what a &lt;code&gt;true full-stack developer&lt;/code&gt; scope of knowledge should cover. Let me dig in now in all the other parts you should start to get interested in and learn to achieve this scope.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you should aim for calling you a true full-stack developer
&lt;/h2&gt;

&lt;p&gt;the list :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Front and back&lt;/li&gt;
&lt;li&gt;HTML/CSS&lt;/li&gt;
&lt;li&gt;CI/CD&lt;/li&gt;
&lt;li&gt;Infrastructure&lt;/li&gt;
&lt;li&gt;Agile&lt;/li&gt;
&lt;li&gt;Technical Monitoring&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Front and Back
&lt;/h3&gt;

&lt;p&gt;Front and back are the main tools in your daily work and you should focus your first phase of learning on these two subjects.&lt;/p&gt;

&lt;h3&gt;
  
  
  HTML and CSS
&lt;/h3&gt;

&lt;p&gt;Get specialized in using a CSS framework. I recommend &lt;code&gt;Tailwind&lt;/code&gt; as it forces you to know your CSS and also lets you think hard about your interface.&lt;br&gt;
You should be able to put an interface together from a template made by your designer&lt;/p&gt;

&lt;h3&gt;
  
  
  CI/CD
&lt;/h3&gt;

&lt;p&gt;As a modern software engineer you will deal with &lt;code&gt;git&lt;/code&gt; &lt;strong&gt;A LOT&lt;/strong&gt; and a proper way to handle git is to include CI/CD process to ensure quality and add automation things to gain time and quality for your project. Large-scale applications will have a strong CI/CD in place.&lt;/p&gt;

&lt;p&gt;That means that sometimes you will handle use cases that include CI/CD to be fixed or created. Knowing your CI game will make your proposal of improvement and fix more impactful.&lt;/p&gt;

&lt;h3&gt;
  
  
  Infrastructure
&lt;/h3&gt;

&lt;p&gt;We all know this now but &lt;em&gt;cloud-computing&lt;/em&gt; is the thing at the moment. Your production environment, pre-production, and even sometimes local will work on services of famous cloud provisioner like &lt;code&gt;AWS&lt;/code&gt;. Starting from this simple fact we can conclude that a big part of what is going on behind your daily work is Infrastructure and it's much more accessible than you think.&lt;/p&gt;

&lt;p&gt;Knowing your infrastructure game will allow you to be efficient on your codebase behavior and also allow you to build up a little working POC fast. &lt;strong&gt;I strongly recommend learning Infra stuff and even try to pass a certification&lt;/strong&gt; as it let you learn a lot on the subject.&lt;/p&gt;

&lt;p&gt;You will need it for logging system and track, alert setup, managing some DB understanding in deep your CI system, manage the load on your app, and many other things.&lt;/p&gt;

&lt;h3&gt;
  
  
  Agile notion
&lt;/h3&gt;

&lt;p&gt;Yes, we all are now using the famous agile method in various ways like &lt;code&gt;KABAN&lt;/code&gt; and &lt;code&gt;SCRUM&lt;/code&gt; but do you truly understand what it means, except doing daily meetings and 2 weeks sprint?&lt;/p&gt;

&lt;p&gt;Agile has one goal: delete key blocker points and relief a team from a pain point. A developer as he is a daily user of this working method should always be proactive on how his team apply the agile method and find a way to fix pain point.&lt;/p&gt;

&lt;p&gt;Rework your daily meetings challenge the importance of each meeting and work with your PO or scrum master hand in hand to improve your working process (&lt;em&gt;extreme programming - a clear definition of done, the definition of ready, etc...&lt;/em&gt;)&lt;/p&gt;

&lt;h3&gt;
  
  
  Technological Monitor
&lt;/h3&gt;

&lt;p&gt;AND MOST IMPORTANT overdo &lt;code&gt;technological monitor&lt;/code&gt; about web dev, and &lt;strong&gt;SHARE&lt;/strong&gt; everything you learn that is in the scope of your activities, It could be &lt;code&gt;VSCODE&lt;/code&gt; last update, share benchmark of apple M1, explain a lib to co-workers or just do R&amp;amp;D project with them or on your own&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;As described above, Web development covers a large scope. To conclude I will give you one last tip. Don't overlearn on all of this subject.&lt;/p&gt;

&lt;p&gt;My best advice is to know a little of all but search for solid notions and to specialize in only some of those subjects.&lt;/p&gt;

&lt;p&gt;We are developers, our main activity is to code. Just get rock solid on the back end and front end dev and then use some of your time to learn all of those side subjects but do not become a pro on it, you are not a DevOps you are not a Scrum Master or a tech guru that do bigs conferences.&lt;/p&gt;

&lt;p&gt;You're a software engineer that need to understand and challenge all this other subject to be better at what you do - coding.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;cover image link:&lt;/em&gt; &lt;a href="https://fr.freepik.com/photos/technologie"&gt;Technology picture created by pressfoto - fr.freepik.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>developer</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
