<?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: Tiago Costa</title>
    <description>The latest articles on DEV Community by Tiago Costa (@tiagodcosta).</description>
    <link>https://dev.to/tiagodcosta</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%2F97868%2Fa27ac673-916c-4d6e-8b17-7d9bd1fd0f2b.jpeg</url>
      <title>DEV Community: Tiago Costa</title>
      <link>https://dev.to/tiagodcosta</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tiagodcosta"/>
    <language>en</language>
    <item>
      <title>CMSs are everywhere — and they go beyond publishing</title>
      <dc:creator>Tiago Costa</dc:creator>
      <pubDate>Sat, 27 Apr 2024 19:28:53 +0000</pubDate>
      <link>https://dev.to/tiagodcosta/cmss-are-everywhere-and-they-go-beyond-publishing-1336</link>
      <guid>https://dev.to/tiagodcosta/cmss-are-everywhere-and-they-go-beyond-publishing-1336</guid>
      <description>&lt;p&gt;Content Management Systems (CMSs) are the most important and ubiquitous technologies on the internet. They are essential for today’s digital environment. Where there are people, there is content. And where there is content, there is a CMS. If you need to publish a photo or a comment on social media, there is a CMS behind that. Do you want to post an article on a blog? A CMS is there too. It is no wonder &lt;a href="https://www.statista.com/outlook/tmo/software/enterprise-software/content-management-software/worldwide#revenue"&gt;the global CMS market&lt;/a&gt; is expected to exceed US $25.5 billion by 2028.&lt;/p&gt;

&lt;p&gt;Despite the use of CMSs in nearly every area of the digital world, and their significant advancements in recent decades, many people continue to view them merely as publishing tools. That’s why many organizations still operate using inefficient workflows — first writing text in Word and then copying, pasting, and publishing it on a CMS like WordPress.&lt;/p&gt;

&lt;p&gt;In reality, CMS tools are going beyond mere publishing. According to a report from Forrester Research, “&lt;a href="https://www.forrester.com/report/The-Five-Key-Trends-That-Will-Shape-Your-2021-Content-Services-Strategy/RES83441"&gt;The Five Key Trends That Will Shape Your Content Services Strategy&lt;/a&gt;,” knowledge management will shape the CMS market in the coming years. In other words, CMSs are crucial for content reuse, aggregation, and searching, as well as for the reinforcement of content governance policies.&lt;/p&gt;

&lt;p&gt;Traditionally, CMSs have operated based on a &lt;a href="https://deanebarker.net/books/squirrel/"&gt;separation between managing and delivering content&lt;/a&gt;. Management content involves control, modeling, and versioning, while delivery focuses on performance and optimization — encompassing what happens after you click the publish button. However, organizations have recently been overvaluing delivery.&lt;/p&gt;

&lt;p&gt;One example of a shift away from this mindset, which focuses solely on delivery, is how &lt;a href="https://www.nationalgeographic.com/"&gt;National Geographic&lt;/a&gt; uses its CMS. The system aggregates content from various sources within the organization, including its international branches and user submissions, into a single, searchable repository. With this setup, users can access years of content creation in one place. Such aggregation enables editors to quickly curate content for special editions or continuous news cycles.&lt;/p&gt;

&lt;p&gt;For instance, if a global event occurs, like the eruption of a volcano in the southern Pacific Ocean, the editorial team can easily compile related articles, videos, and interviews from both their archives and current submissions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdwu0h6swdjgcxtgv6g5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdwu0h6swdjgcxtgv6g5.jpg" alt="National Geographic homepage" width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is possible, of course, because of National Geographic’s powerful content strategy. The organization based its design on a CMS that has robust search capabilities (to retrieve content for reuse) as well as efficient tagging and governance systems that can assign metadata to each piece of content, such as the topic, relevance, source, and permission for reuse.&lt;/p&gt;

&lt;p&gt;This type of content strategy reveals the increased opportunities that CMSs provide — not only for developers but also for content teams. Generally, marketing content teams are tempted to focus too much on creating, delivering, and tracking content, while paying less attention to contextualization and reuse of content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Collaboration and productivity&lt;/strong&gt;&lt;br&gt;
There are further advantages of CMSs beyond simple publishing. For example, with the increasing adoption of AI, one emerging use is the application of CMSs for managing content validation. For example, before publishing content, the CMS could automatically check the legality of media usage in the target region and whether the content was created using AI. This process would help prevent potential legal issues and ensure a brand’s integrity.&lt;/p&gt;

