<?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: Baskarrao Dandlamudi</title>
    <description>The latest articles on DEV Community by Baskarrao Dandlamudi (@baskarmib).</description>
    <link>https://dev.to/baskarmib</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%2F152482%2Fb0e5aad5-cf5f-4cad-9189-9bfa9e52bf7f.jpg</url>
      <title>DEV Community: Baskarrao Dandlamudi</title>
      <link>https://dev.to/baskarmib</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/baskarmib"/>
    <language>en</language>
    <item>
      <title>Do we need to invest time to build our network?</title>
      <dc:creator>Baskarrao Dandlamudi</dc:creator>
      <pubDate>Tue, 01 Feb 2022 00:00:00 +0000</pubDate>
      <link>https://dev.to/baskarmib/do-we-need-to-invest-time-to-build-our-network-14am</link>
      <guid>https://dev.to/baskarmib/do-we-need-to-invest-time-to-build-our-network-14am</guid>
      <description>&lt;p&gt;Do we need to invest time to build our network?&lt;/p&gt;

&lt;p&gt;This is the most underrated question, that we never ask ourselves when everything is good. If you are reading this blog post, ask yourself this simple question. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When was the last time did I meet or interact with someone outside of work or personal circle?&lt;/p&gt;

&lt;p&gt;When was the last time did I spoke with someone from my previous work place?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If we answered “No” to the above questions, then it is time for us to think about it. For starters investing time in networking is as good as turning those above questions with answers on a weekly basis or bi-weekly basis. Recently I had my mentorship session with my mentor Doug McCollough and trust this was a genuine experience which he shared me - &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Most of my leads for leadership positions in Columbus, Ohio have been suggested to me by my professional network”.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Whether we are on job hunt or not on job hunt, expanding our professional network will help and give us great rewards. We generally try to update our resumes only when we are either looking for a new role or if we already lost our job. We generally try to update our LinkedIn profiles only when we are active in job search. So in those situations of dire need, it might sound very transactional when we reach out to our professional network, with whom we have not interacted for a long time.  A good network is built when we do not consider our network only for transactional purpose.&lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--BGyWlMWf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1389641594026872834/umCD8U2d_normal.jpg" alt="Jason Lengstorf profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Jason Lengstorf
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/jlengstorf"&gt;@jlengstorf&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      if the idea of “networking” makes you squeamish, try reframing it: “I would like to meet more people who do the kinds of activities I’m interested in &amp;amp; be friends with them” — growing your network doesn’t need to be (and I’d argue definitely shouldn’t be) formal &amp;amp; transactional &lt;a href="https://t.co/V9X2zinMgV"&gt;twitter.com/theworstdev/st…&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      19:41 PM - 26 Jan 2022
    &lt;/div&gt;

      &lt;div class="ltag__twitter-tweet__quote"&gt;
        &lt;div class="ltag__twitter-tweet__quote__header"&gt;
          &lt;span class="ltag__twitter-tweet__quote__header__name"&gt;
            kurt kemple
          &lt;/span&gt;
          &lt;a class="mentioned-user" href="https://dev.to/theworstdev"&gt;@theworstdev&lt;/a&gt;
        &lt;/div&gt;
        Why build a network when you can build a community instead?! 💜
      &lt;/div&gt;

    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1486424079057915904" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1486424079057915904" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1486424079057915904" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;Don’t wait for the rainy day to improve your network. &lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--25T3Oe1K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1154011228408360961/gorvZ8Yz_normal.jpg" alt="Hilary aka H-Bomb profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Hilary aka H-Bomb
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @g33klady
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      This means build your network NOW before you need it, because you never know when you'll need it &lt;a href="https://t.co/Ehe916b1h7"&gt;twitter.com/peterritchie/s…&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      16:21 PM - 24 Jan 2022
    &lt;/div&gt;

      &lt;div class="ltag__twitter-tweet__quote"&gt;
        &lt;div class="ltag__twitter-tweet__quote__header"&gt;
          &lt;span class="ltag__twitter-tweet__quote__header__name"&gt;
            Peter Ritchie ⚙
          &lt;/span&gt;
          &lt;a class="mentioned-user" href="https://dev.to/peterritchie"&gt;@peterritchie&lt;/a&gt;
        &lt;/div&gt;
        @g33klady No matter how good you think the company you work for is, look out for yourself first and foremost.
      &lt;/div&gt;

    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1485648942620684290" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1485648942620684290" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1485648942620684290" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;Some awesome tips on improving your network here by Shawn Charles.&lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YmISISGO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/tweet_video_thumb/FKjeur9XoAMXGDo.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--bY1oe1Gg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1486230442491662339/GEsPPuWR_normal.jpg" alt="Shawn Charles profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Shawn Charles
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @shawnbasquiat
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      &lt;a href="https://twitter.com/hashtag/NetworkingTips"&gt;#NetworkingTips&lt;/a&gt;&lt;br&gt;1.🤝Don’t Apply to 100 Jobs - Make 100 Friends&lt;br&gt;2.🗣Join Events - Join Communities - Join Spaces&lt;br&gt;3.✨Provide Value&lt;br&gt;4.💯Be Consistent&lt;br&gt;5.🤗Make Friends&lt;br&gt;&lt;br&gt;Leon’s preaching from the  &lt;a href="https://twitter.com/hashtag/NetworkingBible"&gt;#NetworkingBible&lt;/a&gt; 🔥&lt;br&gt;Don’t drop the Bag💰&lt;br&gt;How do YOU Excel at Networking?&lt;br&gt;&lt;a href="https://twitter.com/hashtag/100Devs"&gt;#100Devs&lt;/a&gt; 🧵 &lt;a href="https://t.co/ejzWRGQzMU"&gt;twitter.com/leonnoel/statu…&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      01:23 AM - 02 Feb 2022
    &lt;/div&gt;

      &lt;div class="ltag__twitter-tweet__quote"&gt;
        &lt;div class="ltag__twitter-tweet__quote__header"&gt;
          &lt;span class="ltag__twitter-tweet__quote__header__name"&gt;
            Leon Noel 🔥
          &lt;/span&gt;
          &lt;a class="mentioned-user" href="https://dev.to/leonnoel"&gt;@leonnoel&lt;/a&gt;
        &lt;/div&gt;
        Come learn the basics of responsive #css and make your sites look great across devices!

#100Devs a free software engineering bootcamp starts in 60mins!

Join us live (6:30pm ET): https://t.co/oGOgB6SDbu

#100daysofcode #DEVCommunity #BlackTechTwitter #LearnToCode #WomenWhoCode
      &lt;/div&gt;

    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1488684578533429250" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1488684578533429250" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1488684578533429250" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;It is always important to do intentional networking. Whether we need it now or not improving our networking game on a daily basis even before the rainy days will help us a lot. &lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--8rZ22raF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/931026830844485632/iUYtXd-f_normal.jpg" alt="BaskarRao 3x💉😷 profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        BaskarRao 3x💉😷
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/baskarmib"&gt;@baskarmib&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Do intentional networking now to seek help in future or even to offer help in future.
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      23:15 PM - 20 Jan 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1484303529993027585" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1484303529993027585" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1484303529993027585" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;From my personal experience, these are things which have worked for me in building my professional network.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I keep regular touch with people, with whom I have worked in the past through LinkedIn or other forums.&lt;/li&gt;
&lt;li&gt;Attending local meetups and joining local Slack Groups, really helped me in improving my network here in Columbus, Ohio.&lt;/li&gt;
&lt;li&gt;Speaking at Conference and Code camps helped me in improving my network outside of Columbus, Ohio.&lt;/li&gt;
&lt;li&gt;Organizing meetups and conference through JavaScript and Friends has been a game changer for me in reaching out to wide variety of friends outside of my workplace and personal circle.&lt;/li&gt;
&lt;li&gt;Programs like Auth0 Ambassadors and Cloudinary MDE helped me in expanding my professional reach and building better connections with others who are part of the program.&lt;/li&gt;
&lt;li&gt;Sending connection requests with clear intent to people who are already working in roles where I want to work in future.&lt;/li&gt;
&lt;li&gt;Doing intentional networking on LinkedIn even when I am not looking for roles.&lt;/li&gt;
&lt;li&gt;Twitter spaces have been really helpful in connecting with like-minded friends and building a mutual network. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There is no single formula to build a network. Our aspirations change and hence the process which we can use to build a network also changes. But these were some steps which I have followed in improving my network the last 5 years. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Treat your network as an investment plan. Every financial guru will preach us to start to invest early in order to get good returns.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The same logic can be used to build our network. Starting early while attending college or even while attending boot camp really helps in expanding our reach when we finish those programs. Building genuine connections is more important rather than using someone’s time. If we have really got benefits from a connection, it is always important to thank them on how they were helpful. &lt;/p&gt;

&lt;p&gt;This is the least we can do for those who has invested on us by offering their perspectives and suggestions or even helping us by opening the gates. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Express gratitude.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you have benefited from an early networking then pass on the benefits to future aspirants by helping them. The first step in improving your network is to build your social profile on LinkedIn or Twitter based on your preference. &lt;/p&gt;

