<?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: Callie, horse boy</title>
    <description>The latest articles on DEV Community by Callie, horse boy (@callie).</description>
    <link>https://dev.to/callie</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%2F593297%2F24215294-9636-4812-81c5-b65456623a64.png</url>
      <title>DEV Community: Callie, horse boy</title>
      <link>https://dev.to/callie</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/callie"/>
    <language>en</language>
    <item>
      <title>How to become a better engineer</title>
      <dc:creator>Callie, horse boy</dc:creator>
      <pubDate>Tue, 26 Apr 2022 18:22:39 +0000</pubDate>
      <link>https://dev.to/callie/how-to-become-a-better-engineer-53nc</link>
      <guid>https://dev.to/callie/how-to-become-a-better-engineer-53nc</guid>
      <description>&lt;p&gt;This isn't the kind of post you probably think it'll be.&lt;/p&gt;

&lt;p&gt;Or maybe it will be.&lt;/p&gt;

&lt;p&gt;I've been reflecting daily on white boarding (I can't imagine why) and the reactions from the community to that. I've also been reading lots and lots of "career" oriented books (&lt;a href="https://www.amazon.com/Being-Geek-Software-Developers-Handbook/dp/0596155409" rel="noopener noreferrer"&gt;Being Geek&lt;/a&gt;, &lt;a href="https://www.amazon.com/Good-They-Cant-Ignore-You-ebook/dp/B0076DDBJ6" rel="noopener noreferrer"&gt;So Good They Can't Ignore You&lt;/a&gt; - which if you've read this, you know precisely where this post will go, and &lt;a href="https://www.amazon.com/Communication-Engineers-developers-communicators-productivity-ebook/dp/B08W8MJNF8" rel="noopener noreferrer"&gt;Communication for Engineers&lt;/a&gt;), and it's lead me to a lightbulb.&lt;/p&gt;

&lt;p&gt;And that's where I'm about to list off a few hot takes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Surgeons don't do surgery in their spare time
&lt;/h2&gt;

&lt;p&gt;First, let me start this: I don't believe in requiring engineers to pursue their own full-blown "personal projects" on the side of an actual day job. Companies that require an application by submitting a github repository are doing it wrong.&lt;/p&gt;

&lt;p&gt;Nonetheless, I see many people cite that surgeons aren't expected to do surgeries on their spare time. However, this misses something pretty important: surgeons read medical journals in their "spare" time.&lt;/p&gt;

&lt;p&gt;I view programming as an art, speaking as someone who approaches their music and painting as sums and patterned.&lt;/p&gt;

&lt;p&gt;And that's how I believe you leverage becoming a better engineer.&lt;/p&gt;

&lt;p&gt;Becoming better at what you do takes work, practice, and research. Lots of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deliberate practice
&lt;/h2&gt;

&lt;p&gt;When I played guitar, I didn't become better by playing Greensleeves over and over. Sure, I enjoyed the song - its familiarity, and the fact I could almost sing along to it. When I painted more, I didn't become better by sticking only to the familiar; I forced myself just outside of my comfort zone a little bit at a time.&lt;/p&gt;

&lt;p&gt;As I work through LeetCode problems, I've noticed a similar trend. I become a better engineer when I'm preparing to leave my job because I'm pursuing &lt;strong&gt;deliberate practice.&lt;/strong&gt; I'm pushing myself to look at these completely random problems that I would never otherwise solve, and it's forcing me to be both uncomfortable and creative at the same time. (This is why I view software engineering as an art; it acts as a creative pursuit).&lt;/p&gt;

&lt;p&gt;Sure, this isn't going to affect how I align a link on a page. But that's also not a difficult problem for me at this point in my career. Instead, this is going to affect how I solve the other problems: how to access elements on a page. How to handle mega data sets. How to better create a system.&lt;/p&gt;

&lt;p&gt;If you want to be a better engineer, a blog post like this won't do that for you. Working at Amazon or Microsoft or Google won't even necessarily do that, either. You don't need to dedicate your entire spare time to creating the next bit app.&lt;/p&gt;

&lt;p&gt;You need to take an hour a day (or at least, most days) and push yourself. Do those LeetCode problems. Look at that documentation for something you're not familiar with from your preferred language. Anything you view as hard, or difficult to understand - that's what you should focus on. That's where your growth lies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Even if you're not whiteboarding soon
&lt;/h2&gt;