&lt;p&gt;For all stakeholders, this perspective offers endless benefits. One &lt;a href="https://www.tiny.cloud/blog/cms-trends-you-need-to-know/"&gt;statistic&lt;/a&gt; shows that only 28% of organizations excel at the fast deployment of content. Using a CMS to manage your content, you can boost the productivity of content marketing teams and overcome the challenge of deploying content quickly. When a CMS organizes and contextualizes your content, you can will have quick access to find and use data related to any topic, synchronized and organized according to your specifications.&lt;/p&gt;

&lt;p&gt;You can also boost your organization’s collaboration and workflow. CMSs naturally eliminate information silos. According to the 2023 Digital Trends report from Adobe, “&lt;a href="https://business.adobe.com/resources/sdk/digital-trends-content-management-report.html"&gt;Content Management in Focus&lt;/a&gt;", 42% of organizations still have content workflow issues that a CMS could resolve. A CMS, for example, ensures that everyone — from designers to legal advisors — can access the same version of content, which will reduce inconsistencies and duplicated work.&lt;/p&gt;

&lt;p&gt;In summary, CMSs are critical tools in the current digital landscape. Implementing a CMS for tasks that go beyond publishing will provide various benefits. Think about how your organization can benefit from this expanded perspective.&lt;/p&gt;

</description>
      <category>cms</category>
      <category>webdev</category>
      <category>frontend</category>
      <category>content</category>
    </item>
    <item>
      <title>Adding sounds to UI</title>
      <dc:creator>Tiago Costa</dc:creator>
      <pubDate>Mon, 05 Oct 2020 19:49:42 +0000</pubDate>
      <link>https://dev.to/tiagodcosta/adding-sounds-to-ui-2bbl</link>
      <guid>https://dev.to/tiagodcosta/adding-sounds-to-ui-2bbl</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--agp0vIx1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qm46lldwnwxb4s0dg6ts.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--agp0vIx1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qm46lldwnwxb4s0dg6ts.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We use a combination of vision and audition every day to gather information and interact with the world around us. However, this combination is not yet reflected in web interfaces. Most UIs are extremely vision-oriented/graphic-driven. &lt;/p&gt;

&lt;p&gt;In the past, because of my music background, I always advocated for the use of sounds on websites. A marriage of vision and audition could be a powerful tool for interaction with human-computer interfaces. &lt;/p&gt;

&lt;p&gt;Rafa Absar and Catherine Guastavino, authors of the paper &lt;a href="https://www.researchgate.net/publication/253209941_Usability_of_non-speech_sounds_in_user_interfaces"&gt;Usability of non-speech sounds in user interfaces&lt;/a&gt; (2008), note that: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"If all the information is presented visually, it may lead to visual overload and may also lead to some information being missed, if the eyes are focused elsewhere."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;At the time, the conventional wisdom was that sounds should be used only in gaming applications. This perception came from a misunderstanding that users had their full attention on the desktop. They would hardly ever get distracted. Therefore, the use of sounds would be unnecessary and could even detract from the user’s experience.&lt;/p&gt;

&lt;p&gt;There were also technical limitations that could make the whole experience poor - lack of browser compatibility with audio formats and slow connections (it took time to load audio files on most devices).&lt;/p&gt;

&lt;p&gt;Fortunately, things changed. There is less guesswork in UI development, UX became a predominant field, and the number of studies around the use of sounds in UI began to grow.&lt;/p&gt;

&lt;p&gt;Sounds are becoming part of product personality and emotion. It is difficult to imagine, for example, products like Slack and Skype without their &lt;a href="https://www.youtube.com/watch?v=U7iGyCdA0xk"&gt;unique sounds&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;By the way, companies like Facebook and Apple have in-house &lt;a href="https://techcrunch.com/2014/08/26/facebook-acquires-a-sound-studio-to-help-power-its-app-factory/"&gt;teams&lt;/a&gt; dedicated to designing sounds for their products.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.berklee.edu/people/will-littlejohn"&gt;Will Littlejohn&lt;/a&gt;, director of sound design at Facebook, says that, contrary to the old vision, very simple sounds can dramatically affect how people feel about a product:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Sound designers bring context to your world and use the sonic realm to do it. The sounds you hear while you experience other sensory inputs play a large part in how you interpret reality."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5sLl9C9L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rh1sf7v2ds4tut45hha7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5sLl9C9L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rh1sf7v2ds4tut45hha7.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I like this idea of adding sounds to UI. It gives me the feeling that these days, building user interfaces is more and more like composing symphonies. Everything should be perfectly synchronized. When a visual animation finishes, a sound should be played, and so on. It’s like an orchestra - many little details (graphic, motion, and audio) can work in harmony to create a great digital experience.&lt;/p&gt;

