<?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: Megan</title>
    <description>The latest articles on DEV Community by Megan (@mwong068).</description>
    <link>https://dev.to/mwong068</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%2F266388%2F37e77fb1-e38a-486a-b9bc-404989ba2c69.jpg</url>
      <title>DEV Community: Megan</title>
      <link>https://dev.to/mwong068</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mwong068"/>
    <language>en</language>
    <item>
      <title>My very first Hacktoberfest!</title>
      <dc:creator>Megan</dc:creator>
      <pubDate>Fri, 16 Oct 2020 22:19:46 +0000</pubDate>
      <link>https://dev.to/mwong068/my-very-first-hacktoberfest-201n</link>
      <guid>https://dev.to/mwong068/my-very-first-hacktoberfest-201n</guid>
      <description>&lt;p&gt;I've been so excited about my first Hacktoberfest! I haven't had the chance to contribute to open source just yet in my career but I've really wanted to. I thought this would be a great opportunity to begin my OSS journey!&lt;/p&gt;

&lt;p&gt;I'll continue to update this article with my progress throughout the month 😊&lt;/p&gt;

&lt;p&gt;Stay tuned!&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
    </item>
    <item>
      <title>180 Days into my Job Search - Reflection</title>
      <dc:creator>Megan</dc:creator>
      <pubDate>Fri, 09 Oct 2020 02:15:23 +0000</pubDate>
      <link>https://dev.to/mwong068/180-days-into-my-job-search-reflection-5a56</link>
      <guid>https://dev.to/mwong068/180-days-into-my-job-search-reflection-5a56</guid>
      <description>&lt;p&gt;Wow... I can't believe it's already been 6 months of being on the job search. Given the global pandemic and whatnot, it has definitely not been easy!&lt;/p&gt;

&lt;p&gt;But I've been lucky enough to have an internship and a bunch of great interview experiences.&lt;/p&gt;

&lt;p&gt;As the end of my 6 months is coming quickly, I just wanted to share my reflections on the last 180 days with anyone going through the same challenges and difficulties of finding a software engineering job during this time.&lt;/p&gt;

&lt;p&gt;I've found my #1 most important part of all of this:&lt;/p&gt;

&lt;h3&gt;
  
  
  Mental health
&lt;/h3&gt;

&lt;p&gt;Along the way I neglected this the most and found that now, 180 days later, it's really come to back to bite me. I pushed through all of the difficult days and kept my eyes on the prize for 6 whole months but now that I've gotten my fair share of rejections and have had time to reflect, I've realized I'm totally burnt out.&lt;/p&gt;

&lt;p&gt;I've been working on a project for a potential employer and have had difficulty just staying focused. I had to email them and let them know I wouldn't be done on time, which is something I work my hardest to never let happen. But I had to take this time for myself.&lt;/p&gt;

&lt;p&gt;So please don't be like me and make sure to prioritize your mental health first and foremost. It is the most important thing and believe me when I say opportunities will always be there but your sanity won't.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reach out, reach out, reach out
&lt;/h3&gt;

&lt;p&gt;People swear by referrals, but that didn't actually end up working out that well for me. Surprisingly just reaching out to people really helped me to connect more with the community and just gain great advice from more experienced, senior devs.&lt;/p&gt;

&lt;p&gt;I found that hearing about other people's journeys really helped me to put my own into perspective and gave me confidence when approaching interviews and recruiters.&lt;/p&gt;

&lt;p&gt;I did however, have a great response rate from direct emails. That is 100% the way to go and I would tell my younger (6 months ago) self that LinkedIn connection requests will not get you anywhere.&lt;/p&gt;

&lt;p&gt;I was also prescribed LinkedIn premium and that too did not seem to be worth its weight in $$$ at all. This is just my perspective but in my opinion, for what I was offered (even with just the free trial) it does not nearly justify the price. &lt;/p&gt;

&lt;h3&gt;
  
  
  Practice makes perfect
&lt;/h3&gt;

&lt;p&gt;Do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;do more projects and continue to work on your skills&lt;/li&gt;
&lt;li&gt;learn new technologies and try to stay up to date on exciting new products that interest you&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don't:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;forget to look back at old projects and polish up ones that you might want to show to prospective employers&lt;/li&gt;
&lt;li&gt;get too discouraged from rejection emails, they're common so just keep your head up!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Stay active
&lt;/h3&gt;

&lt;p&gt;Keep up your social profiles and blog posts just to show that you are a part of the community.&lt;/p&gt;

&lt;p&gt;I had a response to one of my emails letting me know that the prospective employer had read one of my blog posts and was reminded of their earlier experiences. Honestly, up until that point I didn't think anyone really paid attention to my blog posts.&lt;/p&gt;

&lt;p&gt;But it was a good reminder that it's important to stay active in the community, be it by writing blog posts or just tweeting about what you've been up to. It's good to have a social media presence even if it isn't a huge one.&lt;/p&gt;

&lt;h3&gt;
  
  
  Thank you
&lt;/h3&gt;

&lt;p&gt;I wanted to say thank you if you've actually been following along with my blog posts in the slightest. I know lately I've written a bunch of reflective blog posts, but I have done so in the hopes that these posts could be helpful to others going through the same things as me! &lt;/p&gt;

&lt;p&gt;Just know that if you're still on this journey, we'll get there eventually. And as my old teacher told me, it just takes one! Hopefully you'll get that one soon 😊&lt;/p&gt;

&lt;p&gt;Wishing you all the best! ❤️&lt;/p&gt;

</description>
      <category>career</category>
      <category>womenintech</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Getting started with React and styled-components</title>
      <dc:creator>Megan</dc:creator>
      <pubDate>Sat, 03 Oct 2020 00:15:16 +0000</pubDate>
      <link>https://dev.to/mwong068/getting-started-with-react-and-styled-components-kf1</link>
      <guid>https://dev.to/mwong068/getting-started-with-react-and-styled-components-kf1</guid>
      <description>&lt;p&gt;Hi everyone!&lt;/p&gt;

&lt;p&gt;My friend showed me this awesome website called &lt;a href="https://www.frontendmentor.io/challenges"&gt;Frontend Mentor&lt;/a&gt; that you can work on CSS projects to boost your CSS skills using predesigned challenges that you try to replicate. I loved the idea given that I have this love/hate relationship with CSS.&lt;/p&gt;

&lt;p&gt;I thought I'd give it a go but I also thought I'd try implementing styled-components with React to learn some new skills while boosting my CSS ones.&lt;/p&gt;

&lt;p&gt;I used styled-components a bit at my internship, but I never started a React project implementing it. I personally like the thought process behind styled-components and think it is extremely useful in large projects where css components could possibly be reused often.&lt;/p&gt;

&lt;p&gt;So if you're interested here is a little tutorial on how to get started using styled-components with React. And if you're even moreeee interested you can see the progress with my challenge so far &lt;a href="https://korean-skincare.netlify.app/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step by Step
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Create your React app
&lt;/h4&gt;

