<?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: Ricardo Gouveia</title>
    <description>The latest articles on DEV Community by Ricardo Gouveia (@rcrd).</description>
    <link>https://dev.to/rcrd</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%2F26045%2Fe2ce3227-6b80-451a-94e7-3e45965622fb.jpg</url>
      <title>DEV Community: Ricardo Gouveia</title>
      <link>https://dev.to/rcrd</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rcrd"/>
    <language>en</language>
    <item>
      <title>Separating Logic from UI in React: A Comparison with Angular Services</title>
      <dc:creator>Ricardo Gouveia</dc:creator>
      <pubDate>Tue, 20 May 2025 01:14:01 +0000</pubDate>
      <link>https://dev.to/rcrd/separating-logic-from-ui-in-react-a-comparison-with-angular-services-5en</link>
      <guid>https://dev.to/rcrd/separating-logic-from-ui-in-react-a-comparison-with-angular-services-5en</guid>
      <description>&lt;p&gt;Angular developers are used to a well-defined flow for building features: typically, services act as a middle layer between business logic and UI.&lt;/p&gt;

&lt;p&gt;In React, the architectural freedom makes this separation less explicit — which often leads to questions about where to place logic and how to keep it decoupled from visual concerns.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔧 Angular Services: Organization Through Dependency Injection
&lt;/h2&gt;

&lt;p&gt;Angular services are injectable classes with reusable logic. They're responsible for sharing state and behavior between components — such as authentication, HTTP calls, component communication, and more.&lt;/p&gt;

&lt;p&gt;It's worth noting that this doesn’t eliminate the need for state management tools like&lt;br&gt;
NgRx or Akita, which are used when an app demands more robust state handling.&lt;/p&gt;

&lt;p&gt;Dependency injection makes services easily accessible across the application:&lt;br&gt;
&lt;/p&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;Injectable&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;providedIn&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;root&lt;/span&gt;&lt;span class="dl"&gt;'&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;class&lt;/span&gt; &lt;span class="nc"&gt;NotificationService&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
  &lt;span class="nf"&gt;show&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&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="cm"&gt;/* display toast */&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;h2&gt;
  
  
  🌀 React: Architectural Diversity as a Feature
&lt;/h2&gt;

&lt;p&gt;React doesn’t enforce a structure for separating logic from UI — which brings flexibility, but also responsibility. Teams need to define patterns that keep the codebase consistent.&lt;/p&gt;