&lt;p&gt;Build your network based on your aspirations and dreams and don’t wait for the rainy day to start networking.&lt;/p&gt;

&lt;h3&gt;
  
  
  Some Awesome People to Follow on Twitter
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://twitter.com/dev_nikema"&gt;https://twitter.com/dev_nikema&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/DThompsonDev"&gt;https://twitter.com/DThompsonDev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/techgirl1908"&gt;https://twitter.com/techgirl1908&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/venikunche"&gt;https://twitter.com/venikunche&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/DougITPro"&gt;https://twitter.com/DougITPro&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/jlengstorf"&gt;https://twitter.com/jlengstorf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/cassandrafaris"&gt;https://twitter.com/cassandrafaris&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/integerman"&gt;https://twitter.com/integerman&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/SantoshYadavDev"&gt;https://twitter.com/SantoshYadavDev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/AnAccidentalDev"&gt;https://twitter.com/AnAccidentalDev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/Chad_R_Stewart"&gt;https://twitter.com/Chad_R_Stewart&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/ChadGreen"&gt;https://twitter.com/ChadGreen&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/sadukie"&gt;https://twitter.com/sadukie&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/tdesseyn"&gt;https://twitter.com/tdesseyn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/_collab_lab"&gt;https://twitter.com/_collab_lab&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/FrontendFoxes"&gt;https://twitter.com/FrontendFoxes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/BekahHW"&gt;https://twitter.com/BekahHW&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/g33klady"&gt;https://twitter.com/g33klady&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/TristanLombard2"&gt;https://twitter.com/TristanLombard2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/theworstdev"&gt;https://twitter.com/theworstdev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>professional</category>
      <category>networking</category>
      <category>beginners</category>
    </item>
    <item>
      <title>What we should look for in Code Reviews</title>
      <dc:creator>Baskarrao Dandlamudi</dc:creator>
      <pubDate>Fri, 19 Feb 2021 00:00:00 +0000</pubDate>
      <link>https://dev.to/baskarmib/what-we-should-look-for-in-code-reviews-4014</link>
      <guid>https://dev.to/baskarmib/what-we-should-look-for-in-code-reviews-4014</guid>
      <description>&lt;p&gt;We might be having different opinions about Code Reviews. There is no one step formula to define Code Reviews.  Every company and team have their own style of reviewing code.&lt;/p&gt;

&lt;p&gt;In this post, I will be sharing my opinions about Code Review which are specific to C# and dotNet Core which can be extended to other languages were applicable. Thanks to all who responded to my tweet sharing your views on Code Review.&lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--8rZ22raF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/931026830844485632/iUYtXd-f_normal.jpg" alt="BaskarRao #MaskUpOhio profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        BaskarRao #MaskUpOhio
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="comment-mentioned-user" href="https://dev.to/baskarmib"&gt;@baskarmib&lt;/a&gt;

      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      What do you primarily check in code reviews for &lt;a href="https://twitter.com/hashtag/CSharp"&gt;#CSharp&lt;/a&gt;? How are you helping developers incorporate your review?&lt;br&gt;&lt;a href="https://twitter.com/hashtag/dotNet"&gt;#dotNet&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      21:01 PM - 22 Jan 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1352723013972733953" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1352723013972733953" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1352723013972733953" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;h3&gt;
  
  
  Common Opinions about Code Review
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;For some Code Review is about maintaining readability in application code. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For some Code Review is about using the right design aspects. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For some Code Review is about checking if the new changes are not impacting the functionality of the system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For some Code Review is about following the industry standards and practices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For some Code Review is about making sure performance of the application is not impacted with new changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For some Code Review is about making sure code coverage metrics are ensured properly with unit tests and integration tests.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;For some Code Review is used as an approval process to merge code and exhibit authority. If this is your team do not do this.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Code Review Demystified
&lt;/h3&gt;

&lt;p&gt;In my opinion Code Review can be performed by focusing into the below three zones.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Technical Review&lt;/li&gt;
&lt;li&gt;Functional Review&lt;/li&gt;
&lt;li&gt;Non-Functional Review - Architecture Characteristics Review&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Technical Review
&lt;/h3&gt;

&lt;p&gt;As part of technical review, we can review the technical aspects of the code ranging from design, low level implementations and look for improvements to reduce technical debt. Every team can define their own checklist which can be used before committing code to feature branch or main branch. Having a standard defined by the team, would reduce the number of hours spent on code review making the process smooth and quick and overtime this would help the developers in practicing writing application code that is clean and maintainable.&lt;/p&gt;

&lt;p&gt;Some of these would include below. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refactoring repeated logics.&lt;/li&gt;
&lt;li&gt;Ensuring concepts like SOLID, DRY is followed based on use case.&lt;/li&gt;
&lt;li&gt;Ensuring proper memory utilization by properly disposing objects.&lt;/li&gt;
&lt;li&gt;Avoiding high cyclomatic complexity.&lt;/li&gt;
&lt;li&gt;Checking for n+1 query issue in for loops.&lt;/li&gt;
&lt;li&gt;Checking for object dependencies.&lt;/li&gt;
&lt;li&gt;Proper handling of opening and closing of database connections.&lt;/li&gt;
&lt;li&gt;Ensuring concepts like Circuit Breaker and Retry Patterns are followed where applicable.&lt;/li&gt;
&lt;li&gt;Optimizing string utilizations using constants like logs across the application.&lt;/li&gt;
&lt;li&gt;Optimizing async and await operations following the guidance mentioned in resources.&lt;/li&gt;
&lt;li&gt;Using proper naming for methods and variables maintaining readability as per agreed standards.&lt;/li&gt;
&lt;li&gt;Avoiding boxing and unboxing where applicable.&lt;/li&gt;
&lt;li&gt;Unless it is required avoiding .ToList() on query results from LINQ Queries.&lt;/li&gt;
&lt;li&gt;If performance is a more important concern, design your API to use arrays, List or ImmutableArray.&lt;/li&gt;
&lt;li&gt;Avoiding IEnumerable, IList, and IReadOnlyList for property and method return types if we can, and do not use ImmutableList unless we are actively manipulating immutable collections.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Functional Review
&lt;/h3&gt;

&lt;p&gt;We can perform functional review by making sure that our code changes do not impact any existing functionalities, by ensuring that our code is tested properly using unit tests and integration tests. This will be our first focus area as part of Functional Review. &lt;/p&gt;

&lt;p&gt;As a common practice we can ensure that all our existing tests and new tests are getting passed before our changes are merged to main or feature branch. If we use Test Driven Development as our development methodology we can ensure that all code is tested by developers before merging the same to main or feature branch.&lt;/p&gt;

&lt;h3&gt;
  
  
  Non-Functional Review - Architecture Characteristics Review
&lt;/h3&gt;

&lt;p&gt;Non-Functional Review is to cover areas like performance and security which are either not included as part of our requirements or functionalities. As stated in Mark Richards and Neal Ford - Fundamentals of Software Architecture book, it is good to consider requirements like performance, security, availability , reliability as architecture characteristics instead of calling them as Non-Functional Requirements.&lt;/p&gt;

&lt;p&gt;For example, we can review aspects of code performance by comparing the metrics taken by running Benchmark tests and making sure that results are not deviated more from previous captured metrics. These can also be included in our test. &lt;/p&gt;

&lt;p&gt;Verifying these metrics as part of code review helps us in making sure that code will not introduce major performance problems in test and production regions. We can also go an extra mile by making sure to verify secure coding practices as part of our reviews.&lt;/p&gt;

&lt;h3&gt;
  
  
  Closing Thoughts
&lt;/h3&gt;

&lt;p&gt;A proper code review can be done when the reviewer runs codebase on their machine. Reviewing code using GitHub alone might not help because we are not executing the code or looking at the big picture on how the dependencies are used if we must review the code based on architecture characteristics.&lt;/p&gt;

&lt;p&gt;Software development methodologies like Extreme Programming generally encourages a collective code review by the team, where the entire team can review the code and suggest improvements collectively. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If we are given an opportunity to review code it is our first chance to mentor junior or peer developers and not using them as an opportunity to criticize.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Code Reviews can be done quickly when the commits are small. Feel free to check the resource section on additional details about micro commits. Interested to know how code review is done at Microsoft, then check out the references section on details about CodeFlow. The article itself is a great read on how to improve code review process. Thanks to threddyrex for sharing this article.&lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--OfNIZZvU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1179793221792092160/kyazlN9n_normal.jpg" alt="Threddy the T. rex 🦖 profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Threddy the T. rex 🦖
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @threddyrex
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      &lt;a href="https://twitter.com/baskarmib"&gt;@baskarmib&lt;/a&gt; This ACM article from 2019 has some good info: &lt;a href="https://t.co/GHQrSwcBbV"&gt;cacm.acm.org/magazines/2019…&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      23:21 PM - 18 Feb 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1362542838269968384" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1362542838269968384" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1362542838269968384" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;Feel free to share your thoughts on different aspects that we can generally use as part of code reviews.&lt;/p&gt;

&lt;h3&gt;
  
  
  Related Links
&lt;/h3&gt;

