<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ soft skill - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ soft skill - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 19 May 2026 10:29:28 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/soft-skill/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How Empathy Can Make You a Better Software Engineer ]]>
                </title>
                <description>
                    <![CDATA[ Empathy is a tool every Software Engineer needs in their soft skill set. Many of us unconsciously display empathy. But if we actively chose to use it, it has the potential to become a superpower.  This article will provide you a deeper understanding ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-empathy-makes-you-a-better-software-engineer/</link>
                <guid isPermaLink="false">66bc4ca83fc58765eaa843bb</guid>
                
                    <category>
                        <![CDATA[ empathy ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ soft skill ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Software Engineering ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Natalie Pina ]]>
                </dc:creator>
                <pubDate>Thu, 18 Feb 2021 18:36:33 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/02/josh-calabrese-qmnpqDwla_E-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Empathy is a tool every Software Engineer needs in their soft skill set. Many of us unconsciously display empathy. But if we actively chose to use it, it has the potential to become a superpower. </p>
<p>This article will provide you a deeper understanding of what empathy is and how to better integrate it into software development.</p>
<h2 id="heading-what-is-a-soft-skill">What is a soft skill?</h2>
<p>Soft skills are non-technical abilities such as communication, logical thinking, problem solving, teamwork, and empathy. These emotional intelligence skills are valuable as a Software Engineer.</p>
<p>It is very hard to learn and unlearn skills such as these. You cannot necessarily read a book or watch a tutorial and immediately have improved communication skills. Some of these skills are innate. They are built over the years and take time and practice to develop.  </p>
<p>Soft skills can play an important role within the hiring process. The good news is that you can work to further develop these skills. </p>
<h2 id="heading-what-is-empathy-and-why-is-it-so-important">What is empathy and why is it so important?</h2>
<blockquote>
<p>“Empathy is seeing with the eyes of another, listening with the ears of another and feeling with the heart of another.” – Alfred Adler</p>
</blockquote>
<p>Empathy is a deeply human emotion. In the sci-fi novel, <em>Do Androids Dream of Electric Sheep?</em> empathy is the main detectable trait between androids and humans.</p>
<p>Empathy lies at the heart of emotional intelligence. It has the ability facilitate our awareness of our personal emotions, handling interpersonal relationships and creating stronger bonds (<a target="_blank" href="https://www.headspace.com/articles/how-to-be-more-empathetic">Source</a>).</p>
<h3 id="heading-empathy-vs-sympathy">Empathy vs. Sympathy</h3>
<p>It is vital to distinguish between sympathy and empathy. Sympathy can arise in the form of feeling bad for someone else's situation – “Sorry for your loss.” Empathy is sincerely visualizing yourself in the shoes of the person who has lost something.</p>
<blockquote>
<p>"Empathy is a choice and it's a vulnerable choice. Because in order to connect with you, I have to connect with something in myself that knows that feeling." – Dr. Brené Brown</p>
</blockquote>
<p>One of my first gigs out of university was in a Customer Service role for a health insurance provider. We were required to go through a training program before speaking with members over the phone.</p>
<p>I distinctly remember the emphasis they put on understanding empathy and how it is not the same as sympathy. They pulled up YouTube and put on an animated short with audio from a talk by Brené Brown.</p>
<p>This video has stuck with me and helps me remember the importance of empathy.</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/1Evwgu369Jw" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<p>In the video, Dr. Brown mentions the four qualities of empathy outlined by nursing scholar Teresa Wiseman:</p>
<ol>
<li>Perspective taking, the ability to see the world as others do</li>
<li>Staying out of judgement in these perspectives</li>
<li>Recognizing the emotions in others and relating</li>
<li>Communicating with that emotional understanding </li>
</ol>
<h2 id="heading-how-to-apply-empathy-as-a-software-engineer">How to apply empathy as a Software Engineer</h2>
<h3 id="heading-empathy-for-users">Empathy for Users</h3>
<p>Having empathy for users can take many forms. Empathy can come in to play when thinking about what your users' needs and wants are. Jumping into their perspective can give you an entirely new outlook. </p>
<p>Accessibility requirements are essential and require a good amount of empathy in a similar fashion. Any type of user should be able to use your application. </p>
<p>Envision yourself navigating and operating a website only able to use limited keys such as tab, spacebar, and enter. Users with visual impairments that are unable to use the keyboard and mouse can use <a target="_blank" href="https://www.afb.org/blindness-and-low-vision/using-technology/assistive-technology-products/screen-readers">screen readers</a> to audibly navigate through web pages. Test out your site with a screen reader to shine a new light on this perspective.</p>
<p>The best way to ensure that your application is accessibility-friendly is to be compliant with the standards set by <a target="_blank" href="https://www.w3.org/WAI/standards-guidelines/wcag/">Web Content Accessibility Guidelines</a> (WCAG) along with <a target="_blank" href="https://www.section508.gov/manage/laws-and-policies">Section 508</a>. Study the <a target="_blank" href="https://www.w3.org/WAI/standards-guidelines/wcag/">guidelines</a>, become familiar with the requirements, and implement them into your code.</p>
<p>Now imagine seeing the world as a color deficiency individual. You may be unable to decipher an error messages from a success message if you are red/green color deficient. This falls under <a target="_blank" href="https://www.w3.org/WAI/WCAG21/Understanding/error-suggestion.html">Level AA 3.3.3 - Error Suggestions</a>, and there are a wide array of situations to consider under this criterion alone.  </p>
<p>To rate the accessibility (also known as a11y) levels of your website or app, run it through an audit by <a target="_blank" href="https://developers.google.com/web/tools/lighthouse">Lighthouse</a>. The audit utilizes the a11y guidelines for testing and displays a rating out of 100. It provides direct feedback regarding what you can change to improve your score. Additionally, there are scores for "Best Practices", "SEO", and "Performance".</p>
<p>UX/UI Designers are no strangers to using an empathetic skill set. UX Researcher is a role almost entirely based on this idea. Designers remind themselves who they are creating for. </p>
<p>Creating <a target="_blank" href="https://www.interaction-design.org/literature/article/personas-why-and-how-you-should-use-them">Personas</a> is a great way to put yourself in the place of users. Personas are boiled down versions of users, including their behaviors, needs, and learned experiences. Personas are created by collecting data from users and summing up correlated traits. </p>
<p>According to <a target="_blank" href="https://www.interaction-design.org/literature/article/creating-personas-from-user-research-results">Interaction Design Foundation</a>, </p>
<blockquote>
<p>"Collecting insights about the social and cultural backgrounds of the users, their psychological traits, their feelings of frustration, and their goals will help you develop a broad knowledge of the users."</p>
</blockquote>
<p>This all may seem front end-oriented, but empathy can be applicable for back end engineers as well. Envision how you’d like your data to be stored, how secure you would like that information to be. What information would you like saved to save yourself precious time in the future (or what would cost you lots of time, in case of a security breach)? </p>
<p>It all comes back to imagining yourself in the place of others. Actors must be exceptional at empathizing! What better way to serve your users than to imagine yourself as them.</p>
<h3 id="heading-empathy-for-teammates">Empathy for Teammates</h3>
<p>Teamwork and empathy go hand in hand. Strong relationships can be built upon a foundation of listening and understanding, without passing judgement. </p>
<p>Having an understanding of what your teammates are feeling can facilitate supporting each other and grow together as a team. Allow teammates to vent to you with the understanding that you are not necessarily here to fix the situation but that you can listen (without judgement). </p>
<p>Use emotional empathy to absorb and mirror the feelings others are going through. Imagine a teammate being strongly reprimanded for a mistake they made. What emotions would you be feeling if that were you instead? </p>
<p>Having this emotional comprehension will allow you to better communicate with them. It may be the very support they need at that time. Emotional empathy can <a target="_blank" href="https://www.verywellmind.com/cognitive-and-emotional-empathy-4582389#citation-5">move you to lend a helping hand</a>.</p>
<p>Empathy can become your superpower when dealing with difficult interpersonal situations with coworkers. Try to observe different perspectives and why someone may be acting out of anger, fear, or sadness. </p>
<p>Perspective taking (using cognitive empathy) is a wonderful method to navigate contentious situations in the workplace. </p>
<p>Imagine your coworker has been working extremely hard the past few years to get a promotion, only to find out after their review that they received neither a raise nor promotion. You could use cognitive empathy to take the perspective of your coworker to recognize how disappointing that may feel if it were you.</p>
<p>Empathy is speaking to others how you'd like to be spoken to. It requires mindfulness. Think of empathy as a tool the next time you encounter a difficult situation at work, but also in your day-to-day conversations.</p>
<blockquote>
<p>"Between stimulus and response there is a space. In that space is our power to choose our response" – Viktor E. Frankl</p>
</blockquote>
<h3 id="heading-empathy-for-future-engineers">Empathy for Future Engineers</h3>
<p>There are many ways we can display compassion toward future engineers when they have to interact with code we’ve written. </p>
<p>Many engineers have found themselves in legacy projects, entering a brand-new codebase, or even looking back at an old personal project and they feel a sense of logical bewilderment. More so if there was nothing left behind to explain some of the complexities and logical decisions that were made.  </p>
<p>If you could put yourself in the shoes of that future engineer looking at your code, what would you want to see left behind? </p>
<p>The best way to implement this is to write readable code. You can do this by limiting abstractions, avoiding complex logic, and using clear naming conventions. </p>
<p>Do your best to break things down and organize your files. There are plenty of great tips to help you write cleaner code in <em>Clean Code: A Handbook of Agile Software Craftsmanship</em> by Robert C. Martin.   </p>
<p>Documentation is also a kindness to future readers. Whether that is crafting an informative <a target="_blank" href="https://www.makeareadme.com/">README</a> file or writing how-to's. Leaving <em>useful</em> comments in your code and detailed commit messages can also be helpful. Most of us can’t recall changes we committed months ago ourselves. </p>
<p>Leaving behind a trail of textual breadcrumbs can make the life of the next person who stumbles across it that much easier – and that person might even be you!</p>
<h3 id="heading-empathy-for-clients">Empathy for Clients</h3>
<p>Empathy can help you connect with your clients and assist in delivering the best product to them. Communication comes largely into play here, which goes beyond words involving your tone, body language, and delivery.</p>
<p>You can use empathy to fully visualize the brand and comprehend what the client themselves may be facing on their end. It can be a useful tool to convince others of your point of view if you can first understand theirs.</p>
<p>Utilize cognitive and emotional empathy when dealing with difficult situations with clients. Picture why they might be upset to have their product delayed, frustrated users or monetary loss. </p>
<p>Have curiosity when working with clients. Go above and beyond to learn more about the client. If you come from a place of curiosity, it will iterate your interest and a deeper understanding of the product. </p>
<p>Use your best listening skills when speaking with the client. Don't miss the details and your client will feel heard, appreciated and more satisfaction with the product.</p>
<h3 id="heading-empathy-for-leadership">Empathy for Leadership</h3>
<p>Some of the finest leaders are the ones who remember what it was like to work their way up from the bottom or who can foresee themselves in other positions. Empathetic leaders establish strong connections with the individuals under their direction. </p>
<p>The best managers I have had in the past have displayed a concern for what I was feeling and what I may need. </p>
<p>Empathy means understanding impostor syndrome and checking in on the mental wellness of your employees. It's much easier to open up to someone who you feel 'gets it'. When you feel understood and respected, you’re more inclined to work hard and give back a mutual level of respect. </p>
<p>Leaders should have a strong level of emotional intelligence. Who wouldn't want a manager that seems approachable, self-aware, nonjudgemental, and understanding?</p>
<p>Emotional intelligence can be developed with conscious efforts. Being able to describe your own emotions will give you the ability to better resonate with what others are feeling. </p>
<p>Instead of saying "I'm feeling anxiety", go deeper. Anxiety is not quite an emotion, so what does it actually <em>feel</em> like? The heart of the emotion may really feel like sadness, shame, guilt, frustration, or embarrassment. Practice self awareness and labeling the emotions you are feeling. This is not isolated to those in leadership, it goes for everyone. </p>
<p>Cultivating empathy can give you the power to help motivate those around you.</p>
<blockquote>
<p>"Empathy does not require that we have been through the same thing as another person, simply that we meet them where they are now."  – Andy Puddicombe, former Buddhist monk and Headspace co-founder</p>
</blockquote>
<h2 id="heading-summary">Summary</h2>
<p>One of the best skills you can develop as an engineer is empathy. You can work on this skill by trying to establish an unbiased point of view in all communications. </p>
<p>Practice shifting your perspectives and observe the changes in your interactions. Improving this soft skill will be a catalyst for positive change at and outside of work. </p>
<p>I hope this article has provided insights on situations where you can start integrating more empathy into your day-to-day routines.</p>
<h3 id="heading-thank-you-for-reading">Thank you for reading!</h3>
<p>I am a writer passionate about programming, user interface engineering and design. Find me on <a target="_blank" href="https://twitter.com/ui_natalie">Twitter</a> and <a target="_blank" href="https://www.linkedin.com/in/nataliepina/">LinkedIn.</a>  </p>
<p>_Cover Photo by <a target="_blank" href="https://unsplash.com/@joshcala?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Josh Calabrese</a> on <a target="_blank" href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>_</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Why You Need Soft Skills as a Software Developer – And How to Improve Them ]]>
                </title>
                <description>
                    <![CDATA[ By Simon Holdorf The term ‘soft skills’ has been used quite a lot in recent years. And while it is often considered an old-fashioned term, I can't overstate the importance of social and emotional intelligence for those who work in software developmen... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/why-you-need-soft-skills-as-a-software-developer/</link>
                <guid isPermaLink="false">66d460f23a8352b6c5a2ab03</guid>
                
                    <category>
                        <![CDATA[ communication ]]>
                    </category>
                
                    <category>
                        <![CDATA[ empathy ]]>
                    </category>
                
                    <category>
                        <![CDATA[ soft skill ]]>
                    </category>
                
                    <category>
                        <![CDATA[ software development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Time management ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Thu, 18 Feb 2021 16:08:39 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/02/social-skills.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Simon Holdorf</p>
<p>The term ‘soft skills’ has been used quite a lot in recent years. And while it is often considered an old-fashioned term, I can't overstate the importance of social and emotional intelligence for those who work in software development.</p>
<p>As much as code quality, technical skills, and other ‘hard’ aspects of engineering matter, communication and collaboration are what really make a sound engineer great at what they do.</p>
<p>I will not talk about soft skills from a theoretical point of view here. Instead, I aim to give you practical tips on developing your own soft skills to become a better professional.</p>
<h2 id="heading-what-are-soft-skills">What Are Soft Skills?</h2>
<p>Soft skills are about how we interact with others and our environment – and they're no less critical than other skills. They’re about how you communicate, how you resolve conflicts, and how you manage your emotions. </p>
<p>And they’re not only crucial for your personal life – they can also make or break your career as a software engineer.</p>
<p>You might be thinking: “I’m an introvert — I don’t have good social skills”. But it is not that simple! Everyone has some degree of introversion and extroversion. It’s all about finding balance. </p>
<p>While some people have excellent communication skills, they can still do better in certain areas of their professional life.</p>
<p>And vice versa — even if you consider yourself shy and socially awkward, there’s plenty of room for improvement in your interactions with others. Also, it’s never too late to start working on your soft skills — so don’t give up before you get started!</p>
<h2 id="heading-what-you-need-to-know-about-soft-skills">What You Need to Know About Soft Skills</h2>
<p>We need to realize here that soft skills are just like any other skill out there. You have to practice them regularly if you want them to improve, and it might take some time before they become second nature.</p>
<p>Remember that everyone can benefit from working on their soft skills. Even if they seem perfect on the outside, chances are there’s room for improvement. </p>
<p>Don’t be afraid to admit this! Nobody knows everything in life, so why should someone fault us for something we could still improve ourselves?</p>
<h2 id="heading-what-do-soft-skills-mean-for-your-career">What Do Soft Skills Mean for Your Career?</h2>
<p>Soft skills are not just nice-to-have. They are essential for those who want to work in software development. </p>
<p>The information age we live in has made the world smaller and more interconnected than ever before, which means that it’s easier than ever to connect with clients, customers, team members, and other stakeholders. </p>
<p>At the same time, it’s a very competitive industry with lots of opportunities  —  meaning that you have to make an impact to stand out from the crowd.</p>
<p>In my opinion, the most significant advantage that soft skills provide is that they help you build networks within organizations and communities. Having good soft skills means being approachable, likable, reliable, and trustworthy –  basically someone other people enjoy working with and want to know more about. This opens doors for new opportunities.</p>
<p>I often see engineers who are confident with their technical skills but lack communication abilities and struggle to showcase their value to the company they work for. </p>
<p>If you think about it from a management perspective ,  why would anyone hire someone who lacks confidence when there are many great candidates out there who are confident enough to prove themselves?</p>
<p>Confidence is such an essential factor in making hiring decisions! There’s nothing wrong with being humble, though. Just remember that the self-confidence that comes from knowing what you’re doing helps significantly in putting forward a strong case whenever you need something from management or colleagues.</p>
<p>This applies to more than just job security. Remember that other people tend to notice when you bring value into conversations by sharing relevant perspectives or ideas instead of just agreeing with everything everyone says. </p>
<p>This shows them that you’re worth spending time with because of what you’re bringing to the conversation rather than merely because of who you are (or who they think/assume/hope you are).</p>
<p>You’ll find yourself better positioned for promotions, exciting projects at work (with increased responsibility!), and more significant influence over critical team decisions. The list goes on!</p>
<p>Building good relationships within teams and companies (and community-wide) makes going through bad times easier, since there will always be people around who care enough about your situation and want to help. </p>
<p>It might be hard at first (especially if you’ve been labeled as ‘not sociable’), but trust me – once this starts happening more often, things will improve dramatically!</p>
<h2 id="heading-soft-skills-that-will-help-you-out">Soft skills that will help you out</h2>
<h3 id="heading-communication-skills">Communication Skills </h3>
<p>How well can you communicate your ideas, opinions, and problems? It doesn’t matter if you’re presenting at a conference or talking about your project with a client — communication is key, and it comes down to how well you communicate your point.</p>
<h3 id="heading-collaboration-skills">Collaboration Skills </h3>
<p>Can you work in a team? How well do you communicate with your peers and colleagues? Are you able to delegate tasks and responsibilities, or are you always trying to do everything yourself?</p>
<h3 id="heading-conflict-resolution-skills">Conflict Resolution Skills </h3>
<p>Conflict happens in all organizations, whether it's between co-workers or between customers and the organization. It’s all about how we deal with these conflicts. We need to learn how to resolve them to make everyone happy without being too bossy or passive.</p>
<h3 id="heading-emotional-intelligence-eq">Emotional Intelligence (EQ)</h3>
<p> Do you know when you’re feeling stressed or overwhelmed by certain situations? Do you ever lose your temper? Do you get frustrated when things don’t go as planned? Being able to recognize and manage your emotions is essential for your success as an engineer.</p>
<h3 id="heading-managing-your-time-and-priorities">Managing Your Time and Priorities</h3>
<p>How good are your time management skills? Are you overworked continuously yet never get anything done because of it? This is not only bad for productivity but also for your mental health.</p>
<h2 id="heading-how-to-improve-your-soft-skills">How to improve your soft skills</h2>
<p>The first thing to remember is that soft skills are not innate qualities. We all can learn how to communicate better, collaborate, and work with others more effectively. It’s just a matter of practice. </p>
<p>The best thing about soft skills is that you can improve them at any time — it’s never too late to start! Here are some practical tips for developing the best possible social skills:</p>
<h3 id="heading-be-an-active-listener">Be an active listener</h3>
<p>This one is probably the most essential communication skill. Listening may seem simple, but it’s often not easy to do well, as many people know. </p>
<p>When somebody talks to you, don’t be in a hurry to reply right away — take your time and pay attention to what they say! This includes both verbal and non-verbal communication — so watch facial expressions as well as body language.</p>
<h3 id="heading-respond-to-feedback">Respond to feedback</h3>
<p>Feedback is vital for every professional. To improve, you need to know what you’re doing well and where you can improve. If somebody gives you feedback, accept it with an open mind and try not to get defensive.</p>
<p>It happens that people give negative feedback in a non-constructive way, but if you take the time to talk about it, usually they’ll be willing to elaborate on their point of view. Remember that even though someone is trying to help you become better — they don’t have a crystal ball and might be wrong or mistaken at times.</p>
<h3 id="heading-be-confident-when-talking-with-people">Be confident when talking with people</h3>
<p>Communication is useless if it comes from a place of uncertainty or doubt. If you think something could sound awkward or stupid, then it very likely will sound awkward or stupid. </p>
<p>So try out sentences before you say them out loud — in front of a mirror can be useful here because it demonstrates how you look when saying things like “Um… yeah… I mean… no” instead of “Sure thing!”</p>
<p>Remember that confidence does not have anything to do with being arrogant. Instead, it means feeling comfortable enough in your skin to share your ideas confidently and openly with others. That’s much better than being afraid of looking silly (which only makes people feel bad about themselves).</p>
<h3 id="heading-be-curious-about-other-people-and-their-ideas">Be curious about other people and their ideas</h3>
<p>Never be afraid to ask questions. This creates opportunities for others to learn from you, too! And even if they don’t have any interesting answers for you right away, keep asking questions until you find something helpful or interesting for yourself.</p>
<p>If there’s some kind of disagreement between two parties during a conversation, try approaching the problem from each side separately. It will help you understand what each person means by their statements more precisely, facilitating collaboration later on (you’ll know what kinds of solutions would satisfy each party).</p>
<p>And last but not least: always be open-minded. Being too set on your own opinions can lead you into unnecessary conflicts with other people.</p>
<h2 id="heading-final-thoughts">Final Thoughts</h2>
<p>Another important thing I’d like to mention here is the fact that social skills take time to develop. Just like anything else in life, it will take months, maybe even years, until they become second nature (if they ever do). So don’t expect yourself and others around you to change immediately after reading this article.</p>
<p>Instead, focus on improving one area at a time while consciously working towards developing better social skills overall. With enough practice over time, it will eventually become second nature, and people will start noticing the changes in how you interact with those around you.</p>
<p>One of my favorite quotes is from Stephen Hawking: “Remember to look up at the stars and not down at your feet”. The same philosophy applies here — look up instead of down! Building relationships takes time but pays off handsomely in the long run. You’ll feel happier and more fulfilled at work.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Why Soft Skills Are Key to Success in Tech – And How to Develop Them ]]>
                </title>
                <description>
                    <![CDATA[ By Megan Kaczanowski Often in technology, we assume that everyone else is as excited about our product as we are. This tends to be a problem across the board in the tech sector (and even amongst teams, like security and developers, or operations and ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/why-soft-skills-are-key-to-success-in-cybersecurity/</link>
                <guid isPermaLink="false">66d46083c7632f8bfbf1e463</guid>
                
                    <category>
                        <![CDATA[ communication ]]>
                    </category>
                
                    <category>
                        <![CDATA[ cybersecurity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Public Speaking ]]>
                    </category>
                
                    <category>
                        <![CDATA[ soft skill ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 02 Dec 2020 17:05:00 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9c9660740569d1a4ca1106.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Megan Kaczanowski</p>
<p>Often in technology, we assume that everyone else is as excited about our product as we are. This tends to be a problem across the board in the tech sector (and even amongst teams, like security and developers, or operations and developers). </p>
<p>There's a reason that DevOps and DevSecOps were created: operations teams, developers, QA testers, and security often don't work together. And if we can't even get all of the tech people on the same team, think how hard it'll be to get everyone else (think marketing, communications, and the business functions) on board. </p>
<p>Because of that, technical skills alone aren’t enough to be effective. You need to be able to communicate what the problem is, what the solution you’re recommending is, and why it’s necessary — in terms your audience can understand. </p>
<p>And the more you advance, the more important those skills become.</p>
<p>I’ve definitely struggled with this. It’s easy to get caught up in what you’re working on, and forget that not everyone is immersed in the same jargon you are. </p>
<p>I work in security, so for me, this tends to follow the same script every time. Your average user generally isn’t used to thinking about security and doesn’t understand how often companies see attacks. </p>
<p>Often, there’s a tendency for them to think, ‘Well if I’ve always done it this way, and I haven’t seen any problems, why do I need to implement your more complicated system?’</p>
<p>Thus, it’s up to the security team (in this example, me) to explain to them why — how often real attacks occur, why the more complicated way will make their life easier in the long run, and why security is everyone’s responsibility (spoiler alert: anti-virus doesn’t protect against everything).</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/chadloder/status/1101571626829672448"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>The same policies apply across technology functions. Good technology requires empathy. You can have the best tools in the world, but if no one uses them, it doesn’t matter. If people see you as a roadblock to their productivity, you won’t be able to effect change.</p>
<p>That’s why soft skills, like effective communication, are key to success in tech. If you can communicate to a variety of audiences in a way they’ll understand, you’ll be much better at your job (whatever that job is).</p>
<h2 id="heading-how-can-you-develop-soft-skills">How can you develop soft skills?</h2>
<p>Treat soft skills the same way you would any technical skills. Communication skills might be listed as 'soft' but that doesn't mean they're easy to acquire or that you can't improve them.</p>
<p>First, spend time actively thinking about and working on your skills.</p>
<h3 id="heading-step-1-figure-out-what-skills-you-already-have">Step 1: Figure out what skills you already have</h3>
<p>What skills do you have? What are your strengths? Are you great at communicating with your boss, but struggle to communicate to leadership? Are you an excellent public speaker, but struggle with written communication? </p>
<p>Get very specific with yourself. If you're not sure, try asking trusted friends, colleagues, and bosses to describe what they think your strengths are. </p>
<p>If possible, ask folks who have worked with you closely in the past. </p>
<h3 id="heading-step-2-figure-out-what-skills-you-want-to-develop">Step 2: Figure out what skills you want to develop</h3>
<p>Ok, where do you want to go from here? Think about the job you have, and the job you want next. </p>
<p>What skills do successful people in those roles have? Does the role require a lot of communication with non-technical executives or users? Does the role mostly involve speaking to other technical folks? Do you need to work as part of a larger team, or are you mainly an individual contributor? </p>
<p>Consider your audience. Who are they (the users you want to use your product, your teammates, executives, and so on)? What matters to them ? Think about their needs and the medium you use to communicate with them (written, spoken, small audience presentation, and so on). </p>
<h3 id="heading-step-3-reflect-on-your-past-experiences">Step 3: Reflect on your past experiences</h3>
<p>Now think about the last time you exercised this skill.  What happened? Did you use jargon they didn't understand? Did you appeal to their needs? Were you successful in convincing them that your idea was worth pursuing? </p>
<p>Think about where you fell short and what you can do better next time. If you're able to, ask others for feedback (ideally a trusted co-worker or mentor).</p>
<h3 id="heading-step-4-study-learn-and-improve-your-skills">Step 4: Study, learn, and improve your skills</h3>
<p>Time to start studying. What (and how) you should study depends on what you want to learn and how you learn best. </p>
<p>You can try researching the idea by reading a book. Stephen King's <a target="_blank" href="https://www.amazon.com/Writing-10th-Anniversary-Memoir-Craft/dp/1439156816">On Writing</a> is excellent, as is the <a target="_blank" href="https://www.amazon.com/Elements-Style-Fourth-William-Strunk/dp/020530902X">Elements of Style</a>, for learning how to write better and craft a story which people will be drawn to (and effective communication nearly always revolves around a story, even if you don't initially think of it that way).  </p>
<p><a target="_blank" href="https://www.amazon.com/Cuckoos-Egg-Tracking-Computer-Espionage/dp/1416507787">The Cuckoo's Egg</a> and <a target="_blank" href="https://www.amazon.com/Countdown-Zero-Day-Stuxnet-Digital/dp/0770436196/ref=pd_lpo_14_t_0/137-7968692-9373541?_encoding=UTF8&amp;pd_rd_i=0770436196&amp;pd_rd_r=4929e792-f4c3-4c96-a4d2-46b99abbb925&amp;pd_rd_w=UMRMC&amp;pd_rd_wg=KXZ9K&amp;pf_rd_p=7b36d496-f366-4631-94d3-61b87b52511b&amp;pf_rd_r=3Z8NQPK60PX42EYNC5EC&amp;psc=1&amp;refRID=3Z8NQPK60PX42EYNC5EC">Countdown to Zero Day</a> are great examples of books about very technical topics told in a narrative format for a non-technical audience. </p>
<p>Blogs like <a target="_blank" href="https://www.askamanager.org/">Ask a Manager</a> or the <a target="_blank" href="https://hbr.org/">Harvard Business Review</a> can help with improving internal communication (writing emails, talking to your boss, and so on).</p>
<p>Don't feel like reading? Try a TED talk such as Julian Treasure's <a target="_blank" href="https://www.ted.com/talks/julian_treasure_5_ways_to_listen_better">5 Ways to Listen Better</a>, the <a target="_blank" href="https://www.ted.com/talks/nancy_duarte_the_secret_structure_of_great_talks?utm_campaign=tedspread&amp;utm_medium=referral&amp;utm_source=tedcomshare">Secret Structure of Great Talks</a> (Nancy Duarte), or <a target="_blank" href="https://www.youtube.com/watch?time_continue=14&amp;v=eIho2S0ZahI&amp;feature=emb_logo">How to Speak So People Want to Listen</a>.</p>
<h3 id="heading-step-5-practice-your-new-skills">Step 5: Practice your new skills</h3>
<p>Then, practice — research something, and write or speak about it. Medium lets you set up a free personal blog, as does GitHub, both of which give you a platform to try out writing. </p>
<p>Local meetup groups, like BSides, WiCyS, or Women Who Code, may provide a supportive environment for you to give a talk for the first time (or even a lightning talk, which is typically a short talk between 5-15 minutes). </p>
<p>International organizations like <a target="_blank" href="https://www.toastmasters.org/">Toastmasters</a> are another great way to get practice presenting publicly. You can even practice with  your coworkers, your mom, or strangers on the street. Get comfortable explaining your ideas. </p>
<h3 id="heading-step-6-improve-your-process-and-push-yourself">Step 6: Improve your process and push yourself</h3>
<p>Work on improving. Think about style and presentation. Tools like <a target="_blank" href="http://www.hemingwayapp.com/">Hemingway</a> and <a target="_blank" href="https://www.grammarly.com/p?q=brand&amp;utm_source=google&amp;utm_medium=cpc&amp;utm_campaign=brand_f1&amp;utm_content=329885936576&amp;utm_term=grammarly&amp;matchtype=e&amp;placement=&amp;network=g&amp;gclid=EAIaIQobChMI_JKN0dmN7QIVCUqGCh3GsAs9EAAYASAAEgKb3_D_BwE&amp;gclsrc=aw.ds">Grammarly</a> can help you check your grammar and even give style pointers. </p>
<p><a target="_blank" href="https://www.overleaf.com/learn/latex/code_listing">LaTeX</a> is a tool which helps to display code fragments in a professional way and embed code into reports.</p>
<p>And try to push yourself outside of your comfort zone. Apply to speak at conferences, give lightning talks, write a blog (or apply to write for freeCodeCamp!). It’s hard at first. Keep trying, and don’t let yourself give up.</p>
<h3 id="heading-step-7-get-peoples-feedback">Step 7: Get people's feedback</h3>
<p>Seek (more) feedback — if someone doesn’t like your idea, ask why (and make an effort to understand where they’re coming from and what they need). Then, use that information to craft appeals directly to them. </p>
<p>Try to find a mentor, and if you're struggling to find one, consider a peer. Sometimes a peer mentor can be just as helpful and you can provide similar feedback to them. </p>
<p>Sometimes all you need is an outside perspective. Often, they can help you identify your strengths and weaknesses better than you can yourself. Ask them for <em>specific</em> positive and negative feedback. It might be painful, but you'll learn faster than you would alone.</p>
<p>Whatever you do, make it a habit. Work on it every day, week, or month. Continue to practice, to seek feedback, and to improve. </p>
<p><div class="embed-wrapper"><iframe src="https://giphy.com/embed/9rifLiS5LfCInJOtzw" width="480" height="360" class="giphy-embed" title="Embedded content" loading="lazy"></iframe></div></p><p><a href="https://giphy.com/gifs/bublywater-basketball-march-madness-bubly-9rifLiS5LfCInJOtzw">via GIPHY</a></p><p></p>
<p>Still looking for guidance? Check out these resources:</p>
<ul>
<li><a target="_blank" href="https://hired.com/blog/candidates/hard-soft-skills-engineering-manager/">Soft Skills for an Engineering Manager</a></li>
<li><a target="_blank" href="https://hbr.org/2009/04/five-things-leaders-can-do-to">Sharpen Your Communication Skills</a></li>
<li><a target="_blank" href="https://www.amazon.com/Negotiation-Genius-Obstacles-Brilliant-Bargaining/dp/0553384112">Negotiation Genius</a></li>
<li><a target="_blank" href="https://www.amazon.com/Never-Split-Difference-Negotiating-Depended/dp/0062407805">Never Split the Difference</a></li>
</ul>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ What is the Dunning-Kruger Effect? ]]>
                </title>
                <description>
                    <![CDATA[ According to Wikipedia, the Dunning-Kruger effect is: ...is a cognitive bias in which people with low ability at a task overestimate their ability. It is related to the cognitive bias of illusory superiority and comes from the inability of people to... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/what-is-the-dunning-kruger-effect/</link>
                <guid isPermaLink="false">66c365c48e244e1678738630</guid>
                
                    <category>
                        <![CDATA[ soft skill ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Software Engineering ]]>
                    </category>
                
                    <category>
                        <![CDATA[ toothbrush ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sat, 01 Feb 2020 00:00:00 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9c9d20740569d1a4ca3607.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>According to Wikipedia, the Dunning-Kruger effect is:</p>
<blockquote>
<p>...is a cognitive bias in which people with low ability at a task overestimate their ability. It is related to the cognitive bias of illusory superiority and comes from the inability of people to recognize their lack of ability. Without the self-awareness of metacognition, people cannot objectively evaluate their competence or incompetence.</p>
</blockquote>
<p>In other words, it's when a person thinks they are much smarter or more capable than they actually are.</p>
<h2 id="heading-why-does-it-matter-in-software-development">Why does it matter in Software Development?</h2>
<p>The Dunning-Kruger effect is an important thing for software developers to learn. It can be observed among developers of all ages, though it is more prominent among beginners and intermediate level developers. </p>
<p>After their initial struggle, they may get over confident about a language or their abilities. This leads them to underestimate the complexity of system requirements, or worse, prevents them from coming up with better software/systems designs. </p>
<p>More experienced developers tend to gain wisdom over the years. Though it's not true of all senior developers, they're sometimes better at judging things like system complexity.</p>
<p>The Dunning-Kruger Effect is the exact opposite of <a target="_blank" href="https://www.freecodecamp.org/news/what-is-imposter-syndrome-and-how-do-you-overcome-it/">Imposter Syndrome</a>. You need to strike the perfect balance between both of these for your professional growth.</p>
<h2 id="heading-how-to-check-if-you-suffer-from-the-dunning-kruger-effect">How to check if you suffer from the Dunning-Kruger effect?</h2>
<p>Though you can never be completely sure if you suffer from the DK effect, you can ask yourself the following questions:</p>
<ul>
<li>Are you able to give accurate estimates?</li>
<li>Are you open to learning new concepts?</li>
<li>Are you open to implementing or trying new design paradigms?</li>
<li>Are you humble?</li>
<li>Are you able to take criticism and objectively evaluate feedback?</li>
<li>Are you a good listener?</li>
</ul>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Programmers Don't Have to be Socially Awkward. Here Are 10 Social Skills To Improve Your Career. ]]>
                </title>
                <description>
                    <![CDATA[ If you work as a software developer, most of your workday is spent dealing with people. Immediately when you start your work for the day, you probably check email, Skype, or Slack, as you are interested in seeing if your work colleagues have somethin... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/programmers-dont-have-to-be-socially-awkward/</link>
                <guid isPermaLink="false">66d45f059208fb118cc6cf9f</guid>
                
                    <category>
                        <![CDATA[ career advice ]]>
                    </category>
                
                    <category>
                        <![CDATA[ soft skill ]]>
                    </category>
                
                    <category>
                        <![CDATA[ teamwork ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Fatos Morina ]]>
                </dc:creator>
                <pubDate>Wed, 21 Aug 2019 04:17:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/08/Napoleon-Dynamite.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>If you work as a software developer, most of your workday is spent dealing with people.</p>
<p>Immediately when you start your work for the day, you probably check email, Skype, or Slack, as you are interested in seeing if your work colleagues have something important to tell you.</p>
<p>Then, when you write a response, the destination for your words is another person, not just another computer.</p>
<p>Your main priority at work is to solve problems, which is done while collaborating on projects and hanging out with other people as part of a software development team.</p>
<p>You attend meetings during the day and get the implementation requirements from other people.</p>
<p>When you are finally ready to do one of the most enjoyable activities for a software developer, which is writing code, you are supposed to write a code which is primarily readable for humans. You do not write your software projects in binary codes, but instead in a programming language that is supposed to be easier for both you and teammates to understand.</p>
<p>Even if you are working at a small company, or are a freelancer, you still have to deal with the non-technical people in the project that you are working on.</p>
<p>We spend a lot of our waking hours with our work colleagues. It is even possible that we spend more time with them than with our close family members.</p>
<p>Becoming aware of this will help you realize the importance of having good relationships with others, especially your co-workers.</p>
<p>In this article, you can read some general tips that can help you improve your relationships at work, but that can be applied elsewhere as well.</p>
<p>They are simpler to follow than the frameworks used to develop your applications, but these tips have a huge potential for return over investment.</p>
<h3 id="heading-1-be-very-kind"><strong>1. Be very kind</strong></h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-236.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><em>Photo by [Unsplash](https://unsplash.com/@mimithian?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"&gt;Mimi Thian / &lt;a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit)</em></p>
<p>You can be the smartest and the hardest-working person you know, but when you do not have good manners or you lack kindness, others in your workplace might hate collaborating with you. Not because you lack the skills and the ability to write clean and maintainable code, but because of your attitude.</p>
<p>No matter how frustrating a bug is, do not pout, whine, or yell at your colleagues. Those bad manners will not be able to fix your bug. It can even harm your personal and professional relationships and make it very difficult to get back on track later on.</p>
<p>When you are kind, you are more likely to make a good impression on others as a human being in general.</p>
<p>Simple acts of kindness, such as giving someone a ride to or from work, mentioning someone’s favor in front of others, cleaning up a colleague’s space that’s not your job to keep clean, etc., should be done repeatedly, despite knowing your colleagues for a long time.</p>
<p>Your kindness will trigger, at least, a basic human decency from your colleagues as well.</p>
<h3 id="heading-2-always-be-genuinely-interested-in-your-colleagues"><strong>2. Always be genuinely interested in your colleagues</strong></h3>
<p>Try to understand if they need your help, and do not hesitate to kindly help them. When you see that they are stressed, anxious, or going through tough times, talk to them and show readiness to brainstorm solutions about the problems they are involved in.</p>
<p>Even if you cannot help them with their current task, try to encourage them with motivational phrases that can uplift them emotionally. Make them feel that they are important to the team and capable of overcoming the obstacles they’re facing and the down times they might be in.</p>
<p>Your words alone can magically improve the mood of your colleagues.</p>
<h3 id="heading-3-smile-often"><strong>3. Smile often</strong></h3>
<p>Even printing a ‘Hello world’ statement takes more time and effort than smiling and sending smiley emoticons. It may seem trivial, but smiling can lighten up the tension.</p>
<p>A <a target="_blank" href="http://blackburnelrodortho.com/how-smiling-affects-you-and-those-around-you/">scientific study</a> conducted in 2011 at the Face Research Laboratory at the University of Aberdeen in Scotland found that smiling makes you feel more attractive, relaxed, sincere, and confident.</p>
<p>Moreover, <a target="_blank" href="http://blackburnelrodortho.com/how-smiling-affects-you-and-those-around-you/">one Swedish study</a> published in the Scandinavian Journal of Psychology found that humans have an automatic reaction that mimics the facial expressions of those they interact with.</p>
<p>In other words, when you smile often, chances are that others will smile back to you as well. This will not only make you feel better, but it also helps others that you interact with.</p>
<h3 id="heading-4-say-thank-you-and-please-a-lot"><strong>4. Say ‘thank you’ and ‘please’ a lot.</strong></h3>
<p>No matter how small a favor is, do not hesitate to say <em>thank you</em>.</p>
<p>People appreciate when you are polite and grateful, and are aware of their contribution and significance in your life.</p>
<p>This will not only make your colleagues feel better, but it will make you feel better as well, as you will know that other colleagues care about you and are willing to help you.</p>
<p><a target="_blank" href="https://www.forbes.com/sites/amymorin/2014/11/23/7-scientifically-proven-benefits-of-gratitude-that-will-motivate-you-to-give-thanks-year-round/#4463c9d0183c">Gratitude can improve your physical health</a>, mental strength, self-esteem, the quality of your sleep, and can even reduce your stress levels.</p>
<p>Another word that you should frequently use in your communication with your colleagues is <em>please</em>.</p>
<p>When you use the word <em>please</em>, you are reminding the other team member that he is not forced to do something, but it would be kind, generous, and helpful of him to assist with the task that you are working on.</p>
<p>These simple words, no matter how insignificant they may sound, can make a huge difference once you start using them.</p>
<h3 id="heading-5-praise-other-peoples-efforts-and-stay-positive"><strong>5. Praise other people’s efforts and stay positive</strong></h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-237.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><em>Photo by Tyler Nix on Unsplash</em></p>
<p>Become aware of other people’s accomplishments and praise every improvement, large or small.</p>
<p><strong>Praising someone isn’t complicated. Common phrases like “Great job,” “Well done,” or “You did great” can be sufficient.</strong></p>
<p>It may have taken a lot of effort and strong willpower to get to the solution of a frustrating problem.</p>
<p>When you praise others on their accomplishments, you make them feel important and that they are involved in something that has grabbed your attention.</p>
<p>As software developers, we tend to forget about the privilege of the skills we possess.</p>
<p>There are times when a small bug or an urgent task can bother you or your colleague for a few moments, but you should not let that distract you from the big picture.</p>
<p>You should regularly remind yourself and your colleagues about the joyful moments that you and your team have been through, and not let an occasional difficulty or a stressful situation make you feel disappointed.</p>
<p>Start the habit of regularly recognizing the efforts of your teammates and giving credit to them whenever the opportunity arises.</p>
<h3 id="heading-6-do-not-hesitate-to-apologize"><strong>6. Do not hesitate to apologize</strong></h3>
<p>Nobody is perfect, and no matter how hard you try, you will always make a mistake here and there.</p>
<p>No matter how small your mistake is, do not hesitate to apologize about it.</p>
<p>Even though it might threaten your ego to apologize sometimes, it is a crucial way to keep good relationships with your colleagues.</p>
<p>Although you may think it will damage your reputation, by causing you to appear less confident, apologizing has the opposite effect.</p>
<p>It will remind others that you are aware of your shortcomings and that you are humble enough to admit to them.</p>
<p>Short phrases like “I am sorry” or “I apologize” can strengthen your ties with your colleagues, even during unpleasant moments.</p>
<h3 id="heading-7-do-not-criticize"><strong>7. Do not criticize</strong></h3>
<p>Criticizing is often perceived as a personal threat towards an individual’s ego, though you may not have intended to do that.</p>
<p>As a result, it is likely that they may get emotional and feel offended.</p>
<p>A better way of pointing out your colleague’s mistake is by giving them a <em>polite critique</em>: Call attention to people’s mistakes without demeaning them or making it personal.</p>
<p>Put yourself in their shoes and observe the issue from their perspective. Politely inform the other person about their mistake.</p>
<p>Do not point out a mistake in front of everybody; instead, do it privately.</p>
<p>If you want to inform everybody else about a mistake that they should not be doing, do not point fingers toward people, but toward the problem.</p>
<p>Try to focus on possible ways of solving the problem rather than on blame.</p>
<p><strong>Become the person who helps people, rather than someone who belittles them.</strong></p>
<p>When you help someone, you are going to feel your own sense of contributing and your own significance as well. Moreover, you can learn for yourself, and can also open doors to receiving help in future from the same colleagues that you have helped in the past.</p>
<h3 id="heading-8-avoid-arguments"><strong>8. Avoid arguments</strong></h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-238.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><em>Photo by [Unsplash](https://unsplash.com/@jasonrosewell?utm_source=medium&amp;utm_medium=referral" rel="photo-creator noopener"&gt;Jason Rosewell on &lt;a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral" rel="photo-source noopener)</em></p>
<p>We tend to think of ourselves as rational human beings, but in reality, we are emotionally driven creatures that can easily get angry.</p>
<p>Those few moments of anger can lead to some unpleasant arguments, no matter whether you are right or wrong.</p>
<p>Although you may be right, and protecting your opinion sounds like a good idea, arguing furiously with others is something that can dramatically ruin your relationships.</p>
<p>As Dale Carnegie mentions in his book <a target="_blank" href="https://www.amazon.com/How-Win-Friends-Influence-People/dp/0671027034/ref=sr_1_1?ie=UTF8&amp;qid=1491286020&amp;sr=8-1"><em>How to Win Friends and Influence People</em></a>:</p>
<blockquote>
<p><em>“I have come to the conclusion that there is only one way under high heaven to get the best of an argument — and that is to avoid it. Avoid it as you would avoid rattlesnakes and earthquakes.”</em></p>
</blockquote>
<p>The best thing to do about arguments is to try your best to avoid them at all costs. It is not as easy as it sounds, but it can become easier with practice.</p>
<p>Reminding yourself that most of the time there is almost no benefit from arguing, especially with your work colleagues, can reinforce the desire to keep yourself away from arguments.</p>
<h3 id="heading-9-ask-questions-instead-of-giving-direct-orders"><strong>9. Ask questions instead of giving direct orders</strong></h3>
<p>This is something that is more relevant to team leaders or managers, but it can apply to anyone else as well.</p>
<p>People tend to be more inspired to work when they are challenged to do something, rather than ordered around.</p>
<p>When you command someone to do something, their ego may come out and make the individual think that he is being oppressed or that his autonomy is being threatened.</p>
<p>Rather than giving a direct order, ask whether a colleague would like to work on a particular task.</p>
<p>If there is no other available developer who can work on a particular task, and you are afraid that they may not like working on the front-end side, tell them you are worried that the team might look bad in front of the client if this feature is not present in the next meeting.</p>
<p>Questions like “<em>Would you mind working overtime and finishing off this task, knowing that this is critical for our project?”</em> are better than commands like <em>“You cannot go home unless you get this task done.”</em></p>
<p>Mention to them that they are an important part of the team, and they can help the team prove to the client that they are reliable for future projects as well, with questions such as, <em>“Could I possibly assign this task to you, knowing that you are already experienced with these types of work?”</em></p>
<h3 id="heading-10-avoid-dealing-with-toxic-people"><strong>10. Avoid dealing with ‘toxic’ people</strong></h3>
<p>Even though working as a software developer might be your dream job, there may nevertheless be toxic people at your workplace.</p>
<p>You thought you left those types of people behind at your high school, but it turns out that life is filled with so many of them.</p>
<p>These people are simply looking for opportunities to bring others down and may generally possess a negative perspective on everything in life.</p>
<p>You can try to change them with your well-intentioned influence, but often it is very difficult for a person to change (for a lot of reasons).</p>
<p>If you see that you are not having any positive influence, and associating with them is only causing you trouble, then you should avoid dealing with them.</p>
<p>You might be in a situation, however, where this person is your manager or a colleague in your office.</p>
<p>In these cases, your alternatives are very limited. You may consider changing your department, or start looking for a new job.</p>
<p>In cases when you do not have any other alternative but to deal with them, prepare yourself mentally ahead of time regarding their bad attitude, and tell yourself that you should not let them influence your mood and ruin your whole day.</p>
<p>Their attitude is not something that should surprise you.</p>
<p>Try to interact with them as little as possible.</p>
<h3 id="heading-conclusion"><strong>Conclusion</strong></h3>
<p>There is a lot more to the life of a software developer than just writing code. Dealing with people is one of the key factors.</p>
<p>Although they do not get mentioned or emphasized that much, social skills are among those few seemingly unimportant skills that can actually accelerate growth in your career.</p>
<p>And they are much simpler to understand and put into practice than inverting a binary tree on a whiteboard.</p>
<p>While I agree that some of these things are easier said than done, it is important to practice applying them in our lives.</p>
<p>Before you leave, let me kindly remind you about one more thing: <strong>Do not expect to always be able to apply these things all of the time</strong>.</p>
<p>We are human beings and we have our own difficult times, too.</p>
<p>However, we must not let those few moments of frustration and anger ruin our whole professional and non-professional lives.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Simplicity is sophistication ]]>
                </title>
                <description>
                    <![CDATA[ By Srinivasan C Recently I attended a meeting with multiple stakeholders from the business side. When asked to explain a feature, I started explaining them the details of the feature and its implementation. After the meeting one of my colleagues told... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/simplicity/</link>
                <guid isPermaLink="false">66d4614dd14641365a050971</guid>
                
                    <category>
                        <![CDATA[ Clean Architecture ]]>
                    </category>
                
                    <category>
                        <![CDATA[ mental models ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Mindset ]]>
                    </category>
                
                    <category>
                        <![CDATA[ soft skill ]]>
                    </category>
                
                    <category>
                        <![CDATA[ software architecture ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sun, 07 Jul 2019 09:54:58 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9ca1a3740569d1a4ca4fc9.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Srinivasan C</p>
<p>Recently I attended a meeting with multiple stakeholders from the business side. When asked to explain a feature, I started explaining them the details of the feature and its implementation. After the meeting one of my colleagues told me even though I explained it in detail, they will be requesting a follow-up meeting to discuss the same thing and it was true — the next day we had a meeting invite for the same thing as a follow-up. He explained to me that the reason was I had provided them more details than necessary which probably confused them. This incident led me to the principle of Occam’s Razor.</p>
<p>Quoted from Wikipedia</p>
<blockquote>
<p><em>Occam’s razor or the law of parsimony is the problem-solving principle that essentially states that “simpler solutions are more likely to be correct than complex ones.” When presented with competing hypotheses to solve a problem, one should select the solution with the fewest assumptions. The idea is attributed to English Franciscan friar William of Ockham (c. 1287–1347), a scholastic philosopher and theologian.</em></p>
</blockquote>
<p>We have all heard the famous quote by Sherlock Holmes</p>
<blockquote>
<p><em>Once you eliminate the impossible, whatever remains, no matter however improbable, must be the truth.</em></p>
</blockquote>
<p>This follows directly from Occam’s Razor. This principle states that given two explanations of a situation, the one in which there is the least number of variables(simpler) however improbable is the most likely explanation. This principle is very helpful and it can be used in a wide variety of situations but it is especially powerful in the hands of software professional.</p>
<p>There are many areas of Software development which can benefit from this principle. A few of them are:</p>
<h3 id="heading-coding">Coding</h3>
<p>The first and foremost area is coding. As developers, we make hundreds of decisions every day which directly affects the health of the codebase and in turn the business. Few of the mistakes we make include adding unwanted abstractions, designing for the future, making it “extensible”(whatever that means). These code with unwanted additional complexity slowly rots over time and becomes “that” part of the codebase that no one understands and nobody is willing to touch. These are the things we do either knowingly or unknowingly which can put a dent on our codebase health in the long-run.</p>
<p>To overcome this it would be prudent for us to think in terms of Occam’s Razor. Always do the simplest thing possible at any point in time. Principles like YAGNI and KISS are examples of Occam’s Razor in coding. If you want to combine 3 design patterns to accommodate a feature request you expect in the future, restrain your primal instincts and stick with a single class for now. Using Occam’s razor during the development process would keep the codebase simple and readable and your future peers will really thank you.</p>
<p>A word of caution here is, this principle should not be used as an excuse to write bad code or take shortcuts. If there is a real need to add complexity, by all means, you should do that. Consider this a framework for you to step back and think for a moment and weigh the cost of your decision in the long run.</p>
<h3 id="heading-debugging">Debugging</h3>
<p>Another interesting application of this principle is while debugging. The hard part about debugging is nobody knows the answer especially when you work in a legacy code base with business critical functionalities. Bigger the codebase, more complex the debugging process and thus the Occam’s Razor comes in really handy. All the good software developers I know trace the root cause of a bug by using this principle without even realising it.</p>
<p>Let's say there you write a program to display a few stats in the dashboard. You observe that each time the dashboard is updated you get 2x instead of x for a particular stat. What would be your first instinct? Is it a double counting issue or some thread level race condition? I am guessing most of you with go with the former. This is Occam’s Razor in action. You picked the choice which provides the simplest explanation for the issue intuitively.</p>
<p>This is not to say that always the simplest explanation is the right one. Instead, you start from the simplest one and eliminate one by one either by theory or experimentation until you arrive at the actual root cause for the problem. This provides a framework for you to tackle problems methodically.</p>
<h3 id="heading-communication">Communication</h3>
<p>One of the most under-rated functions of a software developer is communication. Be it with peers/ managers/ stakeholders, communication is as important as coding for any developer. As developers, we are the closest to any given problem and it is natural for people to rely on us for understanding the whole picture of a product/feature. This makes what you communicate and how you communicate extremely crucial from a business standpoint.</p>
<p>As we are closest to a problem, we will have a lot of technical and domain knowledge around it. But it is extremely important to communicate the right things to the right people. Assume you are in a mail thread with Sr. engineer, PM, Manager, and a Business development executive, you need to provide just the right amount of detail so that the Engineer can get the technical challenges and the others can also understand the complexity technically as well as the business justification. You need to achieve the right amount of balance in the technical/business mixture for the audience to understand and not lose interest. This is where Occam’s razor comes in. You need to provide the least level of detail in the mail and schedule a follow up for the people who need to understand more.</p>
<p>Take this as an example “we did a POC on x and we were able to achieve y. Even though we discussed A in the previous mail, we could not achieve A due to the complexities in a library that we were using. There were a lot of assumptions in the threading model in the library and thus it prevented us from achieving A”.</p>
<p>Now, what do you think the different stakeholders will understand?</p>
<ol>
<li>Engineer — Yes I get the issue.</li>
<li>PM- So basically we cant achieve A. And what is a threading model?</li>
<li>Manager — Did he try enough to achieve A?</li>
</ol>
<p>Instead, if we write “we did a POC on x and were able to achieve y. A was targetted but not achieved. I’ll schedule a meeting to demo the POC and go into details on the blocker for A.” After that, you have all the time in the world to explain in detail the blockers for the right audience and achieve a consensus.</p>
<p>Now, what is the thought process after the demo?</p>
<ol>
<li>Engineer — Makes sense.</li>
<li>PM — The POC is good for now. I guess we can drop A for now and proceed without it.</li>
<li>Manager — He has done an in-depth analysis and knows what he is doing.</li>
</ol>
<h3 id="heading-conclusion">Conclusion</h3>
<p>Occam’s Razor can be employed in a wide variety of scenarios and these are just a few examples. Developers use this principle intuitively without knowing it. But knowing it and using it deliberately in various situations will greatly improve you as a software developer. If you can think of any other area of Software where this principle is being used feel free to leave your thoughts in comments.</p>
<hr>
<p>If you liked this article, feel free to reach out to me at <a target="_blank" href="https://kaizencoder.com/contact">https://kaizencoder.com/contact</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
