<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ayelishaamoah</title>
    <description>The latest articles on DEV Community by ayelishaamoah (@ayelishaamoah).</description>
    <link>https://dev.to/ayelishaamoah</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F170481%2F9c0b93ad-4307-42f3-b7c8-9b6f41cf713a.png</url>
      <title>DEV Community: ayelishaamoah</title>
      <link>https://dev.to/ayelishaamoah</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ayelishaamoah"/>
    <language>en</language>
    <item>
      <title>Re-learning the basics</title>
      <dc:creator>ayelishaamoah</dc:creator>
      <pubDate>Wed, 19 May 2021 16:53:47 +0000</pubDate>
      <link>https://dev.to/ayelishaamoah/re-learning-the-basics-3jbe</link>
      <guid>https://dev.to/ayelishaamoah/re-learning-the-basics-3jbe</guid>
      <description>&lt;p&gt;As a developer, it can be easy to focus too much on the job at hand without taking the time to reflect on what we've learnt, so I wanted to give myself the chance to get back to basics and solidify what I've learnt and will see if there are any gaps in my knowledge that I can fill. &lt;/p&gt;

&lt;p&gt;To do this I decided to work through some of the challenges set out on &lt;a href="https://www.frontendmentor.io/challenges"&gt;Frontend Masters&lt;/a&gt;. The first challenge I attempted was the &lt;a href="https://www.frontendmentor.io/challenges/single-price-grid-component-5ce41129d0ff452fec5abbbc"&gt;Single price grid component&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  The challenge
&lt;/h3&gt;

&lt;p&gt;Users should be able to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;View the optimal layout for the component depending on their device's screen size&lt;/li&gt;
&lt;li&gt;See a hover state on desktop devices for the Sign-Up call-to-action&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My process
&lt;/h2&gt;

&lt;p&gt;I started by setting up my project that involved creating a dedicated repository for all of the challenges, each challenge will have a README and be fully self-contained. I began by creating a bare-bones project with Create React App (CRA) that included TypeScript support. Then I added Storybook for the component library and Styled Components (A popular CSS-in-JS library) for the component styling.&lt;/p&gt;

&lt;h3&gt;
  
  
  Built with
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Semantic HTML5 markup&lt;/li&gt;
&lt;li&gt;Flexbox&lt;/li&gt;
&lt;li&gt;Responsive markup&lt;/li&gt;
&lt;li&gt;&lt;a href="https://reactjs.org/"&gt;React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://styled-components.com/"&gt;Styled Components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.typescriptlang.org/"&gt;TypeScript&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What I built
&lt;/h3&gt;

&lt;p&gt;This is what I was trying to build&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0iqdmwa9lojfp2q073ut.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0iqdmwa9lojfp2q073ut.png" alt="image" width="800" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is what I actually built&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwv2lqwj98h7gpq1kemav.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwv2lqwj98h7gpq1kemav.png" alt="image" width="689" height="511"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Thoughts
&lt;/h4&gt;

&lt;p&gt;I chose to do this as a time-boxed exercise so that meant I couldn't spend as long as I would have liked to fine-tune the styling. &lt;/p&gt;

&lt;p&gt;I think that my fonts are a bit off, specifically the font weight and spacing but if this was a real-life task, I'd hope to have a more comprehensive design document that includes font weights and line heights. I think you might get this level of detail with the paid tier of Frontend Masters and would make it easier to create a pixel-perfect component. &lt;/p&gt;

&lt;p&gt;However, being able to spot those nuances and recreate them with CSS is an area for improvement - you might not always have the luxury of having a fully fleshed out design specification or design system.&lt;/p&gt;

&lt;p&gt;I think I also should have used the same text content to make it possible to compare a like-for-like design.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I learned/ refreshed
&lt;/h3&gt;

&lt;p&gt;During this project, I refreshed my knowledge on the following areas of Frontend Development and learnt a couple of CSS tricks that I hadn't used before.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[Recap] Responsive design and how to use &lt;a href="https://www.w3schools.com/css/css_rwd_mediaqueries.asp"&gt;media queries&lt;/a&gt; to build responsive layouts&lt;/li&gt;
&lt;li&gt;[Recap] Responsive font sizes - I tried using both em and rem and have decided that rem is more predictable&lt;/li&gt;
&lt;li&gt;[Recap] &lt;a href="https://www.w3schools.com/html/html5_semantic_elements.asp"&gt;Semantic HTML elements&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;[Recap] &lt;a href="https://css-tricks.com/almanac/properties/t/transition/"&gt;css transitions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;[New] &lt;a href="https://til.hashrocket.com/posts/4jhm8rrq7c-lighten-and-darken-with-css-brightness-filter"&gt;css filters&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;
&lt;span class="nt"&gt;transition&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;filter&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nt"&gt;s&lt;/span&gt; &lt;span class="nt"&gt;ease-in-out&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nd"&gt;:hover&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

