<?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: Andy Chen</title>
    <description>The latest articles on DEV Community by Andy Chen (@andych3n).</description>
    <link>https://dev.to/andych3n</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%2F648018%2Fb3fbf655-1ad4-4d90-99bb-b5ffda7c3661.jpeg</url>
      <title>DEV Community: Andy Chen</title>
      <link>https://dev.to/andych3n</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/andych3n"/>
    <language>en</language>
    <item>
      <title>strategies to puzzles</title>
      <dc:creator>Andy Chen</dc:creator>
      <pubDate>Wed, 28 Jul 2021 01:42:38 +0000</pubDate>
      <link>https://dev.to/andych3n/strategies-to-puzzles-2pn2</link>
      <guid>https://dev.to/andych3n/strategies-to-puzzles-2pn2</guid>
      <description>&lt;p&gt;&lt;strong&gt;Palindroms&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;recursion&lt;/li&gt;
&lt;li&gt;stringmanipulation
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;string.replace(/[^A-Za-z0-9]/g, '')   gets rid of spaces&lt;br&gt;
string.split('').reverse().join('')&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;for loops

&lt;code&gt;for loops for (var i = 0; i &amp;lt; len / 2; i++) {
 if (characters[i] !== characters[len - 1 - i]) return false;
}&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Reversing strings&lt;/strong&gt; =  1) reverse&lt;br&gt;
                     2) decrementing for loop&lt;br&gt;
                     3) recursion with substr and charAt&lt;/p&gt;

&lt;p&gt;Binary Search.. linkedlist ... etc to come&lt;/p&gt;

</description>
    </item>
    <item>
      <title>useful array methods</title>
      <dc:creator>Andy Chen</dc:creator>
      <pubDate>Tue, 27 Jul 2021 22:01:54 +0000</pubDate>
      <link>https://dev.to/andych3n/useful-array-methods-15la</link>
      <guid>https://dev.to/andych3n/useful-array-methods-15la</guid>
      <description>&lt;p&gt;Map&lt;/p&gt;

&lt;p&gt;Contains&lt;/p&gt;

&lt;p&gt;Reduce&lt;/p&gt;

&lt;p&gt;Filter&lt;/p&gt;

&lt;p&gt;forEach -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var test = [5, 6, 2]


var maxNumDeclarative = function(array) {
  // your code here
  var maxi = array[0]


  array.forEach((item) =&amp;gt; { 
    if (item &amp;gt; maxi) 
    maxi = item;
   })


  // array.forEach(function (item) {
  //   if (item &amp;gt; maxi) {
  //     maxi = item;
  //   }
  // })


  return maxi;
};

