<?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: addison-codes</title>
    <description>The latest articles on DEV Community by addison-codes (@addisoncodes).</description>
    <link>https://dev.to/addisoncodes</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%2F545064%2F9728cd2d-9201-4aa4-a795-aa030092366d.jpeg</url>
      <title>DEV Community: addison-codes</title>
      <link>https://dev.to/addisoncodes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/addisoncodes"/>
    <language>en</language>
    <item>
      <title>Teamwork to Make the Dream Work</title>
      <dc:creator>addison-codes</dc:creator>
      <pubDate>Mon, 08 Mar 2021 15:34:55 +0000</pubDate>
      <link>https://dev.to/addisoncodes/teamwork-to-make-the-dream-work-28mi</link>
      <guid>https://dev.to/addisoncodes/teamwork-to-make-the-dream-work-28mi</guid>
      <description>&lt;p&gt;Working on a team is a challenge. It is no doubt a necessity but it is something that is far too often ignored as a potential point of improvement. Each person on a team has their own unique set of experiences, skills, strengths, and weaknesses. The difference between an effective team and an ineffective one is based on how well the members recognize where each other excel. By getting a grasp on your own strengths and weaknesses, communicating them to the rest of the team, and working to find how to best support others (instead of finding how to be supported) a team can increase productivity and efficiency.&lt;/p&gt;

&lt;p&gt;How we determine our own strengths and weaknesses is different for everyone. One effective way is to practice your skills solo - don't rely on anyone and see what you can get done. Try new tasks or doing old tasks a different way and look for things that you enjoy doing and are good at. We can also try working with different teams often. As long as there is good communication, finding out how to adapt ourselves to support teammates is something that we can consciously pay attention to in order to discover what works best.&lt;/p&gt;

&lt;p&gt;It is also important to know that it's important to practice things that we WANT to practice or learn. If you want to understand more about certain processes or develop a new skill, then just by letting your team members know that you want to learn you can start being included in discussions surrounding that. Most of us naturally like teaching - and teaching is a fantastic way to further develop your own skills. &lt;/p&gt;

&lt;p&gt;The most important part of this process is communication. Make sure you put in some effort to understand what your team members are good at and what they want to practice. As a potential action item, take some time this week to let your teammates know something that you want to get more experience with and ask how you can better support them.&lt;/p&gt;