&lt;p&gt;You can just use good 'ol &lt;a href="https://create-react-app.dev/"&gt;create-react-app&lt;/a&gt;&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;npx&lt;/span&gt; &lt;span class="nx"&gt;create&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;react&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="nx"&gt;my&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or however you would like to create your React app. You can feel free to use tags or anything you enjoy, I happened to add typescript to mine as I'm trying to get better with that as well.&lt;/p&gt;

&lt;h4&gt;
  
  
  Install styled-components
&lt;/h4&gt;

&lt;p&gt;I'm a big 'ol fan of yarn, but use whatever you enjoy!&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;yarn&lt;/span&gt; &lt;span class="nx"&gt;add&lt;/span&gt; &lt;span class="nx"&gt;styled&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;components&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&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;npm&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="nx"&gt;styled&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;components&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Create components
&lt;/h4&gt;

&lt;p&gt;After all of that installation is done, we can jump into the fun part, making the components!&lt;/p&gt;

&lt;p&gt;So the way that styled-components works is essentially you will create a named component that can be a variety of structures.&lt;/p&gt;

&lt;p&gt;They will be housed within your typical functional or class component and will use their component name to be called on and displayed.&lt;/p&gt;

&lt;p&gt;Here is a condensed example of one of my card classes:&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="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;styled&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;styled-components&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Background&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;styled&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="s2"&gt;`
  display: grid;
  grid-template-columns: 2fr 1fr 2fr;
  width: 100%;
  border: 1px solid grey;
  margin: auto;
  padding: 50px 20px;
  border-radius: 20px;
  border: 1px solid #f2f2f2;
  box-shadow: 1px 1px 1px 1px #f2f2f2;