&lt;p&gt;An hour can be a lot when you've a family or other obligations. I certainly don't always have a ton of hours to spare, either.&lt;/p&gt;

&lt;p&gt;I also don't recommend fitting this in before bed; that makes it much more difficult for folks my own age to be able to perform this deliberate practice, but it'll also make it harder for you to sleep. Just a friendly bit of advice on that one.&lt;/p&gt;

&lt;p&gt;So how do I fit it in? I don't have kids (yet). But I do it with my morning coffee. Take time away from your email at work; I'll bet you could get an hour out of that. Take an hour away from Reddit. Stop reading this blog and do it. If your boss doesn't like you working on engineering problems rather than browsing the internet, it's probably time to find a new boss, anyway.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it feels like
&lt;/h2&gt;

&lt;p&gt;The more I do deliberate practice, the easier it becomes.&lt;/p&gt;

&lt;p&gt;Not.&lt;/p&gt;

&lt;p&gt;No, especially as a person with executive dysfunction, it's very hard. The first ten or so minutes, my brain screams at me. You're too stupid to do this. This is too far beyond you. You won't get a GOOD answer.&lt;/p&gt;

&lt;p&gt;The brain's not just a liar, it's a &lt;em&gt;damned&lt;/em&gt; liar.&lt;/p&gt;

&lt;p&gt;Consider the way an athlete pushes their muscles. I'm sure all of us have had muscle fatigue before; that's what you're doing here. You're taking your head's meatlump and pushing it just beyond its limits, and it's going to hate that. Stretch it with an easy warmup; get it focused.&lt;/p&gt;

&lt;p&gt;You can do this.&lt;/p&gt;

&lt;p&gt;After those first few minutes, after you've been able to focus up, you'll begin to make progress.&lt;/p&gt;

&lt;p&gt;It doesn't have to be a lot of progress. Maybe you still end up looking up a solution toward the end; that's fine. You'll remember this and do better the next time. Maybe you'll come away with only a little more understanding, or two lines of code written.&lt;/p&gt;

&lt;p&gt;That's great. I'm genuinely proud of you. This is how you improve.&lt;/p&gt;

&lt;h2&gt;
  
  
  You don't have to start out "smart"
&lt;/h2&gt;

&lt;p&gt;Frankly, we don't know how intelligence actually works. Richard Feynmann, famous physicist with accolades in quantum physics - &lt;a href="https://en.wikipedia.org/wiki/Richard_Feynman#CITEREFGribbinGribbin1997" rel="noopener noreferrer"&gt;scored a 125 on his IQ test in high school&lt;/a&gt;. That's not genius level at all (albeit, still high), and yet, this man won a Nobel in physics.&lt;/p&gt;

&lt;p&gt;I don't trust IQ tests. We all know they're riddled with issues. But more importantly, we don't know how it works.&lt;/p&gt;

&lt;p&gt;I very much believe that you can make yourself "smarter" (whatever that means). And I believe that it's all in how we apply ourselves.&lt;/p&gt;

&lt;h2&gt;
  
  
  Discipline
&lt;/h2&gt;

&lt;p&gt;I have autism that mimics the symptoms of ADHD.&lt;/p&gt;

&lt;p&gt;It's really hard for me to perform deliberate practice, so I know where many of you are coming from.&lt;/p&gt;

&lt;p&gt;You're not a failure if you can't do this daily. What's important is to &lt;em&gt;try&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;You've got this.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>career</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>Imposter syndrome ain't always on you</title>
      <dc:creator>Callie, horse boy</dc:creator>
      <pubDate>Fri, 12 Mar 2021 19:11:00 +0000</pubDate>
      <link>https://dev.to/callie/imposter-syndrome-ain-t-always-on-you-12c5</link>
      <guid>https://dev.to/callie/imposter-syndrome-ain-t-always-on-you-12c5</guid>
      <description>&lt;p&gt;I stared at my IDE, my brain contorting in more painful poses than I imagine I would if I did yoga. I'd been in front end for years, and I had never seen such a convoluted means to create a simple functional React component.&lt;/p&gt;