&lt;p&gt;
&lt;a href="http://wiki.c2.com/?CollectiveCodeOwnership" rel="noopener noreferrer"&gt;Extreme Programming and Collective Code Ownership&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://martinfowler.com/bliki/ExtremeProgramming.html" rel="noopener noreferrer"&gt;Extreme Programming Overview&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://cacm.acm.org/magazines/2019/2/234350-codeflow/fulltext" rel="noopener noreferrer"&gt;CodeFlow - Code Review Process Improvement&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://www.digitalocean.com/community/conceptual_articles/s-o-l-i-d-the-first-five-principles-of-object-oriented-design#single-responsibility-principle" rel="noopener noreferrer"&gt;SOLID Design Pattern&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://zapier.com/blog/dont-repeat-yourself/" rel="noopener noreferrer"&gt;DRY principles Overview&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.md" rel="noopener noreferrer"&gt;Async and Await Reference Guidance&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AspNetCoreGuidance.md" rel="noopener noreferrer"&gt;ASP Net Core Guidance&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://docs.microsoft.com/en-us/dotnet/framework/performance/performance-tips#boxing-and-unboxing" rel="noopener noreferrer"&gt;dotNet Performance Tips&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://carlos.mendible.com/2018/08/22/net-core-benchmarkdotnet-for-vs-foreach-performance/" rel="noopener noreferrer"&gt;For and ForEach Performance Benchmark&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://www.infoq.com/articles/For-Each-Performance/" rel="noopener noreferrer"&gt;ForEach Performance Observations&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://www.industriallogic.com/blog/whats-this-about-micro-commits/" rel="noopener noreferrer"&gt;Micro-Commits&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://www.stevejgordon.co.uk/introduction-to-benchmarking-csharp-code-with-benchmark-dot-net" rel="noopener noreferrer"&gt;Benchmarking Csharp Code&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://docs.microsoft.com/en-us/dotnet/standard/security/secure-coding-guidelines" rel="noopener noreferrer"&gt;Secure dotNet Development&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>codereview</category>
      <category>performance</category>
    </item>
    <item>
      <title>Thoughts on recent AWS Outage</title>
      <dc:creator>Baskarrao Dandlamudi</dc:creator>
      <pubDate>Fri, 04 Dec 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/baskarmib/thoughts-on-recent-aws-outage-31e6</link>
      <guid>https://dev.to/baskarmib/thoughts-on-recent-aws-outage-31e6</guid>
      <description>&lt;p&gt;This post is to reflect my thoughts on the recent AWS Outage that we observed during Thanksgiving holiday week. Though the outage did not impact every business, but it did impact a major portion of customers indirectly through cascading effect.&lt;/p&gt;

&lt;p&gt;While majority of internet was discussing about the outage, many did share their thoughts on what could be done to sustain business during outage like these situations. As you might be aware the main reason for outage was mainly due to issues introduced in the system by addition of additional capacity for Amazon Kinesis Front End. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;At 9:39 AM PST, we were able to confirm a root cause, and it turned out this wasn’t driven by memory pressure. Rather, the new capacity had caused all of the servers in the fleet to exceed the maximum number of threads allowed by an operating system configuration. As this limit was being exceeded, cache construction was failing to complete and front-end servers were ending up with useless shard-maps that left them unable to route requests to back-end clusters.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Many were quick to share their thoughts on how this situation could have been avoided from impacting our organization. &lt;/p&gt;

&lt;p&gt;Primary suggestion was to make use of multiple regions while developing applications for the cloud. Having multiple regions will help us sustain outages like the recent outage where the entire US-EAST-1 region was impacted. This approach perfectly works. It is always recommended to maintain an exact working replica of our applications in multiple regions. This way we can activate and start routing traffic to the region which is not impacted.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What would we do if multiple regions are impacted?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As application architects we always strive to build our systems resilient. Though using multiple regions could have helped us run our business from regional outages, there is always 0.0001% chance that we are still prone to outage impacts when there is a widespread outage at cloud providers.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Is Multi Cloud an Option to consider?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Many mission critical applications are already considering Multi Cloud as an option in their IT Strategy. Designing application systems using multiple cloud providers helps us choose the best services from each. We may consider running a live instance of our application in one cloud provider and have a replica of applications in another cloud provider.  This raises the next fundamental question on maintenance. &lt;/p&gt;

&lt;p&gt;Each Cloud Provider has their own set of methods for using a service. For example, we can run functions in any cloud provider subject to limitations with languages each provider can support.     &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS - Lambda Functions&lt;/li&gt;
&lt;li&gt;Azure - Azure Functions&lt;/li&gt;
&lt;li&gt;Google Cloud - Google Cloud Functions&lt;/li&gt;
&lt;li&gt;IBM Cloud - IBM Cloud Functions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using robust CI/CD process we can target to run our applications using multiple cloud providers. It is always ideal to consider a logical group and place resources as part of that logical group in one provider. For example - Having the presentation, middleware and database co-located in the same cloud provider helps in less network roundtrips or lags compared to having them separated in different providers. &lt;/p&gt;

&lt;p&gt;We can use different strategies while considering multi cloud providers as below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Segregating applications by departments to different cloud providers.&lt;/li&gt;
&lt;li&gt;Segregating applications by environment to different cloud providers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every application out there might not need the multi cloud environment model. There is no one formula to use while using multi cloud approach. It needs constant feedback mechanism to tune and adjust based on our experience. &lt;/p&gt;

&lt;p&gt;The first step in achieving multi cloud environment is to consider converting applications to run in containers. Using containers helps us in choosing any cloud provider of choice and it is also faster to restore applications during outages.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Is Hybrid Cloud an option to consider?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Hybrid Cloud is also best option to choose while planning for business continuity. In Hybrid Cloud we have the flexibility to use our own infrastructure as a backup option when cloud is impacted by outage. Most banking sector applications still follow Hybrid Cloud as their approach due to restrictions around data security and other compliance options. &lt;/p&gt;

&lt;p&gt;During outage in cloud, Hybrid Cloud approach would need efforts from our end to change routes to our applications so that end users are not impacted with changes in addresses which they use while accessing our applications.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Pro-Active Monitoring?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is always required to implement Pro-Active Monitoring at our end. With pro-active monitoring we can always take actions quickly to stand up and create new instances of our applications using new regions than regions which we already use. In the current AWS Outage scenario, organizations which had pro-active monitoring were able to address the issue without major impact.&lt;/p&gt;

&lt;p&gt;Rather than relying on monitoring information provided within cloud providers, it is best to consider monitoring solutions which are outside the cloud provider. This way monitoring solutions can alert us when there is widespread outage with the cloud providers. &lt;/p&gt;

&lt;p&gt;There were reports that certain users were not able to even access the status health dashboards which are provided by cloud providers during the outage.  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The irony is that the outage is also affecting the company’s “ability to post updates to the Service Health Dashboard&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This has been a learning experience for many, and we should take this as an opportunity to learn and plan for designing solutions which are resilient. &lt;/p&gt;

&lt;p&gt;Feel free to share your thoughts on what can be done to be prepared to situations like these.&lt;/p&gt;

&lt;h3&gt;
  
  
  Related Links
&lt;/h3&gt;

&lt;p&gt;
&lt;a href="https://www.bbc.com/news/technology-55087054" rel="noopener noreferrer"&gt;https://www.bbc.com/news/technology-55087054&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://www.startribune.com/amazon-cloud-service-outage-affects-companies-from-shipt-to-roku/573196931/" rel="noopener noreferrer"&gt;https://www.startribune.com/amazon-cloud-service-outage-affects-companies-from-shipt-to-roku/573196931/&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://www.datacenterdynamics.com/en/news/aws-explains-what-went-wrong-us-east-1/" rel="noopener noreferrer"&gt;https://www.datacenterdynamics.com/en/news/aws-explains-what-went-wrong-us-east-1/&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://aws.amazon.com/message/11201/" rel="noopener noreferrer"&gt;https://aws.amazon.com/message/11201/&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://techcrunch.com/2020/11/25/amazon-web-services-outage-takes-a-portion-of-the-internet-down-with-it/" rel="noopener noreferrer"&gt;https://techcrunch.com/2020/11/25/amazon-web-services-outage-takes-a-portion-of-the-internet-down-with-it/&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>cloud</category>
    </item>
    <item>
      <title>Things to avoid as CodeNewbies!</title>
      <dc:creator>Baskarrao Dandlamudi</dc:creator>
      <pubDate>Fri, 20 Nov 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/baskarmib/things-to-avoid-as-codenewbies-50kp</link>
      <guid>https://dev.to/baskarmib/things-to-avoid-as-codenewbies-50kp</guid>
      <description>&lt;p&gt;In today's post, we will see on the most important things that CodeNewbies should avoid based on my experience observing the industry so far as a Software Engineer. Spending 13 years in the industry, I have observed various situations which make CodeNewbies get exploited. &lt;/p&gt;

&lt;h3&gt;
  
  
  I am a Junior Developer
&lt;/h3&gt;

&lt;p&gt;I have shared this to many developers who recently graduated from technical bootcamp or students completing their college graduation and on the lookout for new roles as a developer. We always try to associate us with the term "Junior". Don't do this.  &lt;/p&gt;