&lt;span class="nl"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="n"&gt;brightness&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;90%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;[Recap] Setting up Storybook&lt;/li&gt;
&lt;li&gt;[Recap] SASS - mainly used the &lt;a href="https://sass-lang.com/documentation/style-rules/parent-selector"&gt;parent selector (&amp;amp;) example above&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;[Recap] Basic TypeScript for React Functional Components&lt;/li&gt;
&lt;li&gt;[New] Styled Components (example below). I have recently used &lt;a href="https://emotion.sh/docs/introduction"&gt;emotion&lt;/a&gt; (which is built on Styled Components) and wanted to compare the differences.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ButtonStyle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;styled&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt;&lt;span class="s2"&gt;`

background-color: &lt;/span&gt;&lt;span class="p"&gt;${(&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ButtonStyleProps&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;variant&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;primary&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;colours&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;secondaryOne&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;;

`&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;N.B I think I will need to spend a bit more time using Styled Components before comparing as I'm not sure if the way I am using props is the most efficient approach - this seems much cleaner in Emotion if you have a few styles that need to change based on the same property that is passed into the component.&lt;/p&gt;

&lt;p&gt;I would also like to explore theming with Styled Components - this is easy with Emotion and I would like to see if it's as straightforward with Styled Components&lt;/p&gt;

&lt;h3&gt;
  
  
  Continued development/ next steps
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Deploy the component library so that I can add a publicly accessible link to these posts&lt;/li&gt;
&lt;li&gt;Rebuild the component using CSS grid (or think about using grid in an upcoming project)&lt;/li&gt;
&lt;li&gt;Read more about accessibility and see if there are any updates needed to bring the component in line with accessibility standards&lt;/li&gt;
&lt;li&gt;Think about how small the 'atoms' should be when designing components&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Useful resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://storybook.js.org/docs/react/get-started/introduction"&gt;Storybook&lt;/a&gt; - I have enjoyed working with Storybook as you can create smaller components in isolation and then bring them together&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is a link to the &lt;a href="https://github.com/ayelishaamoah/frontend-projects/tree/main/src/solutions/SinglePriceGridChallenge"&gt;repository&lt;/a&gt;, if anyone has any feedback on how to improve the component that would be hugely appreciated.&lt;/p&gt;

&lt;p&gt;Any feedback on the article itself would also help me out for posts I write in the future.&lt;/p&gt;

</description>
      <category>react</category>
      <category>showdev</category>
      <category>wecoded</category>
    </item>
    <item>
      <title>Test Driving FizzBuzz</title>
      <dc:creator>ayelishaamoah</dc:creator>
      <pubDate>Wed, 05 Jun 2019 23:05:05 +0000</pubDate>
      <link>https://dev.to/ayelishaamoah/test-driving-fizzbuzz-1cko</link>
      <guid>https://dev.to/ayelishaamoah/test-driving-fizzbuzz-1cko</guid>
      <description>&lt;h3&gt;
  
  
  What is TDD?
&lt;/h3&gt;

&lt;p&gt;Test Driven Development is a development approach that involves writing your test first and then writing the simplest code that allows you to pass that test, allowing tests to guide your application code. This process is repeated as many times as it is required.&lt;/p&gt;

&lt;h3&gt;
  
  
  Unit testing
&lt;/h3&gt;

&lt;p&gt;Unit tests should test a single unit of code - generally a method/ function and should only be concerned with the output of that unit. We can use tools such as mocks, stubs and testing frameworks to make unit testing easier.&lt;/p&gt;

&lt;p&gt;Generally unit testing consists of four parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;setup -  the system under test (usually a class, object, or method) is set up e.g &lt;code&gt;account = Account.new&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;exercise - the system under test is executed &lt;code&gt;account.deposit(1000)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;verify - check the result against the expectation&lt;code&gt;expect(account.show_balance).to eq 1000&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;teardown - reset the system under test (usually handled by the language framework)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  TDD process
&lt;/h3&gt;

&lt;p&gt;A common approach to TDD is the Red-Green-Refactor lifecycle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Red - write a failing test&lt;/li&gt;
&lt;li&gt;Green - write the simplest code to pass the test&lt;/li&gt;
&lt;li&gt;Refactor - clean up the code that was written&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  TDD in swift
&lt;/h3&gt;

&lt;p&gt;As I'm beginning my journey with swift I am interested in gaining exposure to the XCTest framework. In order to do this I will attempt to TDD a basic FizzBuzz app. This involves starting a project in XCode. &lt;/p&gt;

&lt;p&gt;Fizzbuzz is a programming Kata that can be used to learn TDD and is a great way to explore TDD in a new language.&lt;/p&gt;

