<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Amarachi Azubuike]]></title><description><![CDATA[Front end developer]]></description><link>https://amarachijohnson.com</link><generator>RSS for Node</generator><lastBuildDate>Sun, 07 Jun 2026 07:45:17 GMT</lastBuildDate><atom:link href="https://amarachijohnson.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[20 Best YouTube Channels for Learning JavaScript (For Newbies and Beyond)]]></title><description><![CDATA[We are in the era of information. People are more willing to share information and knowledge, both paid and free. The rate of information consumption is also increasing exponentially, with the availability of several platforms geared at information s...]]></description><link>https://amarachijohnson.com/20-best-youtube-channels-for-learning-javascript-for-newbies-and-beyond</link><guid isPermaLink="true">https://amarachijohnson.com/20-best-youtube-channels-for-learning-javascript-for-newbies-and-beyond</guid><category><![CDATA[JavaScript]]></category><category><![CDATA[Tutorial]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Thu, 14 Oct 2021 11:20:40 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1634206985844/EHi7R9W9Q.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We are in the era of information. People are more willing to share information and knowledge, both paid and free. The rate of information consumption is also increasing exponentially, with the availability of several platforms geared at information sharing. Youtube is full of excellent educational content for many topics. You can find resources on virtually anything you want to learn from various persons sharing their knowledge and for free too. As a front-end engineer, JavaScript lover/enthusiast, it could be cumbersome finding good resources out of the myriad of video content online.</p>
<p>If you’re looking for a channel to learn and improve your JavaScript skills, this article has what you’re looking for. In this article, you’ll find 20 great YouTube channels where you are sure to get quality content on both beginner and advanced JavaScript topics. </p>
<p>Continue reading: <a target="_blank" href="https://www.works-hub.com/learn/20-best-youtube-channels-for-learning-javascript-for-newbies-and-beyond-8ea65">Take me there</a></p>
]]></content:encoded></item><item><title><![CDATA[The Beginner's Guide to Contributing to Open Source]]></title><description><![CDATA[Open-source projects are software whose codes are made public and are free to use, study, modify, and distribute for any purpose. Contributing to an open-source project is one of the best ways to receive immediate feedback and grow your development a...]]></description><link>https://amarachijohnson.com/the-beginners-guide-to-contributing-to-open-source</link><guid isPermaLink="true">https://amarachijohnson.com/the-beginners-guide-to-contributing-to-open-source</guid><category><![CDATA[opensource]]></category><category><![CDATA[Open Source]]></category><category><![CDATA[Beginner Developers]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Tue, 08 Jun 2021 00:32:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1623112265864/kfUK7RZXq.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Open-source projects are software whose codes are made public and are free to use, study, modify, and distribute for any purpose. Contributing to an open-source project is one of the best ways to receive immediate feedback and grow your development and programming skills.</p>
<p>In this article, we covered:</p>
<ul>
<li>What open-source is</li>
<li>Benefits of contributing to open-source</li>
<li>How to get started with an open-source contribution</li>
<li>Open-source communities to join</li>
<li>Categories of people in open source projects</li>
<li>How to contribute to open-source without writing code</li>
<li>Resources and further reading</li>
</ul>
<p>Continue reading this Article:  <a target="_blank" href="https://www.works-hub.com/learn/the-beginners-guide-to-contributing-to-open-source-4a526">Take me there</a> </p>
]]></content:encoded></item><item><title><![CDATA[Most Popular No-code tools for Building Websites]]></title><description><![CDATA[You must not know how to code before you can build an aesthetically pleasing website. No offence to coders (I write codes too). However, sometimes you'd need some of the flexibility and efficiency no-code tools bring along.
If you're a designer, entr...]]></description><link>https://amarachijohnson.com/most-popular-no-code-tools-for-building-websites</link><guid isPermaLink="true">https://amarachijohnson.com/most-popular-no-code-tools-for-building-websites</guid><category><![CDATA[webdesign]]></category><category><![CDATA[WordPress]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Fri, 12 Feb 2021 14:51:55 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1613141459853/J4Io7okG7.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You must not know how to code before you can build an aesthetically pleasing website. No offence to coders (I write codes too). However, sometimes you'd need some of the flexibility and efficiency no-code tools bring along.</p>
<p>If you're a designer, entrepreneur, small business owner etc, learning to build your own website can be an additional and handy skill.
If you're a freelancer like me, it's always advisable to know how to use one or more of these no-code tools in order to meet the needs of potential clients.</p>
<blockquote>
<p>No-code tools are softwares you can use to build and manage websites without writing code. </p>
</blockquote>
<p>Interesting? Yes!</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1613141166607/CMdMwNhov.gif" alt="tenor.gif" /></p>
<p>The end result of no-code tools is that it makes building a website accessible to anyone – even people who aren’t developers.</p>
<h2 id="what-you-can-build-with-no-code-tools">What you can build with no-code tools</h2>
<p>Literally everything that lives on the web</p>
<ul>
<li>Business websites</li>
<li>eCommerce stores</li>
<li>Blogs</li>
<li>Portfolios</li>
<li>Resumes</li>
<li>Forums</li>
<li>Social networks</li>
<li>Membership sites</li>
<li>…pretty much anything else you can dream up.</li>
</ul>
<p>That said, let's delve into a few of my favorite no-code tools and what you can do with them.</p>
<h2 id="wixhttpswixcom"><a target="_blank" href="https://wix.com">Wix</a></h2>
<p>Wix is arguably the easiest website builder due to its wide range of free templates. You can choose from over 500 industry-specific templates and make use of its incredible <em>drag-and-drop</em> editor. Or if you'd prefer, use Wix ADI and let Wix design a website for you!
You can also decide to <strong> build your own website from scratch</strong>.
Wix is completely <em>free</em>, for as long as you want. If you need professional features like your own domain name or ecommerce, you'd have to choose from one of their premium plans ranging from “Combo” to “Business VIP”. </p>
<p><em>There a probably a lot of people using wix templates, so I'd advice you edit your websites to represent the brand, so its uniqueness won't be lost in the sea of similar websites.</em> 
In other words, don't copy and paste templates.</p>
<h2 id="wordpresshttpswordpressorg"><a target="_blank" href="https://wordpress.org">Wordpress</a></h2>
<p>This is the most popular no-code tool for building websites I know.
Many years ago, WordPress was primarily a tool to create a blog, rather than more traditional websites. Nowadays, you can create any type of website with WordPress, due its widely available plugins, themes and addons.</p>
<p><em>I'm currently writing a tutorial on how to build your first WordPress project (a portfolio page) using WordPress and Elementor plugin. Subscribe to my mailing list to be notified when it drops.</em></p>
<h2 id="webflowhttpswebflowcom"><a target="_blank" href="https://webflow.com">Webflow</a></h2>
<p>Webflow has been around for a couple of years, but not so many people know about it. I've been recently working around building my first website with it.
One major cool stuff about Webflow is the ability to export your entire project code.
How cool is that?!!</p>
<p>Dragging and dropping a bunch of tools, and then exporting the entire things as HTML, CSS, and JavaScript.</p>
<p>This is the coolest thing that has ever happened to no-code designers y'all.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1613141130141/iYvEDXj8J.gif" alt="PassionateMelodicBear-max-1mb.gif" /></p>
<p>I believe you'd want to check out one or all of these tools and get started with designing great websites. Which of them are you trying out first?</p>
<p>Got questions, reach out to me via <a target="_blank" href="https://twitter.com/amarathelight">twitter</a></p>
]]></content:encoded></item><item><title><![CDATA[Productivity Hacks for Developers]]></title><description><![CDATA[For some people, productivity as a developer means the number of codes you can write in minimal time, while for some, it is the number of quality codes you can churn out in the barest amount of time. Whichever definition you choose is great. This is ...]]></description><link>https://amarachijohnson.com/productivity-hacks-for-developers</link><guid isPermaLink="true">https://amarachijohnson.com/productivity-hacks-for-developers</guid><category><![CDATA[Productivity]]></category><category><![CDATA[Visual Studio Code]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Sat, 23 Jan 2021 14:40:38 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1611411666617/kkyduqE8Y.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For some people, productivity as a developer means the number of codes you can write in minimal time, while for some, it is the number of quality codes you can churn out in the barest amount of time. Whichever definition you choose is great. This is how I define mine: Productivity is the ratio between the output churned out and the volume of inputs. </p>
<p>Being a productive developer has its perks which include: Job satisfaction, higher pay, work-life balance, and a happy-boss.</p>
<p>There are a thousand and one things fighting for your attention on a daily basis,  and knowing where and when to respond to them and with which tools, would place one developer in front of the other on the productivity radar (If there is anything like that).</p>
<p>In this article, you’ll learn how to set goals, take charge of your day, and become a super-productive developer.</p>
<h2 id="why-does-it-matter">Why does it matter?</h2>
<p>Humans are not machines and even machines pack up if not serviced. You can use up will-power and mental resources - and become a vegetable.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1611412194144/an6OPrxig.jpeg" alt="fully charged head.jpg" />
Productivity != being busy. You can be busy a whole day, doing things with very little significance.</p>
<p>Whether you’re a newbie, intermediate, or a very experienced developer, you need to be more productive to become better.</p>
<p>Companies love to have productive developers in their team with the ever teaming competition on their neck daily, they want someone who can deliver quality codes in less time. </p>
<p>So, the question is, with the distractions flying around vying for one’s attention, how can one be more productive as a developer? </p>
<h3 id="set-goals">Set Goals</h3>
<p>Without clear goals to drive you forward, you won’t know if you’re making progress in the activities you consider most important.
Map out what you want to achieve within a particular time frame, and outline how you're set to achieve them. When making a goal, bear the following in mind:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1611412279266/oq3vp-peU.jpeg" alt="goal.jpg" />
<strong>Your goals should be Specific</strong>. Make a list of what you want to achieve and in simple and straightforward terms too. 
Saying "I'd build a full Vue application this week" is vague compared to when you say "I'll build a todo-app using Vue this week"
This specificity will help you in breaking the task further down to daily goals, and hourly goals as the case may be.</p>
<p><strong>Your goals should be measurable</strong>. If you can't measure your goals, then it'd be difficult to monitor progress or digress. Instead of saying "I'll become a better developer this year" ("better" is relative and can't be measured) say, I'll build 20 applications using Vue, NuxtJs, and GraphQl. This way, if you're able to build 10, you'd at least discover that you achieved a percentage of your goals.</p>
<p><strong>Your goals should be attainable</strong>. Don't make goals you and your guts clearly know you can't achieve. You'll only be setting yourself up for disappointment and sap your motivation when you don't achieve them.</p>
<p><strong>Your goals should be relevant</strong>.
The goal you pick should be pertinent to your field or should benefit you directly. It would be awkward for me to want to be the best actress in Nigeria in 2020 when I've not starred in a local drama concert for once.</p>
<p><strong>Your goal should be time-bound</strong>. Adding a timing to your goals gives you a sense of urgency needed to wake you up to do something even on days you don't feel like it. Example #100daysofCode</p>
<h3 id="avoid-distractions">Avoid Distractions</h3>
<p>Distractions come in a number of ways, with social media being the all-time enemy of developers. As a developer, it is given that you spend a lot of time with your laptop, iPad, and phone. Notifications could pop up just the time you're about testing a feature with your phone🤦🏼 and this minute, you're deciding to check out this one notification, and in the next 1 hour, you're wondering what made you pick up the phone in the first place. Tragic!</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1611412700675/-iETBj5bN.png" alt="meme.PNG" /></p>
<p>These are a few things that have worked for me against social media distractions:</p>
<ul>
<li><p>Putting a considerable distance between me and my phone. Keeping my phone a room or 2 away from me makes it difficult for me to reach for it, and aids in resisiting the impulse to check one message.</p>
</li>
<li><p>Turning off social media notification. All of them, except my email and Slack. This ensures that I do not get tempted to "check" a notification.</p>
</li>
<li><p>Calendar blocking. In my daily calendar, I have times designated for my daily activities including social media.
You may be wondering, so how can one be active on social media and be a good developer at the same time? This is your answer.
Those who you consider active on social media may be spending considerably lesser amount of time on social media than you do. They schedule posts and engage with people during their "social media times" and then log off while you spend 5 hours doom scrolling. Please don't.</p>
</li>
</ul>
<h3 id="have-a-good-project-structure">Have a good project structure</h3>
<p>Breaking down your project into chunks or sprints helps you set up systems to execute them in sprints.</p>
<h3 id="bring-in-automations">Bring in Automations</h3>
<p>Automate the small stuff. There are a few tasks that could be cleared off your table if you cease to do them manually. Eg, using schedulers for social media posts, labeling emails.</p>
<h3 id="sleep-more">Sleep more</h3>
<p>A lot of eyes would have had to stay open 24hours everyday, if there were nothing like sleep. A lot of developers still consider sleep a luxury or a phenomenon for the "weak". </p>
<blockquote>
<p>According to the National Sleep Foundation, healthy adults need between 7 and 9 hours of sleep per night.</p>
</blockquote>
<p>I inserted this fact to encourage you to sleep more. An unaccredited source also discovered that sometimes, it only takes few hours of sleep and a walk in the park to solve the bug that had kept you awake for days.</p>
<h3 id="dont-burn-out">Don’t burn out</h3>
<p>Burn out is a chronic state of exhaustation at which point you lose the will to do all the things that usually fascinate you. At this point, productivity would be alien to you, because it takes a vibrant mind to be productive.
Burn out is mostly caused by stress and can be <a target="_blank" href="https://amarachiazubuike.com/what-do-you-do-when-you-have-a-burn-out-ckdkvsrif03yyz2s16c3z7yvu">prevented</a> via regular exercise, social activities, taking both mental and physical breaks.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1611412991375/L8tDfsdD5.jpeg" alt="tiredgif.jpg" />
By all means, do not burn out.</p>
<h3 id="keep-learning">Keep learning</h3>
<p>The more you know, the more productive you become. Take new courses, try new methods of achieving a thing, be a lifelong learner. Make it a habit to learn something new each day.</p>
<h3 id="read-books">Read books</h3>
<p>Reading can be both relaxing, educating, and entertaining (Depends on what you're reading).
If you're looking to learn, relax or simply entertain yourself, a good book could bring that along with good vibes for maximum productivity.</p>
<p>We've been able to go through 8 ways of becoming more productive as a developer. Which ones will you be practicing first?</p>
<p>I hope you found these tips useful. If so, follow me on <a target="_blank" href="https://twitter.com/amara_thelight">Twitter</a>.</p>
<p><em>This is an excerpt of my talk at the <a target="_blank" href="https://twitter.com/vuejsng">VueJs Nigeria Meetup</a></em>.</p>
]]></content:encoded></item><item><title><![CDATA[Technical Writing for Beginners – An A-Z Guide to Tech Blogging Basics]]></title><description><![CDATA[If you love writing and technology, technical writing could be a suitable career for you. It's also something else you can do if you love tech but don’t really fancy coding all day long.
Technical writing might also be for you if you love learning by...]]></description><link>https://amarachijohnson.com/technical-writing-for-beginners-an-a-z-guide-to-tech-blogging-basics</link><guid isPermaLink="true">https://amarachijohnson.com/technical-writing-for-beginners-an-a-z-guide-to-tech-blogging-basics</guid><category><![CDATA[Technical writing ]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Sat, 19 Dec 2020 21:56:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1608414961369/HOXqsuD9R.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you love writing and technology, technical writing could be a suitable career for you. It's also something else you can do if you love tech but don’t really fancy coding all day long.</p>
<p>Technical writing might also be for you if you love learning by teaching others, contributing to open source projects and teaching others how to do so, too, or basically enjoy explaining complex concepts in simple ways through your writing.</p>
<p>Let's dive into the fundamentals and learn about what you should know and consider when getting started with technical writing.</p>
<h2 id="table-of-contents">Table of Contents</h2>
<p>In this article, we’ll be looking at:</p>
<ul>
<li>What Technical writing is</li>
<li>Benefits of Technical Writing</li>
<li>Necessary skills to have as a Technical Writer</li>
<li>The Technical Writing Process</li>
<li>Platforms for publishing your articles</li>
<li>Technical Writing Courses</li>
<li>Technical Writing forums and communities</li>
<li>Some amazing technical writers to follow</li>
<li>Final Words and references</li>
</ul>
<h2 id="what-is-technical-writing">What is Technical Writing?</h2>
<p>Technical writing is the art of providing detail-oriented instruction to help users understand a specific skill or product.</p>
<p>And a technical writer is someone who writes these instructions, otherwise known as technical documentation or tutorials. This could include user manuals, online support articles, or internal docs for coders/API developers.</p>
<p>A technical writer communicates in a way that presents technical information so that the reader can use that information for an intended purpose.</p>
<h2 id="benefits-of-technical-writing">Benefits of Technical Writing</h2>
<p>Technical writers are lifelong learners. Since the job involves communicating complex concepts in simple and straightforward terms, you must be well-versed in the field you're writing about. Or be willing to learn about it.</p>
<p>This is great, because with each new technical document you research and write, you will become an expert on that subject.</p>
<p>Technical writing also gives you a better sense of user empathy. It helps you pay more attention to what the readers or users of a product feel rather than what you think.</p>
<p>You can also make money as a technical writer by contributing to organizations. Here are <a target="_blank" href="https://catalins.tech/websites-that-pay-you-to-write-technical-articles">some organizations that pay you</a> to write for them, like <a target="_blank" href="https://smashingmagazine.com">Smashing Magazine</a>, <a target="_blank" href="https://auth0.com">AuthO</a>, <a target="_blank" href="https://twilio.com">Twilio</a>, and <a target="_blank" href="https://stackoverflow.com">Stack Overflow</a>.</p>
<p>In addition to all this, you can contribute to Open Source communities and participate in paid open source programs like <a target="_blank" href="https://edidiongasikpo.com/how-to-crack-the-google-season-of-docs-application-process-for-2020">Google Season of Docs</a> and <a target="_blank" href="https://outreachy.org">Outreachy</a></p>
<p>You can also take up technical writing as a full time profession – lots of companies need someone with those skills.</p>
<h2 id="necessary-skills-to-have-as-a-technical-writer">Necessary Skills to Have as a Technical Writer</h2>
<h3 id="understand-the-use-of-proper-english">Understand the use of proper English</h3>
<p>Before you consider writing, it is necessary to have a good grasp of English, its tenses, spellings and basic grammar. Your readers don't want to read an article riddled with incorrect grammar and poor word choices.</p>
<h3 id="know-how-to-explain-things-clearly-and-simply">Know how to explain things clearly and simply</h3>
<p>Knowing how to implement a feature doesn't necessarily mean you can clearly communicate the process to others.</p>
<p>In order to be a good teacher, you have to be empathetic, with the ability to teach or describe terms in ways suitable for your intended audience.</p>
<blockquote>
<p>If you can't explain it to a six year old, you don't understand it yourself. Albert Einstein</p>
</blockquote>
<h3 id="possess-some-writing-skills">Possess some writing skills‌‌</h3>
<p>I believe that writers are made, not born. And you can only learn how to write by actually writing.</p>
<p>You might never know you have it in you to write until you put pen to paper. And there's only one way to know if you have some writing skills, and that's by writing.</p>
<p>So I encourage you to start writing today. You can choose to start with any of the platforms I listed in this section to stretch your writing muscles.</p>
<p>And of course, it is also a huge benefit to have some experience in a technical field.</p>
<h2 id="the-technical-writing-process">The Technical Writing Process</h2>
<h3 id="analyze-and-understand-who-your-readers-are">Analyze and Understand who your Readers are</h3>
<p>The biggest factor to consider when you're writing a technical article is your intended/expected audience. It should always be at the forefront of your mind.</p>
<p>A good technical writer writes based on the reader’s context. As an example, let's say you're writing an article targeted at beginners. It is important not to assume that they already know certain concepts.</p>
<p>You can start out your article by outlining any necessary prerequisites. This will make sure that your readers have (or can acquire) the knowledge they need before diving right into your article.</p>
<p>You can also include links to useful resources so your readers can get the information they need with just a click.</p>
<p>In order to know for whom you are writing, you have to gather as much information as possible about who will use the document.</p>
<p>It is important to know if your audience has expertise in the field, if the topic is totally new to them, or if they fall somewhere in between.</p>
<p>Your readers will also have their own expectations and needs. You must determine what the reader is looking for when they begin to read the document and what they'll get out of it.</p>
<p>To understand your reader, ask yourself the following questions before you start writing:</p>
<ul>
<li>Who are my readers?</li>
<li>What do they need?</li>
<li>Where will they be reading?</li>
<li>When will they be reading?</li>
<li>Why will they be reading?</li>
<li>How will they be reading?
These questions also help you think about your reader's experience while reading your writing, which we'll talk about more now.</li>
</ul>
<h2 id="think-about-user-experience">Think About User Experience</h2>
<p>User experience is just as important in a technical document as it is anywhere on the web.</p>
<p>Now that you know your audience and their needs, keep in mind how the document itself services their needs. It’s so easy to ignore how the reader will actually use the document.</p>
<p>As you write, continuously step back and view the document as if you're the reader. Ask yourself: Is it accessible? How will your readers be using it? When will they be using it? Is it easy to navigate?</p>
<p>The goal is to write a document that is both useful to and useable by your readers.</p>
<h2 id="plan-your-document">Plan Your Document</h2>
<p>Bearing in mind who your users are, you can then conceptualize and plan out your document.</p>
<p>This process includes a number of steps, which we'll go over now.</p>
<h3 id="conduct-thorough-research-about-the-topic">Conduct thorough research about the topic</h3>
<p>While planning out your document, you have to research the topic you're writing about. There are tons of resources only a Google search away for you to consume and get deeper insights from.</p>
<p>Don't be tempted to lift off other people's works or articles and pass it off as your own, as this is plagiarism. Rather, use these resources as references and ideas for your work.</p>
<p>Google as much as possible, get facts and figures from research journals, books or news, and gather as much information as you can about your topic. Then you can start making an outline.</p>
<h3 id="make-an-outline">Make an outline</h3>
<p>Outlining the content of your document before expanding on it helps you write in a more focused way. It also lets you organize your thoughts and achieving your goals for your writing.</p>
<p>An outline can also help you identify what you want your readers to get out of the document. And finally, it establishes a timeline for completing your writing.</p>
<h3 id="get-relevant-graphicsimages">Get relevant graphics/images</h3>
<p>Having an outline is very helpful in identifying the various virtual aids (infographics, gifs, videos, tweets) you'll need to embed in different sections of your document.</p>
<p>And it'll make your writing process much easier if you keep these relevant graphics handy.</p>
<h2 id="write-in-the-correct-style">Write in the Correct Style</h2>
<p>Finally, you can start to write! If you've completed all these steps, writing should become a lot easier. But you still need to make sure your writing style is suitable for a technical document.</p>
<p>The writing needs to be accessible, direct, and professional. Flowery or emotional text is not welcome in a technical document. To help you maintain this style, here are some key characteristics you should cultivate.</p>
<h3 id="use-active-voice">Use Active Voice</h3>
<p>It's a good idea to use active voices in your articles, as it is easier to read and understand than the passive voice.</p>
<p>Active voice means that the subject of the sentence is the one actively performing the action of the verb. Passive voice means that a subject is the recipient of a verb's action.</p>
<p>Here's an example of passive voice: The documentation should be read six times a year by every web developer.</p>
<p>And here's an example of active voice: Every web developer should read this documentation 6 times a year.</p>
<h3 id="choose-your-words-carefully">Choose Your Words Carefully</h3>
<p>Word choice is important. Make sure you use the best word for the context. Avoid overusing pronouns such as ‘it’ and ‘this’ as the reader may have difficulty identifying which nouns they refer to.</p>
<p>Also avoid slang and vulgar language – remember you're writing for a wider audience whose disposition and cultural inclinations could differ from yours.</p>
<h3 id="avoid-excessive-jargon">Avoid Excessive Jargon</h3>
<p>If you’re an expert in your field, it can be easy to use jargon you're familiar with without realizing that it may be confusing to other readers.</p>
<p>You should also avoid using acronyms you haven't previously explained.</p>
<p>Here's an Example:</p>
<p>Less clear: PWAs are truly considered the future of multi-platform development. Their availability on both Android and iOS makes them the app of the future.</p>
<p>Improved: Progressive Web Applications (PWAs) are truly the future of multi-platform development. Their availability on both Android and iOS makes PWAs the app of the future.</p>
<h3 id="use-plain-language">Use Plain Language</h3>
<p>Use fewer words and write in a way so that any reader can understand the text.‌‌ Avoid big lengthy words. Always try to explain concepts and terms in the clearest way possible.</p>
<h3 id="visual-formatting">Visual Formatting</h3>
<p>A wall of text is difficult to read. Even the clearest instructions can be lost in a document that has poor visual representation.</p>
<p>They say a picture is worth a thousand words. This rings true even in technical writing.</p>
<p>But not just any image is worthy of a technical document. Technical information can be difficult to convey in text alone. A well-placed image or diagram can clarify your explanation.</p>
<p>People also love visuals, so it helps to insert them at the right spots. Consider the images below:</p>
<p>First, here's a blog snippet without visuals:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1608046626268/gUiVLLysl.png" alt="step1-1.png" /></p>
<p>Here's a snippet of same blog, but with visuals:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1608046649830/oIfCIWeh_.png" alt="step1-1 (1).png" /></p>
<p>Adding images to your articles makes the content more relatable and easier to understand. In addition to images, you can also use gifs, emoji, embeds (social media, code) and code snippets where necessary.</p>
<p>Thoughtful formatting, templates, and images or diagrams will also make your text more helpful to your readers. You can check out the references below for a technical writing template from @Bolajiayodeji.</p>
<h3 id="do-a-careful-review">Do a Careful Review</h3>
<p>Good writing of any type must be free from spelling and grammatical errors. These errors might seem obvious, but it's not always easy to spot them (especially in lengthy documents).</p>
<p>Always double-check your spelling (you know, dot your Is and cross your Ts) before hitting 'publish'.</p>
<p>There are a number of free tools like Grammarly and the Hemingway app that you can use to check for grammar and spelling errors. You can also share a draft of your article with someone to proofread before publishing.</p>
<h2 id="where-to-publish-your-articles">Where to Publish Your Articles</h2>
<p>Now that you've decided to take up technical writing, here are some good platforms where you can start putting up technical content for free. They can also help you build an appealing portfolio for future employers to check out.</p>
<p><strong><a target="_blank" href="https://dev.to">Dev.to</a></strong> is a community of thousands of techies where both writers and readers get to meaningfully engage and share ideas and resources.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1608046580062/BdTQg-Ic2.png" alt="devto.PNG" /></p>
<p><strong><a target="_blank" href="https://hashnode.com/">Hashnode</a></strong> is my go-to blogging platform with awesome perks such as custom domain mapping and an interactive community. Setting up a blog on this platform is also easy and fast.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1608046560645/FGNzNWhjZ.png" alt="hashnode.PNG" /></p>
<p><strong><a target="_blank" href="https://freecodecamp.org/">freeCodeCamp</a></strong> has a very large community and audience reach and is a great place to publish your articles. However, you'll need to apply to write for their publication with some previous writing samples.</p>
<p>Your application could either be accepted or rejected, but don't be discouraged. You can always reapply later as you get better, and who knows? You could get accepted.</p>
<p>If you do write for them, they'll review and edit your articles before publishing, to make sure you publish the most polished article possible. They'll also share your articles on their social media platforms to help more people read them.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1608046479643/JSwik5hdI.png" alt="freecodecamp.PNG" /></p>
<p><strong><a target="_blank" href="https://hackernoon.com/">Hackernoon</a></strong> has over 7,000 writers and could be a great platform for you to start publishing your articles to the over 200,000 daily readers in the community.</p>
<p>Hacker Noon supports writers by proofreading their articles before publishing them on the platform, helping them avoid common mistakes.
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1608046495638/LGNxEfrwN.png" alt="hackernoon.PNG" /></p>
<h2 id="technical-writing-courses">Technical Writing Courses</h2>
<p>Just like in every other field, there are various processes, rules, best practices, and so on in Technical Writing.</p>
<p>Taking a course on technical writing will help guide you through every thing you need to learn and can also give you a major confidence boost to kick start your writing journey.</p>
<p>Here are some technical writing courses you can check out:</p>
<ul>
<li><a target="_blank" href="https://developers.google.com/tech-writing">Google Technical Writing Course</a> (Free)</li>
<li><a target="_blank" href="https://www.udemy.com/topic/technical-writing/">Udemy Technical Writing Course</a> (Paid)</li>
<li><a target="_blank" href="https://hashnode.com/bootcamp/batch-2">Hashnode Technical Writing Bootcamp</a> (Free)</li>
</ul>
<h2 id="technical-writing-forums-and-communities">Technical Writing Forums and Communities</h2>
<blockquote>
<p>Alone we can do so little, together, we can do so much ~ Helen Keller</p>
</blockquote>
<p>Being part of a community or forum along with people who share same passion as you is beneficial. You can get feedback, corrections, tips and even learn some style tips from other writers in the community.</p>
<p>Here are some communities and forums for you to join:</p>
<ul>
<li><a target="_blank" href="https://hashnode.com/">Hashnode</a></li>
<li><a target="_blank" href="https://dev.to/">Dev.to</a></li>
<li><a target="_blank" href="http://technicalwritingworld.com/forum">Technical Writing World</a></li>
<li><a target="_blank" href="https://www.linkedin.com/groups/112571/profile">Technical Writer Forum</a></li>
<li><a target="_blank" href="http://forum.writethedocs.org/">Write the Docs Forum</a></li>
</ul>
<h2 id="some-amazing-technical-writers-to-follow">Some Amazing Technical Writers to follow</h2>
<p>In my technical writing journey, I've come and followed some great technical writers whose writing journey, consistency, and style inspire me.</p>
<p>These are the writers whom I look up to and consider virtual mentors on technical writing. Sometimes, they drop technical writing tips that I find helpful and have learned a lot from.</p>
<p>Here are some of those writers (hyperlinked with their twitter handles):</p>
<p><a target="_blank" href="https://twitter.com/ossia">Quincy Larson</a>
<a target="_blank" href="https://twitter.com/didicodes">Edidiong Asikpo</a>
<a target="_blank" href="https://twitter.com/catalinmpit">Catalin Pit</a>
<a target="_blank" href="https://twitter.com/lo_victoria2666">Victoria Lo</a>
<a target="_blank" href="https://twitter.com/iambolajiayo">Bolaji Ayodeji</a>
<a target="_blank" href="https://twitter.com/amrutaranade">Amruta Ranade</a>
<a target="_blank" href="https://twitter.com/dailydevtips1">Chris Bongers</a>
<a target="_blank" href="https://twitter.com/colbyfayock">Colby Fayock</a></p>
<h2 id="final-words">Final words</h2>
<p>You do not need a degree in technical writing to start putting out technical content. You can start writing on your personal blog and public GitHub repositories while building your portfolio and gaining practical experience.</p>
<p><strong>Really – Just Start Writing.</strong></p>
<p>Practice by creating new documents for existing programs or projects. There are a number of open source projects on GitHub that you can check out and add to their documentation.</p>
<p>Is there an app that you love to use, but its documentation is poorly written? Write your own and share it online for feedback. You can also quickly set up your blog on hashnode and start writing.</p>
<blockquote>
<p>You learn to write by writing, and by reading and thinking about how writers have created their characters and invented their stories. If you are not a reader, don't even think about being a writer. - Jean M. Auel</p>
</blockquote>
<p>Technical writers are always learning. By diving into new subject areas and receiving external feedback, a good writer never stops honing their craft.</p>
<p>Of course, good writers are also voracious readers. By reviewing highly-read or highly-used documents, your own writing will definitely improve.</p>
<p>Can't wait to see your technical articles!</p>
<h2 id="references">References</h2>
<ul>
<li><a target="_blank" href="https://www.bittbox.com/advice/introduction-technical-writing">Introduction to Technical Writing‌‌</a></li>
<li><a target="_blank" href="https://amarachiazubuike.com/how-to-structure-a-technical-article-ckg9yiy9c01sns9s17jk1aazd">How to structure a technical article‌‌</a></li>
<li><a target="_blank" href="https://edidiongasikpo.com/understanding-your-audience-the-why-and-how">Understanding your audience, the why and how</a></li>
<li><a target="_blank" href="https://github.com/BolajiAyodeji/technical-writing-template">‌‌Technical Writing template</a></li>
</ul>
<p>I hope this was helpful. If so, follow me on <a target="_blank" href="https://twitter.com/msamarachukwu">Twitter</a> and let me know!</p>
]]></content:encoded></item><item><title><![CDATA[How to Structure a Technical Article]]></title><description><![CDATA[Can you remember the last technical article you read? Were you able to finish reading through or you only read half-way through and closed the tab? 
There has certainly been a lot of times you weren't able to finish reading an article and half the ti...]]></description><link>https://amarachijohnson.com/how-to-structure-a-technical-article</link><guid isPermaLink="true">https://amarachijohnson.com/how-to-structure-a-technical-article</guid><category><![CDATA[DevBlogging]]></category><category><![CDATA[Technical writing ]]></category><category><![CDATA[documentation]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Wed, 14 Oct 2020 22:19:45 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1602779755142/R-Iv3_A03.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Can you remember the last technical article you read? Were you able to finish reading through or you only read half-way through and closed the tab? 
There has certainly been a lot of times you weren't able to finish reading an article and half the time, it was because of the structure or format of the article which bored you at some point.</p>
<h2 id="why-structure">Why Structure?</h2>
<p>As a writer, your article needs to have a structure for the following reasons:</p>
<ol>
<li>It gives you direction.</li>
<li>It makes you more efficient and effective in your content creation.</li>
<li>Your readers can easily comprehend what you're trying to tell them.</li>
<li>You want your readers to remember what you write about.</li>
</ol>
<p>In this article, you're going to be learning some helpful tips for <em>structuring</em> your articles, with some examples.</p>
<h2 id="choose-a-format">Choose a Format</h2>
<p>In order for you to write a well structured article, you need to select a format for your article, which is basically the skeletal draft of how your content would flow.</p>
<ul>
<li>Intro </li>
<li>Why it matters Subheading</li>
<li>Prerequisite(<em>optional</em>)</li>
<li>1.</li>
<li>2.</li>
<li>3.</li>
<li>4.</li>
<li>5.</li>
<li>Conclusion Subheading </li>
<li>Conclusion  *</li>
</ul>
<p>Let's go through these sections one at a time.</p>
<h3 id="intro">Intro</h3>
<p>Your intro should be captivating as it is the readers <strong>first stop</strong> while reading the article. The intro gives a reader an overview of the content and have to be compelling enough to make them stay or boring enough to make them leave the page😎.
For your intro to be captivating, it has to show empathy (written to address the readers problems, <em>not yours</em>), has some humor (this depends on the tone you want your article to assume) and/or throw in some interesting facts and statistics to capture readers attention.</p>
<h3 id="why-it-matters">Why it matters</h3>
<p>This is usually the second paragraph of your article where you tell your readers why you've written the article they're just reading. The problems you hope to solve through the article and what they'd be gaining at the end.</p>
<p>Here's the intro to an article I wrote on  <a target="_blank" href="https://amarachiazubuike.com/a-beginners-guide-to-web-accessibility-ckelka23j00cd8cs10h24byf7">web accessibilty</a> </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1602709008865/Px5wb28oJ.png" alt="intro.PNG" /></p>
<p><em>This intro also encompassed 'Why it matters'</em>.</p>
<h3 id="1-2-3">1. 2. 3.</h3>
<p>This is the main body of your article. Here you explain concepts to the readers, breakdown your subject topic into steps, fragments or modules, whichever one works for you.</p>
<h3 id="conclusion">Conclusion</h3>
<p>At the end of your article, it is always important to reiterate key takeaways from the article. This helps the reader to quickly recall key points noted while reading.</p>
<h2 id="formatting-your-article">Formatting Your Article</h2>
<p>Proper formatting is the heart beat of every article as it determines how the readers relate to your article.
Here are some formatting tips that will make your articles reader-friendly:</p>
<ul>
<li><p>Use white spaces and avoid clusters: Dense articles are harder to read. Avoid clustering the texts rather consider breaking up points in paragraphs. This allows your readers some space to grasp the concepts outlined more clearly.</p>
</li>
<li><p>Use subheadings, bullets or numbered lists: The use of headings, bullets and lists to outline points aids in quick pick up of salient points and can be exceptionally helpful if you want to  <a target="_blank" href="https://backlinko.com/hub/content/repurposing">repurpose</a>  a content in the future.
Use the <em>H1 tags for Headings</em>, <em>H2 tags for Sub headings</em>, bullet and numbers for making lists.</p>
</li>
<li><p>Bolden important texts: A good dose of bold texts in an article is useful especially if there are words you'd love to emphasize. However, don't give in to the temptation of having so many bold texts scattered around in one paragraph.</p>
</li>
<li><p>Use other forms of visuals and multimedia (twitter embeds, gif, images, emojis): People love visuals and so it is very appealing to have visuals and multimedia at the right places.
Consider the images below:
(Here's a blog snippet with visuals)</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1602710073252/Id_Ru3IZy.png" alt="cd.PNG" /></p>
<p>(Here's the snippet of same blog, but without visuals)
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1602710058996/wb9rICqim.png" alt="ab.PNG" /></p>
<p>The article with images makes the content more relatable and easier to understand than the one without.
Aside images, you can also use gifs, emojis, embeds (social media, code) including code snippets where necessary.</p>
<ul>
<li><p>Use featured images: Featured images are usually the first thing anyone would see when they visit your article and also the image that would accompany your article link wherever it is shared. This is why it is necessary to use featured images that relates with the article you're putting out.
It isn't ideal to leave out featured images or use the image of a cat as featured image when you're writing on front end web development <em>no matter how much of a cat-lover you are</em>. You can also use the free tool  <a target="_blank" href="https://canva.com">canva</a> to quickly create featured images.</p>
</li>
<li><p>Text Formatting: Avoid jargons, big words and mispellings. Always cross check your spellings, dot your Is and cross your Ts before hitting 'publish'. There are a couple of free check tools such as <a target="_blank" href="https://grammarly.com">Grammarly</a> and Insticheck that you can use to check for grammar and spelling errors. You can also share a draft of your article with someone to proofread before publishing. If you'd love me to proofread your articles, do reach out to me on  <a target="_blank" href="https://twitter.com/msamarachukwu">twitter</a>.</p>
</li>
</ul>
<h2 id="how-long-should-your-articles-be">How long Should your Articles be?</h2>
<p>On average, the expected length of a blog article is 2100 words. However, this largely depends on the topic you're writing about. While writing, make sure you cover the scope of your topic and that your readers get what you promised when they click to read your article. This is more important than the length of your article.</p>
<h2 id="conclusion">Conclusion</h2>
<p>We just looked at how to structure and format your articles before putting it out there, which in turn engages readers while on your page. Feel free to reach out to me via <a target="_blank" href="https://twitter.com/msamarachukwu">twitter</a> for any questions, feedback or suggestions.</p>
<h3 id="further-reading">Further Reading</h3>
<ul>
<li><a target="_blank" href="https://edidiongasikpo.com/technical-writing-what-and-how">Technical Writing: What and how?</a></li>
<li><a target="_blank" href="https://developers.google.com/tech-writing">Free Technical Writing Course by Google</a></li>
</ul>
]]></content:encoded></item><item><title><![CDATA[How to Create a Table of Content on Hashnode]]></title><description><![CDATA[Adding a table of contents in a blog post is a good way to let your readers know in a nut shell the content of your article and also avails them the opportunity to skip to a particular section of the article with just one click should they wish to do...]]></description><link>https://amarachijohnson.com/how-to-create-a-table-of-content-on-hashnode</link><guid isPermaLink="true">https://amarachijohnson.com/how-to-create-a-table-of-content-on-hashnode</guid><category><![CDATA[DevBlogging]]></category><category><![CDATA[Technical writing ]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Thu, 03 Sep 2020 01:16:53 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1599095793131/sJHzK3EGu.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Adding a table of contents in a blog post is a good way to let your readers know in a nut shell the content of your article and also avails them the opportunity to skip to a particular section of the article with just one click should they wish to do so.</p>
<p>For instance, you can decide to skip to the  <a class="post-section-overview" href="#conclusion">conclusion</a>  of this article, if you feel you already have an idea of what I'm writing about😎</p>
<p>In this article, I'll be showing you how to create a table of content for your articles which can be used to skip to certain sections of your post.</p>
<h2 id="step-1">Step 1</h2>
<p>So, the first thing to do is to preview your article, by clicking on the preview button right on top of your draft page.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1605279100278/SszNlzGw5.png" alt="step3.PNG" /></p>
<h2 id="step-2">Step 2</h2>
<p>Select the heading you'd love to skip to, right click and select inspect (if you're on chrome). This will launch you to the developer tools.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1599092318511/vLBp0MRMJ.png" alt="hashn.PNG" /></p>
<h2 id="step-3">Step 3</h2>
<p>In the image above, you'd see that the heading selected (Step 1) has a unique ID, copy this and save somewhere close.</p>
<h2 id="step-4">Step 4</h2>
<p>Go back to your table of content, select the list you'd love to link, click on the link tool right on top of your page and insert the id you just copied into the area that says (link)</p>
<p>Let's do this vividly, to achieve the link below, </p>
<ul>
<li><a class="post-section-overview" href="#step-1">Back to step 1</a> </li>
</ul>
<p>First list out this content</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1599092788581/PJaMN5sT-.png" alt="hash.PNG" /></p>
<p>Then go ahead and select its texts, after which you click on the link icon right on top of your editing page.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1599092863679/BgFQpMbeR.png" alt="ha.PNG" /></p>
<p>Enter, the id you copied previously into the area were you have <em>[link]</em>. Append a <strong>#</strong> before pasting the id. </p>
<p>You'd have this</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1599092886259/DIm2FWOAu.png" alt="has.PNG" /></p>
<p>Repeat this process for every other content in your table. Preview.
Your table of content is all set.</p>
<h2 id="conclusion">Conclusion</h2>
<p>We just looked at how to add table of content in the articles you post on your hashnode powered blogs. I look forward to seeing you add them in your next article.</p>
<p>Enjoyed the article? Follow me on <a target="_blank" href="https://twitter.com/msamarachukwu">twitter</a></p>
]]></content:encoded></item><item><title><![CDATA[A Beginners Guide to Web Accessibility]]></title><description><![CDATA[Making the web accessible is essential for everyone, including developers and organizations because, it means that everyone can use the products and services you create.
What is Web Accessibility?
Web accessibility simply means building websites, too...]]></description><link>https://amarachijohnson.com/a-beginners-guide-to-web-accessibility</link><guid isPermaLink="true">https://amarachijohnson.com/a-beginners-guide-to-web-accessibility</guid><category><![CDATA[a11y]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[Web Accessibility]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Wed, 02 Sep 2020 15:54:45 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1599062534309/ahKccfbnn.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Making the web accessible is essential for everyone, including developers and organizations because, it means that everyone can use the products and services you create.</p>
<h2 id="what-is-web-accessibility">What is Web Accessibility?</h2>
<p>Web accessibility simply means building websites, tools and technologies in such a way that people with disabilities can use them.
The web is designed to work for everyone, irrespective of their hardware, language, ability or location and when this goal is met we can say that accessibility has been achieved.
However, when websites or applications, technologies or tools are built such that there is a barrier that exclude some people from using it, we can say such product failed accessibility test.</p>
<p>Few weeks ago,  <a target="_blank" href="https://blog.twitter.com/en_us/topics/product/2020/your-tweet-your-voice.html">twitter launched a voice tweet feature</a> , which was met with a lot of complaints pertaining accessibility (Those with hearing impairments can't use this features and twitter created no other means for them join in the audio conversations)</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://twitter.com/mattbc/status/1273306969953222660">https://twitter.com/mattbc/status/1273306969953222660</a></div>
<p>Twitter has however apologised for its slack in accessibility and as we hope they come back with a more accessible feature, it's good to understand how important this is.
Accessibility should be considered even while building, and not as an after thought.</p>
<h2 id="considerations-for-accessibility">Considerations for Accessibility</h2>
<p>While building, here are some disabilities accessibility encompasses which should be taken note of</p>
<ul>
<li><strong>Neurological</strong>: People who have been affected by a brain injury that can begin during the development process</li>
<li><strong>Cognitive</strong>: People with limitations in mental functioning in skills such as communicating, taking care of themselves-, and social skill. There may be some things they cannot learn.</li>
<li><strong>Visual</strong>: Blind people, color blind or people with partial vision loss.</li>
<li><strong>Speech</strong>: People who are mute, have communication disorder or whose normal speech is disrupted (stuttering, lisps etc)</li>
<li>Auditory: People with hearing impairments, deaf or partially deaf.</li>
</ul>
<p>Web accessibility also benefits people without disabilities, for example</p>
<ul>
<li>People using mobile phones</li>
<li>People with temporary disabilities, such as broken glasses</li>
<li>People with slow internet connections</li>
</ul>
<h2 id="why-is-web-accessibility-important">Why is Web Accessibility Important?</h2>
<ul>
<li>Web accessibility is important as the web and internet have become important parts of our lives. Making sure the web is accessible allows people with disabilities to be able to have equal access to the important services/features the web provides, such as education, online shopping, recreation, health services and others.</li>
<li>Web accessibility ensures that everyone is carried along in trends, innovations and no one is left behind.</li>
</ul>
<h2 id="simple-ways-of-making-the-web-accessible">Simple Ways of Making the Web Accessible</h2>
<h4 id="use-alt-tags">Use Alt Tags</h4>
<pre><code><span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"./images/img1"</span> <span class="hljs-attr">alt</span>=<span class="hljs-string">"description of image"</span>&gt;</span>
</code></pre><p>An alt tag is used on images to allow a description of the image to be output if the image can’t be displayed/seen. Making sure this alt-tag is as descriptive as possible will help screen readers to relay the information you are trying to portray.</p>
<h4 id="keyboard-shortcuts">Keyboard ShortCuts</h4>
<p>Some users do not have access to a mouse or are unable to use a mouse.
What this means is that the only way they can get around your website is by using keyboard shortcut, hence it is important to enable them to do so.</p>
<h4 id="title-tags">Title Tags</h4>
<pre><code><span class="hljs-tag">&lt;<span class="hljs-name">title</span>&gt;</span>A Beginners Guide to Accessibility<span class="hljs-tag">&lt;<span class="hljs-name">title</span>/&gt;</span>
</code></pre><p>Making sure you have a short yet descriptive title tag on all pages will allow visitors to know what the page is about which is especially helpful for people using a screen reader.</p>
<h4 id="test-your-websites-on-mobile-devices">Test your websites on mobile devices</h4>
<p>A lot of people access websites on their phones rather than a PC. So it is important to build websites that are user friendly across both PCs and phones. To ensure a website is user friendly, you have to test it across multiple devices.</p>
<h4 id="provide-captions-for-videos">Provide Captions for Videos</h4>
<p>This is helpful for those who do not have access to audio. They can understand the videos through the texts provided.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1599061609766/mCrZ2ok55.png" alt="Screenshot_20200902-164527~2.png" /></p>
<h2 id="conclusion">Conclusion</h2>
<p>We just looked at what accessibility is and how to implement it basically.
Remember to always consider accessibility during you design process and not as an afterthought.</p>
<h2 id="other-relevant-materials-on-accessibility">Other Relevant Materials on Accessibility</h2>
<p><a target="_blank" href="https://www.w3.org/WAI/fundamentals/accessibility-intro/">Web Accessibility Initiative</a></p>
<p><a target="_blank" href="https://webaim.org/intro/">WebAIM’s Introduction to Web Accessibility</a></p>
<p><a target="_blank" href="https://www.a11yproject.com">a11y stands for
ACCESSIBILITY</a></p>
<p>Enjoyed this article? Follow me on <a target="_blank" href="https://twitter.com/msamarachukwu">twitter</a></p>
]]></content:encoded></item><item><title><![CDATA[Building a Palindrome Checker using Split, Join and replace methods]]></title><description><![CDATA[So, recently I embarked on building the projects on the FreeCodeCamp JavaScript course, and I've decided to write about the steps I took to build them out as I proceed.
So, first, I created a palindrome identifier- a function that can be able to figu...]]></description><link>https://amarachijohnson.com/building-a-palindrome-checker-using-split-join-and-replace-methods</link><guid isPermaLink="true">https://amarachijohnson.com/building-a-palindrome-checker-using-split-join-and-replace-methods</guid><category><![CDATA[DevBlogging]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Thu, 13 Aug 2020 13:17:30 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1598870491585/_JO9TlLt5.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>So, recently I embarked on building the projects on the FreeCodeCamp JavaScript course, and I've decided to write about the steps I took to build them out as I proceed.</p>
<p>So, first, I created a palindrome identifier- a function that can be able to figure out if a word is a palindrome irrespective of whether it has non-alphanumeric characters or spaces.</p>
<h2 id="first-what-is-a-palindrome">First, what is a palindrome?</h2>
<p>Palindrome are words or sentences that spelled the same way both forward and backward, ignoring punctuation, case, and spacing, this means that the words are exactly the same even when they are turned upside down. For instance, the word <code>eye</code> looks the same even when turned both ways.</p>
<p>So, in the next few minutes, you'll be building along with me a function that returns <code>true</code> if a word is palindrome and <code>false</code> if it's not, <em>ignoring spaces and alphanumeric characters</em>.</p>
<h2 id="prerequisite">Prerequisite</h2>
<p>Before we proceed, you should have a knowledge of the following JavaScript methods:
<code>split</code>
<code>replace</code>
<code>join</code>
If you don't have an idea, take few minutes to read up this articles on  <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split">split</a> , <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse">reverse</a>, <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace">replace</a>  and  <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join">join</a>  methods.</p>
<h2 id="getting-started">Getting Started</h2>
<p>Let's write our algorithm</p>
<ol>
<li>Remove spaces and alphanumeric characters from the string and store string in a variable.</li>
<li>Reverse the string and also store in a variable.</li>
<li>Compare the string and the reversed string.</li>
<li>Return true if they are same and false if they are not equal.</li>
</ol>
<h2 id="lets-write-our-code">Let's write our code</h2>
<p>First,we'll define our function. Our function will be taking a string <code>str</code> as argument</p>
<pre><code><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">palindrome</span>(<span class="hljs-params">str</span>)</span>{

}
</code></pre><p>Secondly, we have to eliminate spaces and non-alphanumeric characters from the string. We'll be using regex to fish out the non-alphanumeric characters and then replace it with '' (This is an easier way of removing elements from a string).
We'll also convert the word to lowercase. <em>You can choose to change yours to uppercase</em>
The aim of this is to keep all the alphabets on the same case to ease comparison.</p>
<pre><code><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">palindrome</span>(<span class="hljs-params">str</span>) </span>{
<span class="hljs-keyword">let</span> palindrom=str.replace(<span class="hljs-regexp">/[^0-9a-z]/gi</span>, <span class="hljs-string">''</span>).toLowerCase();

}
</code></pre><p>Having done this, let's create another variable <code>reversed</code> where we'll store the reversed string. (We'll be reversing the variable <code>palindrom</code> above)</p>
<pre><code><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">palindrome</span>(<span class="hljs-params">str</span>) </span>{
<span class="hljs-keyword">let</span> palindrom=str.replace(<span class="hljs-regexp">/[^0-9a-z]/gi</span>, <span class="hljs-string">''</span>).toLowerCase();
<span class="hljs-keyword">let</span> reversed=palindrom.split(<span class="hljs-string">""</span>).reverse().join(<span class="hljs-string">''</span>);

}
</code></pre><p>Let's compare</p>
<pre><code><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">palindrome</span>(<span class="hljs-params">str</span>) </span>{
<span class="hljs-keyword">let</span> palindrom=str.replace(<span class="hljs-regexp">/[^0-9a-z]/gi</span>, <span class="hljs-string">''</span>).toLowerCase();
<span class="hljs-keyword">let</span> reversed=palindrom.split(<span class="hljs-string">""</span>).reverse().join(<span class="hljs-string">''</span>);