&lt;p&gt;That said, it's important to know how to integrate sounds in the interfaces. Google’s Material UI team created an &lt;a href="https://material.io/design/sound/sound-resources.html"&gt;excellent guide&lt;/a&gt; about how sounds can reinforce specific functionalities. It's worth reading.&lt;/p&gt;

&lt;p&gt;Basically, there are three uses for sounds: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Sound as hero&lt;/strong&gt;&lt;br&gt;
These sounds are used to highlight a critical moment, like a celebration when the user clears the email inbox. This can enhance the experience. For example, for an upload that takes a long time, instead of relying only on a progress bar, a sound can be used to indicate that the upload is complete. &lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://medium.com/facebook-design/how-to-enhance-mobile-interactions-with-sound-design-3c3b30e98177"&gt;Littlejohn&lt;/a&gt;, this "allows people to move on to other things they'd rather be doing instead of watching the progress bar. It's the same cognitive shift you make when you use a timer while cooking dinner."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Sound as decoration&lt;/strong&gt;&lt;br&gt;
I think this is one of the most difficult ways to work with sound since it involves branding. Sounds used in this way should be carefully chosen because they create a unique voice for the product. They are used to highlight expressive or playful moments. For example, when you start an application, a sound may play to express the product's theme.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Sound as feedback&lt;/strong&gt;&lt;br&gt;
Also called &lt;a href="https://en.wikipedia.org/wiki/Earcon"&gt;earcons&lt;/a&gt;, these sounds are the most common. They are used to reinforce the meaning of an interaction and a product's emotion and personality. They are also used to call the user’s attention. For example, when you select an item in a list, a sound click is played to reinforce the action and create a bilateral dialogue between user and application.&lt;/p&gt;

&lt;p&gt;I have noticed that sometimes these three categories overlap. Sounds should be used together with visual graphics. You shouldn't rely only on one or another. Sounds are a transient medium, and graphics are stationary. &lt;/p&gt;

&lt;p&gt;However, sounds can become prominent in certain contexts (depending on environmental factors). For example, when we can't look at the screen, a sound notification is the only thing that can attract our attention.&lt;/p&gt;

&lt;p&gt;Another important thing to keep in mind is the frequency of the event tied to the sound. It is best to consider how often the user will hear the sound in the application. It's essential not to overdo it, which could create an annoying experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--l8FaKAp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vru02e8uvn0va9ycbxpf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--l8FaKAp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vru02e8uvn0va9ycbxpf.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;UI/UX sounds are still a new and exciting topic if you want to focus on something different in the UX area. Like other subjects, the best way to learn this one is to observe how other developers implement it and, of course, get your hands dirty.&lt;/p&gt;

&lt;p&gt;Here are some useful free libraries you can use to play with sounds:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://facebook.design/soundkit"&gt;Facebook sound kit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://material.io/design/sound/sound-resources.html#"&gt;Material UI sounds&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://freesound.org/"&gt;Freesound&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://raisedbeaches.com/octave/"&gt;Octave sounds&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://uisounds.prototypr.io/"&gt;UI sounds&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I have also created a small example &lt;a href="https://ui-sounds.netlify.app/"&gt;here&lt;/a&gt;. The code is available on &lt;a href="https://github.com/tiagodcosta/ui-sounds"&gt;my GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you use a JavaScript framework, the process of adding a sound to a UI is simple. You import the audio file, declare a node based on the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API"&gt;Audio Web API&lt;/a&gt;, and then attach it to an event, like a click on a button.&lt;/p&gt;