&lt;p&gt;There are no Junior Developers in the industry. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Everyone starts as a Developer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Learning all at once
&lt;/h3&gt;

&lt;p&gt;Learning all technologies mentioned in job description at once is bit overcomplicated. This would cause burn outs. Instead try learning the concepts which are essential to perform the duties of a developer. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Keeping focus on one area at a time helps in mastering the topic and provides more value to our learnings. Shifting focus to various moving parts will not help.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Spending more on technical content than needed
&lt;/h3&gt;

&lt;p&gt;I have seen situations where we tend to buy technical content either in the form of Courses or Tutorials on every technology that is out there. Don't do this. We will not work with all technologies right from day one. Having foundational knowledge helps and they can be achieved by going through various free resources. Today it is not difficult to find, free quality resources. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Join the technical communities in Slack or Discord around the technology which we want to learn. These days most communities have a - help section and I know there are many developers out there who are willing to help.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Building Common Portfolios
&lt;/h3&gt;

&lt;p&gt;It is great to have a Portfolio website. It is a trend these days to have a Portfolio website. Instead of building a Portfolio website we can use alternative methods to show our skills.&lt;/p&gt;

&lt;p&gt;Alternative ways can include any of these methods.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Collection of code snippets in Codepen where we have solved a particular use case.&lt;/li&gt;
&lt;li&gt;Blog posts with what we have learned and how did we use it to solve the use case.&lt;/li&gt;
&lt;li&gt;Create video on how we solved a problem and the approach we used to solve the problem.&lt;/li&gt;
&lt;li&gt;Volunteer at a non profit of choice and get testimonials on work accomplished.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;People who hire are interested in knowing more about the intuitive process that we have used while learning and building portfolio applications. &lt;/p&gt;

&lt;h3&gt;
  
  
  Looking for roles after Completion of Bootcamp
&lt;/h3&gt;

&lt;p&gt;This is a common mistake we often do. We make ourselves busy with the tough learning cycles throughout the bootcamp.  But we end up searching for roles only after completing a bootcamp. Most bootcamp out there do not provide any support with respect to job placements. Very few bootcamp provide placement assistance. If we are learning in one of those bootcamps we are lucky. But that is not the case very often.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Create a network the moment we join bootcamp. The early we start, the better will be the results.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So how do we start to build a network - We can start right from the bootcamp.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reach out to previous students from bootcamp and see how they are doing.&lt;/li&gt;
&lt;li&gt;Check with previous students to see if they would be interested in amplifying our voice.&lt;/li&gt;
&lt;li&gt;Join nearest meetups and see if they have a welcoming group to support beginners.&lt;/li&gt;
&lt;li&gt;Connect with members of the meetup on LinkedIn or Twitter and check if they will be interested to provide guidance and support.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These conversations and connections that we build in early stage often helps in the long run. Some of them from our connections might even become our mentor to guide us. These connections can also become our accountability buddies making sure we are accountable to what we commit to learn. The early connections will help us in landing our new roles.&lt;/p&gt;

&lt;h3&gt;
  
  
  Failing to share progress and get feedback from Mentors
&lt;/h3&gt;

&lt;p&gt;We usually create the initial connections but later we fail to share progress. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Feedback is a great way to improve ourselves. Be open to feedbacks.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is important to share our progress with the connections that we make in our meetups or LinkedIn.  These can be by asking our connections to provide feedback on the code that we just wrote to solve a problem or asking review on a blog post. &lt;/p&gt;

&lt;h3&gt;
  
  
  Waiting for the golden opportunity
&lt;/h3&gt;

&lt;p&gt;We often spend more time waiting for the golden opportunity. Trust me there are many developers who are successful in their career not because they started their career in a place that met all their expectations. Over time they steered their way through to reach the place where they want to be.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Everyone needs a starting point.  It depends how quickly we start our journey from the starting point.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Gap is considered as a big problem in the industry. I know how difficult it is when there are gaps in our career. The industry is slowly learning to consider gaps. &lt;/p&gt;

&lt;p&gt;Getting a role for 35$ to 45$ per hour in Midwest region on contract basis is not a bad thing. Don't concentrate on the pay when we start. Instead use that opportunity to learn to the fullest. The learnings which we gain initially are more valuable. &lt;/p&gt;

&lt;p&gt;Once we start we can always change after gaining considerable confidence and experience. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Many might not agree completely with me on this, but it is the reality that we must accept.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Don't go behind Hype
&lt;/h3&gt;

&lt;p&gt;We often go behind hype to choose a particular technology to learn. Social media often is the culprit to create that hype. Don't choose a technology by seeing its trend in social media.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Do research specific to the location!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We need to choose a technology to learn by research and what we can learn.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check for the number of entry level jobs that are posted for a technology in our location.&lt;/li&gt;
&lt;li&gt;See the trends on the technology that is in demand in our location.&lt;/li&gt;
&lt;li&gt;See the number of people who are already available with the skills in our location.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learning a skill where there is a large supply will not help us land our roles. So, finding the niche is more important.&lt;/p&gt;

&lt;h3&gt;
  
  
  There is no one-step formula
&lt;/h3&gt;

&lt;p&gt;There is no one-stop formula to reach our goal. &lt;/p&gt;

&lt;p&gt;Some might be successful by following a course like "30 days to learn", "100 days to learn". &lt;/p&gt;

&lt;p&gt;Trust me everyone has their own learning journey. There is no one step formula. If we are not able to learn something in 100 days it is fine to learn it in 150 days. &lt;/p&gt;

&lt;p&gt;What is more important is the consistency.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Consistency and commitment to learn and change our future is the key to our success.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Our planned efforts will help us reach our goal ultimately. &lt;/p&gt;

&lt;p&gt;Have any other suggestions that should be included feel free to let me know, I will get them included here. &lt;/p&gt;

&lt;p&gt;Happy learning and don't allow any one to exploit.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>career</category>
    </item>
    <item>
      <title>Can CodeNewbie learn C#? Yes you can - Day 6 to 10</title>
      <dc:creator>Baskarrao Dandlamudi</dc:creator>
      <pubDate>Fri, 13 Nov 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/baskarmib/can-codenewbie-learn-c-yes-you-can-day-6-to-10-1koe</link>
      <guid>https://dev.to/baskarmib/can-codenewbie-learn-c-yes-you-can-day-6-to-10-1koe</guid>
      <description>&lt;p&gt;By this time, we should be having a basic understanding of all the building blocks of C# along with complete understanding of string operations, date time operations, control flow statements, iteration statements, collections, arrays, and the usage of lists.&lt;/p&gt;

&lt;p&gt;In this segment, we will press the gas pedal and accelerate our learning journey. We will go through the basics of File Operations, Diagnostics Operations, Logger Implementations and last but not the least Serialization and Deserialization.&lt;/p&gt;

&lt;h3&gt;
  
  
  File Operations
&lt;/h3&gt;

&lt;p&gt;File Operations are performed by importing the namespace System.IO. Using the namespace, we can perform file operations like reading file, writing file, deleting file, creating file, moving file etc. Files can be written to filesystem using local path, relative path, network share location etc.&lt;/p&gt;

&lt;p&gt;No matter the number of years of experience we gain, we will be writing code that reads files, writes files. Check out the resources section for more details.&lt;/p&gt;

&lt;h3&gt;
  
  
  Diagnostics and Logging
&lt;/h3&gt;

&lt;p&gt;This is mostly used to observe the behavior of the system. Imagine if we are suffering from health issues, our doctor generally orders some diagnostics to run to see how our health system is functioning. Based on the diagnostic’s results doctors will recommend their course of medication to help us overcome the health issue.&lt;/p&gt;

&lt;p&gt;We can use the same analogy here. As developers we are going to make provisions in our application so that we can monitor how our application is performing. Using diagnostics, we will be able to trace the issues which happen in production code.&lt;/p&gt;

&lt;p&gt;Some common usages are as follows -&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Include code to log information as methods are executed. These can be informational logs.&lt;/li&gt;
&lt;li&gt;Include code to log information when errors happen in our application.&lt;/li&gt;
&lt;li&gt;Include code to log time taken to complete execution of methods.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It is more important to understand the log levels. As we deploy applications to our production we can enable only critical logs to be captured, to make sure we don't consume storage space. This can be achieved by using log levels like Verbose, Information, Debug, Error . Each Logging Packages in Dotnet like NLog, ILogger and Serilog have their own set of configurations to configure the log level.&lt;/p&gt;

&lt;p&gt;For more details check the resource section to have deep understanding of implementing logging and diagnostics mechanisms in our application.&lt;/p&gt;

&lt;h3&gt;
  
  
  Serialization and De-Serialization
&lt;/h3&gt;

&lt;p&gt;Once we start developing applications we will be hearing these terms Serialization and De-Serialization.&lt;/p&gt;

&lt;h3&gt;
  
  
  So, what does this mean?
&lt;/h3&gt;

&lt;p&gt;With C# we can convert an object of class to XML or JSON Format - This process is called Serialization.&lt;/p&gt;