&lt;p&gt;I swapped my window over to Slack, and made a group DM with the other three people on the team that I'd seen had touched that particular file. "Hey, why are our components like.. three levels deep?" I'm serious - it looked like to create a very simple container component, a series of template components had been made over a function that then called the actual design library itself.&lt;/p&gt;

&lt;p&gt;"I have no idea," one coworker replied. "Honestly, if you don't want it written that way, please fix it."&lt;/p&gt;

&lt;p&gt;We went back-and-forth for a few minutes, and I finally vented out, "I cannot stand code bases like this. I just don't see why this was written so over-the-top convoluted. It's beautiful, but how are we supposed to maintain this?"&lt;/p&gt;

&lt;p&gt;"I'm so glad you said that," another coworker replied. "Seriously. Seeing this code made me feel like I didn't deserve to be a front-end engineer here."&lt;/p&gt;

&lt;p&gt;My jaw dropped. A lightbulb went off somewhere in the goopy carbonara my brain had become over the last some-odd hours of work.&lt;/p&gt;

&lt;h2&gt;
  
  
  It's not just about you
&lt;/h2&gt;

&lt;p&gt;Imposter syndrome isn't just because of some flaw in our brain chemistry. It's not just from how we speak to each other as engineers, or because we spend five hours debugging broken code that turned out to have a variable mistyped. It's because we lead ourselves to believe that extremely complex code somehow trumps the more simplistic code that gets the same job done.&lt;/p&gt;

&lt;p&gt;I've been reading and even tweeting on imposter syndrome for years - in particular, relating my experiences as a femme-presenting human in tech for the last 12 years. For an embarrassing large amount of that (at least 11 years), I thought myself somehow unworthy for my pay grade, title, and position at a big company. Sure, the other factors certainly don't help - my horrid, autism-driven anxiety, the way that past managers or coworkers have treated me, and of course, the society that we live in. But it just hadn't hit me that complex code isn't just a pain to maintain: it hits you (general you) right in the metaphorical Achille's.&lt;/p&gt;

&lt;h2&gt;
  
  
  We gotta fix this
&lt;/h2&gt;

&lt;p&gt;As with everything discussing mental health or our industry's inherent imposter syndrome, we have to work on ourselves to encourage ourselves to not just do better, but to also "fix" this. Because, look at it like this: imposter syndrome isn't about our pride or ego as developers. It's a very real issue that drives people from our field, and that inflicts extremely real harm on our community as a whole.&lt;/p&gt;

&lt;p&gt;Going back to this specific topic, I don't perceive all complex code negatively. For example, I have no prior knowledge or experience with RxJS, and much of the code I'm now working with uses that. At first, I felt pretty resistant to using it because I didn't see why we wouldn't just use Promises. This would have caused me to simply not learn that library out of my own idiot pride, and that would have been a mistake because I didn't know the reasoning behind RxJS. In addition, having layers over your components - as per my earlier example - isn't always an issue if it means that you're making those components much easier to reuse.&lt;/p&gt;

&lt;p&gt;However, complex code leads to a myriad of other issues. If you leave the team, you probably didn't document it well, and now your team's shot in the foot trying to maintain your brain zombie. In the case of RxJS or Promises, you likely don't even need an additional library for simple ajax calls. Adding that not only adds weight to your application, but another, additional learning curve for future developers to work on it.&lt;/p&gt;

&lt;p&gt;And what about bugs? I'm sure plenty of people on here love video games as much as I do. The more complex your code happens to be, the harder to change it. Video games are notorious for this - adding one inventory slot can go as far as to suddenly make certain characters game-breakingly powerful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nobody should think less of you if you keep it simple
&lt;/h2&gt;

&lt;p&gt;I hate the phrase "Keep it simple, stupid." Okay, really, I just hate the word "stupid." Having worked in UX alongside front-end, there's nothing stupid about simplicity. I find it much easier to over-engineer a solution than to make something shorter and with elegant purpose.&lt;/p&gt;

&lt;p&gt;So if your solutions are simple? Great. You're doing the Lord's work, as my mother would have said.&lt;/p&gt;

</description>
      <category>impostersyndrome</category>
      <category>code</category>
      <category>codequality</category>
    </item>
  </channel>
</rss>