&lt;h3&gt;
  
  
  Process
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create a file for the tests&lt;/li&gt;
&lt;li&gt;Write the first test e.g
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;    &lt;span class="kd"&gt;func&lt;/span&gt; &lt;span class="nf"&gt;testIsDivisibleByThree&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;brain&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;Brain&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;brain&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;isDivisibleByThree&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;number&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="kt"&gt;XCTAssertEqual&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;XCode will throw some errors that you will want to resolve step-by-step.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Import the app into your test file by placing&lt;code&gt;@testable import FizzBuzz&lt;/code&gt;at the top of file under&lt;code&gt;import XCTest&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Write the simplest code to pass the tests
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="kt"&gt;Brain&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;func&lt;/span&gt; &lt;span class="nf"&gt;isDivisibleByThree&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;number&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;Int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="kt"&gt;Bool&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Run the tests using ⌘ + U&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This process is repeated for each piece of functionality with refactors when code starts becoming repetitive.&lt;/p&gt;

&lt;p&gt;Here is a great article on Medium &lt;a href="https://medium.com/@ynzc/getting-started-with-tdd-in-swift-2fab3e07204b"&gt;Getting Started with TDD in Swift&lt;/a&gt; that I followed in order to build FizzBuzz in Swift.&lt;/p&gt;

</description>
      <category>tdd</category>
      <category>testing</category>
      <category>swift</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Effective Debugging</title>
      <dc:creator>ayelishaamoah</dc:creator>
      <pubDate>Sat, 25 May 2019 21:27:48 +0000</pubDate>
      <link>https://dev.to/ayelishaamoah/effective-debugging-5hd9</link>
      <guid>https://dev.to/ayelishaamoah/effective-debugging-5hd9</guid>
      <description>&lt;h3&gt;
  
  
  What is a bug?
&lt;/h3&gt;

&lt;p&gt;A bug is an error or fault with a program that causes an unexpected or incorrect result. There can be many causes of bugs with some including issues with the code itself e.g typos, syntax errors and undefined variables or issues with unexpected behaviour which means that the code is running fun but the expected result is not being produced - unit tests are good at catching these types of errors e.g the below will show whether your program is producing unexpected results:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fizzbuzz
  prints Fizz if the number is 3 (FAILED - 1)

Failures:

  1) FizzBuzz prints Fizz if the number is 3
     Failure/Error: expect(fizzbuzz(3)).to eq 'Fizz'

       expected: "Fizz"
            got: 3

1 example, 1 failure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An important point to mention is that no matter your testing methodology, if you come across an error that does not have a test case already written, you should write a test case that reproduces the bug, this will help keep you focused on fixing that bug and highlight if that bug happens again.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does a good debugging process look like?
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Tighten the loop
&lt;/h4&gt;

&lt;p&gt;The first step is to find where the error is originating from.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  2) RandomHappyEmoji::new returns a :D emoji as a string
     Failure/Error: super(HAPPY_EMOJI.sample)

     NameError:
       uninitialized constant HAPPY_EMOJI
     # ./lib/random_happy_emoji.rb:10:in `initialize'
     # ./spec/units/random_happy_emoji_spec.rb:11:in `new'
     # ./spec/units/random_happy_emoji_spec.rb:11:in `block (3 levels) in &amp;lt;top (required)&amp;gt;'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By reading the stack trace in the error message you can find the file and line number.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# ./lib/random_happy_emoji.rb:10:in `initialize'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The line above highlights file and line the error message is originating from. Error message contains a lot useful information to help point you in the right direction - although arguably some languages are more helpful than others.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Get visibility on the error
&lt;/h4&gt;

&lt;p&gt;The next step would be to read the code where the error is located and see whether you can you follow what is happening in your code. Are there any tools that will help you see what your code is outputting at each step?&lt;br&gt;
Ruby has the p command which can be used to return a value on a specific line, variable or method call.&lt;br&gt;
JavaScript has console.log() and the debugger in your chrome dev tools&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Make a change and run a test
&lt;/h4&gt;

&lt;p&gt;Only make a change to the code when you have a clear idea of what is going on. Check if your test has made a change to the error message - if not you can undo that change.&lt;/p&gt;

&lt;p&gt;One thing that I can't stress enough is making sure you read your error messages, on numerous occasions I have sat there scratching my head before noticing that the console is shouting something like 'unexpected token ; on line 5'. If you notice this happening it is probably time for a break.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>debugging</category>
      <category>processes</category>
    </item>
    <item>
      <title>Learning by translation</title>
      <dc:creator>ayelishaamoah</dc:creator>
      <pubDate>Sat, 25 May 2019 18:27:00 +0000</pubDate>
      <link>https://dev.to/ayelishaamoah/learning-by-translation-1759</link>
      <guid>https://dev.to/ayelishaamoah/learning-by-translation-1759</guid>
      <description>&lt;p&gt;Due to the rate of change a software engineer is faced with, being able to pick up new languages and technologies is crucial. One of the focuses at Makers Academy is being able to feel confident in saying "I can make anything", to me this means being able to feel comfortable working on unfamiliar technologies so that you aren't restricted to working on the same tech stacks throughout your career. &lt;/p&gt;