&lt;p&gt;Constructing an object of class from XML or JSON Format - This process is called De-Serialization.&lt;/p&gt;

&lt;h3&gt;
  
  
  When do we use this?
&lt;/h3&gt;

&lt;p&gt;We use this to pass our class objects to our APIs or sending information over the wire. Before passing our class objects we perform serialization and convert the class to XML or JSON Format and then pass the details to our services or APIs which receive the XML or JSON and convert them back to class objects before running our business logics in our APIs.&lt;/p&gt;

&lt;p&gt;Though the most common preferred approach these days is to use JSON Format, there are some legacy applications which still uses XML. So, having knowledge on both types of serialization usually helps.&lt;/p&gt;

&lt;p&gt;Check the resources section to get in-depth overview on XML and JSON serialization and deserialization.&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/troubleshoot/dotnet/csharp/read-write-text-file"&gt;https://docs.microsoft.com/en-us/troubleshoot/dotnet/csharp/read-write-text-file&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/core/diagnostics/logging-tracing"&gt;https://docs.microsoft.com/en-us/dotnet/core/diagnostics/logging-tracing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://serilog.net/"&gt;https://serilog.net/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-5.0"&gt;https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-5.0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-how-to?pivots=dotnet-5-0"&gt;https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-how-to?pivots=dotnet-5-0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/standard/serialization/xml-and-soap-serialization"&gt;https://docs.microsoft.com/en-us/dotnet/standard/serialization/xml-and-soap-serialization&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Self-Check
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;How do we read and write files to network share?&lt;/li&gt;
&lt;li&gt;What is UNC Path?&lt;/li&gt;
&lt;li&gt;Implement a console application to monitor a folder location and read files as they come through?&lt;/li&gt;
&lt;li&gt;What are the different log levels used for diagnostics?&lt;/li&gt;
&lt;li&gt;How to implement code to receive email when error is logged in our application?&lt;/li&gt;
&lt;li&gt;What are event sinks and sources in Serilog?&lt;/li&gt;
&lt;li&gt;What is serialization and deserialization?&lt;/li&gt;
&lt;li&gt;What is JSON Format and namespace that is used to perform JSON Serialization and De-Serialization.&lt;/li&gt;
&lt;li&gt;Write code to serialize and de-serialize below class to JSON Format
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Employee&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;EmployeeId&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;DateTime&lt;/span&gt; &lt;span class="n"&gt;DateOfJoining&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Going through this path, helps one to get the fundamental understanding of C#. These can be done in 10 days or more than 10 days. &lt;br&gt;
Do not concentrate on the number of days that you take to complete this path.&lt;/p&gt;

&lt;p&gt;Hope the resources will be helpful. These foundations are more important before proceeding to write code to implement database operations and developing APIs.&lt;/p&gt;

&lt;p&gt;Feel free to reach out to me if you need any help while traversing through this path.&lt;/p&gt;

&lt;p&gt;Happy learning.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Online Workshops</title>
      <dc:creator>Baskarrao Dandlamudi</dc:creator>
      <pubDate>Thu, 15 Oct 2020 05:23:40 +0000</pubDate>
      <link>https://dev.to/baskarmib/online-workshops-50dk</link>
      <guid>https://dev.to/baskarmib/online-workshops-50dk</guid>
      <description>&lt;p&gt;What is the duration of online workshops you have found productive as an attendee or as a speaker?&lt;/p&gt;

&lt;p&gt;Options - &lt;br&gt;
2 hr workshop for 2 days&lt;br&gt;
4 hr workshop for 1 day&lt;br&gt;
Full day workshop &lt;/p&gt;

&lt;p&gt;Share your views with challenges which you faced while attending any of these formats.&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Experience of organizing a 6 track Virtual Conference</title>
      <dc:creator>Baskarrao Dandlamudi</dc:creator>
      <pubDate>Sun, 20 Sep 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/baskarmib/experience-of-organizing-a-6-track-virtual-conference-4988</link>
      <guid>https://dev.to/baskarmib/experience-of-organizing-a-6-track-virtual-conference-4988</guid>
      <description>&lt;p&gt;This post is to share my experience from organizing and running a 6 track virtual conference all from the comfort of my home office.  &lt;/p&gt;

&lt;p&gt;Earlier this year, I organized a single track virtual conference using Zoom. It was a live conference. Some learning from there helped me in organizing the workshop day at JavaScript and Friends. &lt;/p&gt;

&lt;p&gt;But what about the actual conference day on Aug-14? &lt;/p&gt;

&lt;p&gt;We had to manage and run a 6 track virtual conference. So here I am going to cover all those behind the scenes planning and execution which helped in organizing the conference.&lt;/p&gt;

&lt;h2&gt;
  
  
  Plan
&lt;/h2&gt;

&lt;p&gt;This is the second year for JavaScript and Friends Annual Conference.  We all miss the in-person meetings, hallway interactions, sponsor booth visits and most importantly the swags that we can have from our sponsor booth visits etc. It is all together a different experience.  We took the decision to go virtual before announcing our first set of speakers who responded to our CFP (Call for Presentations).  &lt;/p&gt;

&lt;p&gt;It was clear by the time around May-15 that we cannot risk conducting an in-person event and that we should go virtual. We decided to go with the same number of tracks as an in-person conference and ended up organizing a 6 track virtual conference. The primary reason we did not want to disappoint our speakers who submitted for speaking at the conference.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problems to Solve
&lt;/h2&gt;

&lt;p&gt;When we decided to go virtual we had the following problems with us to solve. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How do we go virtual?&lt;/p&gt;

&lt;p&gt;How do we create or encourage the hallway interactions in a virtual world?&lt;/p&gt;

&lt;p&gt;How do we deliver our workshops virtually?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;These were the primary questions which we had to solve to conduct the conference. So here is my experience on what we did to execute and deliver the conference virtually.&lt;/p&gt;

&lt;h2&gt;
  
  
  Execution
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How do we go virtual?
&lt;/h3&gt;

&lt;p&gt;The conference organizing team, did not have the required experience to run a complete virtual conference as this is our second year. It was all a complete learning experience for me to bring this conference virtual along with our team. We decided to have the talks recorded by our speakers and have them delivered to us. &lt;/p&gt;

&lt;p&gt;Since we are a community conference, we wanted to choose the platform to deliver the conference based on our community inputs. We polled our followers on Twitter and LinkedIn and the community has voted to choose "YouTube" as the preferred platform to watch the talks.&lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--DcoWe1uT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1101665721153699845/1KspSSg3_normal.png" alt="JSandFriendsConf profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        JSandFriendsConf
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @jsfriendsconf
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Let us do this friends.. What is your preferred platform to attend a virtual conference. If Other options feel free to reply. RT for reach.&lt;br&gt;&lt;a href="https://twitter.com/hashtag/DeveloperCommunity"&gt;#DeveloperCommunity&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/JavaScript"&gt;#JavaScript&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/JSFriendsConf"&gt;#JSFriendsConf&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      19:24 PM - 22 May 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1263913677780127744" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1263913677780127744" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1263913677780127744" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;The primary reason to choose a recorded talk was to make sure that we will be able to stream the talks to YouTube with less manpower and we did not want to take chances with the bandwidth issues on the day of the conference. We had few speakers joining us in different time zone and it would have been either late or too early for them to deliver the conference talks live. &lt;/p&gt;

&lt;p&gt;I have been following few conferences and events which were streamed live and took inspirations from friends and suggestions from &lt;a href="https://twitter.com/hboelman"&gt;Henk Boelman&lt;/a&gt;, &lt;a href="https://twitter.com/signalnerve"&gt;Kristian&lt;/a&gt; and &lt;a href="https://twitter.com/maartenballiauw"&gt;Maarten Balliauw&lt;/a&gt;. Henk had shared his experience streaming conferences live for Global AI Community. Henk also managed few technical aspects for Juneteenth Conf.  I reached out to Henk with questions which I had on my end and it was decided to use OBS or StreamLabs to live stream as most of our talks are pre-recorded. &lt;/p&gt;

&lt;p&gt;Streaming recorded talks is easier compared to streaming all the talks live. We did have few sections of the conference delivered live like the Keynote, Panel Discussion, Interview with Jerry from Rentor Mentor, GraphQL talk by Ashley and Stressful side of tech by Crux Conception. These talks were delivered live using Zoom and live streamed through our YouTube Channel. The reason behind using Zoom to live stream was based on my experience running our monthly meetups for JavaScript and Friends and running DotNet Open Source Days a single track conference using Zoom.  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Check out the Inspirations section for links to content from Henk and Maarten Balliauw.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Choose a Cloud Provider for Streaming
&lt;/h3&gt;

&lt;p&gt;When it comes to streaming, we had to decide whether we use our home bandwidth or go with streaming the talks using a Cloud Provider. Maarten Balliauw shared his experience in his blogs using Azure as the Cloud Provider.  My initial plan was to use Azure, but I was not able to find the GPU Powered Virtual Machines which Maarten used for their streams. This is where, I wanted to explore the choice used by ByteConf team managed by Kristian (&lt;a class="comment-mentioned-user" href="https://dev.to/signalnerve"&gt;@signalnerve&lt;/a&gt;
). Based on Kristian suggestions,  I decided to use PaperSpace for our conference day streaming. Though Kristian had few issues during ByteConf with PaperSpace, we were fortunate that we did not have any issues during the conference day with PaperSpace. &lt;/p&gt;