&lt;p&gt;If you know of any implementations of sounds in UI worth checking out, please mention them in the comments, and don't forget to check my other &lt;a href="https://dev.to/tiagodcosta/being-optimistic-in-ui-511k"&gt;posts about UX and UI engineering&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post is part of a series about UX and UI engineering.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Photos by &lt;a href="https://www.pexels.com/photo/photo-of-man-using-mixing-panel-2461694/"&gt;Parker Knight&lt;/a&gt; from Pexels, and &lt;a href="https://unsplash.com/@trommelkopf"&gt;Steve Harvey&lt;/a&gt; and &lt;a href="https://unsplash.com/@soundtrap"&gt;Soundtrap&lt;/a&gt; on Unsplash.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Networking for software developers</title>
      <dc:creator>Tiago Costa</dc:creator>
      <pubDate>Tue, 21 Jul 2020 18:50:03 +0000</pubDate>
      <link>https://dev.to/tiagodcosta/networking-for-software-developers-1h8o</link>
      <guid>https://dev.to/tiagodcosta/networking-for-software-developers-1h8o</guid>
      <description>&lt;p&gt;We're at breaking point. Careers are on hold, professional relationships are being reevaluated, and many software developers are &lt;a href="https://www.teamblind.com/topics/Layoffs"&gt;losing their jobs&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;At times like this, networking becomes essential if careers are to be put back on track. But how do we network, when meetups and hackathons and in-person conferences are being canceled? And more: how can we prevent frustration when, after making an initial networking contact, nothing results from it? &lt;/p&gt;

&lt;p&gt;The answer to these questions becomes straightforward once you consider the human element in networking. Putting first things first, networking is a process, not an event. To be more precise: it is a long-term strategy of building relationships.&lt;/p&gt;

&lt;p&gt;You have probably seen this mistake many times. People don't contact anyone in their professional network for a long time, and then suddenly appear, asking for a job.&lt;/p&gt;

&lt;p&gt;If you start an initial networking conversation with: "I was laid off. I need a job," then frustration on your part will probably follow. Asking for a job in a first networking conversation is like proposing marriage on a first date. It puts people off. &lt;/p&gt;

&lt;p&gt;Networking is not about you and your job. It's about relationships, projects, and ideas. Try an experiment. Make a cold approach to someone and talk about your resume. Approach a second person, show some curiosity, and talk about ideas and plans. You will see a difference in the responses. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zeaoVb-e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/no4np204hts6c6cort0q.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zeaoVb-e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/no4np204hts6c6cort0q.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In fact, when you network, you are unlikely to see tangible results for months or even years. So don't be disappointed if you don't get instant results from an initial conversation, or from a second or third. Networking is about nurturing relationships. It's about planting seeds. Keep that in mind and you will have no reason to become frustrated.&lt;/p&gt;

&lt;p&gt;Also, you don't necessarily need to attend in-person events to build your network. There are great online communities such as &lt;a href="https://dev.to/"&gt;DEV.to&lt;/a&gt;, and &lt;a href="https://hackernoon.com/developer-slack-channels-remote-job-freelance-project-98e9b70d6275"&gt;Slack channels&lt;/a&gt; where you can start to set the stage and talk about your projects and ideas, and about people. With resources like these, and with &lt;a href="https://www.pocket-lint.com/apps/news/151426-what-is-zoom-and-how-does-it-work-plus-tips-and-tricks"&gt;Zoom calls&lt;/a&gt; here and there, it is easy to show authenticity and your personal side to colleagues. This will be to your benefit, since authenticity and personality accelerate the process of building relationships.&lt;/p&gt;

&lt;p&gt;By the way, this networking strategy can also be applied to the world of &lt;a href="https://opensource.guide/how-to-contribute/"&gt;open-source contributions&lt;/a&gt;. I have seen developers become frustrated after making a contribution to a project, expecting (but not receiving) some kind of instant recognition.&lt;/p&gt;

&lt;p&gt;That's not how open-source contributions work. It takes time to be recognized by other developers. It's a process that requires you to demonstrate mastery, trustworthiness, and respect.&lt;/p&gt;

&lt;p&gt;Before sending a message to your professional contacts or starting an initial conversation, remember that networking does not differ from other relationship-building activities. It is a long-term process requiring patience, curiosity, and authenticity on your part. Let your relationships develop naturally, and you will not be disappointed. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Photo by &lt;a href="https://www.pexels.com/photo/photo-of-men-having-conversation-935949/"&gt;nappy&lt;/a&gt; from Pexels&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Books that changed my life as a web professional</title>
      <dc:creator>Tiago Costa</dc:creator>
      <pubDate>Thu, 21 May 2020 02:41:55 +0000</pubDate>
      <link>https://dev.to/tiagodcosta/books-that-changed-my-life-as-a-web-professional-h00</link>
      <guid>https://dev.to/tiagodcosta/books-that-changed-my-life-as-a-web-professional-h00</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqabupeioc0hksdrjlq2x.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqabupeioc0hksdrjlq2x.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;People frequently ask which books I like to read, so I have decided to share a few that have influenced my life as a professional. None of these books are about coding or web development; rather, they are about digital culture. This is valuable for professionals who want to think beyond coding, frameworks, and libraries. &lt;/p&gt;