maxNumDeclarative(test); ```



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

&lt;/div&gt;

</description>
    </item>
    <item>
      <title>Function Invocation vs Function Definition</title>
      <dc:creator>Andy Chen</dc:creator>
      <pubDate>Mon, 19 Jul 2021 00:11:01 +0000</pubDate>
      <link>https://dev.to/andych3n/function-invocation-vs-function-definition-1c8d</link>
      <guid>https://dev.to/andych3n/function-invocation-vs-function-definition-1c8d</guid>
      <description>&lt;p&gt;Function Definition is where we build our function (after the double parenthesis).&lt;/p&gt;

</description>
    </item>
    <item>
      <title>s.l advice</title>
      <dc:creator>Andy Chen</dc:creator>
      <pubDate>Wed, 14 Jul 2021 22:49:30 +0000</pubDate>
      <link>https://dev.to/andych3n/s-l-advice-53ji</link>
      <guid>https://dev.to/andych3n/s-l-advice-53ji</guid>
      <description>&lt;p&gt;-recommend slides on types of classes and function binding&lt;br&gt;
-jquery is good portion of first few weeks&lt;br&gt;
-study about react&lt;br&gt;
-hone in on recursion&lt;br&gt;
-did underbar in one day&lt;br&gt;
-again slides on variables/closure/functional classes&lt;/p&gt;

</description>
    </item>
    <item>
      <title>ES6 notation</title>
      <dc:creator>Andy Chen</dc:creator>
      <pubDate>Tue, 13 Jul 2021 21:50:38 +0000</pubDate>
      <link>https://dev.to/andych3n/es6-notation-3d28</link>
      <guid>https://dev.to/andych3n/es6-notation-3d28</guid>
      <description>&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions"&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const materials = [
  'Hydrogen',
  'Helium',
  'Lithium',
  'Beryllium'
];

console.log(materials.map(material =&amp;gt; material.length));
// expected output: Array [8, 6, 7, 9]


// Traditional Function
function (a){
  return a + 100;
}

// Arrow Function Break Down

// 1. Remove the word "function" and place arrow between the argument and opening body bracket
(a) =&amp;gt; {
  return a + 100;
}

// 2. Remove the body braces and word "return" -- the return is implied.
(a) =&amp;gt; a + 100;

// 3. Remove the argument parentheses
a =&amp;gt; a + 100;

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

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>RECURSION RECAP</title>
      <dc:creator>Andy Chen</dc:creator>
      <pubDate>Sun, 04 Jul 2021 02:35:56 +0000</pubDate>
      <link>https://dev.to/andych3n/recursion-recap-kf6</link>
      <guid>https://dev.to/andych3n/recursion-recap-kf6</guid>
      <description>&lt;p&gt;Define Recursion. - Calls itself&lt;/p&gt;

&lt;p&gt;Identify when writing a recursive algorithm is the right approach to solving a problem.&lt;/p&gt;

&lt;p&gt;Can replace a for loop or when we don't know when we want the function to end. (Linkedlist node). Nested data structures identical structure nested inside. Combination / permutation then use recursion. (n is the input). &lt;/p&gt;

&lt;p&gt;Identify the base case of a recursive algorithm/strategy.&lt;br&gt;
&lt;em&gt;bold&lt;/em&gt;*-All recursive functions have at least one base case; a case where the function can produce a result without recursing.&lt;/p&gt;

&lt;p&gt;In the factorial example above, number === 0 is an example of this solution's base case: If number is 0, we know the solution must be 1 and thus we don't need to recursive to solve the problem.&lt;/p&gt;

&lt;p&gt;Identify the recursive case of a recursive algorithm/strategy.&lt;br&gt;
 -recursive case is where function invokes itself.&lt;/p&gt;

&lt;p&gt;Understand what the Call Stack is.&lt;br&gt;
 -Call stack is the order in which the function is executed. It starts &lt;strong&gt;LIFO&lt;/strong&gt; &lt;strong&gt;LAST IN FIRST OUT&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Understand the relationship between the execution contexts that come to exist during a recursive process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEPS TO SOLVE RECURSION&lt;/strong&gt;&lt;br&gt;
1) Identify the smallest piece of the data that your function needs to handle&lt;br&gt;
2) Write the function to handle this case and only this case (BASE CASE).&lt;br&gt;
3) Once base case handled, Identify what will make the function need to continue (find the recursive call)&lt;br&gt;
4) Make the recursive call&lt;br&gt;
5) Accumulate the return to previous calls (store the value)&lt;/p&gt;

</description>
    </item>
    <item>
      <title>GIT SUBMISSIONS PRECOURSE</title>
      <dc:creator>Andy Chen</dc:creator>
      <pubDate>Tue, 22 Jun 2021 06:29:09 +0000</pubDate>
      <link>https://dev.to/andych3n/git-submissions-precourse-4522</link>
      <guid>https://dev.to/andych3n/git-submissions-precourse-4522</guid>
      <description>&lt;p&gt;base repository: hackreactor/seip2006-xx, base (yourusername) &amp;lt;- headrepository: username/seip2106, compare: master&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Testbuilder comments v1</title>
      <dc:creator>Andy Chen</dc:creator>
      <pubDate>Mon, 21 Jun 2021 06:42:21 +0000</pubDate>
      <link>https://dev.to/andych3n/testbuilder-comments-v1-1d13</link>
      <guid>https://dev.to/andych3n/testbuilder-comments-v1-1d13</guid>
      <description>&lt;ol&gt;
&lt;li&gt;wise choice of variable declarations!&lt;/li&gt;
&lt;li&gt;general rule of thumb is: if a value or a method/function is used 3. more than once with the same arguments, setting a variable for it may be a good idea&lt;/li&gt;
&lt;li&gt;instead of having JS constantly process a function call, we can process it once, save it in memory (a variable) and just use this data from memory for more efficiency ⚡&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;CONS - &lt;br&gt;
Variable Naming&lt;br&gt;
we should name variables very explicitly, like plain English.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;do not create numbered variables; avoid naming variables like x1, x2, x3 etc, even if the number has some meaning!&lt;/li&gt;
&lt;li&gt;consider using a name such as firstTwoDigits or firstTwoCharacters&lt;/li&gt;
&lt;li&gt;using a mathematical range detection approach would be a more efficient process ⚡&lt;/li&gt;
&lt;li&gt;instead of having JS process 5 separate conditions, we can speed things up by checking 2 conditions
just remember to adhere to best practices and convert your string into a number&lt;/li&gt;
&lt;li&gt;we can shorten our code a LOT if we were to use native JS methods such as .includes/.indexOf
that would address the work that we're doing within this entire loop~&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;instead of this very "hard-coded" approach, consider using the card variables above with our detection&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if ( ( card === '38' || card === '39' ) &amp;amp;&amp;amp; cardNumber.length === 14) {

return "Diner's Club";
&lt;/code&gt;&lt;/pre&gt;


&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;} ```&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;this type of approach would allow for us to address (1) network per if block which reduces the amount of repetitiveness&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;we can create a library of helpers for each card network&lt;br&gt;
this type of work is a bit less on priority as it is our main duty to pump out a working product more than a perfect product&lt;br&gt;
the idea here is to build a library of "alike" functions that all do the same thing&lt;br&gt;
they all just want to confirm whether or not the card belongs to their network&lt;br&gt;
inside these helpers is where we want to use our other helpers to help with the detection&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;JS's type coercion will always prioritize String data types&lt;br&gt;
therefore, there is no need to call .toString here&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Software Engineer approach process: Systematic Process</title>
      <dc:creator>Andy Chen</dc:creator>
      <pubDate>Tue, 15 Jun 2021 03:09:04 +0000</pubDate>
      <link>https://dev.to/andych3n/software-engineer-approach-process-systematic-process-f4b</link>
      <guid>https://dev.to/andych3n/software-engineer-approach-process-systematic-process-f4b</guid>
      <description>&lt;ol&gt;