&lt;p&gt;We ended up using 6 Virtual machines one for each track in &lt;a href="https://www.paperspace.com/"&gt;PaperSpace&lt;/a&gt; using below configurations. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Operating System: Windows 10 (Server 2019) - Licensed&lt;br&gt;
Subscription Type: Pro hourly&lt;br&gt;
Subscription Cost: $5/month + $0.32/hour per Machine&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With Paperspace, we can either connect to the machine using our browser window from the Control Panel Console. I ended up creating a separate user accounts to connect to the machines using Remote Desktop.&lt;/p&gt;

&lt;p&gt;We installed StreamLabs OBS and used StreamLabs Custom Streaming Setup. After uploading the required videos and other images, music which are needed for the stream, it was no brainier effort to create scenes with required talk videos and videos from our sponsors. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;To make sure that we don't face copyright claims with background music, we ended up using the music from YouTube- Audio Library which are free to use.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Setting YouTube Live Events Page and Descriptions
&lt;/h3&gt;

&lt;p&gt;In order to stream to YouTube, we ended up creating 6 Live Stream events in YouTube. Thanks to &lt;a href="https://twitter.com/csauer"&gt;Chris Sauer&lt;/a&gt; who gave me pointers on creating multiple tracks in YouTube based on his experience from CouchCon. &lt;/p&gt;

&lt;p&gt;We need to make sure that the stream key for each event is unique.  These stream keys were used in StreamLabs OBS on each virtual machine. I initially ended up having same stream key for all tracks and later figured this on the day of conference while streaming our Keynote. If you had noticed you would have seen the Keynote on two tracks, while originally it was planned to be shown on Track One. This is my first lesson learnt on the day of conference streaming.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1tR8Bp1K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/97jz9pey9lk4vcya96vs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1tR8Bp1K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/97jz9pey9lk4vcya96vs.png" alt="YouTube Live Event Settings"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While we had time between our Keynote and regular track sessions, I made sure to update the stream keys for all events and configured the stream keys in StreamLabs OBS. This was the reason for the delay in few talks which did not start on time in Track 1, 3 ,4, 5, 6.&lt;/p&gt;

&lt;p&gt;Now that we managed to start the talks in each tracks, we started facing audio quality issues with the stream after few minutes of the stream. This is because, I had StreamLabs OBS to Monitor Output. Using Monitor Output we can test if our stream audio is working fine. But it is necessary that we need to make the Monitor Off when we go live with YouTube.  I managed to figure this out and change the configurations accordingly in all 6 machines. This is the reason for talks on Track 1, 3, 4, 5, 6 which faced the audio quality issues during 9 AM talk.  This is my second lesson learnt on the day of conference streaming.  &lt;/p&gt;

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

&lt;p&gt;Though I ended up testing the streams prior to the actual conference, it seems like the audio issues started appearing after few minutes of the stream and did not appear during the test streams. It was good that, I was able to figure this out and make sure that the remaining conference is not impacted. &lt;/p&gt;

&lt;p&gt;In order to make it easy for attendees, we updated the schedule in each tracks YouTube Event description and included links to other tracks in each of them. This way it helped attendees to navigate to each tracks with out leaving YouTube to change tracks. &lt;/p&gt;

&lt;h3&gt;
  
  
  Tech behind Live talks
&lt;/h3&gt;

&lt;p&gt;We used Zoom and inbuilt live streaming option from Zoom to stream our Keynote talks, Panel Discussions, Talk by Jerry from Rentor Mentor, Talk by Crux Conception , Talk by Ashley. This is based on our experience from live streaming our monthly meetup talks. Before going live on YouTube from Zoom, we made sure to stop the stream in StreamLabs OBS in the corresponding virtual machine. &lt;/p&gt;

&lt;h3&gt;
  
  
  How do we create or encourage the hallway interactions in a virtual world?
&lt;/h3&gt;

&lt;p&gt;We all miss the hallway conversations and interactions that we usually get at conferences. It is believed that major networking takes places through these hallway conversations. Many attend conferences to increase their network and interact with people. Bringing this experience in a virtual world is usually challenging. &lt;/p&gt;

&lt;p&gt;We already use Slack for our internal conversations and during our first year of the conference, we used Slack as our conference messaging platform. We decided to use the same for 2020 and this time we had to make some changes to the channels.  &lt;/p&gt;

&lt;p&gt;We changed our profile names with (Organizing Team) and (Volunteers) so that attendees and speakers would be aware about the team who is involved with the conference and it would be easier to reach out to us. We created channels dedicated to speakers,  which in a way served as our Speaker Lounge. We also used the channel to share updates with our speakers.  We created a channel for hallway conversations and encouraged attendees to interact with peer attendees virtually.  &lt;/p&gt;

&lt;p&gt;We created channels specific to each conference track and had our speakers available in YouTube chat as well as the corresponding channel in Slack. It is not possible by speakers to send website urls or additional resource urls in YouTube chat. Any websites which speakers wished to share with attendees they were able to share the same through our Slack channels. In a way Slack also helped in keeping the follow up conversations after the talks.&lt;/p&gt;

&lt;p&gt;We created channel for gathering feedback from attendees. This way attendees were able to inform us about the technical issues which we faced during the start of the stream. Attendees were also able to give us and speakers feedback on the spot during the conference. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Getting feedbacks from attendees in real time during the event is a great experience for speakers and organizers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We created channels for each sponsor and encouraged attendees to visit each sponsor. The original plan was to create a Zoom room for each sponsor, but later we figured that we might not be able to generate the required traffic to Zoom room. We ended up creating sponsor booth in Slack. &lt;/p&gt;

&lt;p&gt;In a way this tweet from my friend - Matt Groves helped me in getting a perspective over sponsor booths in virtual world. &lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--egeH9QOe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1288184675442339852/pSCj5KEy_normal.jpg" alt="Matthew D. Groves profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Matthew D. Groves
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="comment-mentioned-user" href="https://dev.to/mgroves"&gt;@mgroves&lt;/a&gt;

      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Hey developers! Sponsor "booths" at virtual events: are you more or less likely to visit (compared to in person event)? (Please RT)
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      18:50 PM - 07 Jul 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1280574904946040834" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1280574904946040834" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1280574904946040834" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;Though the rest of the developer community has started to use Discord, we decided to stay with Slack, since we already have a Standard Plan through our Non Profit organization.  We encouraged attendees to interact in corresponding channels based on tracks, hallway and random channels. &lt;/p&gt;

&lt;h3&gt;
  
  
  How do we deliver our workshops virtually?
&lt;/h3&gt;

&lt;p&gt;We did not have major issues with workshops. We delivered workshops through Zoom and had our speakers and attendees join the same live. The workshops were recorded using Zoom and the recordings were later shared to our attendees for consumption after the event.  We would need to purchase as many number of hosts in Zoom based on the number of parallel workshops. If there are 2 workshops running in parallel then we would need 2 hosts one for each workshop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspirations
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.henkboelman.com/articles/online-meetups-with-obs-and-skype/"&gt;https://www.henkboelman.com/articles/online-meetups-with-obs-and-skype/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.maartenballiauw.be/post/2020/04/02/streaming-a-community-event-on-youtube-sharing-the-technologies-and-learnings-from-virtual-azure-community-day.html"&gt;https://blog.maartenballiauw.be/post/2020/04/02/streaming-a-community-event-on-youtube-sharing-the-technologies-and-learnings-from-virtual-azure-community-day.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/tessamero/series-you-re-doing-virtual-events-wrong-advice-from-the-community-attendee-experience-2p02"&gt;https://dev.to/tessamero/series-you-re-doing-virtual-events-wrong-advice-from-the-community-attendee-experience-2p02&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the end all went well and we were able to pull of the event. Though we faced initial hiccups, at the end we were able to resolve them soon and pull through the end. This was a great learning experience, and I am sure this would help me and you in delivering future events with less hassles. Though this article did not go in to the specifics of setting up StreamLabs, I am always happy to share my experiences with you if you need more information on setting up StreamLabs. &lt;/p&gt;

&lt;p&gt;I thank all friends and volunteers who supported me during the conference day. Special thanks to &lt;a href="https://twitter.com/baldbeardbuild"&gt;Michael Jolley&lt;/a&gt; for desigining and sharing the stream layover design. &lt;/p&gt;