</description>
      <category>career</category>
      <category>startup</category>
    </item>
    <item>
      <title>Are you a solo dev and want to get a job? 3 tips and some warnings.</title>
      <dc:creator>addison-codes</dc:creator>
      <pubDate>Fri, 29 Jan 2021 06:13:03 +0000</pubDate>
      <link>https://dev.to/addisoncodes/are-you-a-solo-dev-and-want-to-get-a-job-3-tips-and-some-warnings-38gl</link>
      <guid>https://dev.to/addisoncodes/are-you-a-solo-dev-and-want-to-get-a-job-3-tips-and-some-warnings-38gl</guid>
      <description>&lt;p&gt;No matter how experienced you are as a developer, working on team is (as I've recently discovered) hugely different than working alone. This is an exploration into the transition - with a few tips to prepare yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Beginnings
&lt;/h2&gt;

&lt;p&gt;I was an off-and-on solo web developer for about 8 years. Starting in high school, I entered the webdev space and slowly built up my skillset. Even though I was doing some freelance work that made me some decent money, I always sort of felt like a lesser developer. I'd look at things like JS Frameworks and read blog posts from well known developers and think &lt;em&gt;this is way beyond me&lt;/em&gt;! Well, it was beyond me, but I hadn't yet realized the amazing foundation I'd built for myself.&lt;/p&gt;

&lt;p&gt;It was one of &lt;a href="https://www.youtube.com/channel/UC29ju8bIPH5as8OGnQzwJyA"&gt;Traversy Media's&lt;/a&gt; Web Developer Roadmaps that showed me just how close I was to turning web development from a hobby/occasional-income-earner into a profession. &lt;/p&gt;

&lt;p&gt;Fast forward about a year and half and now I'm on an amazing team of developers making custom cloud applications for clients - one of the best development gigs in my area.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your Beginning?
&lt;/h2&gt;

&lt;p&gt;If you are like me - having only worked with yourself on coding projects - it can be really hard to gauge where your skills are. With imposter syndrome ever looming, it's so easy to forget that &lt;strong&gt;you are skilled&lt;/strong&gt;. To gauge where you are, I definitely recommend one of the Web Developer Roadmap videos - Traversy Media's are fantastic but there are lots of good options. &lt;/p&gt;

&lt;p&gt;Once you know where you are, you know where you can go and what you can learn to improve. Maybe you're already standing at the top; maybe you just discovered that you were nowhere near as knowledgeable as you thought. You are, at the very least, well on your way to a valuable skill. What you are lacking, however, is experience working on a team. &lt;/p&gt;

&lt;h2&gt;
  
  
  Solo Vs Team
&lt;/h2&gt;

&lt;p&gt;Getting this experience is not easy without a job. This kind of experience is one of the great things you receive when learning web development at a bootcamp or college. That said, if you are self-taught or come from a path that never allowed you to work on a team, you can definitely prepare yourself.&lt;/p&gt;

&lt;p&gt;First and foremost, you need to understand the fundamental differences:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Solo&lt;/th&gt;
&lt;th&gt;Team&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;You work at your speed&lt;/td&gt;
&lt;td&gt;You work at the team's speed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You (or a linter) are your only code reviewer&lt;/td&gt;
&lt;td&gt;Someone will be reviewing your code - and it needs to make sense&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Git is useful to keep a log of your progress&lt;/td&gt;
&lt;td&gt;Git is essential to understand so the team can work on similar things effectively&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Now here are a few things you can do to prepare:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Open Source
&lt;/h3&gt;

&lt;p&gt;Taking part in open source projects is the best way to get experience working on a team. Not doing this is my biggest regret. There are a lot of good resources out there detailing how to get started contributing to open source - it mostly seems to boil down to: Start using open source software; find something to improve; improve it.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Find a buddy
&lt;/h3&gt;

&lt;p&gt;This one is a little more difficult and requires a slightly higher emotional investment, but the payoff is potentially much higher. Involve yourself in some online communities (like dev.to!) and connect with others that may be in the same boat. Having someone to hold you accountable, read your code, or just bounce ideas off of will be a great start towards team experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Learn something unique
&lt;/h3&gt;

&lt;p&gt;If you can bring something to a team that no one else has, then you are automatically valuable. Master one technology, even if it's something small, and be passionate about it. Once you're on a team that passion will be infectious and everyone can learn from you.&lt;/p&gt;

</description>
      <category>career</category>
    </item>
    <item>
      <title>Supercharge your project with each commit using 3 awesome tools.</title>
      <dc:creator>addison-codes</dc:creator>
      <pubDate>Thu, 21 Jan 2021 04:57:54 +0000</pubDate>
      <link>https://dev.to/addisoncodes/supercharge-your-project-with-each-commit-using-3-awesome-tools-bkg</link>
      <guid>https://dev.to/addisoncodes/supercharge-your-project-with-each-commit-using-3-awesome-tools-bkg</guid>
      <description>&lt;h1&gt;
  
  
  The Trifecta
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Conventional Commits, SemVer, and Standard Version
&lt;/h3&gt;

&lt;p&gt;Do you know those projects that have a cool version number like 3.23.12? And they have a nice changelog that shows the changes in each version? If you're like me, you love the &lt;em&gt;idea&lt;/em&gt; of being that organized, but you don't love the idea of doing more busywork when you want to focus on coding. Well, you're in luck, because with a few tools we can automate the whole thing!&lt;/p&gt;

&lt;p&gt;There are three tools that we can use to accomplish this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conventional Commits (A &lt;em&gt;convention&lt;/em&gt; for how to write commit messages)&lt;/li&gt;
&lt;li&gt;SemVer (Semantic Versioning - the nice X.X.X version number system)&lt;/li&gt;
&lt;li&gt;Standard Version (A node module that automatically updates a changelog with version numbers and commit info)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The best part of all of this is that you can slowly transition into using these tools. You don't have to make any big changes or commit to making a permanent change to your workflow or repository.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step One: Get Familiar with Conventional Commits
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.conventionalcommits.org/"&gt;Conventional Commits&lt;/a&gt; is a standardized way to write your commit messages - as well as the driver of this whole operation. Basically, when writing your commit messages all you have to do is follow a standard format. It may seem complicated at first, but with a little bit of time and the &lt;a href="https://marketplace.visualstudio.com/items?itemName=KnisterPeter.vscode-commitizen"&gt;Commitizen VS Code Extension&lt;/a&gt;, you will quickly find it feeling natural. Firstly, it would be best to familiarize yourself with the convention, &lt;a href="https://www.conventionalcommits.org/"&gt;you can read up on it here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Using Commitizen in VS Code will do the heavy lifting for you. Instead of committing via command line or VS Code's built-in Source Control, you can just open the command palette (ctrl-shift-p) and type select Commitizen. It will prompt you for all of the necessary information and format your commit message according to the standard. Then you can just push your code up as you normally would!&lt;/p&gt;

&lt;p&gt;Conventional Commits alone will make an awesome addition to your development arsenal - if a whole team transitions to Conventional Commits, you will notice all changes to the repo are far more readable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step Two: Understand Semantic Versioning
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://semver.org/"&gt;Semantic Versioning&lt;/a&gt; is far simpler to understand. You can read up on it at the site, but it's simple enough to quickly explain here.&lt;/p&gt;

&lt;p&gt;The version number is split into three sections with .'s like so: 2.5.11 - and each number has its own distinct meaning. I'll explain from the bottom up.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1.1.Z&lt;/strong&gt; Z = Patch version. This starts at zero and increases with every backward-compatible bugfix or patch that is implemented. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1.Y.1&lt;/strong&gt; Y = Minor version. This starts at zero and increases with every backward-compatible new feature or functionality that is implemented. Every time this goes up, reset the patch version to 0.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;X.1.1&lt;/strong&gt; X = Major version. This starts at zero and increases with every major change or addition of functionality that is not backward-compatible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Note:&lt;/strong&gt; If you reach number 9 for any of the versions the next increase is 10. This &lt;em&gt;can&lt;/em&gt; even get into the triple digits, ie 1.2.99 =&amp;gt; 1.2.100.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In your projects, you can feel free to apply these versions in whatever way makes the most sense to the project. For instance, in some projects, I might increase the major version at each milestone instead of waiting until a breaking change.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step Three: Use Standard Version to Automate
&lt;/h2&gt;

&lt;p&gt;Finally, you can use the node package &lt;a href="https://github.com/conventional-changelog/standard-version"&gt;Standard Version&lt;/a&gt; to automate the process of creating and updating a changelog. It uses your conventional commits to understand the changes you've made and updates your version number accordingly. The changelog that it generates also succinctly lists the changes in each version. &lt;/p&gt;

&lt;p&gt;To use it, you can install it to your project as a developer dependency with this command: &lt;code&gt;npm i --save-dev standard-version&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;To run it for the first time: &lt;code&gt;npm run release -- --first-release&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;To run it for your normal releases: &lt;code&gt;npm run release&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you want to release a major or minor version regardless of what your commits indicate you can run: &lt;code&gt;npm run release -- --release-as CHANGE&lt;/code&gt; - replacing CHANGE with either major or minor. Also, you can release to any version you define with &lt;code&gt;npm run release -- --release-as VERSION&lt;/code&gt; - replacing VERSION with any number you like such as 1.2.0.&lt;/p&gt;

&lt;p&gt;Running the release command will generate a changelog and you can push your code to your repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Other notes
&lt;/h2&gt;

&lt;p&gt;If you are working in a repository that utilizes multiple branches and merges. You can explore using squash merges so the versioning and changelog only apply to the branch you want them to. &lt;/p&gt;

&lt;p&gt;All three of these tools are powerful in their own right, but once you are comfortable using them you can explore some of their more advanced features and make your project organization even better. &lt;/p&gt;

</description>
      <category>git</category>
      <category>devops</category>
      <category>changelog</category>
      <category>jamstack</category>
    </item>
  </channel>
</rss>
