<?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: Abdul.js</title>
    <description>The latest articles on DEV Community by Abdul.js (@abdulisbomb).</description>
    <link>https://dev.to/abdulisbomb</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%2F194560%2F019129a0-1a94-4616-89d6-ef7c1a5d2c5b.jpg</url>
      <title>DEV Community: Abdul.js</title>
      <link>https://dev.to/abdulisbomb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abdulisbomb"/>
    <language>en</language>
    <item>
      <title>A beginners guide to diving into a codebase</title>
      <dc:creator>Abdul.js</dc:creator>
      <pubDate>Mon, 18 May 2020 14:59:05 +0000</pubDate>
      <link>https://dev.to/abdulisbomb/a-beginners-guide-to-diving-into-a-codebase-1dln</link>
      <guid>https://dev.to/abdulisbomb/a-beginners-guide-to-diving-into-a-codebase-1dln</guid>
      <description>&lt;p&gt;I wanted to write this guide because I was recently assigned to work on a feature on a codebase that had no documentation and no developers who had experience with the codebase (The developers that worked on the application are no longer at the company). This was a very daunting task for me as I am still a junior developer, but working on this project taught me a lot about diving into codebases and getting comfortable when you might not fully understand what is happening so I wanted to highlight what I learned, and some strategies that help me get up to speed. &lt;/p&gt;

&lt;p&gt;This guide is geared toward other newbies who will eventually have to dive into projects and need to quickly get a basic understanding of application they will be working on. Please also note that the recommendations provided below are strategies that work for me, and are not hard and fast rules to live by.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Read the README
&lt;/h2&gt;

&lt;p&gt;This one probably seems fairly obvious to a lot of developers, but I still believe that it is worth mentioning. The README file is a file that lives at the top level of a project and it highlights the basic features of the application, project dependancies, basic usage, and installation.&lt;/p&gt;

&lt;p&gt;Each time I dive into a new project, I begin by reading the README so that I can better understand the project, and more importantly, so that I can install it and get it working locally, which bring me to my next step.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Install the project locally
&lt;/h2&gt;

&lt;p&gt;This is something that you will have to do eventually so that you are able to get set up with your local development environment. The README document should include steps on how to locally install/build/deploy the application. &lt;/p&gt;

&lt;p&gt;At times this can prove to be more challenging than copy and pasting a few CLI commands from the README file. You might find yourself with unexpected errors, dependencies issues, or maybe you are frustrated that it's just not working. Though I do encourage asking questions, there are somethings you can do before you turn to your lead. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Review the error(s) to see if it provides a helpful message.&lt;/li&gt;
&lt;li&gt;Review the README documentation to see if your error is highlighted in a "common issues" section.&lt;/li&gt;
&lt;li&gt;Ensure that you have and perquisites already installed and working (Maybe you are working on a frontend application that requires the backend server to be running).&lt;/li&gt;
&lt;li&gt;Ensure that your application versions are correct. (Maybe you are using an incorrect version of mySQL, Java, etc..)&lt;/li&gt;
&lt;li&gt;Do some good ol' fashion googling and see if other people encountered similar issues based on the error message.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you did encounter many issues while trying to get the application set up, take note of the items you had trouble with, and how you solved them. Maybe you can bring up these items with the team to include in the documentation so that the next person who attempts to install the application does not have the same issues you did.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Speak the language
&lt;/h2&gt;

&lt;p&gt;When you first jump into a new codebase it can seem very daunting because you might not undetstand the syntax or conventions right away, but this is all stuff that comes with time so take a deep breath and jump in! When I dive into the codebase I like to do some simple checks to ensure I understand the very basics. I ask myself some of the following questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What language is this written in? (Maybe I can check the file extensions)&lt;/li&gt;
&lt;li&gt;What framework is application using? (Is this React?)&lt;/li&gt;
&lt;li&gt;What is the file structure like?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  4. The fun part 🎉🎉🎉
&lt;/h2&gt;

&lt;p&gt;At this point you have successfully got the application up and running and now you are ready to start poking around. This part is important for me because this lets me know that I can start making changes in my local environment and see them with my own eyes. I like to start by making a new branch and then I will change some basic things to make sure I understand some of the simple stuff.&lt;/p&gt;