`&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;CardOne&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Component&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;render&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Background&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;LeftImage&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;RightText&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Background&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;CardOne&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can see from above that within the render and return of the class CardOne, we are displaying our Background component. &lt;/p&gt;

&lt;p&gt;And above we have declared Background as a styled.div which is essentially a div that is accessing our styled components. We can use styled to create buttons (styled.button), paragraphs (styled.p), you name it.&lt;/p&gt;

&lt;p&gt;And within that declared Background variable, we include all of our CSS inside of our component.&lt;/p&gt;

&lt;p&gt;So it's a nice way to break down each portion of what is inside of your divs and you can style them all individually or through their parent.&lt;/p&gt;

&lt;h4&gt;
  
  
  Get fancy
&lt;/h4&gt;

&lt;p&gt;You can even get super fancy with styled-components and write logic inside of the CSS. For example you could have something like this:&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;StyledTextField&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;styled&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="s2"&gt;`
  color: &lt;/span&gt;&lt;span class="p"&gt;${(&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;
    &lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;isEmpty&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;none&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;active&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;purple&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;blue&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;;
`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thanks for following along and I hope that this tutorial could be helpful for anyone starting out with styled-components. Happy coding y'all!&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://styled-components.com/docs"&gt;styled-components documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Gotta have Smashing Magazine's &lt;a href="https://www.smashingmagazine.com/2020/07/styled-components-react/"&gt;post&lt;/a&gt; on using styled-components&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/ogwurujohnson/introduction-to-styled-components-3i7e"&gt;Introduction to styled-components by Johnson Ogwuru&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>react</category>
      <category>css</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>The Software Engineer Case Study Interview</title>
      <dc:creator>Megan</dc:creator>
      <pubDate>Thu, 24 Sep 2020 18:57:10 +0000</pubDate>
      <link>https://dev.to/mwong068/the-software-engineer-case-study-interview-4cl9</link>
      <guid>https://dev.to/mwong068/the-software-engineer-case-study-interview-4cl9</guid>
      <description>&lt;p&gt;To round out my unofficial series on interviews, I thought I'd finish up with an interesting one that I've encountered recently: the case study interview.&lt;/p&gt;

&lt;p&gt;I did a ton of googling on this interview type and wasn't really able to find much that was applicable. I think it's because it's such a weird hybrid of interviews that no one person has really pinpointed it. Which is completely understandable, I didn't really think I would ever encounter this type of interview either!&lt;/p&gt;

&lt;p&gt;But for anyone out there who has been told they could expect "to solve a problem in a group" or were explicitly told it was a case study interview, I hope this may be a bit helpful in your preparation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Overview
&lt;/h3&gt;

&lt;p&gt;From my understanding and small bit of experience, this interview type is very much a hybrid of the systems design interview, a consultant interview, and a technical interview.&lt;/p&gt;

&lt;p&gt;I had one interview that was much more high level, a designer, developer, and product manager were all present to consult with and I was expected to design an implementation of an app.&lt;/p&gt;

&lt;p&gt;But for the interview that was explicitly labeled as a case study, I was given a prompt and ample time to come up with a solution of how I would solve a specific problem. &lt;/p&gt;

&lt;p&gt;These two are very different but boil down to about the same pain points to solve for and similar questions to ask.&lt;/p&gt;

&lt;h3&gt;
  
  
  Breakdown / Tips
&lt;/h3&gt;

&lt;p&gt;This was the breakdown of my thought process on the question: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Ask clarifying questions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ahh, if you've read any of my other interview blog posts, I am 100% confident you would be like "Megan, again with the clarifying questions?!" But I cannot skip over this fundamental step!&lt;/li&gt;
&lt;li&gt;Questions are the foundation of your solution and will help to ensure that you fully understand the question. They will also confirm that you are solving the problem correctly so that your interviews can dispel any confusion you may have or wrong assumptions.
&lt;/li&gt;
&lt;li&gt;In the case where I was asked how I would design an app, I asked questions to confirm my assumptions about the users and the scale of the application.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Explain a high level overview of your thoughts&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now that you are confident you know what the question is asking, give a short overview of what you want the app to look like.&lt;/li&gt;
&lt;li&gt;You can name some of the technologies you would use and how you'd like your front end / back end to be developed.&lt;/li&gt;
&lt;li&gt;You don't have to go into a huge amount of detail, but just give enough so that you have receive a bit of feedback on what your initial thoughts look like. If your interview agrees with your design, then you can go ahead and dig deeper into each portion.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dive deep!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Alright, you're on track and pretty much halfway through this! Now is what I think can be the more fun part, really developing each portion of the app.&lt;/li&gt;
&lt;li&gt;You can get very detailed, but in the case of the interview where I was expected to collaborate with the designer as well as the product manager, I tried to keep it more on the surface level and include each person in the thought process. I was able to speak with the designer on generally what the app would look like and how it would be helpful to function for appropriate user interaction (i.e. how certain buttons could be helpful in specific cases, etc.)&lt;/li&gt;
&lt;li&gt;Don't be afraid to just go in on the details and let the interviews know what you're thinking. That is the main function of this interview, to understand your thought process. And I'm sure if they have questions they'll ask!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Big picture&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After building the flesh and bones of this app, I'm sure you've impressed the interviewers already! But it's a good idea to take a step back in the end and confirm that your app is accomplishing all of the tasks you had originally set out for it.&lt;/li&gt;
&lt;li&gt;In the case of the panel interview I had, usually the concerns were always brought back to the user stories. What will help to confirm that the user will receive the items they had originally intended? Did some of the details you went into get in the way of the main goal?&lt;/li&gt;
&lt;li&gt;There could even be an instance where you want to look at the app from the business perspective. How will this be efficient and useful for the business itself? Depending on the company this could be a huge concern.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Know that you did great!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After all of these interviews it's easy to be overwhelmed, stressed, and to feel like you may not have done that well. But know that you gave it your best and should be proud you even got to this step!&lt;/li&gt;
&lt;li&gt;Also don't forget to thank your interviewer and send them a thank you note within 24 hours of the interview.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Best of luck with interviews and know that I'm rooting for you! &lt;/p&gt;

</description>
      <category>career</category>
      <category>womenintech</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Women Coders Unite!</title>
      <dc:creator>Megan</dc:creator>
      <pubDate>Sat, 19 Sep 2020 22:55:51 +0000</pubDate>
      <link>https://dev.to/mwong068/women-coders-unite-11lb</link>
      <guid>https://dev.to/mwong068/women-coders-unite-11lb</guid>
      <description>&lt;p&gt;I came across this &lt;a href="https://medium.com/better-programming/girls-are-not-made-to-code-3b8c2f986f74"&gt;awesome article&lt;/a&gt; on LinkedIn about how to be an empowered woman in tech. I found it so inspiring and really wanted to share as well as say a few of my own thoughts on the subject.&lt;/p&gt;

&lt;p&gt;Diversity is so important, more now than ever, and women and anyone who identifies as a woman in the engineering community have had a long and difficult journey. I've heard and read horror stories about the way that women have and continue to be treated in this male dominated field.&lt;/p&gt;

&lt;p&gt;I just wanted to share some things I've learned and come across in my job search as well as while talking to other women in the industry. I hope my experiences and advice could be helpful to some so that we can empower each other and help to create more diversity in the engineering field!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Everyone goes through feelings of imposter syndrome&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This one was huge for me because honestly I have struggled with imposter syndrome since bootcamp&lt;/li&gt;
&lt;li&gt;But I learned from talking with a lot of other engineers, women &amp;amp; men, that these feelings are totally normal! In our industry it's impossible to know everything and everyone feels like they never know enough. Just as long as you're trying your best and working hard, don't have any doubts in yourself. You're doing great :)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Don't be afraid to reach out to other women in the industry&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When I began doing my initial reach outs for my job search I was able to have some nice coffee chats with many different women in the industry. It was such a breathe of fresh air! I felt like there was always an instant connection just brought about by our shared experiences.&lt;/li&gt;
&lt;li&gt;It's so great to learn and hear from people who were once in your position and an amazing way to just grow your network because in the end we're all just here to help each other.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Find a mentor&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This isn't a must have, but I was able to connect with another woman who agreed to be my mentor and it's just been an amazing experience. Being able to have someone in the industry to guide you in your path is priceless. I've gained so much amazing knowledge and received such helpful tips that I'd recommend this to anyone.&lt;/li&gt;
&lt;li&gt;You can even go on LinkedIn and find a mentor there as they have a matching program. I didn't have the best experience using this but it was a start. I actually met my mentor through the WomenWhoCode slack channel, so make sure to join a bunch of slack channels and discord servers that match your interests. It's a great way to meet people!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Be proud of your journey&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No matter where you are from or what you've experienced, being a minority is never easy and you should be proud of yourself for making it! I am excited for the future as so much progress is being made, but never forget how hard you've worked to come so far. You are amazing!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thanks for reading this and I hope it could be helpful for anyone out there. If you have any tips for other women and anyone who identifies as a woman, please leave them below. We definitely always have to look out for each and keep our community strong!&lt;/p&gt;

</description>
      <category>womenintech</category>
      <category>career</category>
      <category>firstyearincode</category>
      <category>gratitude</category>
    </item>
    <item>
      <title>My First Internship Experience</title>
      <dc:creator>Megan</dc:creator>
      <pubDate>Fri, 11 Sep 2020 21:55:08 +0000</pubDate>
      <link>https://dev.to/mwong068/my-first-internship-experience-ke7</link>
      <guid>https://dev.to/mwong068/my-first-internship-experience-ke7</guid>
      <description>&lt;p&gt;I have officially completed my internship! Wow, what a rollercoaster it has been!&lt;/p&gt;

&lt;p&gt;I honestly had an amazing experience and was able to learn so much from working at a small startup in the Bay Area.&lt;/p&gt;

&lt;p&gt;I'm so grateful for the experience, especially during a time like this. And I feel that it's given me an awesome start to my software engineering career.&lt;/p&gt;

&lt;p&gt;I thought I'd share my experience with you but also some tips I would have given myself pre-internship if I had known.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tips:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;First off and most importantly, be kind to yourself! I found myself being very hard on myself sometimes for not knowing everything right off the bat and needing to ask for help pretty often.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I ended up having to use a bunch of technologies that I had no previous experience with. And it was definitely a huge learning curve. So be gentle with yourself and try to take it one step at a time.&lt;/li&gt;
&lt;li&gt;After numerous talks with other software engineers at different points in their careers, there is one thing I am certain of, everyone struggles! Know that people are going through the same difficulties as you and we're always all learning together.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;That being said, don't be afraid to ask for help!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I found myself often not wanting to bother my manager, but I also found that struggling in my lonesome was not productive at all. Know that people are often sooooo willing to help and it's totally okay to ask for help!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Communication is key&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Working fully remote was completely new to me, and I think it brings with it it's own set of difficulties. But one thing I found especially important, as with any position, is communication!&lt;/li&gt;
&lt;li&gt;Especially being remote, it's not easy for people to gauge where your productivity or progress is at. I made an effort to check in with my manager at the end of the day just to say what I'd gotten done for the day. I think this is the minimum and I could have been more open in my communication, which is something I'll be more aware of for my next position.&lt;/li&gt;
&lt;li&gt;But I do think it's especially important to let people know if you are having trouble or can't meet a deadline. Always try your best to communicate with your team and manager to ensure everyone is on the same page.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Double check your code before submitting PRs&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the beginning of my internship I had never made a pull request before and wasn't really sure of what I was doing. I ended up just pushing my code like I used to do on my own projects. Full of debugging console.logs and messy code.&lt;/li&gt;
&lt;li&gt;After a few code reviews I realized it wasn't very professional of me to submit my code looking the way that it did while in development. So by the end of my internship I would double check all of my code and ensure it as bug free and dry as possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Try to soak up all of the information you can&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Especially being my first internship, I thought it was so important to try to gain all of the information I could. I mean you will always be continuously learning in this profession, but I wanted to make sure that I'd be a stronger programmer than when I started. After all, the point is to learn more!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Have fun!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Work isn't always going to be fun, but make the best of it and know that you're off to a great start to your new career! And of course be proud of yourself for working hard and getting as far as you have.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thanks so much for reading! I'm really excited to have been able to share this with all of you and I hope it could be helpful for anyone starting their new internships.&lt;/p&gt;

&lt;p&gt;Excited for the next chapter and I hope you all have an awesome weekend and stay safe!&lt;/p&gt;

</description>
      <category>womenintech</category>
      <category>career</category>
      <category>startup</category>
      <category>firstyearincode</category>
    </item>
    <item>
      <title>The System Design Interview (for beginners)</title>
      <dc:creator>Megan</dc:creator>
      <pubDate>Wed, 02 Sep 2020 22:16:07 +0000</pubDate>
      <link>https://dev.to/mwong068/the-system-design-interview-for-beginners-n85</link>
      <guid>https://dev.to/mwong068/the-system-design-interview-for-beginners-n85</guid>
      <description>&lt;p&gt;Honestly, when I first heard that system design was a part of many technical interview processes, I thought "isn't leetcode enough!?" And so, naturally, I put off studying for it as long as I could. But when push came to shove and I had to do a deeper dive into what is really being asked in these interviews, I realized it makes sense why this concept is so important. &lt;/p&gt;

&lt;p&gt;These kinds of system design or architecture questions in interviews are just there to see your thought process. And as important as it is to see how you tackle problems on an algorithmic scale, it's just as important to see how you handle situations at a higher level.&lt;/p&gt;

&lt;p&gt;That's just my two cents on system design interviews, but I thought I'd share a bit of my research with all of you. I recently had an interview that I felt pretty good about and I wanted to share the process in hopes that it could be helpful.&lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;From a quick google of "systems design interview questions" or "system architecture interview questions" you can find that there isn't just one rule of thumb for what to study. It's not as simple as "hey, do 100 leetcode problems and you're golden!". The interview is much less structured and much more open ended, which can be some of the difficulty.&lt;/p&gt;

&lt;p&gt;You can get a nice idea of what to expect from googling these questions or watching a few youtube videos (I've included a few helpful ones below) but I'll break down how my interview went and my thought process.&lt;/p&gt;

&lt;p&gt;Another interesting part about this type of interview is that you most likely won't be coding that much. There could be a bit to explain high-level what you're thinking or what your functions would do, but it wouldn't be anything nearly as detailed as an algorithmic question.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note: quick note that this is just from my beginner standpoint and definitely not for mid-senior level positions. My understanding is that system design interviews for these levels are much more involved and require a ton more detail.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Interview Guide
&lt;/h3&gt;

&lt;p&gt;Now that that's out of the way, let's dive into my guide for the system design interview:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Fully understand the problem and what you can do to solve it&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's a good idea to take a minute in the beginning to ask your clarifying questions and just ensure that you fully understand the problem that needs to be solved. Some good questions to ask yourself or the interviewer would be:

&lt;ul&gt;
&lt;li&gt;Will this need to be a full web app or just an API?&lt;/li&gt;
&lt;li&gt;How can this product help solve users problems / what are they getting out of it?&lt;/li&gt;
&lt;li&gt;How many people would be using this app?&lt;/li&gt;
&lt;li&gt;How will the app or API be used?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Note: Don't get too detailed right in the beginning as that could make it difficult to see the bigger picture. Keep it very general at the start and you can build more detail as you go along.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Scope and scalability&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now that you have a good idea of what problem you're trying to solve, you should make a note of the scope and scalability of the app or API.&lt;/li&gt;
&lt;li&gt;You may have touched on this in the clarifying questions, but here you could start to imagine if thousands of users would be accessing this app all at once that could be a huge strain on one server. Whereas this could be an internal company tool that is only touched by a few people a day.&lt;/li&gt;
&lt;li&gt;You don't have to make any definitive choices now like "we will absolutely need 15 servers!", but as long as you have in the back of your mind a general idea of how this could scale later on, that's great.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a template for your general structure&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;With all of this information, you should be able to make a very, very broad sketch of what your app or API would look like.
&lt;/li&gt;
&lt;li&gt;Say you're making a cookbook app where you'd want to be able to create recipe cards and see all of your respective recipes as well as other people's. You'd most likely need a full app with a front end where users can add and view their cards as well as a backend with a database to hold the information about the recipes.&lt;/li&gt;
&lt;li&gt;You can be very creative at this point with how you would like to create your app or API, but just make sure you have a good reason for why you'd choose what you do.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dive a little deeper!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Awesome, you have your general structure set up! Now you can get a bit deeper into those details we talked about earlier. You can choose what you'd prefer to talk more about, but make sure that you are able to add a bit of detail to each part of the app or API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Front end&lt;/strong&gt;: Here you could discuss what your pages would look like and how a user would access it. It could be nice to talk a little about authentication too if you feel it is necessary. You can also mention how the front end would communicate with the backend (REST style, etc.).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Back end&lt;/strong&gt;: I actually didn't spend very much time on the backend but I did mention what frameworks I might use and briefly explained why.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database design&lt;/strong&gt;: A large portion of my interview was used to discuss the database schema. I actually had to write out the basic design of my tables and a few SQL queries. So I would recommend brushing up on SQL just in case that comes up.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Revisit scaling&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now that you've really added a lot of detail to your app or API, it's a good time to revisit the scaling ideas we put off earlier.&lt;/li&gt;
&lt;li&gt;If your app or API is going to have a lot of activity like reads or writes in the front end, you may want to add a load balancer to handle all of your server requests. Here is a quick, helpful diagram for what a load balancer can do:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://camo.githubusercontent.com/f725f2ea504811a26fda62d520f99459cde4f068/687474703a2f2f6c65746861696e2e636f6d2f7374617469632f626c6f672f696e74726f5f617263682f706c6174666f726d5f6c617965722e706e67" class="article-body-image-wrapper"&gt;&lt;img src="https://camo.githubusercontent.com/f725f2ea504811a26fda62d520f99459cde4f068/687474703a2f2f6c65746861696e2e636f6d2f7374617469632f626c6f672f696e74726f5f617263682f706c6174666f726d5f6c617965722e706e67" alt="Load balancer example" width="620" height="186"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you know that one of your servers is going to have a ton of requests, maybe hundreds of times more than your other servers, you may want to think about caching and how that could help. Or even think about splitting up what that specific server is handling or scaling that server by adding more power to it.

&lt;ul&gt;
&lt;li&gt;Caching is helpful in that it allows more frequently accessed information to be stored and referenced more quickly than spinning up the database every time a request is made.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tips
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Remember that it is an open discussion!

&lt;ul&gt;
&lt;li&gt;Initially I was a little hesitant to ask questions, but my interviewer was very helpful and we would discuss the pros and cons of different ideas I would bring up. It's nice because there really aren't any wrong answers, a lot of it is a matter of preference.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;There are so many parts to this type of interview, don't feel like you have to know everything and be honest about what you do/don't know

&lt;ul&gt;
&lt;li&gt;I think especially from a beginner perspective, it's amazing to know about all of these tools, but it's also okay to say what you don't know. Sometimes the interviewer will be nice enough to explain to you what something can do or help you think of different tools to use for a particular problem.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Resources:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gist.github.com/vasanthk/485d1c25737e8e72759f"&gt;The System Design Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.interviewbit.com/sql-interview-questions/"&gt;SQL Interview Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=SqcXvc3ZmRU"&gt;Beginner's guide to scaling systems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Not a huge fan of TechLead but I did think this &lt;a href="https://www.youtube.com/watch?v=REB_eGHK_P4"&gt;video&lt;/a&gt; was helpful&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.pramp.com/how-to-succeed-in-a-system-design-interview-27b35de0df26"&gt;How to Succeed in a System Design Interview&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Best of luck with your interviews! Please let me know below about your interview experiences and any tips you'd add 😊&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>beginners</category>
      <category>career</category>
      <category>firstyearincode</category>
    </item>
    <item>
      <title>What is memoization?</title>
      <dc:creator>Megan</dc:creator>
      <pubDate>Tue, 25 Aug 2020 22:05:09 +0000</pubDate>
      <link>https://dev.to/mwong068/what-is-memoization-4359</link>
      <guid>https://dev.to/mwong068/what-is-memoization-4359</guid>
      <description>&lt;p&gt;Stumbling my way through leetcode, I came across a problem in which most solutions implemented memoization. I tried my usual iterative techniques to no avail, and was very curious about this "memo" I kept seeing.&lt;/p&gt;

&lt;h3&gt;
  
  
  So what is memoization?
&lt;/h3&gt;

&lt;p&gt;Not to get it confused with memorization, a completely different topic that usually doesn't have any place in programming (although, the name is based on memorization!).&lt;/p&gt;

&lt;p&gt;Memoization is the technique of storing computed values for quick access in order to speed up slower functions. It is essentially like caching so these stored values won't have to be calculated multiple times.&lt;/p&gt;

&lt;p&gt;Here is the wikipedia definition for more clarity:&lt;/p&gt;

&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;In computing, memoization is an optimization technique used primarily to speed up computer programs by storing the results of expensive function calls and returning the cached result when the same inputs occur again.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;/blockquote&gt;

&lt;p&gt;Memoization is almost exclusively used with recursion or dynamic programming as a way to significantly decrease the run time of a recursive function. Although dynamic programming doesn't have to include memoization, fairly often they are used synonymously.&lt;/p&gt;

&lt;h3&gt;
  
  
  Code example
&lt;/h3&gt;

&lt;p&gt;I saw this great example using the Fibonacci sequence so I thought I'd replicate it as I found it incredible for basic understanding.&lt;/p&gt;

&lt;p&gt;If you're not familiar with the Fibonacci sequence, it is essentially the sum of the two integers before it in the sequence. It begins with 1 and 1 and continues on from there forever. The first 10 iterations would look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;21&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;34&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;55&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So this first example is our regular recursive solution for the problem:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;fibonacci&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fibonacci&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;fibonacci&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If we were to solve this problem with memoization all we'd need to do is create a memo array and store each of the solutions we get from all of our different iterations of n.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;fibonacci&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;memo&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;memo&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="kp"&gt;nil&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;memo&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fibonacci&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;memo&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;fibonacci&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;memo&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;memo&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can see that we added an if statement at the beginning to check if we already have our result for n. If it is saved in our memo array then it's as easy as accessing that index.&lt;/p&gt;

&lt;p&gt;Similarly, if we haven't seen the value before we will compute it and then save it into our memo array in the end.&lt;/p&gt;

&lt;h3&gt;
  
  
  Time complexity
&lt;/h3&gt;

&lt;p&gt;You can imagine that using memoization would have a huge effect on the efficiency of this function. That's really the main benefit anyway! By storing all of our calculated values and avoiding repeat computations, we can reduce the average time complexity from O(n&lt;sup&gt;2&lt;/sup&gt;) to O(n).&lt;/p&gt;

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

&lt;p&gt;I actually got the code example from this &lt;a href="https://www.youtube.com/watch?v=vYquumk4nWw"&gt;amazing youtube video&lt;/a&gt; so please check it out! YK does such an amazing job of explaining the concept I would definitely recommend watching it if dynamic programming is new to you.&lt;/p&gt;

&lt;p&gt;I also found this &lt;a href="https://medium.com/@chialunwu/wtf-is-memoization-a2979594fb2a"&gt;article&lt;/a&gt; super helpful and thought it breaks down memoization into something more digestible.&lt;/p&gt;

&lt;p&gt;That's all I've got for today but I hope this explanation could be helpful to you! As always, please leave comments with your thoughts 😊&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>ruby</category>
      <category>beginners</category>
    </item>
    <item>
      <title>If at first you don't succeed, try, trie again</title>
      <dc:creator>Megan</dc:creator>
      <pubDate>Sat, 22 Aug 2020 18:50:01 +0000</pubDate>
      <link>https://dev.to/mwong068/if-at-first-you-don-t-succeed-try-trie-again-1g2m</link>
      <guid>https://dev.to/mwong068/if-at-first-you-don-t-succeed-try-trie-again-1g2m</guid>
      <description>&lt;p&gt;My apologies in advance, that title came to me and I just had to make this post. Plus I feel like it's been pretty applicable to my life recently 😂&lt;/p&gt;

&lt;p&gt;Anyhow! As my studies continue, I wanted to do a little introduction to &lt;strong&gt;tries&lt;/strong&gt;!&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a trie?
&lt;/h3&gt;

&lt;p&gt;Apparently a trie is a relatively new computer programming concept, aimed to solve a problem with the time and space complexity of trees.&lt;/p&gt;

&lt;p&gt;It is used mainly for alphabetical characters and stores them in a tree like structure for easy traversal to create word or patterns. The trie starts with an empty root node which is connected or linked to a node for every single letter in the alphabet.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;note: that means depending on the alphabet you're using, it could be over 50 different nodes!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The node itself holds a value and one or more references to other nodes in sequence.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fkoenig-media.raywenderlich.com%2Fuploads%2F2016%2F10%2FSwiftAlgClub_TrieData-trie-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fkoenig-media.raywenderlich.com%2Fuploads%2F2016%2F10%2FSwiftAlgClub_TrieData-trie-1.png" alt="trie example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Big O
&lt;/h3&gt;

&lt;p&gt;The time complexity of tries are O(n) on average, worst case being that the entire word is present in your trie and you cannot simply return false upon a few traversals. But in best case, that we are only searching for one letter perhaps, the time complexity would be O(1).&lt;/p&gt;

&lt;p&gt;For the space complexity, tries really are just strings for the most part and would not take up more than O(n) space even to create new nodes for each letter. Again, in a similar case where our string is just one letter it would be best case O(1).&lt;/p&gt;

&lt;h3&gt;
  
  
  Code Example
&lt;/h3&gt;

&lt;p&gt;So I think that &lt;a href="https://www.rubyguides.com/2017/11/prefix-trees-in-ruby/" rel="noopener noreferrer"&gt;rubyguides&lt;/a&gt; actually has an awesome example and I'll replicate it here for everyone. But I'll write out the functions in a way that is a bit more understandable for me.&lt;/p&gt;

&lt;p&gt;First we will initialize our node class which will have a value, a next array to contain all of the references, and a word value to indicate if we have found/completed the word we are looking for.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Node&lt;/span&gt;
  &lt;span class="nb"&gt;attr_reader&lt;/span&gt;   &lt;span class="ss"&gt;:value&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:next&lt;/span&gt;
  &lt;span class="nb"&gt;attr_accessor&lt;/span&gt; &lt;span class="ss"&gt;:word&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;initialize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="vi"&gt;@value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;
    &lt;span class="vi"&gt;@word&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;
    &lt;span class="vi"&gt;@next&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next we have our trie class, which has a few different methods. One to add a character into the trie which will either try to find the character if it already exists or add it. Another method that only finds the character if it exists. And lastly a method to simply add a node to the trie.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Trie&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;initialize&lt;/span&gt;
    &lt;span class="vi"&gt;@root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"*"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;add_character&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;character&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;trie&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;trie&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
      &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;value&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;character&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="n"&gt;add_node&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;character&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;trie&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;find_character&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;character&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;trie&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;trie&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
      &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;value&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;character&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;node&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;add_node&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;character&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;trie&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;new_node&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;character&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;trie&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;new_node&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now that we've established our node and trie classes, we can get to making the methods that will actually make use of our trie!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;add_word&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;word&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;base&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="vi"&gt;@root&lt;/span&gt;
  &lt;span class="n"&gt;word&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each_char&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;letter&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="n"&gt;base&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;add_character&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;letter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;next&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;word&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;find_word&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;word&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;base&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="vi"&gt;@root&lt;/span&gt;
  &lt;span class="n"&gt;word_found&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="n"&gt;word&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each_char&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;all?&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;letter&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;base&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;find_character&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;letter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;next&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="n"&gt;word_found&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;base&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;block_given?&lt;/span&gt;
  &lt;span class="n"&gt;base&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The add_word method is very clear in that we are looping through the word and adding characters to create that word. The second method for find_word I didn't modify as much as I found that the all? method was difficult to simplify. It effectively finds out if the case is true for each of the letters then it will return true. If it finds any matches it will return those via yield.&lt;/p&gt;

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

&lt;p&gt;Found some great resources to aid in your learning of tries:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.com/basecs/trying-to-understand-tries-3ec6bede0014" rel="noopener noreferrer"&gt;Trying to Understand Tries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=zIjfhVPRZCg" rel="noopener noreferrer"&gt;Tries with Gayle Laakmann McDowell&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading and have an awesome weekend everyone!&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>ruby</category>
      <category>beginners</category>
      <category>career</category>
    </item>
    <item>
      <title>My First Technical Interview Experience + Tips!</title>
      <dc:creator>Megan</dc:creator>
      <pubDate>Thu, 13 Aug 2020 18:04:28 +0000</pubDate>
      <link>https://dev.to/mwong068/my-first-technical-interview-experience-tips-ph5</link>
      <guid>https://dev.to/mwong068/my-first-technical-interview-experience-tips-ph5</guid>
      <description>&lt;p&gt;Hi everyone! I was so excited to land my first technical interview with a large company that I thought it'd be super cool to share my experience with all of you!&lt;/p&gt;

&lt;p&gt;Honestly, I've been dreading the technical interview for a while. I've been studying data structures and algorithms as much as I can (as you know, I feel like data structures are all I really post about! haha) but I still haven't felt truly prepared for a real interview.&lt;/p&gt;

&lt;p&gt;I also do mock interviews with some of my old classmates from Flatiron School which is sooo helpful and I could not recommend that more. Being able to simulate an actual interview, even if we are more comfortable with each other than we would be with strangers, is still extremely useful and good preparation.&lt;/p&gt;

&lt;p&gt;But on to the actual interview!&lt;/p&gt;

&lt;p&gt;It ended up being very casual and was half work-style questions and half technical. The question was meant to just test my thinking and problem solving abilities and ended up being a leetcode easy question.&lt;/p&gt;

&lt;p&gt;I ended up actually solving the wrong problem, which the interviewer told me after finishing my solution 😂 But it was a good lesson to learn and after clarifying I was able to come up with a correct solution to the actual problem. &lt;/p&gt;

&lt;p&gt;The interviewer was very nice and told me I could ask for tips and he could give me hints, but I was a bit too nervous and just debugged most of the problems myself. I did not get the chance to run the code but he had specified that I wouldn't be able to.&lt;/p&gt;

&lt;p&gt;I used the technique that has been outlined by many others online and I find to be an awesome way to approach problems:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Ask clarifying questions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Honestly I feel like this step is half so that I can ensure I am fully understanding what the question is asking (because that's super important!) and half buying myself time to think of a solution.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Think of good edge cases and ask for multiple examples&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you can, edge cases are a great to start before you begin coding and they're pretty important. It's okay if you don't come up with any right away, but it's good to keep in mind throughout the coding process.&lt;/li&gt;
&lt;li&gt;Also it's just my personal preference, but I like to ask for multiple examples because I feel like it helps further my understanding of what the question is asking. Totally optional though!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Take some time to fully think of solutions and get ready to discuss the best one you can come up with. I always felt awkward before being very quiet during this time, but if you just ask the interview for a minute to think, they usually don't mind.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Discuss your solution with the interviewer and write some pseudocode&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now that you've thought of your solution (don't worry if it's not the most optimal),  describe your thought process and step by step go through how you would solve the problem. You can ask the interviewer what they think of your solution and they will either have feedback or tell you to proceed.&lt;/li&gt;
&lt;li&gt;I find it is also helpful to write out (commented out of course) the process you have thought of. This step tends to be preference as well, but I've yet to think of a time when it wouldn't be beneficial to have your thought process actually written down. In the instance that you don't get to finish solving a problem, at least anyone who sees your solution will be able to read what you were thinking and hopefully understand how you would have finished the problem.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Get to coding!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Alright, now that you fully understand the problem, thought of all the edge cases, came up with a good solution, and wrote down your pseudocode... you're ready to actually code! Do your best to stick to your solution and if any issues arise, go ahead and bring them up with your interviewer.&lt;/li&gt;
&lt;li&gt;Depending on the interviewer they may offer tips or help you understand where you're going wrong. Even if they stay silent and allow you to struggle on your own, don't worry, just stay calm and debug as much as you can.&lt;/li&gt;
&lt;li&gt;You got this!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Unstuck yourself if necessary&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Personally, my nerves tend to get the best of me. And in my interview I couldn't get my last loop to return the correct output. I knew what I needed but was getting lost in debugging one line.&lt;/li&gt;
&lt;li&gt;So I took a breath and started back at the top of where my problem began. For me, breaking down the problem into small pieces and putting print statements where I don't understand outputs is super helpful and weirdly calming.&lt;/li&gt;
&lt;li&gt;You know what works best for you, but if you do get stuck don't worry and just take it step by step until you can find where the bug is that's breaking your code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Testing&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sometimes your interviewer will allow you to run the code (which is awesome!), but if they don't, that's okay too. Just make sure with them first before you try running anything.&lt;/li&gt;
&lt;li&gt;In the case that you can't run it, go through the code step by step with one of the examples, ensuring that the outcome is what you expect. I honestly prefer this just because I find I catch the most bugs this way.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Space &amp;amp; time complexity&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;My first interviewer didn't ask me for anything pertaining to big O, probably because it was just a skill check. But my second interviewer (more on that next time!) did, so of course be sure to know how to calculate that. I have a handy &lt;a href="https://dev.to/mwong068/big-o-space-complexity-lcm"&gt;space complexity blog post&lt;/a&gt; if you need a little refresher.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You did it!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You made it to the end of your technical interview! Congrats :) Whether you struggled the whole time or it was a walk in the park, I think either is a good learning experience and every interview will make you better.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thanks for reading and if you have any technical interview advice to share, please do! It'd be awesome to hear your technical interview experiences and stories as well.&lt;/p&gt;

</description>
      <category>career</category>
      <category>computerscience</category>
      <category>firstyearincode</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Regular Expressions Crash Course</title>
      <dc:creator>Megan</dc:creator>
      <pubDate>Wed, 05 Aug 2020 18:25:48 +0000</pubDate>
      <link>https://dev.to/mwong068/regular-expressions-crash-course-c7n</link>
      <guid>https://dev.to/mwong068/regular-expressions-crash-course-c7n</guid>
      <description>&lt;p&gt;Hi all! I came across a regular expression problem in a hackerrank and was completely stumped. I didn't think regular expressions were a common interview question, but I did realize how useful they could be. So I thought I'd post a little crash course on regular expression in hopes of helping others.&lt;/p&gt;

&lt;h4&gt;
  
  
  Okay okay, so first off... what are regular expressions?
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;"Regular expressions or RegEx is a sequence of characters that define a search pattern, mainly for use in pattern matching with strings, or string matching, i.e. “find and replace”-like operations."&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/write-regular-expressions/"&gt;GeeksForGeeks via Wikipedia&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Basically, you can create a combination of characters (because regex uses a lot of symbols) to match exactly to a string you would be looking for.&lt;/p&gt;

&lt;p&gt;A good example and what it is commonly used for is pattern matching in emails. That happened to be a part of the question I received as well.&lt;/p&gt;

&lt;p&gt;It makes sense if you're going over hundreds or thousands or hundreds of thousands of emails that you wouldn't or couldn't feasibly look through each one one at a time. Enter... regular expressions!&lt;/p&gt;

&lt;p&gt;Now given this is just a crash course, I will only go over a few basic examples so this definitely isn't all there is to know about regular expressions. But you will be able to use this information to build up your regex knowledge!&lt;/p&gt;

&lt;p&gt;I think it is easiest to learn at first if you use a nice regular expression compiler like &lt;a href="https://regex101.com/"&gt;Regex 101&lt;/a&gt; or &lt;a href="https://regexr.com/"&gt;Regexr&lt;/a&gt;. You can test your pattern very easily with these websites.&lt;/p&gt;

&lt;p&gt;If you mosey on over to one of those sites you will notice that regular expressions have a fairly common setup across the board.&lt;/p&gt;

&lt;p&gt;The strings will begin and end with a forward slash followed up a string, for example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/ (put your regular expressions in here!) /g
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The string at the end denotes the different flags for how your regex get interpreted:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Letter(s)&lt;/th&gt;
&lt;th&gt;What it stands for&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;g&lt;/td&gt;
&lt;td&gt;global&lt;/td&gt;
&lt;td&gt;searches through the entire string, not just for the first match it finds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;i&lt;/td&gt;
&lt;td&gt;case insensitive&lt;/td&gt;
&lt;td&gt;will search for the text whether it is capitalized or not&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;m&lt;/td&gt;
&lt;td&gt;multiline&lt;/td&gt;
&lt;td&gt;used with start and end denotations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;s&lt;/td&gt;
&lt;td&gt;single line / dotall&lt;/td&gt;
&lt;td&gt;will match any character (used with .)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;There are more flags than this available (and sometimes denoted by different letters), but for our purposes I didn't include them as they are more advanced than what we will go over. For now we will stick with g so we know that our entire input will be evaluated.&lt;/p&gt;

&lt;p&gt;Alright, now that you have somewhere to put your regex and know how it's structured... let's get to creating!&lt;/p&gt;

&lt;h4&gt;
  
  
  Letters and Numbers
&lt;/h4&gt;

&lt;h5&gt;
  
  
  Longhand
&lt;/h5&gt;

&lt;p&gt;If you want to denote a range of characters or numbers, you can do so uses these:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;characters&lt;/th&gt;
&lt;th&gt;what they do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;[a-z]&lt;/td&gt;
&lt;td&gt;lowercase range from a-z&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[A-Z]&lt;/td&gt;
&lt;td&gt;uppercase range from a-z&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[0-9]&lt;/td&gt;
&lt;td&gt;range of digits from 0-9&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;So for instance, if our input text to test over is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"How now brown cow"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Our regular expression:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/[a-z]/g
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;would find all of the letters except for the capital H.&lt;/p&gt;

&lt;h5&gt;
  
  
  Shorthand
&lt;/h5&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;characters&lt;/th&gt;
&lt;th&gt;equivalent&lt;/th&gt;
&lt;th&gt;what they do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;\w&lt;/td&gt;
&lt;td&gt;[0-9a-zA-Z_]&lt;/td&gt;
&lt;td&gt;includes all letters (case insensitive) and digits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\d&lt;/td&gt;
&lt;td&gt;[0-9]&lt;/td&gt;
&lt;td&gt;range of digits from 0-9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\s&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;white space (tabs, regular space, newline)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These are also very straightforward, but if we continue with our previous text example, our regular expression could be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//w/g
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and it would find all of the letters, including the capital H this time.&lt;/p&gt;

&lt;h5&gt;
  
  
  NOT Containing
&lt;/h5&gt;

&lt;p&gt;These are similar to the above and you can see that if you capitalize the letter in these shorthand versions, it changes the meaning to NOT including certain characters in the string:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;characters&lt;/th&gt;
&lt;th&gt;equivalent&lt;/th&gt;
&lt;th&gt;what they do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;\W&lt;/td&gt;
&lt;td&gt;![0-9a-zA-Z_]&lt;/td&gt;
&lt;td&gt;does NOT includes all letters (case insensitive) and digits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\D&lt;/td&gt;
&lt;td&gt;![0-9]&lt;/td&gt;
&lt;td&gt;does NOT range of digits from 0-9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\S&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;does NOT include white space (tabs, regular space, newline)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Continuing with our example from above, using the regular expression:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/\W/g
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;it would not return any matches for letters or digits, but it would return matches for the spaces in between the letters.&lt;/p&gt;

&lt;h4&gt;
  
  
  Modifiers
&lt;/h4&gt;

&lt;p&gt;Now that we've taken care of the characters, what if we wanted them in a specific order? Here is where modifiers come in to play:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;characters&lt;/th&gt;
&lt;th&gt;what they do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;.&lt;/td&gt;
&lt;td&gt;matches everything but new lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;|&lt;/td&gt;
&lt;td&gt;used to separate different strings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\.\&lt;/td&gt;
&lt;td&gt;literal period if needed (escaping)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;*&lt;/td&gt;
&lt;td&gt;0 or more of that character&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;+&lt;/td&gt;
&lt;td&gt;1 or more of that character&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;?&lt;/td&gt;
&lt;td&gt;only 0 or 1 of that character (optional)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;{m, n}&lt;/td&gt;
&lt;td&gt;between m and n (m and n being integers) of that character&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;There are also two more important special characters to be aware of: the ^ denotes the beginning of a regular expression and the $ denotes the end of a regular expression. Keep these in mind for the examples below!&lt;/p&gt;

&lt;h4&gt;
  
  
  Examples
&lt;/h4&gt;

&lt;p&gt;Of course we need some helpful examples!&lt;/p&gt;

&lt;h5&gt;
  
  
  IP address validator
&lt;/h5&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This one is great, very straightforward and uses all of the shortcuts we just learned! As I'm sure you are familiar with IP addresses, this example just checks that each set of digits between the periods are actually digits.&lt;/p&gt;

&lt;h5&gt;
  
  
  Email address validator
&lt;/h5&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/^\S+@\S+\.\S+$/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I wanted to be sure to include this one as regular expressions are often used for email address validation. This is a very simple example of an email address, but as you can tell it checks that there aren't any spaces and that the string includes only one @ and one period.&lt;/p&gt;

&lt;h4&gt;
  
  
  Resources
&lt;/h4&gt;

&lt;p&gt;As usual, I'd like to include some extra resources I found very helpful:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=rhzKDrUiJVk"&gt;Learn Regular Expressions in 20 Minutes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.freecodecamp.org/news/learn-regular-expressions-with-this-free-course-37511963d278/"&gt;FreeCodeCamp's Regular Expression Course&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks so much for taking the time to read this! I hope that it could be helpful for you. And as always please feel free to leave comments or corrections. Have an awesome week!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Sass vs Less: Which do you prefer?</title>
      <dc:creator>Megan</dc:creator>
      <pubDate>Thu, 30 Jul 2020 20:10:27 +0000</pubDate>
      <link>https://dev.to/mwong068/sass-vs-less-which-do-you-prefer-1764</link>
      <guid>https://dev.to/mwong068/sass-vs-less-which-do-you-prefer-1764</guid>
      <description>&lt;p&gt;So I guess I'm sort of obsessed with these poll-like opinion based posts lately, but I love hearing what the Dev community's take is on so many subjects! This week I wanted to talk about CSS - a "language" that I love completely and have such deep hatred for all at the same time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/mWO9gCz9v4Ak3cJJMO/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/mWO9gCz9v4Ak3cJJMO/giphy.gif" alt="I love you and I hate you gif" width="500" height="247"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This isn't a new debate, that's for sure, but I've mostly used vanilla CSS my whole life and was very interested in this preprocessor debate.&lt;/p&gt;

&lt;p&gt;If you're new to CSS or the idea of preprocessors here are the formal web definitions of each:&lt;/p&gt;

&lt;h3&gt;
  
  
  CSS
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS"&gt;MDN:&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Cascading Style Sheets (CSS) is a stylesheet language used to describe the presentation of a document written in HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS describes how elements should be rendered on screen, on paper, in speech, or on other media.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Sass
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Sass_(stylesheet_language)"&gt;Wikipedia:&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Sass (short for syntactically awesome style sheets) is a preprocessor scripting language that is interpreted or compiled into Cascading Style Sheets (CSS). SassScript is the scripting language itself. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://sass-lang.com/"&gt;Sass&lt;/a&gt; documentation:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Sass lets you use features that don't exist in CSS yet like variables, nesting, mixins, inheritance and other nifty goodies that make writing CSS fun again.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Less
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Less_(stylesheet_language)"&gt;Wikipedia:&lt;/a&gt; &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Less (which stands for Leaner Style Sheets) is a backwards-compatible language extension for CSS. This is the official documentation for Less, the language and Less.js, the JavaScript tool that converts your Less styles to CSS styles. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://lesscss.org/"&gt;Less&lt;/a&gt; documentation:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Less only makes a few convenient additions to the CSS language, which is one of the reasons it can be learned so quickly.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/ewCxZp2RmuCDaMl4pq/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/ewCxZp2RmuCDaMl4pq/giphy.gif" alt="Makes sense gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that you have some context, here is my usual data table with comparisons. I scoured the internet for other people's opinions and have compiled them below:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Regular ol' CSS&lt;/th&gt;
&lt;th&gt;Sass&lt;/th&gt;
&lt;th&gt;Less&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Setup&lt;/td&gt;
&lt;td&gt;Ready out of the box styling&lt;/td&gt;
&lt;td&gt;Setup required to ensure that code compiles before rendering&lt;/td&gt;
&lt;td&gt;Setup required to ensure that code compiles before rendering&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Use of Compiler&lt;/td&gt;
&lt;td&gt;Not necessary&lt;/td&gt;
&lt;td&gt;Needs compiler&lt;/td&gt;
&lt;td&gt;Needs compiler&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Use of Variables&lt;/td&gt;
&lt;td&gt;Not capable&lt;/td&gt;
&lt;td&gt;Can use variables&lt;/td&gt;
&lt;td&gt;Can use variables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Documentation&lt;/td&gt;
&lt;td&gt;Standard documentation with LOTS of information online&lt;/td&gt;
&lt;td&gt;More frequently updated repo with less issues and PRs than Less&lt;/td&gt;
&lt;td&gt;More issues and PRs than Sass repo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Integration&lt;/td&gt;
&lt;td&gt;Great for smaller projects, becomes excessive in larger projects&lt;/td&gt;
&lt;td&gt;Helpful for larger projects for cleaner, dryer code&lt;/td&gt;
&lt;td&gt;Helpful for larger projects for cleaner, dryer code&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;It's also good to keep in mind that CSS is always updating as well, and there have been some great new features added recently. Some that can even rival some of the benefits that could only be gained before by using a preprocessor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/LSQmDO4Uu4cDuKkWJ0/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/LSQmDO4Uu4cDuKkWJ0/giphy.gif" alt="Do you love it or do you love it gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But what do you think? If you've used either of these in the past, which do you think is better? And if not are you interested in either of them or preprocessors at all? Or is CSS on it's on plenty enough to deal with as it is?&lt;/p&gt;

&lt;p&gt;Excited to hear all of your opinions and hope you all have a great rest of your week! 😊&lt;/p&gt;

</description>
      <category>css</category>
    </item>
  </channel>
</rss>
