<!DOCTYPE html>
<html lang="en">
<head>

  <!-- Basic Page Needs
  –––––––––––––––––––––––––––––––––––––––––––––––––– -->
  <meta charset="utf-8">
  <title>My Blog</title>
  <meta name="description" content="A blog">
  <meta name="author" content="Howard Smith">

  <!-- Mobile Specific Metas
  –––––––––––––––––––––––––––––––––––––––––––––––––– -->
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <!-- FONT
  –––––––––––––––––––––––––––––––––––––––––––––––––– -->
  <link href="//fonts.googleapis.com/css?family=Raleway:400,300,600" rel="stylesheet" type="text/css">
  <link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>

  <!-- CSS
  –––––––––––––––––––––––––––––––––––––––––––––––––– -->
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/3.0.3/normalize.css">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.css">
  <link rel="stylesheet" href="../styles/main.css">

  <!-- Favicon
  –––––––––––––––––––––––––––––––––––––––––––––––––– -->
  <link rel="icon" type="image/png" href="images/favicon.png">

</head>
<body>

  <!-- Primary Page Layout
  –––––––––––––––––––––––––––––––––––––––––––––––––– -->
  <div class="container">

    <header class="row textpanel">
      <div class="nav-row">
        <div class="two columns nav-col">
          <img id="cabbagetree" src="../cabbagetree1.png" alt="A picture of a cabbage tree">
        </div>
        <div class="two columns nav-col">
          <a href="../index.html">Home</a>
        </div>
        <div class="two columns nav-col">
          <a href="#">About</a>
        </div>
        <div class="two columns nav-col">
          <a href="#">Blogs</a>
        </div>
        <div class="two columns nav-col">
          <a href="#">Other</a>
        </div>
        <div class="two columns nav-col">
          <a href="#">Contact</a>
        </div>
      </div>
    </header>

    <main class="row textpanel">
      <div class="row">
        <div class="twelve columns">
          <h3>Technical Blog - Sprint 8</h3>
            <h4>Tell your non-tech friend a story about a time you</h4>
              <h5>1. Got blocked on a simple problem</h5>
                <h6>What was the problem?</h6>
                  <p>I've often become blocked on simple coding tasks because I've had too many things on the go.</p>
                <h6>What problem solving techniques did you use?</h6>
                  <p>The usual solution is to have a quick break then come back and simplify things. (i.e. ignore the other tasks for a while, close windows on the PC, clean up the desk/room, etc).</p>
                <h6>How did you feel throughout the process?</h6>
                  <p>Initially confused but eventually clarity creeps in.</p>
                <h6>What did you learn?</h6>
                  <p>That humans have a very limited capacity to multi-task (unlike computers)</p>
              <h5>2. Solved a problem in an elegant way</h5>
                <h6>What was the problem?</h6>
                  <p>When teaching English I found that students were to fixated on technical aspects of language but were missing the basic point of language learning - communication.</p>
                <h6>What problem solving techniques did you use?</h6>
                  <p>I thought widely about the resources that myself and the students could easily access and understand. I then selected the most accessible of these.</p>
                <h6>How did you feel throughout the process?</h6>
                  <p>Pleased that my direction was correct but also aware that the idea required some pitching to various stakeholders.</p>
                <h6>What did you learn?</h6>
                  <p>To trust my instincts!</p>
            <h4>Reflect on how confident you feel using the problem solving techniques and process:</h4>
              <h5>Pseudocode</h5>
                <p>I generally prefer to use this on a problem which has a clearly defined algorithm but where I may not be familiar with how to express that in code. I like pseudocode.</p>
              <h5>Trying something</h5>
                <p>This is not my first choice as it's a little random, but it's worth a go sometimes. It can be easy to lose direction doing this.</p>
              <h5>Rubber ducky method</h5>
                <p>I have yet to use this much.</p>
              <h5>Reading error messages</h5>
                <p>This is essential but some error messages are hard to understand or vague.</p>
              <h5>Console.logging</h5>
                <p>Generally this is a very important and simple technique.</p>
              <h5>Googling</h5>
                <p>Always important but one must be very careful about selecting the most useful results and carefully framing questions.</p>
              <h5>Asking your peers for help</h5>
                <p>This is good for questions about process or vague problems. Often peers have already experienced the same problem.</p>
              <h5>Asking coaches for help</h5>
                <p>I haven't yet done this but as problems become harder this could be a useful approach.</p>
              <h5>Improving your process with reflection</h5>
                <p>Let me think about that....!</p>
            <h4>Explain to your non-tech friend using the JS Array docs as a starting point, describe what these functions do in your own words:</h4>
              <h5>.map()</h5>
                <p>This simply takes a function and applies it to every member of the data set. The result is a new data set.</p>
              <h5>.filter()</h5>
                <p>This gives us all the members of a data set that pass a test</p>
              <h5>.reduce()</h5>
                <p>This reduces all members of a data set to one data item.</p>
            <h4>In a 20 minute timebox, have a go at explaining how recursion compares to iteration (In your own words)</h4>
              <p>Recursion is a process where a function may call itself (usually with different arguments). It must have a "base case" or terminating point otherwise it will try to continue for ever. Recursion will be a natural fit for some problems (such as tree traversal) but may have performance issues.</p>
              <p>Iteration means repeating the same task a set number of times or until a true condition becomes false. Iteration often works faster than recursion however it may lead to the logic of the problem becoming obfuscated.</p>
      </div>
    </main>

    <footer class="row textpanel">
      <p>
      Copyright 2015
      </p>
    </footer>

  </div>

<!-- End Document
  –––––––––––––––––––––––––––––––––––––––––––––––––– -->
</body>
</html>