<span class="hljs-keyword">if</span>(reversed===palindrom){
    <span class="hljs-keyword">return</span> <span class="hljs-literal">true</span>;
  }<span class="hljs-keyword">else</span> <span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>;
}

palindrome(racecar)
</code></pre><p>Quite a short one, but yeah, we have a function here which can detect palindromes.
I'd love to entertain feedback from you. Thanks for reading. </p>
]]></content:encoded></item><item><title><![CDATA[Understanding CSS Positioning]]></title><description><![CDATA[Hello there,
Welcome again to my blog. In this article, I'll be explaining CSS positioning and why we use them.
Here's a little twist. CSS positioning has been a difficult concept for me to grab, and that's why I'm writing about it while learning at ...]]></description><link>https://amarachijohnson.com/understanding-css-positioning</link><guid isPermaLink="true">https://amarachijohnson.com/understanding-css-positioning</guid><category><![CDATA[2Articles1Week]]></category><category><![CDATA[CSS]]></category><category><![CDATA[newbie]]></category><category><![CDATA[Beginner Developers]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Fri, 07 Aug 2020 21:25:58 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1598870119530/8n6wc89kl.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello there,
Welcome again to my blog. In this article, I'll be explaining CSS positioning and why we use them.</p>
<p>Here's a little twist. CSS positioning has been a difficult concept for me to grab, and that's why I'm writing about it while learning at the same time.</p>
<h2 id="what-are-positions-in-css">What are positions in CSS?</h2>
<p>When placing elements on a web page or document, it is important to specify how they are displayed in relation to each other or their parent elements. Positions help you to set this.</p>
<h2 id="syntax">Syntax</h2>
<p>The syntax for CSS positioning is;
<code>position: position-property</code></p>
<h2 id="types">Types</h2>
<p>There are 5 main positions in CSS, but for this article, we'll be looking at these four;</p>
<ol>
<li>Static </li>
<li>Relative</li>
<li>Absolute</li>
<li>Fixed</li>
</ol>
<p>I'll be explaining them in the next few lines.</p>
<h3 id="static">Static:</h3>
<p>Every element has the <code>static</code> position by default. We can say an element with position <code>static</code> is an unpositioned element because it flows in the normal rendering sequence of the web page or document. It is easy to think the <code>static</code> position is the same as the <code>relative</code> position. Uhhmm, that could be true except that static elements don't obey the <code>left</code>, <code>right</code>, <code>top</code> and <code>bottom</code> rules.</p>
<h3 id="relative">Relative:</h3>
<p>When a child element has the <code>position:relative</code> property, it takes up a position which is relative to its parent element.</p>
<p>In this example, we have a parent and a child element.</p>
<p>For the child element, we added this</p>
<pre><code><span class="hljs-selector-class">.container-child</span>{
<span class="hljs-attribute">position</span>:relative;
}
</code></pre><p>This enables the child element to take up a position which considers the dimensions of the parent element.</p>
<p>In the pen below, we'll see the outcome of this</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://codepen.io/amarachukwu/pen/oNxgQBR">https://codepen.io/amarachukwu/pen/oNxgQBR</a></div>
<p><em>Try changing the position to absolute and notice what happens.</em></p>
<p><em>Also try changing the height of the child element to 50% and notice what happens as well.</em></p>
<h3 id="absolute">Absolute:</h3>
<p>If a child element is given the <code>position:absolute</code> property, it will behave like the parent element is not there, and will be positioned automatically to the starting point (top-left corner) of its parent element. If it doesn't have any parent elements, then the initial document <code>&lt;html&gt;</code> will be its parent.</p>
<p>Let's add a <code>position:absolute</code> property to a child element with class <code>container-child</code></p>
<pre><code><span class="hljs-selector-class">.container-child</span>{
<span class="hljs-attribute">position</span>:absolute;
}
</code></pre><p>In the code below, the child element will display in relation to the dimensions of the document <code>&lt;html&gt;</code>and not the dimension of its parent <code>container</code>.</p>
<p>Try adjusting other properties of the child element such as <code>margin-left</code>, <code>margin-right</code> and you'll discover that this element isn't adjusting in response to its parent's dimensions.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://codepen.io/amarachukwu/pen/LYNEmrW">https://codepen.io/amarachukwu/pen/LYNEmrW</a></div>
<p>For this child element to respond relatively to the position of its parent, we need to set the parent to this;</p>
<pre><code><span class="hljs-selector-class">.container</span>{
<span class="hljs-attribute">position</span>:relative;
}
</code></pre><p>And we'll have the following</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://codepen.io/amarachukwu/pen/wvGBQMW">https://codepen.io/amarachukwu/pen/wvGBQMW</a></div>
<h3 id="fixed">Fixed</h3>
<p>Fixed positioning restricts an element to a specific position in the viewport, which stays in place during scroll.</p>
<p>Let's add another element to our project, and this time, we'll be giving it a position of <code>fixed</code>.</p>
<pre><code><span class="hljs-selector-class">.container2</span>{
<span class="hljs-attribute">position</span>:fixed;
}
</code></pre><p>Let's see how it looks </p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://codepen.io/amarachukwu/pen/dyMPQdy">https://codepen.io/amarachukwu/pen/dyMPQdy</a></div>
<p>So you can see how the element with a <code>fixed</code> position stayed glued to its position even when the page is scrolled.</p>
<p><em>Try fixing up the child element with the class <code>container-child</code> to stay under the fixed element on scroll.</em></p>
<h2 id="conclusion">Conclusion</h2>
<p>CSS position has always been a tricky topic for me, but overtime I'm beginning to get a hang of it through subsequent usage. So I'll advise you implement these positions often in order to find out for yourself, what they really do.</p>
<p>Yup! This is where we wrap it up. I'll subsequently edit this article when I implement the <code>position</code> property in other lights. </p>
<p>If you enjoyed this article, do connect with me on  <a target="_blank" href="https://twitter.com/msamarachukwu">twitter</a> 😍</p>
]]></content:encoded></item><item><title><![CDATA[What do you do when you have a burn out?]]></title><description><![CDATA[In this article, I'll be addressing a very common problem among developers which a lot of people usually neglect, and which if left unchecked could result to devastating long term problems.
Let's look at Burnouts, how to know you're going through one...]]></description><link>https://amarachijohnson.com/what-do-you-do-when-you-have-a-burn-out</link><guid isPermaLink="true">https://amarachijohnson.com/what-do-you-do-when-you-have-a-burn-out</guid><category><![CDATA[2Articles1Week]]></category><category><![CDATA[fun]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Thu, 06 Aug 2020 23:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1598871062409/TbN94vz7q.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In this article, I'll be addressing a very common problem among developers which a lot of people usually neglect, and which if left unchecked could result to devastating long term problems.</p>
<p>Let's look at Burnouts, how to know you're going through one and how to bounce back.</p>
<h2 id="introduction">Introduction</h2>
<p>Burnout is REAL! And Burnout !=Stress, but could be stress-induced.
Just in case you're hearing about burnouts for the first time, let's quickly see a definition.</p>
<blockquote>
<p>Burnout is a serious state of chronic exhaustion that can have a whole range of negative impacts on your mind and body, and hence your entire life, including your ability to write code.</p>
</blockquote>
<p>Burnouts can happen to anyone, and is usually less easy to detect in some than other people. However it is important for everyone to understand their symptoms in order to detect when your body is exhausted and needs <em>hibernating</em>.</p>
<blockquote>
<p>Burnouts is what happens when you try to avoid being human for too long.</p>
</blockquote>
<h2 id="what-causes-burnouts">What Causes Burnouts?</h2>
<p>Burnouts are basically caused by </p>
<h3 id="stress">Stress</h3>
<p>When you've stressed up yourself mentally or physically up to the point of exhaustion and yet you don't pause to refill, more like driving on an empty tank, your engine will definitely get worn out or even clogged.</p>
<h3 id="negativity">Negativity</h3>
<p>When you consciously or unconsciously keep feeding your mind with negative thoughts or words, or allow the negativity of others really get to you, it grossly affects your mental state which can result to very unhealthy self esteem, inferiority syndrome, self hate and subsequently mental health problems.</p>
<h3 id="perfectionism">Perfectionism</h3>
<p>For each time you <em>struggle</em> to make things <em>perfect</em>, you procrastinate and feel dissatisfied with yourself which in turn causes a mental strain.</p>
<h3 id="work-life-imbalance">Work-Life Imbalance</h3>
<p>When your work takes up most of your time and you struggle to find some time off for yourself, friends or family, you find yourself exhausted, tired and extremely stressed most of the time.</p>
<h3 id="lack-of-social-life">Lack of social life</h3>
<p>Some techies have a not-so-admirable social life. This could make one a recluse, which means less fun time, which also means more stress.</p>
<h2 id="how-can-you-know-youre-having-burnouts">How can you know you're having Burnouts?</h2>
<ol>
<li><p>You seem to lack motivation such that you mostly have to drag yourself to do the things you usually do with ease.</p>
</li>
<li><p>Irritability. Most times when we experience burnouts we seem to be more irritable, jumpy and easily angered.</p>
</li>
<li><p>Frequent headaches and changes in sleep patterns (insomnia may even set in)</p>
</li>
<li><p>Difficulty to concentrate.</p>
</li>
<li><p>Dissatisfaction even when a milestone is reached. You basically find no joy in doing the things that used to make you happy.</p>
</li>
<li><p>Lack of energy, zeal and enthusiasm.</p>
</li>
</ol>
<p>There are other ways to discover when we're having burnouts, as everyone have different symptoms to show for it.</p>
<h2 id="so-how-can-we-deal-with-burnouts-when-it-sets-in">So, how can we deal with burnouts when it sets in?</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1596843869096/BqYvVRM_e.gif" alt="tenor.gif" /></p>
<ol>
<li><p>Relax: Well... If you're having a burnout because of stress, the next best thing to do is to take some time off to cool off and relax (relas and be taken kiaroff😄) It will do you much good. Deadlines can wait, your mental health first ❤</p>
</li>
<li><p>Engage in more social activities: Make friends, have fun, get social, attend events, mingle with actual people, gist, let off some of those steams, hang out with friends, go see some movies or anything... This could help clear your head a bit.</p>
</li>
<li><p>Be more intentional about your life: Yes, obviously you're already very intentional about your career, but without maintaining a balance, your career can try to rob you of family/friends time.
Sometimes work-life balance can be impractical, and at such times, you've got to set up strategies to maintain harmony between both sides.
Be more strategic about timing. You can decide to block off some days/time as reserved for family, so you can have time for yourself too. If the pressure is coming from your workplace, try reaching out to management (if you're not management of course) to discuss better terms that could work which wont necessarily mean you throwing in your life.
Try to set goals for what must get done and what can wait. </p>
</li>
<li><p>Take social media breaks sometimes, especially if you feel mentally exhausted. Trust me, the world will remain as it were when you get back. Take some media break and rebound saner and better.</p>
</li>
<li><p>Sleep more: Techies are said to be nocturnal beings, however you have to sleep more especially when you're experiencing burnouts.</p>
</li>
<li><p>Travel (vacation): If you can, move, see places, change environment, forget about everything and just breath😌.  </p>
</li>
<li><p>Exercise: Exercise is not something we do just to lose weight, we exercise to keep fit (mentally and physically). You don't need to register with a Gym center, there are several apps you could use to begin your exercise routines at home.</p>
</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1596843782133/AYBAEgInE.gif" alt="cyUzuSL2-EXERCISE.gif" /></p>
<p>By now, you should have guessed if you're already having a burnout or not.
Well, if you are, that's not too bad, go back up and check out some of those tips again. You'll also find more helpful tips  <a target="_blank" href="https://www.helpguide.org/articles/stress/burnout-prevention-and-recovery.htm">here</a> </p>
<p>And if you're not having a burnout yet, awesome, let's look at some of the ways to avoid having burnouts in the first place.</p>
<h2 id="how-to-prevent-burnouts">How to Prevent Burnouts</h2>
<p>You can prevent burnouts by doing everything listed above (under how to deal with burnouts). The difference would be that in your case, you're not doing them to bounce back, rather in order to maintain mental and physical fitness.</p>
<blockquote>
<p>Almost everything will work again if you unplug it for a few minutes and plug it again, including you.</p>
</blockquote>
<h2 id="conclusion">Conclusion</h2>
<p>Thing is, we don't need to wait till our body screams to take a break or go on vacation and all that, this is something we all need to fit into our schedules and follow them as religiously as we take #100daysofcode. It's all a matter of intentionality and priority.</p>
<p>Thanks for reading my article and don't forget to take a break. Do follow me on  <a target="_blank" href="https://twitter.com/msamarachukwu">twitter</a> 🙌🏽</p>
<p>One last thing, a shoutout🙌🏽🎊📢 to @didicodes and @Bolaji Ayodeji for all the help, both directly and indirectly, you're the best.</p>
]]></content:encoded></item><item><title><![CDATA[Kids and teenagers in Tech]]></title><description><![CDATA[Let's shine the spotlight today on kids and teenagers who are building amazing stuffs in tech.
We may not always talk about them, but it definitely takes a lot balls to do what they do (combining being a child with school and tech) coupled with the f...]]></description><link>https://amarachijohnson.com/kids-and-teenagers-in-tech</link><guid isPermaLink="true">https://amarachijohnson.com/kids-and-teenagers-in-tech</guid><category><![CDATA[2Articles1Week]]></category><category><![CDATA[Interviews]]></category><category><![CDATA[newbie]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Fri, 31 Jul 2020 20:41:53 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1598871989107/lt--DRE3a.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Let's shine the spotlight today on kids and teenagers who are building amazing stuffs in tech.
We may not always talk about them, but it definitely takes a lot balls to do what they do (combining being a child with school and tech) coupled with the fact that some of them do not hold a job yet.</p>
<p>Salute to every kid and teenager in tech out there, who in this article, I'll be referring to as young generation coders.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1596226947015/g8Imedl3z.gif" alt="SrDf.gif" /></p>
<p>Recently, I've been obsessed with checking out profiles of young people building amazing stuffs in tech (between the ages of 5-18), especially Nigerians.</p>
<p>Checking out our top tech muses (Zuckerberg, Bill) we realize one thing, they started really young, maybe not with coding actually, but they got into tech quite early.</p>
<p>When I joined tech, I found out that a lot of techies were pretty young (not that there's anything wrong with starting out later), but I must say, it was really impressive to me, coming from a non tech environment where technology was tagged "distraction".</p>
<p>In this article, I'll be sharing 5 top things I've learnt about the young generation coders in Nigeria:</p>
<h3 id="they-are-very-creative-and-inquisitive">They are very creative and inquisitive:</h3>
<p>With my few years of teaching kids how to code, I've found out that Kids and teenagers are inquisitive naturally, and if this inquisitiveness is properly channeled, they do even better than the adults. I can't explain this in details as I'm not a "brain doctor", but I find it really fascinating the way they make impressive strides when it comes to tech.</p>
<h3 id="they-have-supportive-parents-or-mentors-at-least">They have supportive parents, or mentors at least:</h3>
<p>No young generation coder will be able to do so much if they have no assistance from parents, guardians or mentors, supporting them, mentoring and providing them with required resources at least at their learning phase.
I remember @SamsonGoddy's speech at TedX Abayi, where he narrated to us his journey through tech, and how his tech career kickstarted through a coding program brought to them by a certain organization which also availed them free laptops.</p>
<h3 id="a-lot-of-them-are-caught-up-between-school-and-tech">A lot of them are caught up between school and tech:</h3>
<p>This is very glaring as the average school curriculum does not directly support programming.
They mostly have to squeeze out a spare time to learn and practice. Some of them are usually caught in the web of family insisting they finish school and their left brain nudging them to drop out.</p>
<h3 id="some-of-them-have-inadequate-facilities-or-resources-eg-data">Some of them have inadequate facilities or resources (eg. Data):</h3>
<p>The few who do not have the required parental support and resources struggle to keep up with requirements such as PC breakdown,  data, purchasing courses, attending events etc.</p>
<h3 id="there-are-fewer-girls-among-them">There are fewer girls among them.</h3>
<p>There are very few female children learning tech.</p>
<h2 id="how-can-we-support-them">How can we support them?</h2>
<h3 id="provide-them-with-resources">Provide them with resources:</h3>
<p>As much as you can, offer free resources to them in order to facilitate their learning. Resources could be data, links to free courses, laptops (used or brand new). Lack of laptop is the reason a lot of kids and teenagers are yet to venture into tech.</p>
<h3 id="hold-more-programs-centered-on-them">Hold more programs centered on them</h3>
<p>Truth be told, kids and teenagers in tech face a different fight and tech events should tailor some of their sessions to suit them.</p>
<h3 id="support-them">Support them</h3>
<p>Support could come as mentorship, mental health check, checking up on them, encouraging them and so on. They should be helped to take care of their mental health, reduce anxiety and imposter syndrome, and taking breaks to avoid burnouts.</p>
<p>In the coming months I'll be running a profile on some young generation coders who are doing awesome in their fields as a way to shine the spotlight on them, and also to encourage a lot of others who don't understand this yet, that it is never too early to start.
They deserve to be celebrated.
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1596227572998/gnzp5ZNiH.gif" alt="unnamed.gif" /></p>
<p>Know of any young generation coder (kids and teens in tech)? Reach out to them and support them when you can.</p>
<p>If you know of any kid or teenager in tech doing awesome stuffs, do point me to them by sending me a DM on  <a target="_blank" href="https://twitter.com/msamarachukwu">twitter</a> .</p>
]]></content:encoded></item><item><title><![CDATA[Understanding JavaScript Slice and Splice]]></title><description><![CDATA[The first time I learnt about splice and slice, it was on a friends Whatsapp status.
He was asking why the creators of JavaScript deliberately named the methods similarly knowing their functions are similar too.
Few months later, it was me asking the...]]></description><link>https://amarachijohnson.com/understanding-javascript-slice-and-splice</link><guid isPermaLink="true">https://amarachijohnson.com/understanding-javascript-slice-and-splice</guid><category><![CDATA[JavaScript]]></category><category><![CDATA[2Articles1Week]]></category><category><![CDATA[newbie]]></category><category><![CDATA[Beginner Developers]]></category><category><![CDATA[developers]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Thu, 30 Jul 2020 14:10:31 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1598872603993/i5m-1Pllj.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The first time I learnt about splice and slice, it was on a friends Whatsapp status.
He was asking why the creators of JavaScript deliberately named the methods similarly knowing their functions are similar too.</p>
<p>Few months later, it was me asking the same question as I always got confused whenever these methods were mentioned.</p>
<p>I'm writing this article partly for myself, as a reference to fall back on on those days when everything seems not to make sense, and for every other person who's either hearing about this for the first time or actually looking for solution or clarity on the concept.</p>
<h2 id="prerequisite">Prerequisite</h2>
<p>Well, if you're reading this, then it means one thing, you're finding your way around <em>JavaScript</em>. 
You should have an idea of JavaScript Arrays.
It'll be cool to also have a console handy, so you can quickly try out some of the examples in order to know how they work.</p>
<p>For the sake of newbies (who this article is mostly targeted at), I'll be explaining arrays briefly before we proceed in order to enable you have a clearer understanding of the context.</p>
<h3 id="lets-look-at-arrays">Let's look at arrays</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1596111213543/sHOjWEFHu.gif" alt="array.gif" />
 Arrays are data structures which can hold values of different data types(boolean, strings, numbers) and store them inside a single variable. Values of an array are enclosed in a square bracket and each of the values are usually separated by commas .</p>