&lt;p&gt;Common approaches to separating logic in React include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Headless Components (a.k.a. logic-only or controller components)&lt;/li&gt;
&lt;li&gt;Custom Hooks&lt;/li&gt;
&lt;li&gt;Context API&lt;/li&gt;
&lt;li&gt;Declarative Composition&lt;/li&gt;
&lt;li&gt;External Modules (like auth.ts, useUser.ts, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🧩 Example: Parent Provides Store Data to Child
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Scenario&lt;/strong&gt;: The &lt;code&gt;Parent&lt;/code&gt; component extracts data from a store and passes it to &lt;code&gt;Child&lt;/code&gt; via props. &lt;code&gt;Child&lt;/code&gt; is completely decoupled from data sources, making it reusable anywhere in the app.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Parent.tsx&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;useUserStore&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="s1"&gt;./stores/useUserStore&lt;/span&gt;&lt;span class="dl"&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;Child&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="s1"&gt;./Child&lt;/span&gt;&lt;span class="dl"&gt;'&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="nf"&gt;Parent&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="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useUserStore&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="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// or a spinner&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Child&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&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;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Child.tsx&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Child&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="nx"&gt;Props&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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Hello&lt;/span&gt;&lt;span class="p"&gt;,&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="o"&gt;!&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// App.tsx&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;Parent&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="s1"&gt;./Parent&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&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="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;main&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Headless Component Example&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Parent&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;main&lt;/span&gt;&lt;span class="p"&gt;&amp;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;h3&gt;
  
  
  Benefits of This Pattern:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Child is pure, testable, and reusable.&lt;/li&gt;
&lt;li&gt;Parent acts as a logic adapter, fetching store data and injecting it into children.&lt;/li&gt;
&lt;li&gt;Logic is separated from UI, supporting scalability.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ⚖️ Angular Services × React Patterns: A Direct Comparison
&lt;/h2&gt;




&lt;p&gt;💡 &lt;strong&gt;Headless Components&lt;/strong&gt;: Components that render nothing but execute logic or handle side effects.&lt;/p&gt;

&lt;p&gt;Declarative, reusable, and live inside the JSX tree. They're like "visible services" in React, organizing logic outside of UI rendering.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;AnalyticsTracker&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;trackPageView&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;return&lt;/span&gt; &lt;span class="kc"&gt;null&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;&lt;strong&gt;🪝 Custom Hooks&lt;/strong&gt;: Functions that encapsulate reusable logic based on React hooks.&lt;/p&gt;

&lt;p&gt;Extract business rules (e.g., async calls, validations), improving testability and reuse across components.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;useAuth&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="p"&gt;[&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;setUser&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// fetch user data&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="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;user&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;&lt;strong&gt;🌐 Context API&lt;/strong&gt;: React’s built-in solution for sharing data without prop drilling.&lt;/p&gt;

&lt;p&gt;Great for themes, authentication, language, or global events. Combined with hooks, behaves like a mini store.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;UserContext&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;useUser&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="nf"&gt;useContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;UserContext&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;&lt;strong&gt;🧱 Declarative Composition&lt;/strong&gt;: Controls logic and behavior via JSX components instead of scattered if or switch statements.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;When&lt;/span&gt; &lt;span class="na"&gt;condition&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&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;isAdmin&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;AdminPanel&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;When&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Makes UI more readable and component-driven, replacing complex conditionals with declarative expressions.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Final Thoughts
&lt;/h2&gt;

&lt;p&gt;React doesn’t require you to separate UI and logic — but doing so makes your code more scalable, testable, and maintainable.&lt;/p&gt;

&lt;p&gt;Headless components and custom hooks are powerful ways to encapsulate logic without compromising presentation. They align well with React’s declarative and compositional model.&lt;/p&gt;

&lt;p&gt;Even if not always reusable, these patterns keep child components flexible and ready to work with different data sources or contexts.&lt;/p&gt;

&lt;p&gt;In the end, the absence of Angular-like services in React isn't a limitation — it's an opportunity to&lt;br&gt;
build architecture tailored to your application’s needs.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>angular</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Community as a Signal for Companies</title>
      <dc:creator>Ricardo Gouveia</dc:creator>
      <pubDate>Fri, 07 Jun 2024 11:13:45 +0000</pubDate>
      <link>https://dev.to/rcrd/comunidade-como-indicativo-de-empresas-2jmd</link>
      <guid>https://dev.to/rcrd/comunidade-como-indicativo-de-empresas-2jmd</guid>
      <description>&lt;p&gt;This text is meant to stir debate and is totally open to comments — including disagreements. But after hearing “frontend is going to die” so many times, nothing really shakes us anymore...&lt;/p&gt;

&lt;p&gt;In this (very gradual) return to in-person activities — at least the ones that make sense to be or have the option to be in-person — I’ve also been getting back into attending meetups and events, and reviving my routine of creating content.&lt;/p&gt;

&lt;p&gt;This specific article is something I started conceptualizing back in 2021, but I never moved past the research phase (especially since it’s largely based on personal opinion and experience). And honestly, that delay turned out to be a good thing, because my conclusions have evolved since I first came up with the idea.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Mean by “Community”
&lt;/h2&gt;

&lt;p&gt;Very similar to the idea of a shared convention, what I mean by “community” here is the group of people in tech who gather at events, meetups, groups, and other interactive spaces to exchange knowledge, network, and so on.&lt;/p&gt;

&lt;p&gt;This is one of the activities that’s been regaining momentum in the return to in-person spaces — and it makes total sense to me. Personally, sometimes I get “screen fatigue” from work, and an in-person event is what motivates me to keep investing time in software topics, even on weekends.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://dev.to"&gt;Dev.to&lt;/a&gt; itself is a kind of community, especially when you look at posts in the form of questions or discussions, which are mainly meant to engage and interact.&lt;/p&gt;

&lt;p&gt;I’ve always been connected to community. I got into frontend thanks to a local developer group where I used to live, and today I participate in communities that discuss the technologies I work (or have worked) with, mostly around São Paulo.&lt;/p&gt;

&lt;p&gt;Even though I deliberately distanced myself from the community during the pandemic — mainly due to screen fatigue and all-remote events, as I mentioned — I still consider it an important part of a dev’s career. It’s not impossible to become a good developer without community — after all, there are many paths to success in life — but I would definitely point to it as a smoother road.&lt;/p&gt;

&lt;h2&gt;
  
  
  Community and Companies
&lt;/h2&gt;

&lt;p&gt;Tech communities and companies have been intertwined for a long time. This became especially obvious in the 2010s during the startup boom. Tech events were even satirized in episodes of HBO’s &lt;strong&gt;Silicon Valley&lt;/strong&gt; (which, if you haven’t seen, I highly recommend — it’s worth enduring the secondhand embarrassment from some absolutely absurd yet painfully real situations, both past and present).&lt;/p&gt;

&lt;p&gt;Companies could offer event spaces inside their offices, sponsor meetups and post job openings there, or encourage their developers to speak at events, among other things.&lt;/p&gt;

&lt;p&gt;In return, events could attract the kinds of professionals companies were looking for, and also inspire devs to explore new technologies, methodologies, and technical solutions for the problems they were tackling at work.&lt;/p&gt;

&lt;p&gt;Just like not all devs participate in community, not all companies do either. And there are also companies that host their &lt;strong&gt;own&lt;/strong&gt; tech events, but don’t necessarily participate in, support, or encourage their employees to attend external ones. Some companies simply ignore the dev community altogether.&lt;/p&gt;

&lt;h2&gt;
  
  
  Motivated Absence
&lt;/h2&gt;

&lt;p&gt;Every rule has its exceptions, and here there are probably more than just one. But this is a connection I’ve noticed: some companies don’t support their employees’ participation in tech events because of their &lt;strong&gt;high turnover rates&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For these companies, if an employee gets involved in a community filled with companies hunting for talent — and lots of people talking openly about the advantages of their jobs — that employee can easily jump to a better opportunity or one that aligns more with their personal goals.&lt;/p&gt;

&lt;p&gt;Not all companies that stay away from community do so for this reason, but I believe the so-called “stepping stone companies” (where people go mostly to gain experience before moving on) avoid community involvement &lt;strong&gt;precisely&lt;/strong&gt; to keep employees around longer.&lt;/p&gt;

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

&lt;p&gt;This connection became clear to me as I reflected on some past work experiences, and also through conversations with colleagues — asking them how familiar they were with software communities, and how often they were exposed to these topics, whether through institutional communication or their own coworkers (your immediate circle says a lot about the place you’re in).&lt;/p&gt;

&lt;p&gt;Another takeaway I had was this: community and events can also help you understand the fair value of your work. If you go to an event and meet people in your field who are giving talks, making the most of their income, and willing to discuss salary ranges and benefits from where they work, you can reflect on whether you’re being compensated fairly — even if your company doesn’t have an open internal salary policy.&lt;/p&gt;

&lt;p&gt;Today, I’m happy working at a company where, every time I go to an event, I meet people who already know or have heard about the company’s pioneering initiatives, diversity, inclusion, and support for communities and events. More and more, attending events shows me that companies that compensate fairly, support, and encourage their employees to grow have &lt;strong&gt;much more&lt;/strong&gt; to gain — not lose — when their people participate in tech discussion groups.&lt;/p&gt;

</description>
      <category>community</category>
      <category>developer</category>
      <category>career</category>
      <category>software</category>
    </item>
    <item>
      <title>Front-End Beyond the Web</title>
      <dc:creator>Ricardo Gouveia</dc:creator>
      <pubDate>Sun, 02 May 2021 18:20:45 +0000</pubDate>
      <link>https://dev.to/rcrd/o-front-end-alem-da-web-1li3</link>
      <guid>https://dev.to/rcrd/o-front-end-alem-da-web-1li3</guid>
      <description>&lt;p&gt;Countless articles discuss the time when the world stopped having "webmasters" and started having "front-end," "back-end," "DBAs," "DevOps," and others. This shift has spread from small startups to tech giants.&lt;/p&gt;

&lt;p&gt;The specialization of professions is an old trend. I remember reading about it back in elementary school, studying the industrial revolution. It’s natural that, when aiming to create a richer web experience with more interactions, more effort, interdisciplinarity, and specialization will be required from those building it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is front-end, really?
&lt;/h2&gt;

&lt;p&gt;According to Wikipedia:&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__wikipedia--container"&gt;
  &lt;div class="ltag__wikipedia--header"&gt;
    &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fwikipedia-logo-0a3e76624c7b1c3ccdeb9493ea4add6ef5bd82d7e88d102d5ddfd7c981efa2e7.svg" class="ltag__wikipedia--logo" alt="Wikipedia Logo" width="800" height="400"&gt;
    &lt;a href="https://en.wikipedia.org/wiki/Front-end_web_development" rel="noopener noreferrer"&gt;Front-end web development&lt;/a&gt;
  &lt;/div&gt;
  &lt;div class="ltag__wikipedia--extract"&gt;&lt;p&gt;&lt;b&gt;Front-end web development&lt;/b&gt; is the development of the graphical user interface of a website through the use of HTML, CSS, and JavaScript so users can view and interact with that website.&lt;/p&gt;&lt;/div&gt;
  &lt;div class="ltag__wikipedia--btn--container"&gt;
      &lt;a class="ltag__wikipedia--btn" href="https://en.wikipedia.org/wiki/Front-end_web_development" rel="noopener noreferrer"&gt;View on Wikipedia&lt;/a&gt;&amp;gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;em&gt;The definition is not available in Portuguese. In a free translation: "Front-end web development is the practice of converting data into a graphical interface through the use of HTML, CSS, and JavaScript so that users can view and interact with that data."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It’s important to note this refers to &lt;em&gt;web front-end development&lt;/em&gt;. If we want to understand what front-end truly is, we need to look at another definition:&lt;/p&gt;


&lt;div class="ltag__wikipedia--container"&gt;
  &lt;div class="ltag__wikipedia--header"&gt;
    &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fwikipedia-logo-0a3e76624c7b1c3ccdeb9493ea4add6ef5bd82d7e88d102d5ddfd7c981efa2e7.svg" class="ltag__wikipedia--logo" alt="Wikipedia Logo" width="800" height="400"&gt;
    &lt;a href="https://pt.wikipedia.org/wiki/Front-end_e_back-end" rel="noopener noreferrer"&gt;Front-end e back-end&lt;/a&gt;
  &lt;/div&gt;
  &lt;div class="ltag__wikipedia--extract"&gt;&lt;p&gt;Em ciência da computação, &lt;b&gt;&lt;i&gt;front-end,&lt;/i&gt; interface frontal&lt;/b&gt; ou &lt;b&gt;parte frontal&lt;/b&gt; e &lt;i&gt;&lt;b&gt;back-end&lt;/b&gt;&lt;/i&gt;, &lt;b&gt;parte secundária&lt;/b&gt;, &lt;b&gt;parte de suporte&lt;/b&gt; ou &lt;b&gt;parte de retaguarda&lt;/b&gt; são termos generalizados que se referem às etapas inicial e final de um processo. O &lt;i&gt;front-end&lt;/i&gt; é responsável por coligir a entrada do usuário em várias formas e processá-la para adequá-la a uma especificação em que o &lt;i&gt;back-end&lt;/i&gt; a possa utilizar.&lt;/p&gt;&lt;/div&gt;
  &lt;div class="ltag__wikipedia--btn--container"&gt;
      &lt;a class="ltag__wikipedia--btn" href="https://pt.wikipedia.org/wiki/Front-end_e_back-end" rel="noopener noreferrer"&gt;View on Wikipedia&lt;/a&gt;&amp;gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;In general terms, front-end is what obtains and preprocesses the data that will be sent to the back-end. And here’s where the reflection begins: there are many other ways to get user data that differ from applications made with HTML, CSS, and JS.&lt;/p&gt;

&lt;h2&gt;
  
  
  User interaction
&lt;/h2&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1380221812139814913-160" src="https://platform.twitter.com/embed/Tweet.html?id=1380221812139814913"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1380221812139814913-160');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1380221812139814913&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;I’ve had this idea for a few years, and I posted this summarized reflection on Twitter, which received some feedback. Based on that, I can propose and explain a new term, building on the previous definition:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;del&gt;Web&lt;/del&gt; front-end development:&lt;/strong&gt; &lt;em&gt;is the practice of converting data into an interface &lt;del&gt;graphical, through the use of HTML, CSS, and JavaScript,&lt;/del&gt; so users can view and interact with that data.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;With this definition, we don’t change the role of a web front-end developer, but we broaden the front-end field to new possibilities of user interaction. Back to the Twitter discussion, here are some possibilities to consider:&lt;/p&gt;

&lt;h3&gt;
  
  
  - Mobile app development
&lt;/h3&gt;

&lt;p&gt;App development for smartphones has basically become its own field, gaining solid ground with smart operating systems like iOS and Android.&lt;/p&gt;

&lt;p&gt;However, the output of this kind of development still considers many front-end concepts: it interacts with users, presents an interface (not just graphical), and collects and preprocesses data before sending it to a server.&lt;/p&gt;

&lt;p&gt;The similarities between mobile development and front-end go beyond concept: the many frameworks for building mobile apps using web-native languages (and their paradigms) create a technical correlation between these areas.&lt;/p&gt;

&lt;p&gt;So, we can consider mobile development as a type of front-end.&lt;/p&gt;

&lt;h3&gt;
  
  
  - Personal assistants
&lt;/h3&gt;

&lt;p&gt;This term might feel abstract, but it’s easier with examples: Amazon Alexa, Google Home, and Apple HomePod.&lt;/p&gt;

&lt;p&gt;Here, we abstract the graphical aspect even more: the interface is primarily audio. However, the user still interacts with the device, which needs to connect to a server to process data.&lt;/p&gt;

&lt;p&gt;Without a doubt, personal assistants — whether devices or apps — are a kind of front-end.&lt;/p&gt;

&lt;h3&gt;
  
  
  - IoT / SmartWatches / SmartBands / Wearables
&lt;/h3&gt;

&lt;p&gt;The broad category of the Internet of Things (IoT) is mostly made up of devices that can be classified as front-end systems.&lt;/p&gt;

&lt;p&gt;In the two most popular examples: both the Apple Watch and MiBand rely on a smartphone to function (totally or partially) and have their data processed and/or stored by servers outside the user’s domain.&lt;/p&gt;

&lt;p&gt;Beyond wearables, a large group of smart home devices connects to servers for basic functions. They all have sensors that interact with the user (or with the environment, which the user modifies, making it an indirect interaction) to gather information and execute actions. Many of these devices don’t have screens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Front-end beyond the Web
&lt;/h2&gt;

&lt;p&gt;The front-end’s dependence on screens is still strong, and that’s not a problem — it’s just a reflection of the world we live in today. However, we should notice the small signs showing that users no longer depend so much on isolated devices; one such sign is the drop in PC sales and the rise in tablet sales.&lt;/p&gt;

&lt;p&gt;I still fully agree when I hear someone say the foundation for studying front-end is HTML, CSS, and JS. It still makes no sense to jump to a broader context for someone simply seeking the basics.&lt;/p&gt;

&lt;p&gt;But for people who already have solid knowledge of these technologies, it’s worth being a bit more conceptual and reflecting on the future of human-computer interaction (which might not even be so "computer" anymore). This change isn’t going to happen — it’s already happening.&lt;/p&gt;

&lt;p&gt;We’ll need UX professionals to shape, design, and test how users interact with these devices (and they’ll also face a big adaptation), and we’ll need developers to build the technical solutions that enable the intended interaction.&lt;/p&gt;

&lt;p&gt;This text is deeply related to an old controversy about the "end of front-end." Maybe that was the motivation behind my reflection. But anyway, my intention is not to provoke those who gave this prediction, but to present another alternative — not an end, but an evolution of the field.&lt;/p&gt;

&lt;p&gt;If this text made you think, contribute to it in the comments. It’s more of an introduction than a conclusion.&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>development</category>
      <category>discuss</category>
      <category>english</category>
    </item>
    <item>
      <title>Nobody Can Tell You How Long It Takes to Become a “Dev”</title>
      <dc:creator>Ricardo Gouveia</dc:creator>
      <pubDate>Sat, 27 Jun 2020 12:06:35 +0000</pubDate>
      <link>https://dev.to/rcrd/ninguem-pode-dizer-quanto-tempo-leva-para-virar-dev-16n6</link>
      <guid>https://dev.to/rcrd/ninguem-pode-dizer-quanto-tempo-leva-para-virar-dev-16n6</guid>
      <description>&lt;p&gt;&lt;em&gt;Cover photo by &lt;a href="https://unsplash.com/@anniespratt?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Annie Spratt&lt;/a&gt; on &lt;a href="https://unsplash.com/@anniespratt" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Even though I’m not from the era of webmasters, I know that at least since 2012 there have been courses promising super-fast training to turn you into a developer. This isn’t exclusive to front-end either — back in college, there was a joke about a video called “Learn C in 5 hours.”&lt;/p&gt;

&lt;p&gt;The problem is when nobody warns you not to take that seriously.&lt;/p&gt;




&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%2Fi%2Fh9nm21wy6l6rh5xjakom.jpg" 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%2Fi%2Fh9nm21wy6l6rh5xjakom.jpg" alt="Black woman reading a book sitting by a window" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Photo by &lt;a href="https://unsplash.com/@thoughtcatalog" rel="noopener noreferrer"&gt;Thought Catalog&lt;/a&gt; on &lt;a href="https://unsplash.com/@thoughtcatalog" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with Learning
&lt;/h2&gt;

&lt;p&gt;Learning is a subjective concept. Especially for me — I’m not a teacher — I can only talk about what works for me. But there’s generally some agreement among educators that everyone has their own optimized learning style.&lt;/p&gt;

&lt;p&gt;A course using Method A might work great for Person 1 but poorly for Person 2. A course using Method B might be the opposite. Person C might do well with both, and Person D with neither. Even without digging into academic research, I can give a practical example: on the official React site — the front-end library — on their &lt;a href="https://reactjs.org/tutorial/tutorial.html" rel="noopener noreferrer"&gt;tutorial page&lt;/a&gt;, there’s a box saying you can follow two paths: one for people who learn by doing, and one for people who prefer a “bottom-up” conceptual approach. That already points to at least two different learning styles. The last suggestion, that both paths complement each other, might even hint at a third method: combining the two at the same time.&lt;/p&gt;

&lt;p&gt;All this “theory” — if we can call it that — boils down to this: content creators who make courses or tutorials only control how long their course lasts. They might estimate how much practice time you’ll need beyond the lessons, to estimate total effort. The problem is that this estimate doesn’t take into account different learning styles, so it only makes sense if your personal method exactly fits the course’s approach. In my experience, that rarely happens.&lt;/p&gt;

&lt;p&gt;Never try to twist your learning style to fit a course or content. It’s often impossible, and if it is possible, it will require a huge effort — and when you look for another resource, you might try to do the same again. That’s a recipe for slowing down your progress. I’m not saying you shouldn’t optimize your learning: if a tip improves your process, go for it. But if something isn’t working after a reasonable effort, switch. Today we have endless sources of knowledge, especially in development. Don’t get stuck.&lt;/p&gt;

&lt;p&gt;This also applies to this post. If you don’t get what I mean here, ask me to explain it differently. If that still doesn’t work, find other sources or talk to others. You don’t even have to finish reading, or you can come back later when it might make more sense.&lt;/p&gt;




&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%2Fi%2Fp4qknqpj405hgvgxrf5t.jpg" 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%2Fi%2Fp4qknqpj405hgvgxrf5t.jpg" alt="Upward trending graph on paper with pens and ruler" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem of “Leveling Up”
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Photo by &lt;a href="https://unsplash.com/@isaacmsmith?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Isaac Smith&lt;/a&gt; on &lt;a href="https://unsplash.com/" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Besides the problem of learning, there’s the problem of leveling up: at what point in the journey of learning programming is a person considered a developer? There’s no agreement.&lt;/p&gt;

&lt;p&gt;Some courses and bootcamps leverage this ambiguity — sometimes even against learners. This doesn’t stop you from learning, but it creates false expectations. You don’t develop a “developer mindset” just by finishing a course. You gain more technical knowledge. Is that enough to be a developer?&lt;/p&gt;

&lt;p&gt;We can argue about what counts as “enough” for a developer: is just knowing how to make a webpage enough? Okay, but do you have to build it from scratch or can you use frameworks? Does it just have to work, or should it meet performance benchmarks like &lt;a href="https://developers.google.com/web/tools/lighthouse" rel="noopener noreferrer"&gt;Lighthouse&lt;/a&gt;? Do you need to know accessibility at this stage? Is knowing HTML/CSS/JS enough, or do you also have to know concepts that apply to mobile apps (like notification APIs or phone features)? Should you understand UI/UX to spot issues? And what about soft skills?&lt;/p&gt;

&lt;p&gt;There are a lot of questions. If some of these are mandatory, I wouldn’t call myself a dev.&lt;/p&gt;

&lt;p&gt;For companies, they might require some amount of experience before hiring you as a dev. That makes the course-to-dev connection even less direct. Other companies might hire you with little experience and train you during onboarding, making outside courses optional.&lt;/p&gt;

&lt;p&gt;The point is: &lt;strong&gt;there is no single moment when someone “becomes” a developer. It doesn’t exist.&lt;/strong&gt; A person gradually acquires developer skills, might get a job in the field, and keeps learning. They didn’t “become” a dev the moment they got hired, because you can be a dev as a hobby and never work professionally. It’s not finishing course X or Y, because you might learn other ways or even without formal learning and still build a product that meets many requirements.&lt;/p&gt;




&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%2Fi%2F9srnhpuc7st6l8kzic3t.jpg" 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%2Fi%2F9srnhpuc7st6l8kzic3t.jpg" alt="Plus-size people chatting in a white room with windows" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Lots of Advice, Few Final Words
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Photo by &lt;a href="https://unsplash.com/@canweallgo?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;AllGo - An App For Plus Size People&lt;/a&gt; on &lt;a href="https://unsplash.com/@canweallgo" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I’ve laid out a lot of questions about who is or isn’t a dev. &lt;strong&gt;If you’re just starting out, don’t panic.&lt;/strong&gt; That’s not my goal. I want to protect you from thinking a course is “mandatory” just because everyone you know took it, or that those who did are somehow better or will get what they want faster.&lt;/p&gt;

&lt;p&gt;The other extreme is dangerous too: yes, no one can promise you’ll be a dev in a week. But there are trusted resources recommended by established people and companies, with estimated timelines to master topics. Again: estimates, not guarantees. You should be open to advice from people who agree there are many paths to the same goal. Avoid advice from those selling you something or offering a “revolutionary” one-size-fits-all path — that just doesn’t exist.&lt;/p&gt;

&lt;p&gt;My recommendations for beginners wondering “am I really a dev?” are three:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Read the &lt;a href="https://frontendmasters.com/books/front-end-handbook/2019/" rel="noopener noreferrer"&gt;Front-end Handbook&lt;/a&gt;: you don’t need to read it all. It’s not a technical book but a great summary of the front-end profession, technologies, what you need to apply for jobs, and where to find knowledge. It’s suggestive and updated yearly (although 2020 wasn’t released, the 2019 version is still relevant).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Follow the &lt;a href="https://roadmap.sh/frontend" rel="noopener noreferrer"&gt;front-end developer roadmap&lt;/a&gt;: updated every year, it shows technologies and how they fit into a journey. I don’t know everything there — neither do most devs, because it’s not necessary — but it’s great for beginners to have some order and context.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use the &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/Front-end_web_developer" rel="noopener noreferrer"&gt;front-end web developer learning path&lt;/a&gt; on MDN: despite the tagline saying it teaches you everything to become a dev, I disagree. It teaches you how to build simple pages based on solid fundamentals you can apply in any framework — which is essential. MDN is my daily dev reference. Their descriptions are concise, designed for quick reference, not official docs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I already recommended the Front-end Handbook back in 2018 in a post of mine &lt;a href="https://dev.to/ricardogouveia3/how-to-keep-up-to-date-in-front-end-4j40"&gt;here&lt;/a&gt;. The other sources are newer or I discovered them later. I’m always looking for solid, renewable sources to recommend.&lt;/p&gt;

&lt;p&gt;There are YouTube channels, courses, articles, and dev.to posts that will be very positive for your career. During and after your initial process, build the habit of accessing these sources to learn more and share knowledge. Never stop learning.&lt;/p&gt;

&lt;p&gt;And don’t make this post your only source. Talk to other people, share your thoughts. I want to hear your opinion!&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>learning</category>
      <category>beginning</category>
      <category>career</category>
    </item>
    <item>
      <title>Minha Stack Pessoal - Parte 1: Introdução</title>
      <dc:creator>Ricardo Gouveia</dc:creator>
      <pubDate>Wed, 06 May 2020 12:26:59 +0000</pubDate>
      <link>https://dev.to/ricardogouveia3/minha-stack-pessoal-parte-1-introducao-27fn</link>
      <guid>https://dev.to/ricardogouveia3/minha-stack-pessoal-parte-1-introducao-27fn</guid>
      <description>&lt;p&gt;Esse é o primeiro de uma série de 4 (ou mais, ainda está incerto) artigos que pretendo escrever sobre a stack que estou utilizando para meus produtos pessoais e como essas escolhas influenciam meu caminho como desenvolvedor.&lt;/p&gt;

&lt;p&gt;Esses artigos são meramente coleções de opiniões e experiências pessoais. Posso estar utilizando ferramentas de maneira não ideal, e já seria extremamente útil de um relato aqui provocasse uma discussão de modo que eu aprendesse um outro modo de fazer algo que já fiz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Anteriormente
&lt;/h2&gt;

&lt;p&gt;O meu &lt;a href="https://rcrd.me"&gt;site pessoal&lt;/a&gt; não é novo. Na verdade hoje ele está na versão 4.1. Eu mantenho o código das versões anteriores em uma pasta no google drive onde posso executa-lo rapidamente por razões nostálgicas.&lt;/p&gt;

&lt;p&gt;Na primeira versão do site, eu utilizei o Grunt, o primeiro task runner em que consegui fazer um conjunto de scripts que considerei realmente útil. Nesse script eu criei rotinas para compilar Sass e Pug, minificar HTML e CSS, comprimir imagens e usar live-reloading no browser. Fiquei tão feliz com o resultado que abstrai essa configuração do Grunt para um &lt;a href="https://github.com/ricardogouveia3/grunt-boilerplate"&gt;"boilerplate" para usar em outros projetos&lt;/a&gt;. Durante muito tempo qualquer coisa nova que eu criava em geral começava com um clone desse projeto.&lt;/p&gt;

&lt;p&gt;Não lembro exatamente o que provocou a mudança, mas lembro que comecei a perceber que muitos estavam falando que o Gulp era melhor que o Grunt, e começaram a migrar de plataforma. Não me senti bem com isso, eu estava feliz com o Grunt, e quando tentei migrar para o Gulp, falhei nas primeiras tentativas já que a sintaxe de arrow function não fazia nenhum sentido pra mim na época.&lt;/p&gt;

&lt;p&gt;Na terceira tentativa consegui construir um script que fazia tudo o que seu predecessor, em Grunt, fazia também. Novamente, &lt;a href="https://github.com/ricardogouveia3/gulp-boilerplate"&gt;esse script virou um "boilerplate"&lt;/a&gt;, e a versão 2.x do meu site foi feita com ele.&lt;/p&gt;

&lt;p&gt;Passei mais tempo utilizando a versão do Gulp do que a do Grunt. Nesse meio tempo, acabei desenvolvendo a versão 3.x do meu site. Também fiz uma versão em NPM Scripts das rotinas do task runner, para evitar que eu fosse impedido de usar alguma tecnologia por perda de suporte de plugin para o Gulp. &lt;a href="https://github.com/ricardogouveia3/npm-scripts-boilerplate"&gt;A versão pura em NPM&lt;/a&gt; até ficou pronta, mas achei lenta e nunca utilizei para nenhum projeto. Também tentei fazer algo em Webpack, mas não consegui. Hoje entendo que talvez tenha sido um erro tentar usar o Webpack pra isso.&lt;/p&gt;

&lt;h2&gt;
  
  
  Breakpoints
&lt;/h2&gt;

&lt;p&gt;A versão do boilerplate do Gulp passou tanto tempo sendo minha principal base para novos projetos pessoais e até profissionais pq ela funcionava. Quando me mudei para São Paulo no início de 2019, trabalhei em uma empresa que não tinha uma stack definida para os produtos que precisavam ser feitos. Apresentei esse boilerplate para o (único) outro dev da equipe e ele foi usado até mesmo em projetos que estão em produção até hoje.&lt;/p&gt;

&lt;p&gt;Nessa época, eu me culpava por não saber um framework JS. Falhei todas as vezes que tentei aprender um. Li vários artigos sobre curvas de aprendizados, comparando Vue.js, React e Angular. Eu sempre pensava que não tinha um projeto que necessitasse de um framework JS, e a idéia de fazer uma aplicação de pizzaria fake só pra aprender não me agradava, porque aquilo simplesmente não tinha sentido em existir, por menor que fosse. Eu queria fazer um projeto que pudesse descobrir algo novo no framework, chegar em casa e já implementar, ou seja: evoluir a aplicação - e ter um motivo para fazer isso.&lt;/p&gt;

&lt;p&gt;Pouco tempo depois, troquei de emprego. Foi a primeira vez que fui trabalhar numa empresa grande e de tecnologia. Tive um treinamento de uma semana de Angular e comecei a trabalhar num projeto que estava em produção. Tive muita dificuldade, mas aprendi mais do que jamais antes na vida, tanto sobre JS quanto sobre Angular, e também sobre todo o ambiente e metodologia ágil de desenvolvimento de software.&lt;/p&gt;

&lt;p&gt;Alguns meses depois, resolvi tentar mudar a base do meu site para Vue. A decisão foi simples: eu já trabalhava com Angular, então não precisava de algo pra praticar; eu não entendia a sintaxe do React, e Vue parecia uma novidade interessante.&lt;/p&gt;

&lt;h2&gt;
  
  
  Atualmente
&lt;/h2&gt;

&lt;p&gt;Hoje, eu tenho 3 produtos pessoais principais:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RCRD: o meu site onde falo sobre mim, mostro um pouco dos meus trabalhos, experimentos e posts, e tenho um form de contato. É feito em Vue.&lt;/li&gt;
&lt;li&gt;RCRD Portfolio: uma lista de jobs que fiz, até bem desatualizada. É feito em Angular.&lt;/li&gt;
&lt;li&gt;RCRD Labs: uma lista de experimentos que fiz. É feito em React.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Estou tentando achar uma boa idéia para construir em Svelte. Um projeto em React Native está nos planejamentos.&lt;/p&gt;

&lt;p&gt;Também tenho uma API que alimenta esses e outros produtos, mas ela e os outros não entram no que chamo de stack pessoal.&lt;/p&gt;

&lt;p&gt;Nos artigo seguinte vou discutir sobre minha experiência migrando o meu site de Gulp para Vue, e como meus conhecimentos recem adquiridos em Angular me ajudaram a finalmente fazer algo usando um framework sozinho.&lt;/p&gt;

&lt;p&gt;É importante falar que &lt;strong&gt;minha decisão de usar frameworks diferentes não tem nada a ver com o conceito de micro front-ends&lt;/strong&gt;. Eu uso diferentes frameworks para que eu tenha uma base de conhecimento em cada um deles. A integração entre eles não é mais forte de que a de dois sites em HTML puro ligados por um link. Eu lido com eles como produtos separados.&lt;/p&gt;

&lt;p&gt;Obrigado pela leitura! Sinta-se a vontade para comentar sua experiência de aprendizado de frameworks e front-end em geral!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>frontend</category>
      <category>frameworks</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Adeus Medium. Olá DEV Community</title>
      <dc:creator>Ricardo Gouveia</dc:creator>
      <pubDate>Sat, 11 Jan 2020 19:36:02 +0000</pubDate>
      <link>https://dev.to/rcrd/adeus-medium-ola-dev-community-4n4p</link>
      <guid>https://dev.to/rcrd/adeus-medium-ola-dev-community-4n4p</guid>
      <description>&lt;p&gt;Esse texto é a continuidade do meu último texto na plataforma Medium. &lt;/p&gt;

&lt;p&gt;Nos últimos meses passei pela experiência de desenvolver uma aplicação de tecnologia e ambiente onde não estou totalmente acostumado, e sem ter acesso a internet externa. Sucintamente: foi horrível.&lt;/p&gt;

&lt;p&gt;Não era necessário ter passado por isso para que eu já tivesse consciência da importância de compartilhar conhecimento na comunidade de desenvolvedores, mas certamente evidenciou a falta que faz ter respostas "a um google de distância".&lt;/p&gt;

&lt;p&gt;Não é mais um tema tão recente de que o Medium está aplicando a política de Paywall para não assinantes. Eu pessoalmente não li em detalhes que ações específicas a plataforma está tomando, mais vi várias pessoas no Twitter postando prints de alertas sobre "cota mensal de leitura", algo bem semelhante a sites de notícias de revistas atualmente.&lt;/p&gt;

&lt;p&gt;A empresa é livre para determinar como quer ganhar com o seu serviço - que de maneira nenhuma é ruim, e por isso meu conteúdo esteve lá por anos. Mas a decisão de cobrar por conteúdo desencaixou a empresa das necessidades da nossa comunidade, na minha opinião.&lt;/p&gt;

&lt;p&gt;Temos uma comunidade que já quebrou alguns padrões, se por assim dizer, que nos fez ser pessoas e profissionais melhores. O abandono da noção de que ajudar alguém e ajudar a concorrência é o que mais me orgulha desse grupo. E por mais que essa noção ainda exista na profissão, quanto mais pessoas se engajarem e meetups, eventos, grupos e discussões onde estivermos, mais vão deixar de acreditar nessa ideia, e vamos evoluir juntos.&lt;/p&gt;

&lt;p&gt;Contrariando a opinião de alguns de que a quebra dos devs com o Medium é o momento perfeito para abrir um blog com sistema de posts, eu acredito que a comunidade DEV tem potencial para ser o substituto perfeito do Medium, em especial nas features de interatividade que blogs isolados não podem prover.&lt;/p&gt;

&lt;p&gt;É importante dizer que nunca recebi nenhum comunicado do Medium de que meu conteúdo estava sob paywall, nem de ninguém falando que não conseguiu acessar algo que tenha produzido e disponibilizado lá. Pelo contrário, como autor, meus posts aparecem lá, para mim, com um aviso de que não estão dentro da política de paywall. &lt;/p&gt;

&lt;p&gt;Ainda assim, não acho que vale a pena investigar se isso realmente quer dizer que essa política não afeta o meu conteúdo; até porque a empresa pode mudar isso quando quiser. Fazer uso de uma plataforma que acredita no compartilhamento de conteúdo da mesma maneira que nós é muito mais vantajoso. &lt;/p&gt;

&lt;p&gt;Estou como sempre aberto aos comentários sobre essa discussão. E recomendo a leitura do texto do &lt;a class="mentioned-user" href="https://dev.to/ben"&gt;@ben&lt;/a&gt; sobre como &lt;a href="https://dev.to/devteam/medium-was-never-meant-to-be-a-part-of-the-developer-ecosystem-25a0"&gt;o objetivo do Medium jamais foi atingir nossa comunidade&lt;/a&gt; da maneira em que produzimos e compartilhamos, e por isso, ele na verdade não está fazendo nada de errado (em inglês).&lt;/p&gt;

</description>
      <category>liberdade</category>
      <category>conteúdo</category>
      <category>compartilhamento</category>
      <category>dev</category>
    </item>
    <item>
      <title>User Agent Style Sheet: o porquê de um CSS que só serve para ser sobrescrito</title>
      <dc:creator>Ricardo Gouveia</dc:creator>
      <pubDate>Sat, 11 Jan 2020 18:32:54 +0000</pubDate>
      <link>https://dev.to/ricardogouveia3/user-agent-style-sheet-o-porque-de-um-css-que-so-serve-para-ser-sobrescrito-35lm</link>
      <guid>https://dev.to/ricardogouveia3/user-agent-style-sheet-o-porque-de-um-css-que-so-serve-para-ser-sobrescrito-35lm</guid>
      <description>&lt;p&gt;Numa manhã onde eu estava no meu horário mais reflexivo — quando é muito tarde para voltar a dormir, e muito cedo para começar a se arrumar para o trabalho — eu vi o &lt;a href="https://twitter.com/ireaderinokun/status/1066985519425486848?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed&amp;amp;ref_url=https%3A%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Ftype%3Dtext%252Fhtml%26key%3Da19fcc184b9711e1b4764040d3dc5c07%26schema%3Dtwitter%26url%3Dhttps%253A%2F%2Ftwitter.com%2Fireaderinokun%2Fstatus%2F1066985519425486848%26image%3Dhttps%253A%2F%2Fi.embed.ly%2F1%2Fimage%253Furl%253Dhttps%25253A%25252F%25252Fpbs.twimg.com%25252Fprofile_images%25252F911164658047963136%25252FSLtLXQQp_400x400.jpg%2526key%253Da19fcc184b9711e1b4764040d3dc5c07"&gt;tweet da Ire Aderinokun&lt;/a&gt; com uma enquete sobre o método que utilizávamos para resetar CSS.&lt;/p&gt;

&lt;p&gt;Me veio na cabeça a pergunta: pra quê serve aquele CSS que o browser por padrão aplica em certos elementos HTML quando não se utiliza um &lt;a href="https://cssreset.com/what-is-a-css-reset/"&gt;CSS Reset&lt;/a&gt; e nem um estilo próprio que o sobrescreva?&lt;/p&gt;

&lt;h2&gt;
  
  
  User Agent Style Sheet: uma história
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5toz6xOW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3840/1%2Amkd7SJ_dBjhef6x3vi6L9Q.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5toz6xOW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3840/1%2Amkd7SJ_dBjhef6x3vi6L9Q.jpeg" alt="Photo by [Marcus Loke](https://unsplash.com/photos/MFSAETSrcLY?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText) on [Unsplash](https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;&lt;/a&gt;&lt;em&gt;Photo by &lt;a href="https://unsplash.com/photos/MFSAETSrcLY?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Marcus Loke&lt;/a&gt; on &lt;a href="https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Resumidamente, o UA (abreviação para User Agent) é descrito, na &lt;a href="https://www.w3.org/TR/CSS1/#basic-concepts"&gt;especificação do CSS1&lt;/a&gt;, explicando que cada navegador deve em cada browser conter um estilo mínimo a ser aplicado a cada elemento HTML. Já as espeficicações &lt;a href="http://www.w3.org/TR/CSS21/cascade.html#cascade"&gt;CSS2&lt;/a&gt; e &lt;a href="http://www.w3.org/TR/css3-cascade/#computing"&gt;CSS3&lt;/a&gt; acrescentam que a aparência dos elementos quando estilizados pelo UA do navegador devem ser genéricas e "satisfazer expectativas da apresentação documento". &lt;a href="https://meiert.com/en/blog/user-agent-style-sheets/"&gt;A explicação do Jens Oliver Meiert é mais detalhada a respeito da evolução do UA&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Se pensarmos no inicio da Web, com seu intuito único de transferência de conhecimento acadêmico, então faz todo sentido a existência de um UA, já que certamente todo o poder do CSS3 seria desnecessário só para esta tarefa. Naquela época, a Web era como se fosse um &lt;a href="https://pt.wikipedia.org/wiki/LaTeX"&gt;LaTeX&lt;/a&gt; com opções de compartilhamento.&lt;/p&gt;

&lt;p&gt;Ainda hoje, essa utilidade de manter um estilo básico para cada elemento não é totalmente inútil. Se o arquivo CSS não carregar, é bom que o browser saiba mais ou menos onde "jogar" cada coisa. Se ele não soubesse que o H1 deva ser um bloco com margem superior e inferior, título e parágrafo iriam parecer um código minificado.&lt;/p&gt;

&lt;p&gt;Resumindo: a utilidade desse estilo é se manter como a ultima tentativa do browser para &lt;a href="https://www.quora.com/Why-do-web-browsers-style-the-HTML-body-tag-to-have-a-margin-by-default/answer/Victoria-Potvin"&gt;manter a legibilidade&lt;/a&gt; do conteúdo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tempos modernos
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ETaM-dat--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3840/1%2ACX-Jvx2Rbvu5-gMZUuN2bQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ETaM-dat--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3840/1%2ACX-Jvx2Rbvu5-gMZUuN2bQ.jpeg" alt="Photo by [Agnieszka Boeske](https://unsplash.com/photos/ky0ljKGar78?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText) on [Unsplash](https://unsplash.com/search/photos/browser?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;&lt;/a&gt;&lt;em&gt;Photo by &lt;a href="https://unsplash.com/photos/ky0ljKGar78?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Agnieszka Boeske&lt;/a&gt; on &lt;a href="https://unsplash.com/search/photos/browser?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Eu me lembro que no meu primeiro curso de HTML, em 2010, o professor explicou que o browser já aplicava um certo "estilo" no HTML. Mas a explicação se limitou a isso, e ao fato de que deveríamos nos livrar desse estilo para prosseguir, e como fazer isso com um reset.&lt;/p&gt;

&lt;p&gt;No início da curva de aprendizado, não parece uma coisa sensata questionar o professor sobre isso. O arquivo de reset é pequeno (do ponto de vista do aluno que ainda não saber que cada KB conta, e muito!) e se você não tiver muito conhecimento em CSS e quiser tentar fazer algo sem ele, nada — literalmente NADA — parece funcionar direito.&lt;/p&gt;

&lt;p&gt;Outro ponto para chamar atenção é que o estilo aplicado pelo UA não é padronizado. Existe uma &lt;a href="https://stackoverflow.com/questions/6867254/browsers-default-css-for-html-elements"&gt;sugestão de como deve ser esse código pela W3C&lt;/a&gt; (e parte do estilo aplicado é simplesmente os &lt;a href="https://www.w3schools.com/cssref/css_default_values.asp"&gt;valores padrões das propriedades CSS&lt;/a&gt;) mas a não ser por isso, a descrição do seu papel é aberta o suficiente para que cada browser implemente sua maneira de manter ordem no caos (e nessa parte, eu tenho que dizer que estaria um pouco interessado em um browser estilizar uma página automaticamente com flexbox ou grid, mesmo sabendo das consequências).&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://css-tricks.com/the-ecological-impact-of-browser-diversity/"&gt;diversidade de browsers&lt;/a&gt;—diretamente ligada a das empresas que os desenvolvem e ainda consequentemente a todo ecossistema das empresas de TI — é importante. A minha sugestão de padronização se limita ao UA, e não aos browsers e suas engines.&lt;/p&gt;

&lt;p&gt;Em meio a benefícios e malefícios, a guerra dos browsers está com cada vez menos competidores (do ponto de vista de engines). Ninguém mais quer escrever uma engine do zero. E talvez nem deva, já que as que temos hoje são resultados de anos de evoluções.&lt;/p&gt;

&lt;p&gt;O problema é quando o browser traz, sem direito de escolha, algo com potencial de destruir a tão cuidadosamente planejada experiência do usuário, e ainda esse algo tem &lt;a href="http://webaim.org/blog/user-agent-string-history/"&gt;um comportamento de certa forma imprevisível&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que o futuro poderia nos trazer
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c4s6ILGR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3840/1%2Akf3CKZ5e_k7t2IDzVbV8ng.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c4s6ILGR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3840/1%2Akf3CKZ5e_k7t2IDzVbV8ng.jpeg" alt="Photo by [Lucrezia Carnelos](https://unsplash.com/photos/IMUwe-p1yqs?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText) on [Unsplash](https://unsplash.com/search/photos/future?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText)"&gt;&lt;/a&gt;&lt;em&gt;Photo by &lt;a href="https://unsplash.com/photos/IMUwe-p1yqs?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Lucrezia Carnelos&lt;/a&gt; on &lt;a href="https://unsplash.com/search/photos/future?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Você compra um apartamento muito caro, na beira mar, no melhor bairro de uma cidade muito boa. Ele tem piscina, academia, porteiro e vários elevadores. Ele também tem uma suíte com a melhor vista do prédio.&lt;/p&gt;

&lt;p&gt;Só que nessa suíte tem uma lâmpada incandescente que não tem interruptor, e já vem ligada. A vantagem é que ela não desliga quando falta energia. E você pode, se quiser, quebrar a parede e colocar um interruptor.&lt;/p&gt;

&lt;p&gt;Eu realmente não entendo porque browsers, ou o próprio HTML, não trazem ferramentas que resetam o CSS padrão. Antes, me fazia sentido quando os esforços da W3C eram em tags genéricas. Mas hoje, temos equipes analisando a demanda da web e sugerindo tags com base nisso. &lt;a href="https://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=1&amp;amp;cad=rja&amp;amp;uact=8&amp;amp;ved=2ahUKEwiMlZ28mfLeAhVBHJAKHcQJBNIQFjAAegQIChAB&amp;amp;url=https%3A%2F%2Fdeveloper.mozilla.org%2Fpt-BR%2Fdocs%2FWeb%2FHTML%2FElement%2Fdialog&amp;amp;usg=AOvVaw1D6l75e8zI1xxTvhLP2pBt"&gt;A recente adição da tag *dialog&lt;/a&gt;* é prova disso.&lt;/p&gt;

&lt;p&gt;A existência de &lt;a href="https://css-tricks.com/reboot-resets-reasoning/"&gt;muitos métodos de sobrescrever o UA&lt;/a&gt; pode ser um empecilho a inserção de algo com essa função nos browsers. Mas como a antiga forma de trabalhar mandava, eu sempre imagino que um atributo initial-state="reset" na tag link poderia ativar um reset básico, e quem quisesse algo mais como um normalize, que inserisse um arquivo como fazemos hoje.&lt;/p&gt;

</description>
      <category>css</category>
      <category>frontend</category>
      <category>useragentstylesheet</category>
    </item>
    <item>
      <title>Como a Front-end Week SP 2018 me ensinou que, na edição de 2017, eu fiz tudo errado</title>
      <dc:creator>Ricardo Gouveia</dc:creator>
      <pubDate>Sat, 11 Jan 2020 18:28:31 +0000</pubDate>
      <link>https://dev.to/ricardogouveia3/como-a-front-end-week-sp-2018-me-ensinou-que-na-edicao-de-2017-eu-fiz-tudo-errado-2gfe</link>
      <guid>https://dev.to/ricardogouveia3/como-a-front-end-week-sp-2018-me-ensinou-que-na-edicao-de-2017-eu-fiz-tudo-errado-2gfe</guid>
      <description>&lt;p&gt;Posts sobre a experiência dos participantes da front-end week nunca são demais. Além de participar de eventos incríveis, conhecer pessoas, aprender e se divertir, você ainda tem a chance de ver tudo aquilo de novo sob outra perspectiva.&lt;/p&gt;

&lt;p&gt;Eu ainda estou arranjando palavras pra descrever como foi estar junto de um monte de gente que não me acha maluco quando faço piadinha com alinhamento vertical em CSS. Agora, minha dúvida é se sou normal, ou se achei loucos que se parecem comigo.&lt;/p&gt;

&lt;p&gt;Para diferenciar um pouco dos outros, eu resolvi fazer o meu relato comparando com o do ano passado, em que eu também vim a front-end week.&lt;/p&gt;

&lt;h2&gt;
  
  
  All by myself
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y77V61NO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AS1E1OfzMbdzad14tEVfkAA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y77V61NO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AS1E1OfzMbdzad14tEVfkAA.jpeg" alt="A foto ruim foi o de menos"&gt;&lt;/a&gt;&lt;em&gt;A foto ruim foi o de menos&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Na edição de 2017, eu estava em São Paulo para participar tanto da FEW2017 quanto do CSBC 2017. Eu fui com uma amiga (que não é front-end mas é de computação) e eu estava começando a interagir com a comunidade pelo Twitter.&lt;/p&gt;

&lt;p&gt;Os únicos eventos que participei foram o CSS SP meetup e o Front in Sampa. Não tenho do que reclamar de nenhum deles. Só elogios.&lt;/p&gt;

&lt;p&gt;Por eu estar no inicio da minha interação da comunidade, eu não conhecia ninguém em especifico para conversar durante os eventos. E isso foi um grande erro: eu fui para um evento (de comunidade) do mesmo jeito que se vai para uma aula.&lt;/p&gt;

&lt;p&gt;Conversei rapidamente com algumas pessoas, não fiquei pro after do CSS SP e nem fui pro Code in the Dark (ainda me sinto mal por isso). Assisti tudo bem quieto e voltei pro hotel.&lt;/p&gt;

&lt;p&gt;De inicio não foi ruim. Foi a melhor experiência que tive até aquele momento. De certa forma, fiquei maravilhado com tudo. Inclusive com nomes famosos que vi passar perto de mim (não falei com eles também).&lt;/p&gt;

&lt;p&gt;E no fim de tudo, voltei pra casa com muita vontade de vir novamente. Inicialmente, fazer tudo (errado) de novo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Percebe, Ivair?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pG30eFXH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2400/1%2AThhB5IBRAGoCpRgmNDaguw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pG30eFXH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2400/1%2AThhB5IBRAGoCpRgmNDaguw.jpeg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bom, obviamente temos um ano de espera entre as edições. E durante esse ano, eu consegui fazer amizades da comunidade, online. Inclusive com algumas pessoas com que eu poderia ter falado naquela oportunidade que passou. Isso começou a me incomodar.&lt;/p&gt;

&lt;p&gt;Resolvi contribuir com a edição desse ano. Falei com o &lt;a href="https://dev.toundefined"&gt;Elvis Detona&lt;/a&gt; sobre uma proposta de layout para o site. Ele me respondeu e eu comecei a fazer. Eu estava tanto feliz por falar com alguém que admiro quando com medo de fazer código bosta pra um evento onde qualquer pessoa poderia fazer de maneira melhor (minha síndrome do impostor reinou nesse trecho).&lt;/p&gt;

&lt;p&gt;Faltando 7 meses para a Front-end Week 2018 eu já tinha comprado meu ingresso para o Front in Sampa. Faltando 4, as passagens já estavam compradas e eu coloquei um contador no computador que indicava quantos dias, horas, minutos e segundos faltavam.&lt;/p&gt;

&lt;h2&gt;
  
  
  As vantagens de não ser invisível
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XFZfvVAx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2400/1%2AZAbALTexV0EllcmdqClBEw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XFZfvVAx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2400/1%2AZAbALTexV0EllcmdqClBEw.jpeg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Eu decidi que faria tudo diferente. Eu ainda não sabia se tinha feito tudo errado. Talvez fazendo tudo diferente as pessoas me achassem um sem noção querendo se enturmar. Mas eu resolvi arriscar para que minha experiência não caísse na mesmísse. O máximo que podia acontecer era eu virar meme.&lt;/p&gt;

&lt;p&gt;Agir diferente significava conhecer pessoas. Incentivar elas a ir aos eventos que eu iria. Ir em mais eventos. Ir em todos os after possiveis, e interagir neles. Significava manter contato com pessoas que conheci na ocasião. E, quem sabe, até apresentar algo em algum evento (infelizmente não foi possível).&lt;/p&gt;

&lt;p&gt;É bastante coisa pra alguém cujo um dia teve o lema: &lt;em&gt;eu não gosto de gente&lt;/em&gt;. Mas se não for pra passar medo de interagir com as pessoas eu nem saio de casa.&lt;/p&gt;

&lt;p&gt;Tudo saiu melhor do que eu planejava. Conheci pessoas incríveis e troquei idéia tanto sobre front quanto sobre outros assuntos. Bebi (o que eu geralmente não faço), dividi Uber e aprendi a ir de trem/metrô pra lugares que eu geralmente gastava bastante pra ir de carro.&lt;/p&gt;

&lt;p&gt;O valor disso é imensurável. Acho que estamos sempre resignificando o que comunidade significa, mas dessa vez eu mudei totalmente meu conceito. E agora eu posso falar que eu amo essa comunidade!&lt;/p&gt;

&lt;h2&gt;
  
  
  Faça o que eu digo. E agora, o que eu faço
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jvhr_CBL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2400/1%2AmdUgNuZDt2fBYcIWZO5Yug.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jvhr_CBL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2400/1%2AmdUgNuZDt2fBYcIWZO5Yug.jpeg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esse texto ficou mais direcionado com a minha experiência de 2017. Se você participou da front-end week esse ano e ficou mais na sua, não perca tempo: comece a chamar todo mundo no twitter e se prepare para uma experiência muito melhor ano que vem! Vale a pena, mesmo se você tiver que ir de muito longe (nesse caso você ganha uma camisa!).&lt;/p&gt;

&lt;p&gt;Fora isso, eu tenho muito a agradecer as pessoas que colaboraram para minha experiência na FEW2k18. Vocês são fodas! E a culpa de eu terminar esse post com outra aba vendo preço de passagem pra SP em 2019 é toda de vocês! ❤&lt;/p&gt;

</description>
      <category>frontendweek</category>
    </item>
    <item>
      <title>O front-end vai mudar. Assim como todas as profissões e maneiras de se trabalhar</title>
      <dc:creator>Ricardo Gouveia</dc:creator>
      <pubDate>Sat, 11 Jan 2020 18:26:40 +0000</pubDate>
      <link>https://dev.to/ricardogouveia3/o-front-end-vai-mudar-assim-como-todas-as-profissoes-e-maneiras-de-se-trabalhar-1a88</link>
      <guid>https://dev.to/ricardogouveia3/o-front-end-vai-mudar-assim-como-todas-as-profissoes-e-maneiras-de-se-trabalhar-1a88</guid>
      <description>&lt;p&gt;Não deixa o front morrer. Não deixa o front acabar. &lt;/p&gt;

&lt;p&gt;Antes de tudo, entre &lt;a href="https://kvnol.github.io/ofrontendacabou/"&gt;aqui&lt;/a&gt; e veja se o front já acabou. Se já tiver acabado, este texto é inútil.&lt;/p&gt;

&lt;p&gt;O assunto que eu quero discutir já está maduro. Ele envolve textos (pelo menos 2), threads, tretas, e pessoas. Talvez ele nem devesse ser discutido mais. Mas ele tem potencial para causar impacto negativo numa comunidade de pessoas que a cada dia se torna mais receptiva, inclusiva, e — se posso dizer—maravilhosa.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Faça-se a treta&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_QYF54kz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2A315V5NUX585-RZe_9u8Q7g.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_QYF54kz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2A315V5NUX585-RZe_9u8Q7g.jpeg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tudo começou quando certo profissional, que — apesar de já ter publicado um (excelente) livro sobre desenvolvimento front-end—na época não intitulava-se mais desta area, publicou um texto com o título "&lt;em&gt;O fim da profissão front-end&lt;/em&gt;". Esse texto discorre sobre os deveres de um desenvolvedor front-end (no caso, essencialmente implantar layout e conectar tal com APIs/back-ends) e que a automação pode tornar possível a conversa entre designers e back-ends.&lt;/p&gt;

&lt;p&gt;Como argumentos, cita-se ferramentas de conversão layout-html, html-layout, aberturas de formatos de arquivos, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do texto para a thread
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xgP5y9lF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AsGBNd-uL1qfJw5FZyF3_ew.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xgP5y9lF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AsGBNd-uL1qfJw5FZyF3_ew.jpeg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O texto bateu com o cajado no chão e dividiu a comunidade em várias partes. Tinha gente querendo desistir. Tinha gente querendo reparar o estrago que o texto tinha feito; e tinha gente (eu) procurando foto da Alcione pra fazer referência/meme a/com música.&lt;/p&gt;

&lt;p&gt;Falando sério, eu achei o texto simplesmente ridículo logo após a leitura do título. Por quê? Porquê é &lt;em&gt;clickbait&lt;/em&gt;. E por mais que clickbait seja algo que já exista um certo consenso para que não seja levado a sério, este surgiu num site de autoridade, com autor de autoridade, e não era primeiro de abril.&lt;/p&gt;

&lt;p&gt;As ferramentas que a argumentação cita fazem sentido quando temos uma percepção simplificada do que um desenvolvedor front-end faz. E a introdução faz muito bem o trabalho de simplificar o que não deve ser simplificado. Ela te prepara para ouvir e aceitar uma mentira.&lt;/p&gt;

&lt;p&gt;Sim, devs front-end implementam layouts. Mas isso não é simples. Quase ninguém contrata front-end pra escrever header, footer, main e aside. Vivemos num mundo com &lt;em&gt;Wordpress&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Basicamente, os times de front existem em duas situações: &lt;strong&gt;otimização máxima&lt;/strong&gt; e &lt;strong&gt;disrupção máxima&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Os times de front-end que lidam com otimização máxima trabalham em empresas com tráfegos exorbitantes em seus sites. É uma situação onde cada milissegundo conta. Conta usuários, conta dinheiro, conta empregos.&lt;/p&gt;

&lt;p&gt;Por vezes, as soluções de otimização desenvolvidas por esses grupos desafiam toda lógica por trás da idéia de otimização. Imagine tornar algo mais rápido tornando-o maior… isso é possível com software.&lt;/p&gt;

&lt;p&gt;O fato é que, se a otimização fosse possível a este nível conservando a abstração tão alta a ponto de não termos necessidade de intervenção humana no código, jamais teríamos saído da era do &lt;em&gt;Dreamweaver&lt;/em&gt; (e hoje temos o &lt;em&gt;Wix&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Os times que lidam com disrupção máxima manipulam sites cujo layout pode até não seguir uma lógica semântica. Isso acontece muito em portfolios mirabolantes, mas nada impede de criar-se sites institucionais, e-commerces, e etc assim. Existem outras maneiras de guiar o usuário através de um fluxo de navegação.&lt;/p&gt;

&lt;p&gt;Grande parte das vezes, esses times travam batalhas entre o design e semântica, e entre o design e acessibilidade. Os produtos dependem de animações, apresentam efeitos visuais que o próprio designer duvidava ser possível no browser, e sofrem com falta de tags adequadas para uso nos elementos do HTML.&lt;/p&gt;

&lt;p&gt;Existe, e provavelmente por muito tempo continuará existindo, um limite até onde a automação pode compreender o produto da criatividade de um designer, e adapta-lo para código. Inteligência artificial, machine learning… tudo isso leva em consideração padrões. Logo, como podemos esperar que isto replique algo que foge dos padrões? (eu sei de lógica fuzzy… mas, você conhece alguma aplicação centrada em design?).&lt;/p&gt;

&lt;h2&gt;
  
  
  A profecia
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3AT9JkTt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AjVibIz8X92HnkkYl-PPJHQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3AT9JkTt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AjVibIz8X92HnkkYl-PPJHQ.jpeg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Infelizmente sou um trouxa (aquele que não é bruxo em Harry Potter), não tive aulas de adivinhação com Sibila Trelawney. Mas pelo que conheço dela, ela é uma pessoa legal e já teria avisado se tivesse visto o fim da nossa profissão nas borras de chá de alguém.&lt;/p&gt;

&lt;p&gt;Dizer que algo que não lhe pertence vai acabar é errado. Isso, porque muito provavelmente a quantidade necessária de domínio sobre tal objeto para que essa afirmação tenha um mínimo de chance de se concretizar é sobre-humana. E se você faz algo do tipo desrespeitando essa assertiva, você está mentindo (e não se deve contar mentiras, Dolores).&lt;/p&gt;

&lt;p&gt;A profissão de desenvolvedor front-end está suscetível a mudanças, assim como qualquer outra. Estas tendem a ser mais rápidas pelo fato do front-end ser inerente a tecnologia, ao software, e a web. Mas isso é algo que os profissionais da área já entenderam bem após tantas piadas com frameworks javascript.&lt;/p&gt;

&lt;p&gt;A quantidades de empresas que só existem digitalmente só aumenta.&lt;/p&gt;

&lt;p&gt;É obrigação do profissional front-end entender as intersecções da sua profissão. Entender que ele é o profissional de interação humano-computador da web, e que a interação entre seres vivos e máquinas só vai acabar quando uma das duas formas estiver extinta.&lt;/p&gt;

&lt;p&gt;O nome front-end já deixa claro que não somos &lt;em&gt;webdesigners&lt;/em&gt;. Quase toda aplicação tem front-end. E no dia que não houverem mais dispositivos do tipo smartphones, computadores, etc… e a informação for recebida e transmitida diretamente do cérebro, bem, ela ainda precisa ser mostrada de uma maneira para o cérebro, não é mesmo?&lt;/p&gt;

&lt;h2&gt;
  
  
  A interação nunca vai morrer
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PrSuLrbI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2ALEq04-1zZzuRuRG56MHuRA.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PrSuLrbI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2ALEq04-1zZzuRuRG56MHuRA.gif" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Houve uma época onde ser desenvolvedor front end poderia ser reduzido a &lt;em&gt;bater tecla&lt;/em&gt;. Mas essa era ficou para trás. &lt;a href="https://www.linkedin.com/feed/update/urn:li:activity:6421349253397909504/"&gt;Temos muitas obrigações além de digitar código&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Quando uma disrupção/automatização ocorre, uma profissão pode sim morrer. Mas isso não significa que toda prática e conhecimento dela seja imediatamente inutilizado. Se o &lt;em&gt;Uber&lt;/em&gt; matar o táxi, ainda será necessário saber-se dirigir.&lt;/p&gt;

&lt;p&gt;Devemos atender as necessidades do agora, do mercado e da sociedade. E agora, precisamos de desenvolvedores front-end. No futuro, precisaremos de especialistas que acompanhem, manipulem, desenvolvam e otimizem novas formas de interagir com sistemas. E no dia que a máquina conseguir compreender as sutilezas dessa interação melhor que um humano (ou seja, entender o ser humano melhor do que ele mesmo), certamente a Skynet já estará ligada.&lt;/p&gt;

&lt;p&gt;Daniel Filho já disse: &lt;a href="http://danielfilho.github.io/2014/08/20/queime-seus-idolos/"&gt;queime seus ídolos&lt;/a&gt;. E chega de texto, tem mais framework pra estudar.&lt;/p&gt;

</description>
      <category>frontend</category>
    </item>
    <item>
      <title>Como explicar o front-end para meus pais?</title>
      <dc:creator>Ricardo Gouveia</dc:creator>
      <pubDate>Sat, 11 Jan 2020 18:23:57 +0000</pubDate>
      <link>https://dev.to/ricardogouveia3/como-explicar-o-front-end-para-meus-pais-5bk8</link>
      <guid>https://dev.to/ricardogouveia3/como-explicar-o-front-end-para-meus-pais-5bk8</guid>
      <description>&lt;p&gt;Com o mundo avançando cada vez mais rápido, o conjunto de profissões tornou-se algo sazonal: enquanto morrem profissões cujo trabalho é automatizado (front-end não é uma delas), nascem outras para lidar com problemas e soluções que, até pouco tempo atrás, não existiam. É perfeitamente normal que alguém de fora da nossa área não entenda o suficiente sobre ela para saber o que fazemos apenas ouvindo a palavra "front-end".&lt;/p&gt;

&lt;h2&gt;
  
  
  Sobre esteriótipos e generalizações
&lt;/h2&gt;

&lt;p&gt;A decisão do título desse artigo foi algo complexo. Inicialmente, a minha idéia era &lt;em&gt;Como explicar o front-end para minha mãe?&lt;/em&gt;, porém &lt;a href="http://coffeecraftcode.com/2017/05/26/front-end-development-so-simple-a-mom-can-do-it/"&gt;esse texto da* *Christina&lt;/a&gt; sobre uma expressão similar em inglês (&lt;em&gt;So easy that a mom can do&lt;/em&gt;, que no meu ver é bem ofensiva) me levou a refletir e a tirar algumas conclusões:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Não compreender do que se trata uma profissão não é um problema exclusivo da minha mãe, e nem relativo somente a mães ou mulheres. Nesse caso, qualquer pessoa que não tenha um conhecimento moderado sobre como a WEB funciona pode ter problemas para compreender nosso papel no mercado.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No meu caso específico, minha mãe tem mais conhecimento de informática e WEB que meu pai, então nem mesmo considerando somente o meu caso o primeiro título faria sentido.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;É importante frisar que, mesmo após essa reflexão, o título ainda não é verdade absoluta: conheço programadores e programadoras que são pais e mães, e cujos filhos atuam em outras áreas e provavelmente não entendem de peculiaridades do front-end. Infinitos cenários são possíveis, e com esse texto na verdade eu pretendo ajudar na explicação sobre a nossa área direcionada a qualquer pessoa que tenha dificuldade com a nomenclatura inicial.&lt;/p&gt;

&lt;h2&gt;
  
  
  O estado da arte do tópico
&lt;/h2&gt;

&lt;p&gt;Pessoalmente, eu acho comum esbarrar com textos na WEB que propõem explicações "leves" de temas "pesados". Um conjunto das meus favoritos é a &lt;a href="https://dev.to/t/explainlikeimfive"&gt;série interativa "&lt;em&gt;Explain like I'm 5&lt;/em&gt;"&lt;/a&gt; promovida pelo site &lt;a href="https://dev.to/"&gt;The DEV community&lt;/a&gt;. Apesar de haver artigos em outras séries, essa foca mais em assuntos específicos como React, Docker, Unit Tests, CPU Threads e outros. Não encontrei um que falasse sobre a profissão de desenvolvedor front-end em si.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/frontendbr/forum/issues/49"&gt;Um tópico no fórum do Front-end Brasil&lt;/a&gt; abordou exatamente esse assunto, com certas divergências entre opiniões. A meu ver foi uma discussão muito boa que morreu prematuramente.&lt;/p&gt;

&lt;p&gt;Isso foi tudo que encontrei sobre o assunto.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é front-end?
&lt;/h2&gt;

&lt;p&gt;Bom, o primeiro passo na preparação para explicar para alguém é explicar para si mesmo. Então, algumas definições do que é desenvolvimento front-end e o papel do seu profissional:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In simplest terms, the frontend is any code that runs in the browser. — &lt;a href="https://dev.to/kev_mcg"&gt;Kevin McGillivray&lt;/a&gt;&lt;br&gt;
O desenvolvedor front-end é responsável por “dar vida” à interface. Trabalha com a parte da aplicação que interage diretamente com o usuário. (…). Na parte de estudo, este profissional foca em HTML, CSS e JavaScript. — &lt;a href="https://www.treinaweb.com.br/blog/author/daniel-viana/"&gt;Daniel Viana&lt;/a&gt;&lt;br&gt;
Em &lt;a href="https://pt.wikipedia.org/wiki/Ci%C3%AAncia_da_computa%C3%A7%C3%A3o"&gt;ciência da computação&lt;/a&gt;, &lt;strong&gt;front-end&lt;/strong&gt; e &lt;strong&gt;back-end&lt;/strong&gt; são termos generalizados que se referem às etapas inicial e final de um processo. O front-end é responsável por coletar a entrada do usuário em várias formas e processá-la para adequá-la a uma especificação em que o &lt;a href="https://pt.wikipedia.org/wiki/Back-end"&gt;back-end&lt;/a&gt; possa utilizar. — &lt;a href="https://pt.wikipedia.org/wiki/Front-end_e_back-end"&gt;Wikipédia&lt;/a&gt;&lt;br&gt;
Podemos dizer que o* front-end developer* dá vida ao trabalho de um WEB* designer*, e sua missão é projetar, construir e otimizar interfaces de projetos WEB(…). Dentre suas muitas responsabilidades, além da parceria com o time de &lt;em&gt;design&lt;/em&gt; e os &lt;em&gt;back-end developers&lt;/em&gt;, o profissional deverá: Trabalhar junto à equipe de design para criar a melhor experiência possível; Desenvolver código limpo e bem documentado; Seguir os &lt;em&gt;WEB standards; *Se preocupar com a *performance&lt;/em&gt; no &lt;em&gt;client-side&lt;/em&gt;; Aplicar técnicas de SEO; Dar suporte à todos os navegadores e dispositivos que o cliente necessitar. — &lt;a href="http://matera.com/blog/autor/148"&gt;André Ailton dos Reis&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Perceba que nenhuma dessas definições, nem mesmo a primeira (que é a mais simples) é auto-contida em relação a termos relacionados a tecnologia. Se a pessoa não tem muito conhecimento sobre o assunto, ela seguiria com "o que é navegador(&lt;em&gt;browser&lt;/em&gt;)?".&lt;/p&gt;

&lt;p&gt;Qualquer definição, de qualquer cargo, objeto, etc, precisa de conceitos pré-existentes para fornecer uma explicação completa (definição de contexto). Como o desenvolvimento front-end é algo especifico dentro do vasto campo da T.I., que em geral não é conhecido em detalhes pelas pessoas, os conceitos pré-requisitos muitas vezes não fazem parte da bagagem que a pessoa trás de conhecimento, e isso é absolutamente normal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Níveis que determinam níveis
&lt;/h2&gt;

&lt;p&gt;Você precisa ter uma minima noção do quanto a pessoa sabe de informática para escolher o conteúdo da sua explicação. Para alguém totalmente leigo, até algo simples como "programador" pode não fazer sentido algum.&lt;/p&gt;

&lt;p&gt;Obter esse "nível" pré-existente pode ser complexo como uma relação pré-existente (eu suponho o nível de informática dos meus pais pela longa convivência que temos) ou simples como a análise das perguntas (se eu respondo que mexo com sites, e a pessoa me pergunta se sou programador, ou web-designer, eu suponho que ela tem certo conhecimento e posso me aprofundar mais nas respostas seguintes).&lt;/p&gt;

&lt;p&gt;Sendo assim, eu utilizaria as seguintes respostas, em níveis crescentes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Trabalho com (sistemas de) computador&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Trabalho com T.I. / Faço sites&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sou programador&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sou desenvolvedor&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sou desenvolvedor de software para WEB&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sou desenvolvedor front-end&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  É isso?
&lt;/h2&gt;

&lt;p&gt;Não existe verdade absoluta. Talvez minha percepção de níveis esteja errada, com respostas em níveis trocados, ou seja simplesmente loucura minha e eu dei sorte até agora. Mas eu ainda espero que ela te ajude :)&lt;/p&gt;

&lt;p&gt;Se você chegou até aqui, muito obrigado! E sinta-se a vontade para compartilhar suas opiniões sobre o assunto! Esse com certeza é um tópico que pode receber um método mais eficiente como resposta.&lt;/p&gt;

</description>
      <category>profissão</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Como manter-se atualizado em front-end?</title>
      <dc:creator>Ricardo Gouveia</dc:creator>
      <pubDate>Sat, 11 Jan 2020 18:19:59 +0000</pubDate>
      <link>https://dev.to/ricardogouveia3/como-manter-se-atualizado-em-front-end-4j40</link>
      <guid>https://dev.to/ricardogouveia3/como-manter-se-atualizado-em-front-end-4j40</guid>
      <description>&lt;p&gt;Eu me lembro como, quatro anos atrás, eu me encontrava em puro desespero com o resultado das minhas pesquisas sobre ferramentas e tecnologias front-end. Eu achava que era simplesmente era impossível aprender tudo aquilo.&lt;/p&gt;

&lt;p&gt;Hoje eu estou mais tranquilo. E continua impossível aprender tudo aquilo. A minha tranquilidade vem do fato de eu ter definido minhas fontes de informação.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Fontes consolidadas tem bases sólidas&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Uma fonte consolidada é algo que seja conhecido pela comunidade sem (ou com pouca) necessidade de explicação. Profissionais mais experientes já estão acostumados com a presença dessas fontes de informação, e muitas vezes as utilizam e/ou fazem parte de seu desenvolvimento.&lt;/p&gt;

&lt;p&gt;A primeira fonte que recomendo é o &lt;a href="https://github.com/FrontendMasters/front-end-handbook-2018"&gt;Front-end Development Handbook&lt;/a&gt;. Esse ebook em inglês é atualizado e relançado anualmente pela Front-end Masters. Sua escrita é dividida em prática, aprendizado e ferramentas necessárias para um profissional front-end no mercado atual. Ele se baseia em pesquisas executadas no ano anterior, que vão desde "qual o/a framework/lib js mais utilizado/a?" até "qual o cargo de contratação oficial do profissional front-end?".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c7KPJR0b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2Ag87gOnQJPgEjtqjawV7w8A.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c7KPJR0b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2Ag87gOnQJPgEjtqjawV7w8A.jpeg" alt="Capa da edição de 2018"&gt;&lt;/a&gt;&lt;em&gt;Capa da edição de 2018&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Sem dúvida é a primeira leitura que eu recomendaria se alguém me parasse na rua perguntando como se tornar front-end do zero. Ele não ensina a escrever nenhuma linha de código, mas deixa o leitor ciente de tudo o que precisa estudar (e fornece links pagos e gratuitos para esse aprendizado). Qualquer curso, livro, ou outro meio de aprendizado que você escolher pode vir depois dessa leitura.&lt;/p&gt;

&lt;p&gt;A segunda fonte que eu recomendaria é a &lt;a href="https://ashleynolan.co.uk/blog/frontend-tooling-survey-2018-results"&gt;The Front-End Tooling Survey&lt;/a&gt;. Essa pesquisa foca, como o próprio nome diz, nas ferramentas front-end, e também é atualizada anualmente. Muito provavelmente ela é uma das fontes de dados do Front-end Handbook.&lt;/p&gt;

&lt;p&gt;Por meio dos resultados dela, você pode analisar o estado atual do mercado, o crescimento ou queda no uso de A e B, e prever onde deve dedicar mais seu tempo de estudo. Mesmo que o mercado mude rapidamente, algumas ferramentas em alta se mantém com esses indicativos por algumas edições; um dos melhores exemplos disso é o React.&lt;/p&gt;

&lt;p&gt;Sua base de conhecimentos ainda, e provavelmente sempre, será HTML, CSS e JS. Mas se você já aprendeu um mínimo dessas tecnologias e quer dedicar tempo a aprender algo com aplicação mais especifica — aquilo que aquela vaga realmente pede — esses dados podem te ajudar a fazer uma decisão mais sensata.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c43IL-G_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2412/1%2AtFIqu27LmlbDDWW_S9RVog.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c43IL-G_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2412/1%2AtFIqu27LmlbDDWW_S9RVog.png" alt="Edição de 2016"&gt;&lt;/a&gt;&lt;em&gt;Edição de 2016&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A última fonte de informações recomendada é a &lt;a href="https://www.felipefialho.com/survey/"&gt;Survey Front-End Brasil&lt;/a&gt; promovida a cada dois anos pelo &lt;a href="https://dev.toundefined"&gt;Felipe Fialho&lt;/a&gt; (e que inclusive está com sua &lt;a href="https://lfeh.typeform.com/to/Uh07u5"&gt;edição de 2018 aberta para respostas&lt;/a&gt;). A pesquisa foca no estado do desenvolvedor e do mercado front-end brasileiro, e pode basear suas decisões de carreira, te ajudar a ver o quanto você se aproxima da média do mercado nacional em conhecimento, salário, e outros fatores.&lt;/p&gt;

&lt;h2&gt;
  
  
  Só isso??!!
&lt;/h2&gt;

&lt;p&gt;Não! Nunca!&lt;/p&gt;

&lt;p&gt;Essas são minha fontes estáticas de informação. Isso significa que sempre que houver uma atualização nelas, eu vou (sorridente) avaliar os dados. Isso — pelo amor de Deus preste atenção — &lt;strong&gt;não significa que eu limito meu aprendizado a essas fontes&lt;/strong&gt;, e nem somente a fontes que elas referenciam. Eu sigo desenvolvedores no Twitter, no Medium, no GitHub; acompanho blogs e newsletters, vou a eventos e assisto e apresento talks…&lt;/p&gt;

&lt;p&gt;O problema dessas outras fontes é, como esperado, &lt;em&gt;fake news&lt;/em&gt;. As vezes alguém que você segue, sozinho ou em conjunto com um ecossistema próximo a ele, pode fazer parecer que uma certa ferramenta está chegando a 100% de adesão. Se essa for a primeira vez que você ouve falar nessa ferramenta, bate um certo desespero. Nessa hora, você pode usar as fontes que citei pra validar essa premissa, e também verificar o que outras pessoas estão comentando sobre o assunto. Procure se já existe meetups ou talks sobre a ferramenta e veja o conteúdo deles. &lt;strong&gt;Não aceite informação de primeira como verdade absoluta. Na verdade, não aceite nada como verdade absoluta.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As &lt;em&gt;fake news&lt;/em&gt; nem sempre são informações falsas. As vezes são as proporções e importância incorretas, atribuídas a algo que está correto. Ou seja, a nossa interpretação da informação pode transforma-la em &lt;em&gt;fake news&lt;/em&gt;, se a não compreendemos corretamente.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Quatro certezas&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Eu, com minha pouca autoridade na comunidade, já posso me dizer competente pra te passar 4 certezas; quatro coisas que você precisa aprender: &lt;strong&gt;HTML&lt;/strong&gt;, &lt;strong&gt;CSS&lt;/strong&gt;, &lt;strong&gt;JS&lt;/strong&gt; e &lt;strong&gt;inglês&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Não vou discutir os três primeiros. Se você não sabe nenhum deles, você não é front-end (duro, mas verdadeiro). Se você não sabe ou não se sente confiante em um ou dois deles, você vai estar no caminho certo se continuar buscando aprender (onde me encontro agora).&lt;/p&gt;

&lt;p&gt;Se você não sabe inglês, você terá problemas em 2/3 das fontes de informação citadas aqui. E com a quantidade e rapidez com que essa informação se transforma, eu não contaria com traduções voluntárias. Vai ser mais fácil aprender o inglês, confie em mim.&lt;/p&gt;

&lt;p&gt;Se você chegou até aqui, muito obrigado mesmo! E fique a vontade pra comentar outras fontes de informação que você utilize. Eu estou sempre em busca de novas fontes e mais aprendizado :)&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>aprendizado</category>
      <category>mercado</category>
      <category>carreira</category>
    </item>
    <item>
      <title>Pré-processamento e a SKYNET</title>
      <dc:creator>Ricardo Gouveia</dc:creator>
      <pubDate>Sat, 11 Jan 2020 18:16:54 +0000</pubDate>
      <link>https://dev.to/ricardogouveia3/pre-processamento-e-a-skynet-3op6</link>
      <guid>https://dev.to/ricardogouveia3/pre-processamento-e-a-skynet-3op6</guid>
      <description>&lt;p&gt;Há muito tempo, nós programadores não escrevemos mais o que se executa. O que se executa é o binário, e mesmo que saibamos como funciona, raramente nós fazemos algo diretamente sobre ele.&lt;/p&gt;

&lt;p&gt;Isso é bom: imagine tentar convencer um publico jovem a entrar nunca carreira onde deve-se criar processos complexos de processamento de dados usando somente 0 e 1… Se hoje, já não é muita gente que curte ser um dos/das nerds da empresa…&lt;/p&gt;

&lt;p&gt;Mas até que ponto é aceitável que nós não conheçamos o resultado final do nosso trabalho? Até quantos níveis de abstração nós podemos submeter nosso código antes de perder o controle?&lt;/p&gt;

&lt;h2&gt;
  
  
  Código de gente. Código de máquina.
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5HKKFrYL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/4896/1%2ACSwBTz-Uyg2eiZajTPiB-g.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5HKKFrYL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/4896/1%2ACSwBTz-Uyg2eiZajTPiB-g.jpeg" alt="Eles sabem o título. (Photo by [Hope House Press](https://unsplash.com/photos/h3sAF1cVURw?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText) on [Unsplash](https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText))"&gt;&lt;/a&gt;&lt;em&gt;Eles sabem o título. (Photo by &lt;a href="https://unsplash.com/photos/h3sAF1cVURw?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Hope House Press&lt;/a&gt; on &lt;a href="https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;No tempo do ENIAC simplesmente não tinha jeito: ou você sabia binário, ou não sabia programação. Não havia abstração. E não havia "mordomia" também: o 1 era literalmente o trabalho braçal de ligar uma válvula.&lt;/p&gt;

&lt;p&gt;Por um tempo, acreditava-se que o computador evoluiria até a linguagem humana. Processaria palavras em inglês no seu core, e poderia até conversar conosco fazendo uso de contexto e tudo mais. Uma prova dessa linha de pensamento foram as (pouquíssimas) máquinas que usavam base decimal, e não binária, no processamento. Essas máquinas acabaram provando-se falhas: havia muita troca de valores por causa das voltagens de cada dígito, e também eram mais custosas na manutenção.&lt;/p&gt;

&lt;p&gt;Na outra linha de pensamento, as coisas davam certo até certo ponto: haviam pessoas brilhantes que realmente conseguiam fazer operações complexas usando somente 0 e 1. Mas ali era o limite, a não ser que passassem a ensinar binário nas escolas, não tinha como aproximar mais o ser humano da linguagem de máquina.&lt;/p&gt;

&lt;p&gt;O que consolidou-se foi nem uma nem outra: os computadores continuam "falando" binário, mas nós estamos cada vez mais próximos de falar em inglês com eles. A tradução de código fonte foi a solução que trouxe o melhor conforto e eficiência para ambos os lados. Algumas linguagens de programação adotaram de maneira tão forte que certos comandos simples podem ser compreendidos por quem não tem qualquer experiência na área, e ainda assim gerar comandos executáveis válidos.&lt;/p&gt;

&lt;p&gt;Aparentemente, não há um problema no fato de nós, humanos, falarmos X, e nossas criações, as máquinas, falarem Y. O importante é que possamos nos comunicar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quem tem o controle?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xU-daFk8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/10664/1%2AX3AZL38e8zWBeXpZXxW0lQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xU-daFk8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/10664/1%2AX3AZL38e8zWBeXpZXxW0lQ.jpeg" alt="Y/N ? (Photo by [Patryk Grądys](https://unsplash.com/photos/4pPzKfd6BEg?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText) on [Unsplash](https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText))"&gt;&lt;/a&gt;&lt;em&gt;Y/N ? (Photo by &lt;a href="https://unsplash.com/photos/4pPzKfd6BEg?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Patryk Grądys&lt;/a&gt; on &lt;a href="https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Em 2032, um vírus entra na rede integrada de telecomunicação (fusão da antiga internet com outras redes via ondas eletromagnéticas) e começa a causar interferência em todo tipo de comunicação: desde mensagens de bom dia em grupos de família até checagem de arsenal atômico pelo pentágono.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;O governo tem um plano: ativar um projeto que está a anos sendo desenvolvido, uma rede de inteligência artificial, de núcleo distribuído, que tem como objetivo remover do ciberespaço via software e do plano material via controle de robôs qualquer ameaça a raça humana e sua hegemonia. Com essa rede ativa, o vírus desapareceria em minutos.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Y/N ? &lt;strong&gt;Yes&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Em 2 minutos, as redes de comunicação param. Todas elas. Robôs entram atirando. Todos do prédio são mortos. A documentação é destruída. Os códigos-fonte são destruídos junto com os computadores e a rede. O próprio backup se destruiu. **E agora, quem tem o controle? Alguém aí programa em binário?&lt;/em&gt;**&lt;/p&gt;

&lt;p&gt;Esperando esperançosamente que Jonathan Mostow não me processe por copiar/adaptar o roteiro de Exterminador de Futuro 3, o que eu realmente quero atentar é: &lt;strong&gt;se o código no qual trabalhamos é perdido, mas o compilado está disponível, nós ainda temos alguma coisa?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Se nós não temos compreensão de o que é e como funciona o resultado final da nossa lógica, então quem controla quem?&lt;/p&gt;

&lt;h2&gt;
  
  
  Os bons riscos em nome do progresso
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WzrJRRjf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/9924/1%2AhgW7kaIKQCzwlIHD6TDgiw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WzrJRRjf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/9924/1%2AhgW7kaIKQCzwlIHD6TDgiw.jpeg" alt="No futuro, as árvores produzirão mais Wi-Fi e menos oxigênio. (Photo by [Lee Aik Soon](https://unsplash.com/photos/wkHYmPuvMnQ?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText) on [Unsplash](https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText))"&gt;&lt;/a&gt;&lt;em&gt;No futuro, as árvores produzirão mais Wi-Fi e menos oxigênio. (Photo by &lt;a href="https://unsplash.com/photos/wkHYmPuvMnQ?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Lee Aik Soon&lt;/a&gt; on &lt;a href="https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Meu intuito em escrever tudo é mais simples do que parece: conscientizar para a compreensão da tecnologia base, e não somente sua versão pré-processada.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Saiba Javascript, mesmo escrevendo Typescript. Saiba CSS, mesmo escrevendo em SASS. Saiba HTML, mesmo escrevendo em Pug.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Não precisa saber binário. Só citei porque sou exagerado.&lt;/p&gt;

&lt;p&gt;Nós somos os criadores, e temos que estar no controle. Claro, isso é limitado: se você é desenvolvedor front-end, não precisa necessariamente decorar instruções do navegador como estão passando no processador. Tenha controle do que lhe é de direito: a sua área, e assim nós como sociedade temos controle de toda computação.&lt;/p&gt;

&lt;p&gt;Não deixe de dormir por causa do risco das máquinas dominarem o mundo.&lt;/p&gt;

&lt;p&gt;Conhecer a tecnologia base vai te permitir mudar de pré-processador, de paradigma, de projeto… vai te permitir mudanças com mais facilidade. Essa é uma enorme vantagem. Você pode até criar uma ferramenta dessas, para fornecer maior abstração. Pra isso é preciso uma sólida base na tecnologia "raiz".&lt;/p&gt;

&lt;p&gt;Conhecer a base mais sólida das ferramentas com que se trabalha é uma boa maneira de evitar ser levado pela onda de &lt;em&gt;hypes&lt;/em&gt;. No final, eles são só maneiras diferentes de usar a mesma coisa pra obter o mesmo resultado com mais eficiência.&lt;/p&gt;

</description>
      <category>desenvolvimentosoftware</category>
      <category>preprocessors</category>
      <category>skynet</category>
    </item>
  </channel>
</rss>