&lt;p&gt;I still find these books inspiring. I read them at different moments, and I hope that you—whether you are a professional, a beginner, or a senior—will find them inspirational, too.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7v8qzk3q41kd72y5vyh9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7v8qzk3q41kd72y5vyh9.jpg" alt="Alt Text"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  1) &lt;a href="https://www.amazon.com/Interface-Culture-Digital-Medium-Web-Changes/dp/0062514822/" rel="noopener noreferrer"&gt;Interface Culture&lt;/a&gt;, by Steven Johnson.
&lt;/h2&gt;

&lt;p&gt;Johnson provides a historical perspective for the web interfaces, comparing the UI (user interfaces) to the architecture of great cathedrals of the Middle Ages. &lt;/p&gt;

&lt;p&gt;Among other insights, Johnson highlights how architecture influences the way people interact and perceive a building. In the same manner, the way you structure the UI can change how people act with your product. In other words, the influence of the web on our daily lives and culture can be complex and profound.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fye63tj0n5b6cnb0s846l.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fye63tj0n5b6cnb0s846l.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2) &lt;a href="https://www.amazon.com/Unfinished-Revolution-Human-Centered-Computers-What/dp/0066620678" rel="noopener noreferrer"&gt;The Unfinished Revolution: Human-Centered Computers and What They Can Do for Us&lt;/a&gt;, by Michael L. Dertouzos.
&lt;/h2&gt;

&lt;p&gt;I love all the material produced by Dertouzos during his almost 30-year tenure as a professor at MIT. In fact, he was my inspiration to pursue some studies there. &lt;/p&gt;

&lt;p&gt;Before the UX wave, Dertouzos advocated that we shouldn't separate computers from humanism. For him, the "digital revolution" would start only when people found using computers as natural as using an oven or refrigerator. When you use an oven, you don't think how it works; you just use for a particular purpose. Computers should work in the same way, serving us and not enslaving us. Humans— not computers—should be the focal point of the "digital revolution".&lt;/p&gt;

&lt;p&gt;For UX people or technical professionals who want to acquire a human approach, this book is truly inspiring.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fn6b2ky6layn8f622t3jf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fn6b2ky6layn8f622t3jf.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3) &lt;a href="https://www.amazon.com/Year-Without-Pants-WordPress-com-Future-ebook/dp/B00DVJXI4M" rel="noopener noreferrer"&gt;The Year without Pants: WordPress.com and the Future of Work&lt;/a&gt;, by Scott Berkun.
&lt;/h2&gt;

&lt;p&gt;This book is more relevant than ever during this disruptive time when companies are being forced to embrace distributed and remote work. One conspicuous effect of the COVID-19 pandemic is that it is making us question how we work. &lt;/p&gt;

&lt;p&gt;Written seven years ago, it illustrates the feasibility of having a company where employees worked entirely remotely and are located around the world. In this case, the company was Automatic, who runs WordPress.com.&lt;/p&gt;