&lt;p&gt;If you are working on a frontend application, you can do things like: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Change the text of a button.&lt;/li&gt;
&lt;li&gt;Log some output when the button is being clicked (&lt;code&gt;Hello World&lt;/code&gt; maybe?)&lt;/li&gt;
&lt;li&gt;Change the styles of the button. (Make it Huge!!)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Doing these simple things will help you reinforce the idea that you can work on this larger application. These are all some simple things that I like do when working on a new project I have not touched before. I would love to hear what other strategies you might have when jumping into a new code base!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>5 Things I learned after selling my first website</title>
      <dc:creator>Abdul.js</dc:creator>
      <pubDate>Tue, 16 Jul 2019 23:51:57 +0000</pubDate>
      <link>https://dev.to/abdulisbomb/5-things-i-learned-after-selling-my-first-website-3ch9</link>
      <guid>https://dev.to/abdulisbomb/5-things-i-learned-after-selling-my-first-website-3ch9</guid>
      <description>&lt;p&gt;Preface: I would like to start by saying I am not a professional web developer, I am just a person who recently graduated and wanted a project to work on to build my portfolio. Please read at your own discretion I just wanted to share what I personally learned from my experience.  &lt;/p&gt;

&lt;p&gt;When I first graduated from college, I knew that to be a successful web developer, I would need some projects under my belt. I didn't know a lot about web design but I knew I understood the core concepts. I connected with a local historical society my girlfriend was volunteering at the time, and they decided to let me have a run at it. Without further ado, here are somethings I learned after working on the website. &lt;/p&gt;

&lt;h2&gt;
  
  
  1. My first website doesn't have to be my best website
&lt;/h2&gt;

&lt;p&gt;This probably sounds pretty silly to say because of course, you are hopefully going to grow and build cooler things in the future, but this was something that I had to learn as I was getting started with my first site. I wanted to implement so many cool features, design elements, and throw fancy bells and whistles I was starting to lose sight of what the customer actually wanted. After wracking my brain over how I was going to do any of these things, I went back to the basics of what my client wanted. This was a simple static website, with consistent design language. After understanding this I worked to create a basic responsive site, then I just built little nice to have things on top of it. &lt;/p&gt;

&lt;h2&gt;
  
  
  2. How to effectively communicate with clients
&lt;/h2&gt;

&lt;p&gt;When I first signed up to work on this, I knew one challenge I would have to face, was being able to communicate with people who had no experience working with a freelance developer. Many times there were multiple points of contact, each with different opinions, discussed features that would take months to implement, flip-flopping on design choices, and arbitrary deadlines. From this, I learned that I needed to draft a contract, and set in stone exactly what I was doing for my client. By doing this I was able to set a designated point of contact, manage the expectations of the project, and get a better understanding of what I needed to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. How to challenge my self just enough to get me out of my comfort zone
&lt;/h2&gt;

&lt;p&gt;When building the site, I knew that I wanted to build it so the client could have a cool new site, but I also really wanted to use this as an opportunity to learn something new. I knew that my customer wanted a static website, so I started playing around with Jekyll. I found that it worked nicely for what I wanted to achieve. By playing around with new tools and technologies like Jekyll, Netlify, and Firebase I was able to challenge my self to learn some new tools, without overwhelming my self. Now whenever I continue to build projects I see them as a chance to try something new without getting in over my head. I learned that it was okay to be uncomfortable while trying to learn something new. &lt;/p&gt;

&lt;h2&gt;
  
  
  4. How should I bill my customer?
&lt;/h2&gt;

&lt;p&gt;This was something that I actually learned about while listening to a &lt;br&gt;
&lt;a href="https://syntax.fm"&gt;Syntax.fm&lt;/a&gt; podcast. There was a while when I was working on the project and I got so caught up in the fun of developing, I completely forgot about charging for the project. I had to decide if I wanted to bill my client hourly, or if I wanted to charge a lump sum agreed amount. At this time I was working a full time job and only doing this freelance website as a side gig to buy a Nintendo Switch (and build my portfolio). I knew that I could not devote all of my hours to the project. I ended up charging a one time fee for the project. Though, I really wish I calculated for the taxes I would pay on this project. I really took a hit when I spent the money from the project right away. &lt;/p&gt;

&lt;h2&gt;
  
  
  5. When does my work end
&lt;/h2&gt;

&lt;p&gt;Once I had completed the project, I had been kinda burnt out on it, and I knew that I even though I had a lot of fun with it, there was a light at the end of the tunnel, and I wanted to ship it. This is something that I am still continuously learning about, and that is, when am I done with this thing. Luckily when I had built the site, I had built it out as a static website, so it didn't need to be continuously tinkered with, though my client will still ask me if I am interested in a new contract to continue to update, and work on new features for this site. This is something I am actually interested to hear about from others who have developed sites, and that is &lt;strong&gt;When am I done with this?&lt;/strong&gt; When is it okay for me to cut off support, or how to other handle the hand off of a freelance project.&lt;/p&gt;