&lt;li&gt;Interpret the prompt - What is it really asking ?&lt;/li&gt;
&lt;li&gt;Input Output Constraints Edgecases - IOCE &lt;/li&gt;
&lt;li&gt;Write tests&lt;/li&gt;
&lt;li&gt;High level strategies (make diagrams if neccessary)&lt;/li&gt;
&lt;li&gt;Pseudocode the strategy&lt;/li&gt;
&lt;li&gt;Implement the solution&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Debugging </title>
      <dc:creator>Andy Chen</dc:creator>
      <pubDate>Mon, 14 Jun 2021 20:23:02 +0000</pubDate>
      <link>https://dev.to/andych3n/debugging-3k29</link>
      <guid>https://dev.to/andych3n/debugging-3k29</guid>
      <description>&lt;p&gt;Using primarily Google Chrome's Debugger tool&lt;/p&gt;

&lt;p&gt;Tutorial: &lt;a href="https://developer.chrome.com/docs/devtools/javascript/"&gt;https://developer.chrome.com/docs/devtools/javascript/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To open - Inspect Element on webpage&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sources to see all the files associated with webpage&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can make breakpoints and filter them with using 'Event Listener Breakpoints'&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Step over function call to go skip to different functions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Local -&amp;gt; Scope + Breakpoints can be an efficient tool to see how your variables are progressing within a function&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Watch&lt;/strong&gt; can be useful when seeing what the variable CURRENTLY is.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use "Console" as a whiteboard test&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can edit code directly in the 'Sources' then hit save. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Git ~ Workflow </title>
      <dc:creator>Andy Chen</dc:creator>
      <pubDate>Mon, 14 Jun 2021 18:40:04 +0000</pubDate>
      <link>https://dev.to/andych3n/git-workflow-3ij9</link>
      <guid>https://dev.to/andych3n/git-workflow-3ij9</guid>
      <description>&lt;p&gt;-Fork and clone code repository (assignment)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone (url of clone taken from github repository)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;-Make regular commits while conducting work&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add . 
git rm --cached to unstage
git status .
git commit .
git checkout -- &amp;lt;file&amp;gt; discards changes to working directory. reverts the specified file to last commit state.
git log - 
git history -
git remote - specify parent repo where you forked from
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;-Push your code (after each commit)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;-Create your final commit with the message "Assignment Complete"&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push origin master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;-Submit your final code via a Pull request in GitHub&lt;br&gt;
   done on Github&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pwd - print working directory (displays the path)
mkdir - make directory within
touch - access or "touch" a file - if DNE, file will be created
if does exist, timestamp of last access to the file will be updated
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Front-End Requirements</title>
      <dc:creator>Andy Chen</dc:creator>
      <pubDate>Mon, 14 Jun 2021 05:38:07 +0000</pubDate>
      <link>https://dev.to/andych3n/front-end-requirements-4jnj</link>
      <guid>https://dev.to/andych3n/front-end-requirements-4jnj</guid>
      <description>&lt;p&gt;Taken from a sample size of 10 entry level job applications for front end Jr or developer roles.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTML / CSS / JAVASCRIPT / SASS / JQuery&lt;/li&gt;
&lt;li&gt;Ability to leverage APIs to create dynamic websites.&lt;/li&gt;
&lt;li&gt;Familiarity with ReactJS&lt;/li&gt;
&lt;li&gt;Experience with Git preferred&lt;/li&gt;
&lt;li&gt;TypeScript a plus&lt;/li&gt;
&lt;li&gt;RESTful APIs&lt;/li&gt;
&lt;li&gt;Flexbox/CSS Grid a plus (For CSS)&lt;/li&gt;
&lt;li&gt;Experience with Rest and GraphQL&lt;/li&gt;
&lt;li&gt;Experience with NodeJS, Express, React, Redux and Selenium/WebdriverIO&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;HTML5, CSS, JavaScript, jQuery&lt;/strong&gt; &amp;lt;- THE BIG ONESS&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