&lt;p&gt;I liked this book because Scott Berkun gives an enjoyably human perspective on the topic of remote work. Berkun worked for Wordpress.com as a team manager, which means that there is a personal point of view in the book: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Much of what bad managers do is assume their job is simply to find new things to jam and new places to jam them into, without ever believing they need to understand how the system—the system of people known as a culture—works (...) In my story so far at WordPress.com, every employee I met was smart, funny, and helpful. They’d invested heavily in tools and systems but put the onus on employees, even new ones like me, to decide how, when, and where to do their work. These attributes of culture didn’t arrive by some technique sprinkled around the company years after it started."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Photo by &lt;a href="https://www.pexels.com/photo/assorted-books-on-shelf-1370295/" rel="noopener noreferrer"&gt;Element5 Digital&lt;/a&gt; from Pexels&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>webdev</category>
      <category>books</category>
    </item>
    <item>
      <title>Frameworks and libraries come and go. Self-learning skills stay with you. </title>
      <dc:creator>Tiago Costa</dc:creator>
      <pubDate>Mon, 16 Sep 2019 04:45:16 +0000</pubDate>
      <link>https://dev.to/tiagodcosta/frameworks-and-libraries-come-and-go-self-learning-skills-stay-with-you-3ocp</link>
      <guid>https://dev.to/tiagodcosta/frameworks-and-libraries-come-and-go-self-learning-skills-stay-with-you-3ocp</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--z7xKCnEr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/mgp47paoauvtqe6l7zxa.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--z7xKCnEr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/mgp47paoauvtqe6l7zxa.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's how it is: half of what you learned &lt;a href="https://www2.deloitte.com/us/en/insights/focus/human-capital-trends/2017/learning-in-the-digital-age.html"&gt;five years ago is now irrelevant&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;For those of us on the front lines of IT, this is not news. We need to skill, re-skill, and re-skill again, all the time. However, the ever-shortening lifespans of such skills has thrown up a &lt;a href="https://www.breaker.audio/ux-podcast/e/47627655"&gt;new requirement&lt;/a&gt;: the ability to be a self-learner. &lt;/p&gt;

&lt;p&gt;Sorry, but there is no bootcamp or master's degree or code lab that will enable you to update your skills constantly. You have to be, or to become, a self-learner. &lt;/p&gt;

&lt;p&gt;Self-learning requires us to have a commitment that traditional schools don't teach. Being hungry to learn, to develop focus, and to motivate ourselves are topics that we don't see all the time in schools. &lt;/p&gt;

&lt;p&gt;In the end, learning by yourself is about being a student and a teacher at the same time. If you're comfortable with the idea of &lt;a href="https://www.facultyfocus.com/articles/effective-teaching-strategies/why-being-a-student-made-me-a-better-teacher/"&gt;being apprentice and mentor&lt;/a&gt; (junior and senior developer) simultaneously, you will probably be able to thrive in these present times, and re-skill many times.&lt;/p&gt;

&lt;p&gt;By the way, learning is at the very center of a developer's career. How many of us at some moment in our careers have quit a job because we were not learning something new, or not learning fast enough? I have done that at least three times - quit jobs because I wasn't learning or even becoming better at what I was doing. Learning is crucial in a career in web development.&lt;/p&gt;

&lt;p&gt;I recently read &lt;a href="https://www.amazon.com/Science-Self-Learning-Yourself-Anything-Education-ebook/dp/B07KKLGYWF"&gt;The Science of Self-Learning&lt;/a&gt;, by &lt;a href="http://petehollins.com/"&gt;Peter Hollins&lt;/a&gt;. This book has helped me to make the best use of my self-learning skills. Here are some of my notes. To be a self-learner, you should pay attention to three topics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Develop self-management and motivation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you doubt you have the discipline to learn by yourself, don't overthink it. We are conditioned not to learn by ourselves. You were conditioned to learn by fear, and to wait for someone to tell you what you must learn, and when. Maybe this is the main difference between traditional learning and self-learning - knowing &lt;a href="https://time.com/2933971/how-to-motivate-yourself-3-steps-backed-by-science/"&gt;how to motivate yourself&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The best way to develop self-management is to think like a scientist. Before starting an experiment, a scientist will make a plan, writing down the hypotheses, materials, and methods that will be used to arrive at conclusions. &lt;/p&gt;

&lt;p&gt;In the same way, before you start studying, ask questions, take in the big picture before diving into the content, try to reflect on what you're going to learn, keep track of your accomplishments and expectations, and always review what you just learned.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Interact with information&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Play with the information you want to absorb. Use analogies. Look for patterns. Compare what you're learning with things and skills that you already know. Teach a friend. To sum up, play like a child with the information and skills you want to master.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Have a methodology to take notes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you study by yourself, you can't organize everything in your head. You should learn how to take notes. I didn't know this, but there are many &lt;a href="https://www.oxfordlearning.com/5-effective-note-taking-methods/"&gt;note-taking methods&lt;/a&gt;. One of my favorites is the &lt;a href="https://www.educationcorner.com/cornell-note-taking-system.html"&gt;Cornell system&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;By the way, taking notes is a good way to discover blind spots in your knowledge. Note-taking is a kind of self-explanation. If you are unable to explain something, probably the concept is not clear in your mind.&lt;/p&gt;