&lt;p&gt;I have linked the site here if anyone wants to check it out:&lt;br&gt;
&lt;a href="https://montebellohistoricalsociety.org/"&gt;https://montebellohistoricalsociety.org/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
    </item>
    <item>
      <title>What are some small steps we can take to save the environment? 🌎</title>
      <dc:creator>Abdul.js</dc:creator>
      <pubDate>Fri, 12 Jul 2019 22:37:35 +0000</pubDate>
      <link>https://dev.to/abdulisbomb/what-are-some-small-steps-we-can-take-to-save-the-environment-459g</link>
      <guid>https://dev.to/abdulisbomb/what-are-some-small-steps-we-can-take-to-save-the-environment-459g</guid>
      <description>&lt;p&gt;A lot of people think that saving the environment means that you need to completely change your lifestyle and go vegan, devout your hours to picking up trash and only eat organic produce. I applaud you if you do happen to do all of those things, though there are small steps everyone can take to leading a more environmentally conscious lifestyle. Some small changes I have made include things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bringing a water bottle to work.&lt;/li&gt;
&lt;li&gt;Turning off the water when I brush my teeth.&lt;/li&gt;
&lt;li&gt;Recycling old memes on the work slack channel.&lt;/li&gt;
&lt;li&gt;Bringing reusable bags to the grocery store.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What are some small life adjustments you make to save the environment?&lt;br&gt;
&lt;a href="https://i.giphy.com/media/KhlVSyjsbx18A/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/KhlVSyjsbx18A/giphy.gif" alt="Captiain Planet"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>I have no idea what level developer I am ¯\_(ツ)_/¯</title>
      <dc:creator>Abdul.js</dc:creator>
      <pubDate>Fri, 12 Jul 2019 21:27:26 +0000</pubDate>
      <link>https://dev.to/abdulisbomb/i-have-no-idea-what-level-developer-i-am---3n16</link>
      <guid>https://dev.to/abdulisbomb/i-have-no-idea-what-level-developer-i-am---3n16</guid>
      <description>&lt;p&gt;This is my first time posting on this site, but I really love reading about what everyone else is sharing so I thought I would share as well.&lt;/p&gt;

&lt;p&gt;I have been writing code since I first started as a computer science student and to be perfectly honest, I was......terrible at it. I had a lot of friends who immediately picked it up, making me think that I was not cut out for it. I considered dropping out of the program because I was already failing. For some strange reason, I went to my professor and begged her to let me stay in the program. To my surprise, she gave me another chance, and I worked hard to get on track with the other students. Eventually, as the result of many sleepless nights, lots of tea, and some great people on YouTube, I was able to pick up the concepts and graduate with some damn good grades. &lt;/p&gt;

&lt;p&gt;Once I did graduate, I quickly learned that everything I learned in school was not all I needed to know to get a career as a junior developer. I had always thought that junior developer meant that you had some school projects, maybe some passion projects under your belt, and a willingness to learn. I was not expecting to see job postings requiring 2-4 years of experience, mastery of a framework, and the ability to walk on water. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/lkdH8FmImcGoylv3t3/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/lkdH8FmImcGoylv3t3/giphy.gif" alt="Confused person"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have been out of school for almost 2 years now working at a SaaS company doing software support (writing 💩 tons of SQL, CSS, debugging JS), and I feel like I have grown a lot a developer, though, I still feel like I have no idea what level of developer I am. I read/watch lots of tutorials online and I feel like many of them are directed to teach the basics of programming and I feel like I am having a hard time understanding what really is the difference between a someone who knows the basics and someone who can be the most junior of the developer. &lt;/p&gt;

&lt;p&gt;In the last two years, I have built some projects, I even sold my very first website (available at &lt;a href="https://montebellohistoricalsociety.org/"&gt;https://montebellohistoricalsociety.org/&lt;/a&gt;), which I was very excited about. I picked up some cool new tools and frameworks. My favorites being Netlify and VueJS. Though after everything, I still feel like I am still not at the level Junior Developer needs to be. At this point in my career I know I am not a beginner, but I still don't know what really is a "Junior Developer".&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
    </item>
  </channel>
</rss>