&lt;p&gt;Thanks to all authors under Inspirations which helped me in executing the conference successfully.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>streaming</category>
      <category>conference</category>
    </item>
    <item>
      <title>Solution Architect or Technical Architect</title>
      <dc:creator>Baskarrao Dandlamudi</dc:creator>
      <pubDate>Tue, 04 Aug 2020 02:22:52 +0000</pubDate>
      <link>https://dev.to/baskarmib/solution-architect-or-technical-architect-41nc</link>
      <guid>https://dev.to/baskarmib/solution-architect-or-technical-architect-41nc</guid>
      <description>&lt;p&gt;According to you what is your primary understanding of roles Solution Architect and Technical Architect? &lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
    </item>
    <item>
      <title>Can CodeNewbie learn C#? Yes, you can Day 3 to Day 5</title>
      <dc:creator>Baskarrao Dandlamudi</dc:creator>
      <pubDate>Wed, 29 Jul 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/baskarmib/can-codenewbie-learn-c-yes-you-can-day-3-to-day-5-1bjc</link>
      <guid>https://dev.to/baskarmib/can-codenewbie-learn-c-yes-you-can-day-3-to-day-5-1bjc</guid>
      <description>&lt;p&gt;In previous posts we discussed about the building blocks of C# and how we can get started using Visual Studio to build and debug your applications. &lt;/p&gt;

&lt;p&gt;In this post we are going to continue our learning journey further. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"One learns from books and example only that certain things can be done. Actual learning requires that you do those things" – Frank Herbert&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Day 3 to Day 5
&lt;/h2&gt;

&lt;h3&gt;
  
  
  String Formatting
&lt;/h3&gt;

&lt;p&gt;Getting a basic knowledge on various string formatting options available in C# is important.  No matter the number of years of experience we gain, we will still be writing code which uses various string formats. We will be using string format options while writing log files, displaying messages in console window, displaying text and currency formats in our websites and more. Our relationship with string formatting in C# will continue as long as we code.&lt;/p&gt;

&lt;p&gt;So how do we format strings in C#?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;first&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"a"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;second&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"test"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;last&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"This is {0} {1} {2}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;first&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;second&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above code will display the message as "This is a test message". &lt;/p&gt;

&lt;p&gt;Strings in C# are immutable. We will keep getting this question in every interview one way or other. &lt;/p&gt;

&lt;p&gt;Let us see this with an example.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;firstMessage&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"message1"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;secondMessage&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"message2"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="c1"&gt;//Compiler will create another location to store the result for secondMessage&lt;/span&gt;
&lt;span class="n"&gt;secondMessage&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt;  &lt;span class="n"&gt;firstMessage&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="n"&gt;secondMessage&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In these scenarios, it is recommended to use StringBuilder.  StringBuilder is part of System.Text Namespace.  The same example can be created using the Append method of StringBuilder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="n"&gt;StringBuilder&lt;/span&gt; &lt;span class="n"&gt;test&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;StringBuilder&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;test&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"message1"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;test&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"message2"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can also use AppendLine if we want to add text to the newline.&lt;/p&gt;

&lt;h3&gt;
  
  
  Date Time Operations
&lt;/h3&gt;

&lt;p&gt;DateTime Operations can be performed in C# using System.DateTime. We can also apply various string formats while performing date time operations. We can initialize DateTime with and without options to create date objects as per our requirement.&lt;/p&gt;

&lt;p&gt;Check out the resources section for additional information on Date Time Operations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Statements in C
&lt;/h3&gt;

&lt;p&gt;C# supports the following Control Flow Statements and Iteration Statements. It is important to get an understanding of these, because we will be using them as long as we are programming using C#.&lt;/p&gt;

&lt;h3&gt;
  
  
  Control Flow Statements
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;If-Else &lt;/li&gt;
&lt;li&gt;Switch - Case&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Iteration Statements
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;For Loop&lt;/li&gt;
&lt;li&gt;ForEach Loop&lt;/li&gt;
&lt;li&gt;While Loop&lt;/li&gt;
&lt;li&gt;Do-While Loop&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Getting an idea of Control Flow and Iteration Statements will help us, because we will be using these statements while writing code to implement various scenarios. Check out the resource section for more information on Statements.&lt;/p&gt;

&lt;h3&gt;
  
  
  Arrays and Collections
&lt;/h3&gt;

&lt;p&gt;Arrays can be used to store group of items which belong to the same type. We can create integer arrays, string arrays and many.  Arrays in C# support a maximum of 32 dimensions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;numberArray&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]{&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above snippet we are creating a single dimension array called numberArray which can store only integer values. The array is defined with maximum length of 5. This is called fixed length array. The array has 5 items 1,2,3,4,5. &lt;/p&gt;

&lt;p&gt;We can access items from an array by mentioning the index. The below code snippet retrieves the item which is present in first position ,third position and fifth position.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numberArray&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numberArray&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numberArray&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In C# the index starts from zero.  If we try to access an item by using an index beyond the length of array will result in IndexOutofRangeException.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numberArray&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="m"&gt;6&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ArrayList can be used to store items of different type. ArrayList is currently not recommended to use. We can use List in place of ArrayList. List is present as part of System.Collections.Generic namespace. With List we can store objects which are type safe.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;stringList&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;();&lt;/span&gt;
&lt;span class="n"&gt;stringList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"message1"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;stringList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"message2"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;stringList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Count&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;stringList&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In above code snippet, we are creating a List collection which is of type string. After initializing the collection we are adding two items. We can access the number of items in the collection using the Count. We get the item at second position by mentioning the index.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System.Collections.Generic&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System.Linq&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;myApp&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Program&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;Main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="n"&gt;Employee&lt;/span&gt; &lt;span class="n"&gt;firstobject&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"test"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
          &lt;span class="n"&gt;Employee&lt;/span&gt; &lt;span class="n"&gt;secondobject&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"test2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Id&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
          &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;empList&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;();&lt;/span&gt;
          &lt;span class="n"&gt;empList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;firstobject&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
          &lt;span class="n"&gt;empList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;secondobject&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
          &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;empList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Count&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;        
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Employee&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;Id&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With List we can create Collections of any type. The above snippet we are creating two objects of Emp class by providing their values. We are creating an empty list called empList. Then we are adding the objects to empList. The program will print the count of items from empList.&lt;/p&gt;

&lt;p&gt;Check the resources section for additional information on List and various operations that can be performed with List.&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/learn/modules/csharp-literals-variables/"&gt;https://docs.microsoft.com/en-us/learn/modules/csharp-literals-variables/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/learn/modules/csharp-basic-operations/"&gt;https://docs.microsoft.com/en-us/learn/modules/csharp-basic-operations/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/learn/modules/csharp-basic-formatting/"&gt;https://docs.microsoft.com/en-us/learn/modules/csharp-basic-formatting/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.pluralsight.com/guides/understanding-string-immutability-csharp"&gt;https://www.pluralsight.com/guides/understanding-string-immutability-csharp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/api/system.text.stringbuilder?view=netcore-3.1"&gt;https://docs.microsoft.com/en-us/dotnet/api/system.text.stringbuilder?view=netcore-3.1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/api/system.datetime?view=netcore-3.1#initializing-a-datetime-object"&gt;https://docs.microsoft.com/en-us/dotnet/api/system.datetime?view=netcore-3.1#initializing-a-datetime-object&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/api/system.array?view=netcore-3.1"&gt;https://docs.microsoft.com/en-us/dotnet/api/system.array?view=netcore-3.1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/api/system.indexoutofrangeexception?view=netcore-3.1"&gt;https://docs.microsoft.com/en-us/dotnet/api/system.indexoutofrangeexception?view=netcore-3.1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/api/system.collections.arraylist?view=netcore-3.1"&gt;https://docs.microsoft.com/en-us/dotnet/api/system.collections.arraylist?view=netcore-3.1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/learn/modules/csharp-arrays/"&gt;https://docs.microsoft.com/en-us/learn/modules/csharp-arrays/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?view=netcore-3.1"&gt;https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?view=netcore-3.1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/learn/modules/csharp-if-elseif-else/"&gt;https://docs.microsoft.com/en-us/learn/modules/csharp-if-elseif-else/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/statements"&gt;https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/statements&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dotnet.microsoft.com/learn/dotnet/in-browser-tutorial/1"&gt;https://dotnet.microsoft.com/learn/dotnet/in-browser-tutorial/1&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Self Check
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Are strings mutable?&lt;/li&gt;
&lt;li&gt;What is StringBuilder?&lt;/li&gt;
&lt;li&gt;What is difference between Append and AppendLine?&lt;/li&gt;
&lt;li&gt;What are different formatting options for dates?&lt;/li&gt;
&lt;li&gt;How do we get current date?&lt;/li&gt;
&lt;li&gt;How do we get current date and time in UTC format?&lt;/li&gt;
&lt;li&gt;How do we print short date and long date?&lt;/li&gt;
&lt;li&gt;What are the control flow statements and iteration statements in C#?&lt;/li&gt;
&lt;li&gt;What is the difference between Array and ArrayList?&lt;/li&gt;
&lt;li&gt;What is the difference between Array and List?&lt;/li&gt;
&lt;li&gt;How many dimensions are supported in Array?&lt;/li&gt;
&lt;li&gt;How do we create string array and retrieve elements from the array?&lt;/li&gt;
&lt;li&gt;How do we create List with class and add and retrieve elements from List?&lt;/li&gt;
&lt;li&gt;What is IList?&lt;/li&gt;
&lt;li&gt;How do we create two dimension array?&lt;/li&gt;
&lt;li&gt;How do we create an array and list with specific size?&lt;/li&gt;
&lt;li&gt;What is the primary difference between For Loop and ForEach Loop?&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>dotnet</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Are you looking to up skill?</title>
      <dc:creator>Baskarrao Dandlamudi</dc:creator>
      <pubDate>Wed, 22 Jul 2020 20:40:27 +0000</pubDate>
      <link>https://dev.to/jsandfriends/are-you-looking-to-up-skill-6bp</link>
      <guid>https://dev.to/jsandfriends/are-you-looking-to-up-skill-6bp</guid>
      <description>&lt;p&gt;Is your job impacted by COVID19 and you are currently open to work and looking for resources to up skill?&lt;/p&gt;