&lt;p&gt;From my experience, self-learning is one of the best instruments for developing confidence as a developer. I will tell you the truth - it can be frustrating and hard sometimes, but the benefits will last a lifetime. They are also of wider use than you may realize; the self-management skills you develop during your studies can also be applied in other areas of your life.&lt;/p&gt;

&lt;p&gt;That's why, when I am participating on a hiring committee, I'm most interested in a candidate's self-learning skills. I want people in my team that will keep up with the pace of change. After all, frameworks and libraries come and go. Self-learning skills stay with you.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Photo by &lt;a href="https://unsplash.com/@timmossholder?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Tim Mossholder&lt;/a&gt; on &lt;a href="https://unsplash.com/"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;  &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Being optimistic in UI</title>
      <dc:creator>Tiago Costa</dc:creator>
      <pubDate>Thu, 05 Sep 2019 17:37:46 +0000</pubDate>
      <link>https://dev.to/tiagodcosta/being-optimistic-in-ui-511k</link>
      <guid>https://dev.to/tiagodcosta/being-optimistic-in-ui-511k</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fcyaubn441xuo32zt04k3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fcyaubn441xuo32zt04k3.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Optimistic UI is not a new thing (games developers work with the idea of &lt;a href="https://en.wikipedia.org/wiki/Client-side_prediction" rel="noopener noreferrer"&gt;client-side prediction&lt;/a&gt; for a long time), but the concept has been gaining a &lt;a href="https://www.apollographql.com/docs/react/features/optimistic-ui/" rel="noopener noreferrer"&gt;lot of attention&lt;/a&gt; lately. &lt;/p&gt;

&lt;p&gt;The idea is simple. Based on a user action, an interface is updated, even though a request to the backend may still be pending. In the end, an optimistic UI is nothing more than a way to manage &lt;a href="https://blog.teamtreehouse.com/perceived-performance" rel="noopener noreferrer"&gt;perceived performance&lt;/a&gt; and avoid loading states.&lt;/p&gt;

&lt;p&gt;The workflow can be straightforward in React.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Capture a user action (click a button, for example).&lt;/li&gt;
&lt;li&gt;Update the local state, which updates UI.&lt;/li&gt;
&lt;li&gt;Send the request.&lt;/li&gt;
&lt;li&gt;Get a response.&lt;/li&gt;
&lt;li&gt;If negative, rollback update the local state (step 2).&lt;/li&gt;
&lt;li&gt;If positive, do nothing or confirm step 2.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Eliminating small lags from the UI interaction seems to create a faster and much more responsive perceived user experience. However, there are some drawbacks involving optimistic UI.&lt;/p&gt;

&lt;p&gt;First, optimistic UI is not a one-size-fits-all solution. One crucial point is that if there is a failure in the server (&lt;a href="https://en.wikipedia.org/wiki/False_positives_and_false_negatives" rel="noopener noreferrer"&gt;false positive&lt;/a&gt;), the UI update should be reverted graciously, and this is difficult to achieve if the action triggered by the user plays a role in the application's routing.&lt;/p&gt;

&lt;p&gt;Plus, since there is the risk of false positives, optimistic UI doesn't seem a good idea for checking for an air flight or a cash transfer experience. Imagine saying to the user that this cash transfer was reverted.&lt;/p&gt;

&lt;p&gt;On the other hand, for actions that are not so important (like a post or posting a quick message, for example), optimistic UI seems OK.&lt;/p&gt;

&lt;p&gt;The second point is that optimistic UI works better with actions that generate boolean values (true or false, yes or no), things that, in case of false positive, can be easily reverted.&lt;/p&gt;

&lt;p&gt;In my experience, the most critical point of the technique when something didn't go well is making it noticeable. Handling UI errors is very important. The interval between the action and the error message couldn't be &lt;a href="https://www.nngroup.com/articles/response-times-3-important-limits/" rel="noopener noreferrer"&gt;more than two seconds&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I created a small app that shows how optimistic UI can be implemented. As soon as you answer one of the questions, the UI is updated, even though the request is still pending. The app can be seen &lt;a href="https://optimistic-updates.netlify.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;, and the code is &lt;a href="https://github.com/tiagodcosta/optimistic-updates" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post is part of a series about UX and UI engineering.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/search/photos/laptop-happy?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Brooke Cagle&lt;/a&gt; on &lt;a href="https://unsplash.com/@brookecagle?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ux</category>
      <category>beginners</category>
      <category>react</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