<pre><code><span class="hljs-attribute">Let</span> a = [<span class="hljs-string">"name"</span>, <span class="hljs-number">12</span>, <span class="hljs-literal">true</span>]
</code></pre><p>Each item in an array is called <code>element</code> and each element can be accessed by a numerical index, starting with <code>0</code>.</p>
<p>In the array above, the element at <code>index 0</code> is <code>name</code> and the element at index 2 is <code>true</code>.
The element at index 1 in the above array can be accessed like this</p>
<pre><code><span class="hljs-selector-tag">a</span><span class="hljs-selector-attr">[1]</span>
</code></pre><p>and this will return <code>12</code>
However, the length of the above array is 3.</p>
<h3 id="basic-operations-in-an-array">Basic Operations in an array</h3>
<p>Some basic operations can be carried out on an array to either add values or remove values. These operations are done with specific JavaScript methods. Let's look at some of them briefly.</p>
<h4 id="push">Push:</h4>
<p>The push operation is used to add an element to an array from the end (last element)</p>
<pre><code><span class="hljs-selector-tag">a</span><span class="hljs-selector-class">.push</span>(8);
<span class="hljs-selector-tag">console</span><span class="hljs-selector-class">.log</span>(<span class="hljs-selector-tag">a</span>);
</code></pre><p>In the example above, an element 8 will be added to the rear end of the array <code>a</code>, so we'll have</p>
<pre><code>[<span class="hljs-string">"name"</span>, <span class="hljs-number">12</span>, <span class="hljs-literal">true</span>, <span class="hljs-number">8</span>]
</code></pre><h4 id="pop">Pop:</h4>
<p>This is the opposite of push. It <strong>removes</strong> an element from the end of an array (the last element in an array). So, let's remove the number we just added to the array above.</p>
<pre><code><span class="hljs-selector-tag">a</span><span class="hljs-selector-class">.pop</span>(8);
<span class="hljs-selector-tag">console</span><span class="hljs-selector-class">.log</span>(<span class="hljs-selector-tag">a</span>);
</code></pre><h4 id="unshift">Unshift:</h4>
<p>This method adds an element to the beginning of an array. Lets add two elements to the beginning of our array <code>a</code></p>
<pre><code>a.<span class="hljs-keyword">unshift</span>(<span class="hljs-string">"age"</span>,<span class="hljs-number">36</span>);
console.<span class="hljs-keyword">log</span>(a);
</code></pre><p>We would have our <code>a</code> array to be</p>
<pre><code>[<span class="hljs-string">"age"</span>, <span class="hljs-number">36</span>, <span class="hljs-string">"name"</span>, <span class="hljs-number">12</span>, <span class="hljs-literal">true</span>]
</code></pre><h4 id="shift">Shift:</h4>
<p>The shift method is used to remove the first element in an array and returns the removed element. Let's remove the element <code>age</code> from our array</p>
<pre><code>a.<span class="hljs-keyword">shift</span>(<span class="hljs-string">"age"</span>);
console.<span class="hljs-keyword">log</span>(a);
</code></pre><p>Our current array </p>
<pre><code>[<span class="hljs-number">36</span>, <span class="hljs-string">"name"</span>,<span class="hljs-number">12</span>, <span class="hljs-literal">true</span>]
</code></pre><p>So, now that we've covered the basics, let's look at the splice and slice methods. Before we do, feel free to have a little mental stretch.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1596113884620/39A16jiE3.gif" alt="stretch.gif" /></p>
<p>Let's continue😁</p>
<h3 id="slice">Slice</h3>
<p>The slice method is used to return a number of <strong>copied</strong> elements from an array. <code>slice()</code> does not alter the array it is used on, rather it simply returns the copied elements while leaving the parent array untouched.</p>
<p><strong>Syntax</strong></p>
<p><code>array.slice(from, until)</code></p>
<p><code>from</code> - where the slice will start</p>
<p><code>until</code> - where the slice will end ( the element at this position not included)</p>
<p>So the trick is, if we want to slice the first 2 elements from an array, our <code>until</code> parameter will be 2.</p>
<p>Let's remove the first 2 elements from our previous array <code>[36, "name",12, true]</code>.</p>
<p>We have to specify the start <code>0</code> and the end <code>2</code>. </p>
<pre><code><span class="hljs-keyword">let</span> newArray = a.slice(<span class="hljs-number">0</span>,<span class="hljs-number">2</span>)
</code></pre><p><code>a[0]</code> - <code>36</code></p>
<p><code>a[1]</code> - <code>"name"</code></p>
<p><code>a[2]</code> - <code>12  (not inclusive)</code></p>
<p>So, our <code>newArray</code> will be</p>
<pre><code>[<span class="hljs-number">36</span>,<span class="hljs-string">"name"</span>]
</code></pre><p>our previous array will remain unchanged</p>
<pre><code>[<span class="hljs-number">36</span>, <span class="hljs-string">"name"</span>,<span class="hljs-number">12</span>, <span class="hljs-literal">true</span>]
</code></pre><h3 id="splice">Splice</h3>
<p>Splice is used to <strong>remove</strong> elements from an array and return the removed elements. Splice directly alters the array upon which it is called.</p>
<p><strong>Syntax</strong></p>
<p><code>array.splice(startindex, numberOfElementsToBeRemoved)</code></p>
<p>Let's remove 2 elements from  our array <code>a</code> starting from the second array (index 1) and store it in the variable <code>splicedArray</code></p>
<pre><code><span class="hljs-keyword">let</span> splicedArray = a.splice(<span class="hljs-number">1</span>,<span class="hljs-number">2</span>);
<span class="hljs-built_in">console</span>.log(splicedArray);
</code></pre><p>This will return
<code>["name", 12]</code></p>
<p>While array <code>a</code> will become
<code>[36, true]</code></p>
<p><strong> If we don't specify the second parameter (numberOfElementsToBeRemoved), every element starting from the given index will be removed from the array</strong></p>
<h2 id="conclusion">Conclusion</h2>
<p>Splice and slice can be a bit confusing, and its okay if you still need to reference an article all the time in order to recall how they work. That's why I wrote about it, for your (and my) reference.</p>
<p>That's all for now.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1596117670960/aXnoHJfB9.gif" alt="dropd.gif" />
If you enjoyed this article, leave me a cute emoji and follow me on  <a target="_blank" href="https://twitter.com/msamarachukwu">twitter</a> .</p>
]]></content:encoded></item><item><title><![CDATA[A beginners Guide to taking the stage]]></title><description><![CDATA[Have you listened to @unicodeveloper , @aniediudo @kentckodds speak at events?
How do you feel afterwards? Probably you do wish to speak the way they do? Hold your audience captivated, in awe, attentive while laughing and giddy at the same time. You ...]]></description><link>https://amarachijohnson.com/a-beginners-guide-to-taking-the-stage</link><guid isPermaLink="true">https://amarachijohnson.com/a-beginners-guide-to-taking-the-stage</guid><category><![CDATA[2Articles1Week]]></category><category><![CDATA[newbie]]></category><category><![CDATA[community]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Sat, 25 Jul 2020 15:21:43 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1598873316207/ZYA5ifFmV.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Have you listened to @unicodeveloper , @aniediudo @kentckodds speak at events?</p>
<p>How do you feel afterwards? Probably you do wish to speak the way they do? Hold your audience captivated, in awe, attentive while laughing and giddy at the same time. You want to be able to own your stage and pass on your message without feeling intimidated, just the way they do.</p>
<p>In this article I'll highlight some basic things you should do in order to become better at speaking.
It doesn't matter if it is just a small study group, a city chapter or a global conference, the trick is the same.</p>
<h2 id="introduction">Introduction</h2>
<p>Having attended a couple of tech events and seeing a pattern repeat, again and again, I decided to put together this article of things you should know before taking the stage to deliver a speech at any tech events. I'm not promising it will rid you of the stage frights and the shiver that envelopes you and threatens to make you drop your mic, But I'm pretty sure it'll help.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1595690168785/8ojR7Qoir.gif" alt="tenor (1).gif" /></p>
<h2 id="why-this-topic">Why this topic?</h2>
<p>Now, in case you're wondering why I've chosen this topic especially at this time, let me remind you that a lot of physical tech events which were laid off due to the pandemic will be happening as soon as the pandemic and lockdown is behind us. 
Various communities will be holding tech events and I believe you've equipped yourself so much and have probably designed your slides and contexts ready for submission at the sound of ready...go!</p>
<p>But you have to hold on a little moment, get yourself ready for impact.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1595690018185/WLzWPdWPD.gif" alt="giphy.gif" /></p>
<h2 id="the-problem">The Problem</h2>
<p>You've probably been at events where the speaker can't seem to hold the crowd together, constantly fiddling with his/her buttons and sometimes staring at the screen in order not to behold the searching and judging eyes of the crowd. You sit there bored and tired, waiting earnestly for the session to be over with. Well, it could be you up there.</p>
<p>We are always amazing speakers when we are talking to ourselves in our closets or with friends, and that I've realized is one of the problems. You feel you've known enough, you know how to code and hence everybody must sit and listen, no matter how boring.</p>
<h2 id="now-lets-get-into-the-what-and-how">Now let's get into the what and how</h2>
<p>The word "taking the stage" means having control over the entire audience and not a few people seating in front as I've noticed with some people who speak in such low tone that people seated at the second row can hardly hear them. Not that this is your fault entirely, but it will be okay to genuinely ask someone about how you did. Demand the person to really tell you the truth so you can take pride in the things you did right and try making amends for the ones poorly done.</p>
<p>As a developer who really wants to share knowledge, you need to learn the art of public speaking, even if not professionally, but enough to capture your audience's moods, keeping them glued and informed throughout your speech and until your message is totally passed. Remember communication is not complete until it has been received from the sender. Hence, when delivering a speech you need to be sure that the audience are grasping your message if they aren't then I'm sorry, your communication wasn't effective.</p>
<p>Here are a few things you should do before and during your speech: </p>
<h3 id="1-prepare">1. Prepare:</h3>
<p>No matter how conversant you are with your subject topic and the number of times you have spoken in the past, it is still vital that you take your time to prepare for your speech. Some of the things you should consider while preparing:</p>
<h4 id="a-know-your-audience">a. Know your audience:</h4>
<p>You should be able to ascertain the type of audience you'd be engaging with. If the are males only, females only, beginners, intermediates, experts or a mixture of all the above. Knowing this will not only help you know the tone of your conversation but will also be helpful in determining your content. You can learn more about how to connect with your audience in this  <a target="_blank" href="https://edidiongasikpo.com/understanding-your-audience-the-why-and-how-ckcq2z0ob003ykxs18wc28h6l">article</a>  by @didicodes</p>
<h4 id="b-be-conversant-with-your-slides">b. Be conversant with your slides:</h4>
<p>I've been at events where the speakers totally back the audience in order to read from their slides. The worst is when there are technical difficulties and the slides delayed for a few minutes before coming up, then you see the speaker lacking for words to hold the crowd while the issues are resolved. 
It is important you make out time to study your presentation before the D-day to avoid the lapses that may result from not doing so. There's never any of your favorite speakers who doesn't take his/her time to study, and you have to do so as well.
Also, send in your slides early.</p>
<h4 id="c-rehearse">c. Rehearse:</h4>
<p>Rehearse your presentation, especially if it is your first time delivering a particular speech. An efficient way to present would be present in front of a mirror, but I usually choose to present to a real live person, get feedback and make corrections. Better to fail privately than in a room full of people.</p>
<h4 id="d-prepare">d. Prepare:</h4>
<p>If you'd be live coding, ensure you installed all software and extensions you'd be needing in the system you'd be presenting with. Test your codes alone and ensure they're working fine before the D-day. Double-check a few hours to the d-day to avoid using the words "Coding will embarrass you" at the end of your speech.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1595690228257/bhYbVm7go.gif" alt="9.gif" /></p>
<h3 id="2-think-conversion-not-presentation-or-demo">2. Think conversion, not presentation or demo:</h3>
<p>You have to get the fact that you are standing on the stage to communicate with the audience in a conversational way. Remember, communication is never complete until the receiving end properly receipts the information being communicated. Having a conversation with the crowd puts you ill at ease, reduces the jitters and improves communication.</p>
<h3 id="3-be-empathetic-about-your-speech">3. Be empathetic about your speech:</h3>
<p>You must have heard these lines "Effective communication is 20% what you know, and 80% how you feel about what you know." Your audience are more likely to feel captivated by your speech if your speech comes as an extension of your feeling rather than just words without expression.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1595690312846/MJ1hOisA_.gif" alt="SlushyHideousChrysalis-size_restricted.gif" /></p>
<h3 id="4-hook-your-audience-early">4. Hook your audience early:</h3>
<p>People's attention span is reducing terribly and if you're not able to hold their attention in the first few minutes, the hall might erupt into a state of frenzy with people staring at their phones and PCs all through your speech (Techies and gadgets thing). Hence, it is important you make them interested in the subject you'd be talking about. Remember, they came to hear you, but you have to show them why. Try using the following to hook their attention:</p>
<ul>
<li><em>A story</em></li>
<li><em>An example</em></li>
<li><em>A strong statement that makes people think, “tell me more.”</em></li>
<li><em>Ask a question</em></li>
<li><em>A visual metaphor</em></li>
<li><em>Get straight to the point and jump right into the issue.</em></li>
</ul>
<p>That's all folks! If you read up to this point, thank you so much for reading. I hope you found this article useful. You can also follow me on  <a target="_blank" href="https://twitter.com/msamarachukwu">twitter</a> .</p>
]]></content:encoded></item><item><title><![CDATA[To Err is Human: A Beginners' Guide to Debugging]]></title><description><![CDATA[You're not doomed if you frequently run into a bug while writing your codes.
Welcome to my week 2 of the #2articles1week challenge by hashnode🎊🎊💃🏽
Let's get ahead.
I'll start with this beautiful quote by Alan Perlis

There are two ways to write e...]]></description><link>https://amarachijohnson.com/to-err-is-human-a-beginners-guide-to-debugging</link><guid isPermaLink="true">https://amarachijohnson.com/to-err-is-human-a-beginners-guide-to-debugging</guid><category><![CDATA[2Articles1Week]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[newbie]]></category><category><![CDATA[debugging]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Sat, 18 Jul 2020 16:40:35 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1595282197389/YRd0hJy5N.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You&#39;re not doomed if you frequently run into a bug while writing your codes.</p>
<p><em>Welcome to my week 2 of the #2articles1week challenge by hashnode🎊🎊💃🏽</em></p>
<p>Let&#39;s get ahead.</p>
<p>I&#39;ll start with this beautiful quote by Alan Perlis</p>
<blockquote>
<p>There are two ways to write error free codes, only the third one works.</p>
</blockquote>
<p>Programs tend to have bugs and you&#39;re not doomed or a shitty developer if you run into issues with your programs.</p>
<p>As a beginner, how do you figure out when your code starts misbehaving?</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1595279987865/VWpb2PSvb.gif" alt="what.gif"></p>
<h2 id="you-need-to-find-out-what-type-of-bug-or-error-you-re-dealing-with-as-this-will-greatly-determine-the-approach-you-ll-take-in-debugging-">You need to find out what type of bug or error you&#39;re dealing with, as this will greatly determine the approach you&#39;ll take in debugging.</h2>
<p>Errors always fall into 3 categories.</p>
<h3 id="1-syntax-error-">1. Syntax Error:</h3>
<p>Occurs when a language rule is broken.</p>
<h3 id="2-runtime-error-">2. Runtime Error:</h3>
<p>The computer was unable to execute a potion of your code.</p>
<h3 id="3-semantic-error-">3. Semantic Error:</h3>
<p>When the output of your program isn&#39;t what you&#39;re expecting.</p>
<p>Let&#39;s look at examples of each of them:</p>
<h3 id="syntax-error">Syntax Error</h3>
<p>Open up your console, and type in</p>
<pre><code><span class="hljs-built_in">console</span>.log(<span class="hljs-string">"Hello World);</span>
</code></pre><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1595279815446/--QZbajwo.png" alt="syntax error.PNG"></p>
<p>Aw aw! We got an error right there.
When we receive such error, it is best to slowly review each line of code, in order to figure out where we might have missed providing a set of quotes, parenthesis or a colon. Sometimes it could also be as a result of using a colon instead of a comma.</p>
<h3 id="let-s-look-at-runtime-error">Let&#39;s look at Runtime Error</h3>
<p>This error happens when your program is actually running.</p>
<p>Let&#39;s open up our console again</p>
<pre><code><span class="hljs-keyword">let</span> a = <span class="hljs-number">20</span>;
<span class="hljs-keyword">let</span> b= <span class="hljs-number">0</span>;
<span class="hljs-keyword">let</span> d= a+ b!
<span class="hljs-keyword">let</span> <span class="hljs-built_in">c</span> = d/b;
console.log(<span class="hljs-built_in">c</span>);
</code></pre><p>Error!!!</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1595279842875/Y4-XcQ4Ja.png" alt="runtime error.PNG"></p>
<p>But why?😥</p>
<p>This is because although the syntax is correct, it is referencing a variable which does not exist.
The interpreter doesn&#39;t know what to do with that variable so the program fails.</p>
<p>If you run into runtime errors you can&#39;t explain, its best to look it up.
Yeah, Google it.
My preferred site is Stack Overflow.
You can copy the error message and paste it on the search box.
There you&#39;ll likely find that someone has run into same or similar errors as you, and you can read the solutions profered.</p>
<h3 id="the-final-one-we-ll-be-looking-at-is-semantic-errors-">The final one we&#39;ll be looking at is Semantic errors.</h3>
<p>These one occur when what you are expecting isn&#39;t what you&#39;re getting
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1595347700911/sptiq1RHc.gif" alt="tenor.gif"></p>
<p>Let&#39;s see an example</p>
<pre><code><span class="hljs-keyword">let</span> name = <span class="hljs-string">"Amara"</span>;
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">"Hello name"</span>);
</code></pre><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1595279860859/wwIfjXSZj.png" alt="semantic error.PNG"></p>
<p>Oh look! We&#39;re having <code>Hello name</code> instead of <code>Hello Amara</code>
This error occurred because we didn&#39;t use the proper variation to output our name, so JavaScript didn&#39;t understand that we wanted to use our name variable.</p>
<p>Semantic errors are usually the most difficult to troubleshoot.
I recommend making little changes and running the code bit by bit. This will enable you to k ow where the error is coming from.</p>
<p>If you try all this and the bug still exists, take a short walk, clear your head and you&#39;d eventually come back with better ideas.</p>
<h3 id="in-conclusion-">In conclusion,</h3>
<p>You have to have to some sense of humor. At the end of the day, it might be the most tiny detail that has kept you awake for days, embarrassed you in front of a prospect and made you loose deals.
Learn to laugh it off, and not work yourself up about it.
It&#39;s all part of the process.</p>
<p>Thanks for reading. I hope you enjoyed it.
If you did, then follow me on  <a target='_blank' rel='noopener noreferrer'  href="https://twitter.com/msamarachukwu">twitter</a> .</p>
]]></content:encoded></item><item><title><![CDATA[CSS Selectors, simplified]]></title><description><![CDATA[When I started out with CSS, I always used the class and Id selectors and nothing else. 
With time I learnt about some other ways of selecting items in CSS and I'll be sharing them with you with illustrations of how they work.
And I think at this poi...]]></description><link>https://amarachijohnson.com/css-selectors-simplified</link><guid isPermaLink="true">https://amarachijohnson.com/css-selectors-simplified</guid><category><![CDATA[2Articles1Week]]></category><category><![CDATA[CSS]]></category><category><![CDATA[newbie]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Fri, 17 Jul 2020 12:37:27 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1598872954248/Ra1UJ4up1.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When I started out with CSS, I always used the class and Id selectors and nothing else. 
With time I learnt about some other ways of selecting items in CSS and I'll be sharing them with you with illustrations of how they work.</p>
<p>And I think at this point, I have to let you know how excited I am to be doing the #2articles1Week challenge with Hashnode.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1594985066779/4Ppfh25E3.gif" alt="excited.gif" /></p>
<p>So, let's get to it.🎾</p>
<p>What are CSS selectors?
CSS selectors are a means through which we're able to identify, find or call up elements in HTML so we can style it.
The most common selectors are the <code>name of element</code> , <code>class selectors(.)</code> and <code>id selectors (#)</code> which are also referred to as <code>simple selectors</code>.</p>
<pre><code><span class="hljs-tag">&lt;<span class="hljs-name">html</span>&gt;</span>
       <span class="hljs-tag">&lt;<span class="hljs-name">head</span>&gt;</span>
              <span class="hljs-tag">&lt;<span class="hljs-name">style</span>&gt;</span><span class="css">
                  <span class="hljs-selector-tag">body</span>{
                      <span class="hljs-attribute">background-color</span>:<span class="hljs-number">#000</span>;
                  }
                  <span class="hljs-selector-class">.title</span>{
                       <span class="hljs-attribute">color</span>:dodgerblue;
                  }
                  <span class="hljs-selector-id">#wrapper</span>{
                       <span class="hljs-attribute">display</span>:flex;
                       <span class="hljs-attribute">justify-content</span>: center;
                       <span class="hljs-attribute">margin</span>:<span class="hljs-number">0</span>;
                       <span class="hljs-attribute">padding</span>:<span class="hljs-number">0</span>;
              </span><span class="hljs-tag">&lt;/<span class="hljs-name">style</span>&gt;</span>
       <span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span>
       <span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span>
             <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"wrapper"</span>&gt;</span>
                    <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"title"</span>&gt;</span>
                         <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span> This is the first text. <span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
                         <span class="hljs-tag">&lt;<span class="hljs-name">p</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"second-paragraph"</span>&gt;</span> This is the second text. <span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
                    <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
                   <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>This is the third paragraph<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
             <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
       <span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span>
</code></pre><p>In the example above, <code>body</code>, <code>title</code> class and <code>wrapper</code> id were used to refer to the div elements  bearing them.
We can also combine these selectors if we want to:</p>
<pre><code><span class="hljs-selector-tag">p</span> <span class="hljs-selector-class">.second-paragraph</span>{
<span class="hljs-attribute">color</span>:red;
}
</code></pre><p>In the code above, a <code>name</code> and <code>class</code> selector were used to ensure that only the <code>p</code> element with a class <code>second-paragraph</code> will be selected.</p>
<p>There are other selectors as well, which are the main focus of this article. 
Let's take a look at the <code>*</code>, <code>&gt;</code>, <code>~</code>,  <code>space</code>, <code>,</code> and <code>nth-type-of</code> selectors, shall we?</p>
<h3 id="the-selector">The <code>*</code> Selector</h3>
<p>This selector is called the <strong>universal Selector</strong> because it is used to select all the elements in a page. This means that any style given to the universal selector, affects every element in that very page.
The code snippet below will style every element of the page to have grey-colored and right-aligned texts.</p>
<pre><code>*{
<span class="hljs-attribute">color</span>:grey;
<span class="hljs-attribute">text-align</span>:right;
}
</code></pre><h3 id="the-greater-selector-and-the-selector">The <code>&gt;</code> Selector and The <code>~</code> Selector</h3>
<p>This selectors are also known as combinators. Both are used to achieve different selection results.
While the <code>&gt;</code> is used to select children of a particular element, the <code>~</code> selector is used to select all the siblings of a particular parent element.
An example to illustrate.</p>
<pre><code><span class="hljs-selector-tag">div</span> &gt; <span class="hljs-selector-tag">p</span>{
<span class="hljs-attribute">color</span>:blue
}
</code></pre><p>The code above is used to select all <code>&lt;p&gt;</code> elements that are the children of the div elements.</p>
<p>Now, look at this one</p>
<pre><code>div~p{
color:red;
}
Here, every `<span class="javascript">&lt;p&gt;</span>` element which <span class="hljs-keyword">is</span> a sibling to a `<span class="javascript">div</span>` element <span class="hljs-keyword">is</span> styled red. In our previous example (the first code snippet), the paragraph which <span class="hljs-keyword">is</span> <span class="hljs-literal">on</span> the same level <span class="hljs-keyword">and</span> shares the same direct parent with any `<span class="javascript">&lt;div&gt;</span>` will take up the red color.
</code></pre><h3 id="the-space-selector">The <code>Space</code> Selector</h3>
<p>A lot of people confuse <code>&gt;</code> selector and the <code>space</code> selector.
I'll try to clarify that.
The <code>space</code> selector is used to select every of a particular element which is inside another element.
For instance</p>
<pre><code><span class="hljs-selector-tag">div</span> <span class="hljs-selector-tag">p</span>{
<span class="hljs-attribute">color</span>:green;
}
</code></pre><p>The code above will select all <code>&lt;p&gt;</code> tags which are inside the <code>&lt;div&gt;</code> element, even if other elements are in between them.
Now, the difference between this and the <code>&gt;</code> selector is that the <code>&gt;</code> is only used to select a particular element which is a direct descendant.</p>
<p>So if we have</p>
<pre><code><span class="hljs-selector-tag">div</span>&gt;<span class="hljs-selector-tag">p</span>{
<span class="hljs-attribute">color</span>:green;
}
</code></pre><p>Only <code>&lt;p&gt;</code> elements which are direct descendants of the <code>&lt;div&gt;</code> will be colored green.</p>
<h3 id="the-selector">The <code>,</code> Selector</h3>
<p>This, also called the group selector is used to group classes or names with the same styles to avoid repetition of codes.
The code below,</p>
<pre><code><span class="hljs-selector-tag">h3</span>{
<span class="hljs-attribute">color</span>:blue;
<span class="hljs-attribute">text-align</span>:center;
<span class="hljs-attribute">font-weight</span>:<span class="hljs-number">100</span>;
}
<span class="hljs-selector-tag">p</span>{
<span class="hljs-attribute">color</span>:blue;
<span class="hljs-attribute">text-align</span>:center;
<span class="hljs-attribute">font-weight</span>:<span class="hljs-number">100</span>;
}
<span class="hljs-selector-class">.mid-text</span>{
<span class="hljs-attribute">color</span>:blue;
<span class="hljs-attribute">text-align</span>:center;
<span class="hljs-attribute">font-weight</span>:<span class="hljs-number">100</span>;
}
</code></pre><p>can be rewritten as</p>
<pre><code><span class="hljs-selector-tag">h3</span>,<span class="hljs-selector-tag">p</span>,<span class="hljs-selector-class">.mid-text</span>{
<span class="hljs-attribute">color</span>:blue;
<span class="hljs-attribute">text-align</span>:center;
<span class="hljs-attribute">font-weight</span>:<span class="hljs-number">100</span>;
}
</code></pre><h3 id="the-nth-type-of-selector">The <code>nth-type-of</code> selector</h3>
<p>This selector can be used to select the <code>nth</code> child of parents elements of a particular type. n can be a number or keyword.
Consider having the following codes:</p>
<pre><code><span class="hljs-tag">&lt;<span class="hljs-name">html</span>&gt;</span>
       <span class="hljs-tag">&lt;<span class="hljs-name">head</span>&gt;</span>
              <span class="hljs-tag">&lt;<span class="hljs-name">style</span>&gt;</span><span class="css">
                   <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-type-of(1)</span>{
                    <span class="hljs-attribute">color</span>:red;
                    }
                    <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-type-of(2)</span>{
                    <span class="hljs-attribute">color</span>:blue;
                    }
                    <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-type-of(3)</span>{
                    <span class="hljs-attribute">color</span>:green;
                    }
              </span><span class="hljs-tag">&lt;/<span class="hljs-name">style</span>&gt;</span>
       <span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span>
       <span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span>
             <span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
                 <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>This is the first paragraph<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
             <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
             <span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
                 <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>This is the first paragraph<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
             <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
             <span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
                 <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>This is the first paragraph<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
             <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
       <span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span>
</code></pre><p>If you read up to this point, then I have something for you🎖</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1594989379549/5B8DS_-X8.gif" alt="awrd.gif" /></p>
<p>Yes, feel free to reach out to me on  <a target="_blank" href="https://twitter.com/msamarachukwu">twitter</a> , and thanks for reading.</p>
]]></content:encoded></item><item><title><![CDATA[My First Interview experience]]></title><description><![CDATA[I have never had a "technical" interview.
Yes. Before we continue, I want to remind you that this article was inspired by Hashnode's weekly challenge to encourage developers to share their first interview experience and lessons learned from it. 
Back...]]></description><link>https://amarachijohnson.com/my-first-interview-experience</link><guid isPermaLink="true">https://amarachijohnson.com/my-first-interview-experience</guid><category><![CDATA[2Articles1Week]]></category><category><![CDATA[newbie]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Tue, 14 Jul 2020 19:59:21 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1598873694837/ZcmInsUmI.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have never had a "technical" interview.</p>
<p>Yes. Before we continue, I want to remind you that this article was inspired by Hashnode's weekly challenge to encourage developers to share their first interview experience and lessons learned from it. </p>
<p>Back to it,</p>
<p>I've had about 4 job interviews in the past, written, oral, but never a technical interview.</p>
<p>I started coding mid 2018 immediately I finished my compulsory  1 year NYSC.
Prior to this time, I always had a serious phobia for coding and usually developed migraine whenever I looked at a screen filled with codes.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1594984458903/CO5lD18hB.gif" alt="cant.gif" /></p>
<p>At this time, I had resolved to take the bull by the horn and plunge into coding because I believed I could do it this time.</p>
<p>I had the opportunity to intern with a hub in my city at that time. Through the internship, i was privileged to work with the tech team on internal front end projects which also involved teaching and coaching others, I was also transitioned from just an intern to a front end developer.</p>
<p>This lasted for a year + before I moved on for my masters program.</p>
<p>Alongside, I've picked up some relevant soft skills as well, leadership, team spirit, creativity, proactiveness and resilience.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1594984546540/GXVrFG42t.gif" alt="good.gif" /></p>
<p>I'm still on the journey of learning and practicing daily and hopeful that I'll land a technical interview soon and eventually ace it.</p>
<p>I still have imposter syndrome, A LOT, being that I've never had a 'real' technical interview.
I find a lot of encouragement from some tech twitter personalities like Dave Thomson, Emma Bostian, Jatin Rao and a couple of others. Their words encourage me everyday, to keep pushing, and helps me face the brighter side of things.</p>
<p>A few tips I've worked by are:</p>
<h4 id="keep-learning">Keep learning:</h4>
<p>Despite not having landed a role yet, I keep practicing daily, solving algorithms (some are really complex though). </p>
<h3 id="dont-get-caught-in-tutorial-hell">Don't get caught in tutorial hell:</h3>
<p>I struggled with this for a long while, saw a lot of tutorials, but never built anything of my own. I'm learning to practice every new thing I learn in order to truly understand how they work.</p>
<h3 id="write">Write:</h3>
<p>Initially, Imposter made me feel I've not known enough to write, but I decided to write anyway, even if not for the experts, for newbies like me. This was why I started this blog, and named it "baby steps". An avenue for me to write about things I know while simplifying it in the barest form.</p>
<h3 id="be-consistent">Be consistent:</h3>
<p>Although I have quite a lot of things calling my attention, I devote at least an hour everyday to code or read an article or learn something new. </p>
<h3 id="ill-get-an-interview">I'll get an interview:</h3>
<blockquote>
<p>I'll prepare, and one day, my time will come.</p>
</blockquote>
<p>Thanks for reading. ❤</p>
]]></content:encoded></item><item><title><![CDATA[Steps to Becoming a Front End Web Developer]]></title><description><![CDATA[A front end web developer as we know it (or maybe don't) is someone who uses HTML, CSS and JavaScript for a website or Web Application so that a user can see and interact with them directly.
But is that all there is to know? How can you become a bett...]]></description><link>https://amarachijohnson.com/steps-to-becoming-a-front-end-web-developer</link><guid isPermaLink="true">https://amarachijohnson.com/steps-to-becoming-a-front-end-web-developer</guid><category><![CDATA[Web Development]]></category><category><![CDATA[Frontend Development]]></category><category><![CDATA[newbie]]></category><category><![CDATA[HTML]]></category><category><![CDATA[beginner]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Sat, 01 Feb 2020 19:58:42 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1580586939067/EmLabxMM4.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A front end web developer as we know it (or maybe don&#39;t) is someone who uses HTML, CSS and JavaScript for a website or Web Application so that a user can see and interact with them directly.</p>
<p>But is that all there is to know? How can you become a better front-end developer? Let&#39;s dig in.</p>
<h3 id="learn-html-css-and-become-good-at-it-">Learn HTML &amp; CSS And become good at it.</h3>
<p>I guess there’s no way around it. Learn HTML &amp; CSS. Why? Because the basics matter.</p>
<p>HTML allows them to add content to a website while splitting it into headings, paragraphs, and tables. CSS lets a decent developer style the content and change things like colors, sizes, and borders.</p>
<p>There are different online courses available on how to get started with HTML and CSS. 
You can sign up at Online courses like </p>
<ul>
<li><p>Coursera </p>
</li>
<li><p>Team Treehouse.</p>
</li>
<li><p>Codecademy</p>
</li>
<li><p>FreeCodeCamp</p>
</li>
<li><p>Udacity</p>
</li>
<li><p>Udemy</p>
</li>
</ul>
<p>And while there are so many free resources out there, also try to invest in your learning by purchasing premium learning content and getting some certifications.
After finishing some initial courses, go ahead and create some static web pages and iterate over and over again.</p>
<p><img src="https://i.gifer.com/NK2m.gif" alt="Alt Text"></p>
<h3 id="build-things">Build things</h3>
<p>Now that you&#39;ve gotten the basics, it&#39;s time to create real stuff, to strengthen your tender hands.
You can start by creating a simple landing page or website. Don’t forget to challenge yourself by building first responsive elements.
You can sign up with platforms like </p>
<ul>
<li><p>Codewars </p>
</li>
<li><p>WesBos </p>
</li>
</ul>
<p>to get daily or weekly tasks to build to practice what you&#39;ve learnt.
So there’s only one way to becoming better at what you’re doing: Keep learning, keep building.</p>
<p>Putting these two together, build to learn! There’s no better way to learn than to get your hands dirty. </p>
<h3 id="read">Read</h3>
<p>Believe it or not. Your reading skills greatly influence your path to becoming a great front-end developer. As a beginner, you&#39;d have to do a lot of reading. Why?
At first you’ll probably read a lot of articles, guides and manuals on how to do different things. You’ll also start reading other people’s code.
Some good books and blogs I recommend</p>
<ul>
<li><p>Eloquent JavaScript</p>
</li>
<li><p>You don&#39;t know JS</p>
</li>
</ul>
<ul>
<li><p>CSS tricks (blog).</p>
</li>
<li><p>Free Code Camp (blog)</p>
</li>
<li><p>Code burst (blog)</p>
</li>
<li><p>Hashnode</p>
</li>
<li><p>Dev.to</p>
</li>
<li><p>Frontend masters</p>
</li>
</ul>
<h3 id="there-s-more-to-front-end-development-than-building-a-website">There’s more to front-end development than building a website</h3>
<p>Knowing how to build a website isn&#39;t all there is to being a front end web developer.  Knowing how to build a website is a very small part of the front-end puzzle.</p>
<p>There is a whole load of topics that you still should learn about. If we consider performance, testing, Project management, QA and many other areas, then you really need to become a deep diver as a front-end developer.</p>
<h3 id="know-some-other-tools">Know some other tools</h3>
<p>Learning about the different tooling options is an important thing. Great tools will help you enhance and automate your front-end development workflow.
One of those tools will definitely be the Chrome developer tools. Why? Because you can play with HTML, CSS and JavaScript in real-time and this will give you immediate feedback you need to learn quickly.
Additionally, node, npm, bower and many more excellent tools are there to facilitate your daily work. And don’t forget about versioning. 😉</p>
<h3 id="learn-version-control">Learn Version Control</h3>
<p>Version control will save you some sleepless nights.
With git you are always assured of having your work intact without fear of system failure or theft.
You&#39;d also be able to collaborate with people on a project in real time.
So make sure to become an expert at Git - or at least, be git-friendly😉</p>
<h3 id="it-won-t-hurt-to-learn-how-to-use-a-collaboration-tool">It won&#39;t hurt to learn how to use a collaboration tool</h3>
<p>Collaborations will come in handy especially hen you&#39;re working on large products or as part of a team.
Some collaboration tools I recommend</p>
<ul>
<li><p>Trello</p>
</li>
<li><p>Pivotal Tracker</p>
</li>
</ul>
<h3 id="do-not-rush-">Do not rush.</h3>
<p>Along the way, you will ask yourself why you do this and you may want to just stop. It may be tempting to just give up. But don’t. If you’re at that point, I have only one piece of advice for you:</p>
<p>Do. not. give. up.</p>
<h3 id="code-everyday">Code Everyday</h3>
<p>This is more like a command than a statement.</p>
<p>Set aside one or two hours every other day to learn. Take a lot of breaks and make sure that you really know the basics. And never rush.</p>
<h3 id="ask-questions">Ask questions</h3>
<p>Whenever you feel stuck you&#39;d definitely do, don’t be afraid to ask questions. Everyone goes through this phase. 
Here&#39;s a tweet by a popular tech pro and evangelist</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" data-card-width="600px" data-card-key="2e4d628b39a64b99917c73956a16b477" href="https://twitter.com/unicodeveloper/status/1171820499661402112?s=19" data-card-controls="0" data-card-theme="light">https://twitter.com/unicodeveloper/status/1171820499661402112?s=19</a></div>
<p> It happens to the best of us.
You just have to stick to it knowing that you&#39;d get better with time.</p>
<h3 id="dive-deep-into-frameworks">Dive deep into frameworks</h3>
<p>Now you&#39;ve acquainted yourself with some front end technology, it&#39;s time to delve into any of the frameworks in front end web development.
We have</p>
<ul>
<li><p>React</p>
</li>
<li><p>Vue</p>
</li>
<li><p>Angular</p>
</li>
<li><p>Next</p>
</li>
</ul>
<p>Knowing which framework to delve into is totally dependent on you and you convictions.</p>
<h3 id="get-involved-with-open-source-projects">Get involved with open source projects</h3>
<p>Getting involved with various projects, especially open source, will not only make you a better front-end developer, but it will also help you build up your very own online brand as an active, experienced developer.</p>
<p>Check out madeinnigeria.dev for some Nigerian Open Source Projects you can contribute to. Thanks @aceKyd for putting that together.</p>
<h3 id="tech-twitter-can-be-your-friend-">Tech twitter can be your friend 😂</h3>
<p>Well, this one might  seem a little bit weird, but tech twitter has helped me a lot in my journey as a front end web developer.</p>
<p>Check out this tweet by @hacksultan, under the thread you&#39;d see some amazing rech persons in front end you can follow and continuously learn from.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" data-card-width="600px" data-card-key="2e4d628b39a64b99917c73956a16b477" href="https://twitter.com/hackSultan/status/1143186098820194304?s=19" data-card-controls="0" data-card-theme="light">https://twitter.com/hackSultan/status/1143186098820194304?s=19</a></div>
<p>In summary,
Being a front end web developer isn&#39;t just about the building of websites and learning of frameworks, it also involves the roles and interaction as a front end web developer.</p>
<p>Because the web is a rapidly evolving universe, great frontend developers should never stop learning. Even little things like following Frontend experts on twitter will have an impact on your learning curve.</p>
<p>You need to have some patience to get there. 
The path to becoming a frontend developer will definitely take some time. 
And lastly, please try to have fun while learning and experimenting.</p>
<p>All the best🤩</p>
<p>Did you find this article useful? Share!</p>
]]></content:encoded></item><item><title><![CDATA[Baby Steps to Git and Version Control - Series 2]]></title><description><![CDATA[In my previous article, I wrote about how to create a local repository. By local I mean, a repository which hasn't been pushed online yet.
This is the time I'd ask, hope you enjoyed my last article (series 1 :)), if you've not read it, I advise that ...]]></description><link>https://amarachijohnson.com/baby-steps-to-git-and-version-control-series-2</link><guid isPermaLink="true">https://amarachijohnson.com/baby-steps-to-git-and-version-control-series-2</guid><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Tue, 03 Dec 2019 06:55:34 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1575354888971/fEnQr6OQx.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In my previous article, I wrote about how to create a local repository. By local I mean, a repository which hasn&#39;t been pushed online yet.</p>
<p>This is the time I&#39;d ask, hope you enjoyed my last article (series 1 :)), if you&#39;ve not read it, I advise that you should as this is a sequel to it.</p>
<p>Here&#39;s the link:</p>
<p> <a target='_blank' rel='noopener noreferrer'  href="https://babysteps.hashnode.dev/baby-steps-to-git-and-version-control-series-1-ck36ciz5200eib1s1l5rscbdr">Baby Steps to Git and Version control - Series 1</a></p>
<h3 id="getting-started">Getting Started</h3>
<p>If you want to keep track of your code locally, you don&#39;t need to use an online repository. But if you want to work with a team, you can use GitHub, Gitlab or bitbucket to collaboratively modify the project&#39;s code.</p>
<h3 id="what-we-ll-cover-">What we&#39;ll cover:</h3>
<ol>
<li>Creating a remote Repository </li>
<li>Syncing your remote repository to your local repository.</li>
<li>Updating your git repository (local and remote)</li>
</ol>
<h3 id="creating-a-remote-repository">Creating a Remote Repository</h3>
<p>By now you should have created an account with any of the version control software, of which we&#39;d be using GitHub for this article.
Visit  <a target='_blank' rel='noopener noreferrer'  href="https://github.com">github.com</a> to sign up if you do not have an account already. </p>
<p>To create a remote repository, go ahead and click on <strong>New</strong> button (I&#39;m not a Github first time user so you&#39;d probably see a green <strong>Create Repository</strong> button on yours instead)</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1575353701217/41qIRoebg.png" alt="createnew-repo.PNG"></p>
<p>Whichever way, it&#39;d take you to the page where you enter the name of your repository and a description of your project. It also gives you the option to make your repo private or public.
You could also initialize your repo with a read me by ticking the read me check box.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1575353777927/z8ark3A7B.png" alt="createnew-repo2.PNG"></p>
<h3 id="syncing-your-remote-repository-to-your-local-repository">Syncing your remote repository to your local repository</h3>
<p>Now we&#39;ve created our remote repository, we have to sync it with our local repository so they both can seamlessly communicate.
Open up your git bash, navigate to the folder you&#39;re working on and enter the following codes
<strong>git remote add origin url</strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1575353820397/u4y4X2V-8.png" alt="gitremote.PNG"></p>
<h3 id="updating-your-git-repository-remote-and-local-">Updating your git repository (remote and local)</h3>
<p>Lets go ahead and add some codes to our html file</p>
<pre><code class="lang-&lt;div&gt;">                  &lt;label for="inputEmail" class="sr-only"&gt;Email Address&lt;/label&gt;
                  &lt;input type="email" class="form-control" id="inputEmail" placeholder="Password"&gt;
           &lt;/div&gt;
</code></pre>
<p>As we learnt in the previous series, 
we have to run the following lines of code:</p>
<p><strong>git add index.html</strong></p>
<p>Go ahead and commit</p>
<p><strong>git commit -m &quot;added some html codes&quot;</strong></p>
<p>As it is, our local repository is currently a commit ahead of  the remote repository. To update the remote repo, we&#39;ll have to push our work from the local repository to the remote repository using the code:</p>
<p><strong>git push origin master</strong></p>
<p>&quot;master&quot; is the default branch for every repository and most times houses the main project codes.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1575354026303/3vWLFFLe1.png" alt="git-push.PNG"></p>
<p>You can also choose to create a new branch assuming you made a new feature but you are worried about making changes to the main project (master branch)</p>
<p>You can use the code:
<strong>git branch newBranch</strong> 
to create a new branch, and use 
<strong>git checkout newBranch</strong></p>
<p>The above codes can be combined as
<strong>git checkout -b newBranch</strong></p>
<p>You can use 
<strong>git branch</strong>
to confirm the branch has been created. The branch name with asterisks next to indicates which branch you&#39;re pointed to at a given time.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1575354567055/qm7NuZzkO.png" alt="gitbranch.PNG"></p>
<p>To update the main project branch (master branch) with the contents of the new branch, checkout to the master branch and run:</p>
<p><strong>$git pull origin newBranch</strong></p>
<p>This updates the master branch with all the changes implemented on the newBranch branch.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1575355770131/DpOZB3-9u.png" alt="pull.PNG"></p>
<p>When you push to the remote repository, GitHub will automatically create the branch for you on your remote repository.
This allows people to see the changes you&#39;ve made.</p>
<p><strong>What does &quot;origin&quot; mean?</strong></p>
<p>Origin is a shorthand name for the remote repository that a project was originally cloned from. More precisely, it is used instead of that original repository&#39;s URL -  and thereby making referencing easier.</p>
<p>So to push your changes to the remote repository, you could use either of the following command</p>
<p><strong>git push origin nameOfBranch</strong>
or
<strong>git push https://github.com/username/reponame.git nameOfBranch
</strong> </p>
<p>(You could be prompted to enter your username and password. Note that your password won&#39;t show as you&#39;re entering it. Just enter them correctly an hit enter)</p>
<p>That&#39;s all for now folks!!!
In my next article, I&#39;ll be showing you how to collaborate on a remote project and guide you to making your first pull request.</p>
<p>But for now do enjoy your baby steps, one step at a time. 
Cheers!!!</p>
<p>Reference:  <a target='_blank' rel='noopener noreferrer'  href="https://medium.com/mindorks/fundamentals-of-git-and-github-6d0ca62b0b1f">Fundamental of git and Github by MindOrks</a> </p>
]]></content:encoded></item><item><title><![CDATA[Baby Steps to Git and Version Control - Series 1]]></title><description><![CDATA[In this article, we will be covering

What version control is.
Setting up your Gitbash 
Initializing your repository.
Making your first commit in Git. 
Creating your branches in Git
Reverting to a commit

What Version Control is
Git is a version cont...]]></description><link>https://amarachijohnson.com/baby-steps-to-git-and-version-control-series-1</link><guid isPermaLink="true">https://amarachijohnson.com/baby-steps-to-git-and-version-control-series-1</guid><category><![CDATA[GitHub]]></category><category><![CDATA[Git]]></category><dc:creator><![CDATA[Amarachi Johnson]]></dc:creator><pubDate>Tue, 19 Nov 2019 21:04:26 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1574197019802/zui44SSRu.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In this article, we will be covering</p>
<ol>
<li>What version control is.</li>
<li>Setting up your Gitbash </li>
<li>Initializing your repository.</li>
<li>Making your first commit in Git. </li>
<li>Creating your branches in Git</li>
<li>Reverting to a commit</li>
</ol>
<h3 id="what-version-control-is">What Version Control is</h3>
<p>Git is a version control system that is used to track changes that are made to a file or project. It was made by Linus Trovalds (The creator of the Linux Operating System)
Github is a cloud open-source collaboration platform that brings together the world&#39;s largest community of developers to discover, share and build better software, from open source projects to private teams and to individual projects.
Everyone can upload their codes and track changes made in a project for future use.</p>
<h3 id="setting-up-your-gitbash">Setting Up your Gitbash</h3>
<p>First off, you&#39;ll need to download git bash from https://git-scm.com or https://gitforwindows.org (if you&#39;re running a windows pc)</p>
<p>For the purpose of this course, we&#39;ll be creating a new folder, which I&#39;d named  babysteps2git, which we&#39;ll be using throughout this article.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1574179089440/SP6x0atPG.png" alt="filemgr.PNG"></p>
<p>Inside this folder, we have a file, &#39;index.html&#39; which we&#39;ll be using for instances, which I created from my favorite command line Interface - Cmder.</p>
<p>Now, let&#39;s set up our git globally by configuring or username and email, as this is considered your first time using git.</p>
<p>Open up your gitbash, 
Use the command <strong>$git config --global user.name &quot;Your name&quot;</strong> to configure your username and <strong>$git config --global user.email &quot;Your email&quot;</strong> to configure your email.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1574193630610/mPZKvap3F.png" alt="configure.PNG"></p>
<p>To check if your configuration has been added, type in</p>
<p><strong>$git config --global user.name </strong></p>
<p> to check your username and</p>
<p><strong>$git config --global user.email</strong> </p>
<p> to check your email.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1574193609012/qY1VzVm96.png" alt="config-check.PNG"></p>
<h3 id="initializing-your-repository">Initializing your Repository</h3>
<p>Just assume this to be the part where you tell git &quot;Look this is the folder/directory where I want git to work in right now&quot;
To initialize a repository, we first navigate to the directory where our work is, in my case, the &#39;babysteps2git&#39; folder.</p>
<p>Then we key in</p>
<p><strong>$git init</strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1574193711528/CZEQRxsxZ.png" alt="init.PNG"></p>
<h3 id="making-your-first-commit-in-git">Making Your First Commit in Git</h3>
<p>Committing in Git can be viewed as saving when working on documents.
It&#39;s a way of saving our changes to the repository and storing it with a unique ID and a message.
The ID and message can be used to trace back to the version of the project if need be and that is one of the peculiarity of git commit as opposed to save as.</p>
<p>Before a commit can be made, you have to stage your work first.
Staging is a way of telling the system say &quot;Hey, I&#39;ve made a whole lot of changes to my work, but this one, this one and that one are the ones I want to save&quot;</p>
<p>Hence, when you want to add, you basically do this:</p>
<p><strong>$git add name-of-files</strong></p>
<p>If you want to add all the files you made changes to, do</p>
<p><strong>$git add .</strong></p>
<p>instead.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1574194576920/fFTBuELCZ.png" alt="add.PNG"></p>
<p>Now, after adding/staging the files, you can now commit them or to a lay man, what would look like a &#39;save&#39;.</p>
<p>It is important to note that, it is very necessary to commit your changes using short but detailed commit messages like the one shown above.</p>
<p>To view the status of your repository, know which branch you&#39;re on, which files were modified, not staged, staged and is ready to be committed, use the code:</p>
<p><strong>$git status </strong></p>
<h3 id="creating-branches-in-git">Creating Branches in Git</h3>
<p>Let&#39;s say you&#39;re working on different versions of a project or you&#39;re collaborating on a project with some friends or colleagues, it is important to have a branch say &quot;master&quot;, which is  the default branch for every repository that stores the original and modified codes from the various contributors. To collaborate or work on various versions of a project, we have to work from different branches.</p>
<p>By developing  in branches, it’s not only possible to work on multiple versions of your code in parallel, but it also keeps the main master branch free from questionable code.</p>
<p>So, for our babysteps2git project, we can decide to have several branches, each housing a different version of the code.
To create a new branch in git, we use the command,</p>
<p><strong>$git branch nameOfBranch</strong></p>
<p>To check out the new branch, use </p>
<p><strong>$git checkout nameOfBranch</strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1574194634663/028KNmurN.png" alt="branch.PNG"></p>
<p>The above 2 commands can be done simultaneously using the command:</p>
<p><strong>$git checkout -b nameOfBranch </strong></p>
<h3 id="reverting-to-a-commit">Reverting to a Commit</h3>
<p>Here comes another very interesting stuff about git, the ability to revert changes made overtime, something CTRL+Z cannot do.</p>
<p>While working with git, you might want to go back to a particular state of your code, this can be achieved by reverting to the particular commit you want to get back to.
Each commit we make, have a unique ID attached to it, to get this ID, you can type in </p>
<p><strong>$git log</strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1574197402147/-xapiNqvo.png" alt="gitlog.PNG"></p>
<p>Alternatively, the output above can be logged in one line using</p>
<p><strong>$git log --oneline </strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1574194674292/fjAKxkK9p.png" alt="gitlogoneline.PNG"></p>
<p>From the above, you can see the ID and commit messages for each of the commits.</p>
<p>To revert, key in</p>
<p>$git revert commit-ID</p>
<p>This command reverts to the very state of that code as at the time of that commit.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1574194696800/Fzg8FK8ow.png" alt="gitrevert.PNG"></p>
<p>Several other git commands have been published on several other platforms including the git cheat sheets, but I hope this gets someone started today.</p>
<p>I&#39;ll be posting a sequel to this, but for now, do enjoy your baby steps.
Cheers. </p>
]]></content:encoded></item></channel></rss>