&lt;p&gt;In week 5 of Makers Academy we discussed the concept of Learning by translation which involves taking a problem that you have previously tackled and trying to solve that problem using an unfamiliar language. &lt;/p&gt;

&lt;p&gt;By focusing on programming concepts and patterns that transfer directly into another language can help to quickly get exposure to a new language.&lt;/p&gt;

&lt;p&gt;Once you have an idea of the problem you want to solve, make a note of the concepts that you need to understand in order to solve that problem. For example one of the steps involves writing a for loop:&lt;/p&gt;

&lt;h4&gt;
  
  
  Ruby code
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;for variable in expression do
  some repeatable statement
end

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;for i in 0..5
   puts "Number: #{i}"
end

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  JavaScript code
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
for (variable; condition; increment) {
  repeatable statement
};

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var i;

for (i = 0; i &amp;lt; 5; i++) {
 console.log("Number: " + i);
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://www.hackerrank.com/challenges/fizzbuzz/problem"&gt;FizzBuzz&lt;/a&gt; is a good starter challenge to become familiar with a new language as it is a simple problem that uses core programming concepts such as loops and can be used to learn a new testing framework.&lt;/p&gt;

&lt;p&gt;Although this is a useful approach to get a quick overview of some of the common functionality of a language that you know you'll need but it won't necessarily help you in the conventions of the language e.g Ruby convention suggests naming variables in snake_case for methods and variables but JavaScript convention prefers camelCase.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Long term growth</title>
      <dc:creator>ayelishaamoah</dc:creator>
      <pubDate>Fri, 24 May 2019 11:45:57 +0000</pubDate>
      <link>https://dev.to/ayelishaamoah/long-term-growth-35gg</link>
      <guid>https://dev.to/ayelishaamoah/long-term-growth-35gg</guid>
      <description>&lt;p&gt;As a Makers Academy student you are expected to be able to be in control of your own learning, this means that you have to leave any expectations of hand holding at the door. You are provided with broad goals that are meant to help you progress at Makers and beyond:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I am equipped for long term growth&lt;/li&gt;
&lt;li&gt;I can make anything&lt;/li&gt;
&lt;li&gt;I help my teams succeed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've spent a bit of time thinking about what it means to be equipped for long term growth and I think that this involves being able to diagnose your own learning needs and making sure that you are using your time effectively - this is especially important at Makers where the amount you need to learn drastically exceeds the time you have during the course. The coaches explain pretty early on that we are in charge of what content we decide to use to help us reach our learning goals - this is both empowering and slightly terrifying.&lt;/p&gt;

&lt;p&gt;Each week we have set learning objectives that we need to cover and are provided with resources that we can go through, there are also optional workshops throughout the week which go over some of the core concepts we are expected to understand. &lt;/p&gt;

&lt;h3&gt;
  
  
  Weekly Process
&lt;/h3&gt;

&lt;p&gt;I usually start the week by having a look at the learning objectives and plan to attend any workshops that are scheduled as I find these more useful than reading through docs. Any topics that are not covered will be added to my to do list for the week.&lt;/p&gt;

&lt;h3&gt;
  
  
  Daily Process
&lt;/h3&gt;

&lt;p&gt;I'll usually set myself 2-3 daily goals which should be measurable e.g:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I will take 6 breaks throughout the day&lt;/li&gt;
&lt;li&gt;I will spend an hour at the end of the day consolidating notes taken during the day or making notes related to a learning objective
You should be able to easily answer yes or no to whether the goal has been met - goals should be ambigious e.g I will start a project as you won't have a clear idea of what that actually means&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I usually use &lt;a href="https://www.ultraworking.com/cycles" rel="noopener noreferrer"&gt;work cycles&lt;/a&gt; to plan my day which works nicely with the &lt;a href="https://francescocirillo.com/pages/pomodoro-technique" rel="noopener noreferrer"&gt;Pomodoro&lt;/a&gt; as you can have short bursts of uninterrupted periods of work followed by short breaks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F0b0lfr8vvu39yvhdwgjc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F0b0lfr8vvu39yvhdwgjc.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is something that has helped me plan and track and measure my daily learning as well as manage my own wellbeing - my initial approach of trying to force my way through a problem wasn't getting me very far and working for long periods of time meant I would burn out by the end of the day.&lt;/p&gt;

</description>
      <category>goals</category>
      <category>longtermgrowth</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