&lt;p&gt;We want to support you. We are offering free workshop tickets to developer community who are impacted by COVID19 to join us at this years virtual conference on Aug-13 and Aug-14.&lt;/p&gt;

&lt;p&gt;Check our &lt;a href="https://www.javascriptandfriends.com/workshops"&gt;website&lt;/a&gt; for more details on the workshop.&lt;/p&gt;

&lt;p&gt;If you are not impacted feel free to tag your friends who will be benefited.&lt;/p&gt;

</description>
      <category>workshops</category>
    </item>
    <item>
      <title>What is your primary reason to be on this platform?</title>
      <dc:creator>Baskarrao Dandlamudi</dc:creator>
      <pubDate>Mon, 13 Jul 2020 03:18:58 +0000</pubDate>
      <link>https://dev.to/baskarmib/what-is-your-primary-reason-to-be-on-this-platform-1eii</link>
      <guid>https://dev.to/baskarmib/what-is-your-primary-reason-to-be-on-this-platform-1eii</guid>
      <description>&lt;p&gt;What is your primary reason to be on Dev.to platform? &lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Can CodeNewbie learn C#? Yes, you can Day 2</title>
      <dc:creator>Baskarrao Dandlamudi</dc:creator>
      <pubDate>Sat, 11 Jul 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/baskarmib/can-codenewbie-learn-c-yes-you-can-day-2-8h1</link>
      <guid>https://dev.to/baskarmib/can-codenewbie-learn-c-yes-you-can-day-2-8h1</guid>
      <description>&lt;p&gt;If you have not read my previous post which explained - "C# learning journey Day-1" then I suggest giving it a read before proceeding to read this post.&lt;/p&gt;

&lt;p&gt;Getting a basic understanding of building blocks in C# is the foundation that we will use to build our skills. &lt;br&gt;
Imagine a house that is built on weak foundation? You don't know when the house will collapse or get damaged leaving the inmates of the house injured. &lt;br&gt;
In the same way continuing the learning journey without foundation will impact us more down the line.&lt;/p&gt;

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

&lt;p&gt;&lt;span&gt;Photo by &lt;a href="https://unsplash.com/@mirkoblicke?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Mirko Blicke&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/concrete-foundation?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;The stronger the foundation, makes the learning process smooth.&lt;br&gt;
So, if we are good with the foundation, let us go ahead and proceed further.&lt;/p&gt;
&lt;h2&gt;
  
  
  Day - 2
&lt;/h2&gt;
&lt;h3&gt;
  
  
  What applications you can build with C#?
&lt;/h3&gt;

&lt;p&gt;C# can be used to develop wide variety of applications. With C# we can develop console applications, web applications, windows desktop applications, mobile applications, IOT (Internet of Things) device applications and game development using Unity and C#.&lt;br&gt;
We can develop above applications using Visual Studio. &lt;/p&gt;

&lt;p&gt;Visual Studio Community edition is free to download and install. You can follow the instructions of the wizard to install Visual Studio.&lt;br&gt;
&lt;a href="https://visualstudio.microsoft.com/vs/community/"&gt;https://visualstudio.microsoft.com/vs/community/&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Excitement Begins Now
&lt;/h3&gt;

&lt;p&gt;Once Visual Studio is installed without wasting time let us go ahead and create our first sample application or in other words our first Hello world application.&lt;br&gt;
In order to create our first application, we will go ahead and open Visual Studio 2019 Community Edition. &lt;/p&gt;

&lt;p&gt;When we open the IDE (Integrated Development Environment) for the first time, it would ask us to select the language settings. &lt;br&gt;
Since we are dealing with C#, we can choose the same.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; In order to create an application, we must first create a solution. Solution is like a box where we place all our projects related to the application.&lt;/li&gt;
&lt;li&gt; From the pre-installed project templates select the project type as Console application.&lt;/li&gt;
&lt;li&gt; Provide a name for the Solution and Project Name and select the Create Option.&lt;/li&gt;
&lt;li&gt; You should be able to see the Hello World application.&lt;/li&gt;
&lt;/ol&gt;

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

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

&lt;p&gt;So, what happened till now - Visual Studio created the solution and project based on our selection. &lt;br&gt;
You will find Program.cs - This is your play area where you can write your code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;using&lt;/span&gt; &lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;namespace&lt;/span&gt; &lt;span class="nx"&gt;HelloWorld&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;Program&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nx"&gt;Main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="nx"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello World!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="nx"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ReadLine&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  What can we understand from the above code snippet?
&lt;/h3&gt;

&lt;p&gt;Every code file in C# needs a namespace. So, what is a namespace? &lt;br&gt;
In layman terms consider namespace as an identifier. For example, you can relate the namespace to your community where you live. &lt;br&gt;
Within your community there can be multiple apartments. Similarly, you can have multiple classes inside your namespace.&lt;/p&gt;

&lt;p&gt;Every console application needs a Main method. Main is the entry point for console application. If you notice Main method will be defined as static. &lt;br&gt;
It means that we can execute the Main method without requiring an instance of the class Program.&lt;/p&gt;

&lt;p&gt;The main method uses "void" which means the Main method does not return any value. &lt;br&gt;
Since we are not using any access modifier for the method, by default the method is considered private. In C# the default access modifier is private. &lt;br&gt;
Which means the method will not be exposed outside of the class.&lt;/p&gt;

&lt;p&gt;In Visual Studio you can find Green - Play button, this will start the application with Debug enabled. &lt;br&gt;
You can place breakpoints like the red dot as shown in the below picture before clicking the Play button.&lt;/p&gt;

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

&lt;p&gt;When we click the Play button - Visual Studio will build the application and runs the application. If the build is successful, you can see the application displaying a console window and the code execution stops in the breakpoint waiting for action from us. &lt;/p&gt;

&lt;p&gt;We can go ahead and select the Continue Option - the same Green - Play button. The code execution continues, and we can find the Console printing the output - Hello World.&lt;/p&gt;

&lt;p&gt;Next the code executes Console.ReadLine() which would accept an input from us. We can enter any random text in Console and press the Enter key to close the console. Console.ReadLine() is useful so that we can see the output in the console. If we execute the same code again without Console.ReadLine() you can see that the console windows start and closes without showing us the output. It is because the console prints the output and does not wait and proceeds to close the application. Console is the class which is part of namespace System. This is used to handle any console-based operations.&lt;/p&gt;

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



&lt;blockquote&gt;
&lt;p&gt;Did you get excited on seeing the output?&lt;/p&gt;

&lt;p&gt;I got excited the first time when I executed my console application which was written using BASIC.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Additional Resources
&lt;/h3&gt;

&lt;p&gt;You can follow through the instructions here to develop your first hello world application using C#.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/learn/modules/csharp-write-first/"&gt;https://docs.microsoft.com/en-us/learn/modules/csharp-write-first/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow this resource to get more understanding on Static Classes and Static Methods.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members"&gt;https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To get more understanding about Solution and Projects use the below resource.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/visualstudio/get-started/tutorial-projects-solutions?view=vs-2019"&gt;https://docs.microsoft.com/en-us/visualstudio/get-started/tutorial-projects-solutions?view=vs-2019&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Resource to understand namespace and System.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/namespaces/"&gt;https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/namespaces/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/api/system?view=dotnet-plat-ext-3.1"&gt;https://docs.microsoft.com/en-us/dotnet/api/system?view=dotnet-plat-ext-3.1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Self-Check - At this stage you should be able to answer the below questions.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; What are the types of applications that can be developed using C#?&lt;/li&gt;
&lt;li&gt; What is console application?&lt;/li&gt;
&lt;li&gt; What is a Solution and what is a project?&lt;/li&gt;
&lt;li&gt; What is namespace?&lt;/li&gt;
&lt;li&gt; What is entry point for console applications?&lt;/li&gt;
&lt;li&gt; How to build and debug your application using breakpoints?&lt;/li&gt;
&lt;li&gt; What is the use of Console.WriteLine() and Console.ReadLine()?&lt;/li&gt;
&lt;li&gt; What is a Static Class?&lt;/li&gt;
&lt;li&gt; What is a Static Method?&lt;/li&gt;
&lt;li&gt;What is the default access modifier?&lt;/li&gt;
&lt;li&gt;What is the use of void ?&lt;/li&gt;
&lt;li&gt;What is the use of System?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now you should be able to create, build and debug console applications. &lt;/p&gt;

&lt;p&gt;You also will be having a basic understanding of the "using" statement, the usage of static methods and return types of the methods.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>csharp</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
  </channel>
</rss>
