<?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" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[codeconnector - Medium]]></title>
        <description><![CDATA[Want to learn about tech or code? We’re here to help you get connected with mentors, meetups, communities, education, and companies that have your best interest in mind. - Medium]]></description>
        <link>https://medium.com/codeconnective?source=rss----3af2fda2471a---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>codeconnector - Medium</title>
            <link>https://medium.com/codeconnective?source=rss----3af2fda2471a---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 01:58:01 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/codeconnective" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Learning new skills while breaking into tech]]></title>
            <link>https://medium.com/codeconnective/learning-new-skills-while-breaking-into-tech-b8793f61a1c2?source=rss----3af2fda2471a---4</link>
            <guid isPermaLink="false">https://medium.com/p/b8793f61a1c2</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[tech]]></category>
            <category><![CDATA[code]]></category>
            <category><![CDATA[learning]]></category>
            <dc:creator><![CDATA[JC Smiley Jr]]></dc:creator>
            <pubDate>Fri, 05 Jun 2020 02:08:06 GMT</pubDate>
            <atom:updated>2020-06-05T02:08:06.153Z</atom:updated>
            <content:encoded><![CDATA[<p>I have been trying to get into tech for a long time and have made every classic mistake possible. I hope by reading this, you can avoid these painful mistakes and get into the tech industry faster.</p><h4>What I did Wrong</h4><p>Software development isn’t just one language or skill. A developer needs a myriad of technologies and industry-standard coding practices to develop useful working applications. I’ve made the mistake of learning one thing at an introductory level and no established coding practices. The second mistake was using one or two technologies to build all types of applications. The classic scenario of “If all you have is a hammer, then everything looks like a nail”.</p><figure><img alt="Hammer and Nail" src="https://cdn-images-1.medium.com/max/64/0*L1-k3RJPaA6A-b_R" /><figcaption>Icon made by <a href="https://www.flaticon.com/authors/freepik">Freepik</a> from <a href="http://www.flaticon.com/">www.flaticon.com</a></figcaption></figure><h4>Year One: Moving too Slow</h4><p>In 2016, I learned basic HTML, CSS, jQuery, and a sliver of JavaScript. I thought I was the best thing since fried chicken. With that in mind, I built a monstrosity family reunion website in mainly jQuery. Looking back, I only knew the basics of HTML elements and CSS styles. This led to two months of pain and suffering building something relatively simple.</p><figure><img alt="Burning House" src="https://cdn-images-1.medium.com/max/640/0*DtiM1FmKtnnKmkIZ" /><figcaption>Photo by <a href="https://unsplash.com/@steve228uk?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Stephen Radford</a> on <a href="https://unsplash.com/s/photos/burning--house?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><h4>Year Two: Building for the Sake of Building</h4><p>In 2017, I learned an introductory level of AngularJS, Electron, GitHub, and a sliver of PHP. I learned just enough to build something. I was able to develop several applications; however, not every application was suited as an AngularJS web app or Electron desktop app. The code was a scary beast of spaghetti code with no documentation and minimal version control.</p><p>In two years, I was still limited in what I could accomplish. I had developed 11 applications that no one wanted to use and were horribly designed. All of my applications looked the same because I had no experience with design or user experience. Each application was different in purpose and platform. I was basically restarting my learning curve with each project. My back-end code was copied and pasted from previous projects. I found out that AngularJS was being scrapped for a newer and totally different Angular 2.</p><h4>What I Should have Done</h4><p>A much better strategy was to commit two months to basic web technologies, two months to master JavaScript, two months each for basic AngularJS and PHP, and the remaining four months for UI design theory, hosting, database, testing, and creating an API. During that time period I should have mastered basic coding practices and version control. The second year I should have been doing one project every two to three months with a focus on a gradual complexity. An additional goal should have been to find ways to work with other developers.</p><p>Fast-forward to mid 2019. I had the opportunity to get paid for a freelance React Native mobile app with a colleague from my local tech community. Several weeks were spent learning the technology using tutorials and documentation. Four additional weeks were devoted to building four projects of increasing complexity, but simple enough to be done in a week. The main idea was to determine what complementary knowledge I would need to research before working on the contract work. Ultimately, we were able to complete the contract work. My colleague, a UI/UX specialist, was able to help me with concepts I didn’t know I didn’t know.</p><figure><img alt="Two men building a beautiful house" src="https://cdn-images-1.medium.com/max/1024/0*lR2X2MoP7zWoGLOD" /><figcaption>Image from <a href="http://www.undraw.com/">www.undraw.com</a></figcaption></figure><h4>Take-away</h4><p>The take-away is to plan your learning journey with having a set of complementary skills as the end goal in the shortest time period.</p><ul><li>Pick an area of expertise and get good at it.</li><li>Take the time to advance past the basics of each technology.</li><li>Research what technology is hot in your area, what the maintainers for a technology have planned for it, and how it complements your current knowledge.</li></ul><p>Then wash and repeat with another complementary area of expertise. The goal is to get good at one to two things while having knowledge on everything else.</p><p>You can follow my journey doing #100DaysOfCode on Twitter at <a href="http://www.twitter.com/JCSmiley4">JCSmiley4</a> or connect with me on LinkedIn at <a href="http://linkedin.com/in/jcsmileyjr">JC Smiley Jr</a>. As always, let’s have fun and do lots of victory dancing.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/0*3On_hGVwjtKLtOr-" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b8793f61a1c2" width="1" height="1" alt=""><hr><p><a href="https://medium.com/codeconnective/learning-new-skills-while-breaking-into-tech-b8793f61a1c2">Learning new skills while breaking into tech</a> was originally published in <a href="https://medium.com/codeconnective">codeconnector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is a RESTful API]]></title>
            <link>https://medium.com/codeconnective/what-is-a-restful-api-930671cdd713?source=rss----3af2fda2471a---4</link>
            <guid isPermaLink="false">https://medium.com/p/930671cdd713</guid>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[restful-api]]></category>
            <category><![CDATA[restful]]></category>
            <category><![CDATA[code]]></category>
            <category><![CDATA[api]]></category>
            <dc:creator><![CDATA[JC Smiley Jr]]></dc:creator>
            <pubDate>Wed, 27 May 2020 15:48:19 GMT</pubDate>
            <atom:updated>2020-05-27T15:48:19.118Z</atom:updated>
            <content:encoded><![CDATA[<p>RESTful API is a way for a client (website, mobile app, etc.) to communicate to a web service regarding a resource (data, picture, web page, etc.). An example of this is when you use Google search. You will type in a parameter instructing Google to retrieve and display data for you to view. This article will explain what RESTful API is and how it is commonly used. You can read a brief guide to creating an API with Node and Express in the article <a href="https://medium.com/codeconnective/a-simple-guide-to-node-express-1986a9904d63">A Simple Guide to Node/Express</a>.</p><p>Application Programming Interface (API) is the instructions for asking a web service how to request a resource from it. To put this in human terms, humans learn a language to talk to one another. We go to a restaurant, read the menu to determine the exact type of food we can order, create an order, and the restaurant knows what food to give you. The menu is the API.</p><p>REST or RESTful stands for Representational State Transfer.This is an architectural system to make an API request to a web service to get or update data/resources. Here is the list of guidelines that I found the most useful to know:</p><ul><li>The web service is recommended to be stateless. This means nothing has to be remembered by the web service for the next transaction. Each transaction is independent of past transactions by a client. The web service itself does not remember each client. This allows the web service to be scalable when the volume of requests changes.</li><li>The web service should focus on a client server relationship. A web service should be developed around the one to many concept instead of a unique connection to each client that asks for a resource. This allows a web service the ability to scale up with demand. An example is Twitter. Its web service is able to scale up the number of tweets issued during important events because the one web service can be use by untold millions of users (clients).</li><li>The web service should have all resources available upon demand. An example is a restaurant web page that sends out menus as PDFs. There is not a finite number of digital PDFs. If 1000 people ask for it, 1000 PDFs get sent.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/898/0*ZoCe3dbw1UrTle7h" /></figure><p>REST APIs architectural format is to use a url (the HTTP verb isn’t seen but it is implied) and if neccessary a parameter with data. Another way to describe this format is to state the location of the resource, what you want to do with it, and additional specific instructions you want sent to the web service. Below is a description of each part of this format.</p><p>An example of the REST API format is <a href="https://something.com/api/burgers">https:/fastfoodmenu.com/api/burgers</a>. This API call from a client will send a GET request to a web service at <a href="https://something.com/api/burgers">https:/fastfoodmenu.com/</a> to get all burgers that the instructions say will be sent if any random client types this specific command.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/873/0*4KBHi1LMf4YYyUv8" /></figure><p>REST APIs use an Uniform Resource Locator (URL) to allow a client to access an endpoint or pointer to the web service. A familiar example is <a href="http://www.google.com/">www.google.com</a>. This url asks for a web service for the Google homepage.</p><p>REST APIs use HTTP requests verbs/methods to tell the web service what type of request the client is making. GET, POST, PUT, DELETE are the most commonly used methods.</p><ul><li>GET: This is used to retrieve data/resources from the web service. An example is when a user logs onto Twitter with their mobile app. The app makes a REST API call to Twitter to get the most recent tweets.</li><li>POST: This is used to submit data/sources to a web service. An example is creating a username and password when creating a new profile.</li><li>PUT: This is used to submit data/resources to a web service to update something that is already there. An example is when you edit a facebook post.</li><li>DELETE: This is used to delete a specific data/resource from a web service.</li></ul><p>The data retrieved from a RESTful API call can be in a variety of formats. The most familiar is a JSON format. This uses a series of key value pairs to organize data. Other formats include PDF, images, XML, etc.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/275/0*VqaZRbjoZOlpPk7r" /><figcaption>Example of a resource in JSON format</figcaption></figure><p>You can follow my journey doing #100DaysOfCode on Twitter at <a href="http://www.twitter.com/JCSmiley4">JCSmiley4</a> or connect with me on LinkedIn at <a href="http://linkedin.com/in/jcsmileyjr">JC Smiley Jr</a>. As always, let’s have fun and do lots of victory dancing.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/1*GbrxUwQcOvyz2SVrDWPHkg.png" /><figcaption>It’s me</figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=930671cdd713" width="1" height="1" alt=""><hr><p><a href="https://medium.com/codeconnective/what-is-a-restful-api-930671cdd713">What is a RESTful API</a> was originally published in <a href="https://medium.com/codeconnective">codeconnector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[8 Tips to Improve Comments in Your Code]]></title>
            <link>https://medium.com/codeconnective/8-tips-to-improve-comments-in-your-code-59d2b638ee38?source=rss----3af2fda2471a---4</link>
            <guid isPermaLink="false">https://medium.com/p/59d2b638ee38</guid>
            <category><![CDATA[tech]]></category>
            <category><![CDATA[lessons-learned]]></category>
            <category><![CDATA[learning-to-code]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[code]]></category>
            <dc:creator><![CDATA[JC Smiley Jr]]></dc:creator>
            <pubDate>Tue, 12 May 2020 23:31:55 GMT</pubDate>
            <atom:updated>2020-05-12T23:31:54.677Z</atom:updated>
            <content:encoded><![CDATA[<p>I have a problem; I know code should have comments but I don’t know how to write good comments or alternatives to commenting. I was given a take home project for a job interview. As a hot shot aspiring developer I went crazy writing code. The app looked beautiful, the code worked, and I documented every line of code.</p><p>I decided to ask for code reviews from the local tech community. The feedback was overwhelming “you have too many comments”. The following are eight tips I received that have made me into a better and humbler developer.</p><h4><strong>#1: Before writing a comment, first ask if this code can be written in a way to eliminate the need for a comment.</strong></h4><p>This one rule is the rule for all other rules. You should follow good coding practices like great variable naming habits and breaking big functions into smaller ones.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/492/0*wQ2nIpUjtEqOa-Js" /><figcaption><em>This is OK.</em></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/695/0*a_KWcUffWNabbdKK" /><figcaption><em>This is better.</em></figcaption></figure><h4><strong>#2: Comments may mean your code isn’t “Expressive Enough”.</strong></h4><p>I love this one and my mind nearly exploded with the shocking revelation.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/328/0*QfaIhdkMLOlJOeY_" /><figcaption><em>This is bad.</em></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/374/0*DIZ8IBssnBLF3CVE" /><figcaption><em>This is good.</em></figcaption></figure><h4><strong>#3: Add comments when there is some funky logic in the code or context that you need future developers to understand</strong>.</h4><p>This makes perfect sense. Comments are to help a future you or another developer understand what the heck is going on.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*PbvMETQOvSNgFZHw" /><figcaption>Why check if the response is false and what is a prediction? OK, now I see why comments are important!!!</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*_TSLCzzxVr_jYM1p" /><figcaption><em>Without the comments this may be confusing</em></figcaption></figure><h4><strong>#4: Comments should describe the “Why you wrote this function” instead of “What this function is doing”.</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/559/0*WNEp8eFC1jLjyOED" /><figcaption>Look Mom, I’m a genius. This is an example of what NOT to do.</figcaption></figure><h4><strong>#5: If using block comments above a function, start on the second line and have a * for each line.</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/683/0*3oMtawqlGRGHdxof" /><figcaption>Do this and give yourself the angry father stare of contempt and disbelief.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*NwvtQb_ly5ysFkIR" /><figcaption>Do this and give yourself a cookie.</figcaption></figure><h4><strong>#6: /* */ should be used for multi-line comments and // for a single line.</strong></h4><p>I know this should have been common sense but I’m the greatest developer of all time. Being in the “coding flow” doesn’t justify bad coding habits or time wasted fixing simple mistakes. This is a guideline, not a hard rule, for consistency and making your code easier to read.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/582/0*ungv49FY_IBSs6k0" /><figcaption><em>Do not ever ever ever ever do this!! EVER.</em></figcaption></figure><h4><strong>#7: Comments should have a space between the “//” and the first word.</strong></h4><p>Once again, this is a guideline for consistency and making your code easier to read. Do you see a pattern forming? Also, if you use a linter this rule will save you hours of clean up (shout out to <a href="https://www.linkedin.com/in/autumn-ragland/">Autumn Ragland</a> for this helpful reminder). <a href="https://eslint.org/docs/rules/spaced-comment">ESlint</a> has a rule that will scream at you.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/351/0*OzKX4d1LsqLR-Bpy" /><figcaption><em>In all honesty, I didn’t know better.</em></figcaption></figure><h4><strong>#8: Comments should start with a capital letter.</strong></h4><p>I was writing code so fast my fingers were on fire but the brain was turned off. This inattentiveness led to hours of refactoring countless uncapitalized first letters. <a href="https://eslint.org/docs/rules/capitalized-comments">ESlint</a> has a rule for this also.</p><p>The code reviewers passed on some resources to help me learn more.</p><ul><li><a href="https://www.goodreads.com/book/show/3735293-clean-code">Clean Code by Bob Martin</a></li><li><a href="https://blog.codinghorror.com/code-tells-you-how-comments-tell-you-why/">https://blog.codinghorror.com/code-tells-you-how-comments-tell-you-why/</a></li></ul><p>I want to give a shout out to the Memphis, TN tech community that unselfishly gave me code reviews for my projects and lots of advice on great coding practices. There is an old saying that quotes, “It takes a village to raise a child”. Well, it takes a community to train a developer.</p><p>You can follow my journey doing #100DaysOfCode on Twitter at <a href="http://www.twitter.com/JCSmiley4">JCSmiley4</a> or connect with me on LinkedIn at <a href="http://linkedin.com/in/jcsmileyjr">JC Smiley Jr</a>. As always, let’s have fun and do lots of victory dancing.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/1*GbrxUwQcOvyz2SVrDWPHkg.png" /><figcaption>Developer | Tech Meetup Organizer | Learner</figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=59d2b638ee38" width="1" height="1" alt=""><hr><p><a href="https://medium.com/codeconnective/8-tips-to-improve-comments-in-your-code-59d2b638ee38">8 Tips to Improve Comments in Your Code</a> was originally published in <a href="https://medium.com/codeconnective">codeconnector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to Setup Multiple API Routes with Node & Express]]></title>
            <link>https://medium.com/codeconnective/how-to-setup-multiple-api-routes-with-node-express-12b7cabcd13c?source=rss----3af2fda2471a---4</link>
            <guid isPermaLink="false">https://medium.com/p/12b7cabcd13c</guid>
            <category><![CDATA[tech]]></category>
            <category><![CDATA[api]]></category>
            <category><![CDATA[code]]></category>
            <category><![CDATA[nodejs]]></category>
            <category><![CDATA[expressjs]]></category>
            <dc:creator><![CDATA[JC Smiley Jr]]></dc:creator>
            <pubDate>Tue, 14 Apr 2020 23:15:45 GMT</pubDate>
            <atom:updated>2020-04-15T22:34:42.931Z</atom:updated>
            <content:encoded><![CDATA[<h3>How to Setup Multiple API Routes with Node and Express</h3><p>This is the second article in a series using Node, Express, MongoDB, and React to teach the process of creating a simple full stack application.</p><p>The first article, <a href="https://medium.com/codeconnective/a-simple-guide-to-node-express-1986a9904d63">A Simple Guide to Node/Express</a>, walked through how to setup a Node web service with Express and covered:</p><ul><li>setting up a Node environment</li><li>create a package.json file</li><li>installing Express</li><li>developing an Express API</li><li>setting up the server to listen through a port for API calls</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/616/1*WFKIj3MxZMOkiA3w6KBMkQ.png" /><figcaption>Super simple node service with Express that return some text after a API call.</figcaption></figure><p>In this article, we will:</p><ol><li>Create an API route that deploys an “<em>index.html</em>”.</li><li>Develop a router that has multiple API routes.</li><li>Write an API that returns a json object.</li></ol><p>I’ll break down the following code line by line:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/749/1*KufcH7PxPkTp5-24sp-Fyw.png" /><figcaption>This is the app.js. It look like a lot but it takes all of 15 minutes.</figcaption></figure><p><em>Let’s get started</em></p><p><strong>Step 1: Set the project up (some housekeeping)</strong></p><p>I’m going to quickly run through this part. The “why ” or “how ” was covered in the first article.</p><ol><li>Create a directory you will be working in.</li><li>Create a package.json file.</li><li>Install Express</li><li>Create a “public” subfolder and place whatever CSS stylesheets, JavaScript files, or images that will be reference in your HTML pages or front-end client.</li><li>Create an “index.html” file in the root directory of the app.</li><li>Create a “mentors” subfolder and place two files name “kdodds.html” and “sKlymenko.html”. Keep it simple.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/811/1*3xreQhDaDftovWoKV4j_hQ.png" /><figcaption>This is an example of a “index.html” file. You can have anything you want.</figcaption></figure><p><strong>Step 2: Setup Express and create an API call that returns the “index.html” page</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/598/1*IDMkZDGgJTPwaF9uE5Q7jw.png" /><figcaption>These 7 lines of code does all the heavy lifting for you.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/729/1*OoTe7Nb-nHLGfietkeE_WA.png" /><figcaption>Example of a stylesheet being reference in a index.html file. That stylesheet lives in the public folder.</figcaption></figure><p><strong>Line 5–7</strong> is an Express API route to the root directory that responds by using the <em>“response”</em> object’s “<em>sendFile</em>” method to return the <em>“index.html”</em>.</p><p><em>Yeahhhhhh, we did it. We have created an API that deployed an index.html page.</em></p><p><strong>Step 3: Create multiple routes with Express’s Router</strong></p><p><em>On to the meat and potatoes of this article!!!</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/769/1*Tctce-Ut7Mga0Yf49a5a5A.png" /><figcaption>This is it. This is treasure you came for.</figcaption></figure><p>Line 9 uses the Express’s router method to create a router. <br>Line 10 uses the router object to create a route called ‘/kentDodds’. This route will listen for any API calls (get, post, etc.) routed through the <em>mentorRouter</em> that starts with <em>‘/kentDodds’</em>. <br><strong>Lines 11–13</strong> responds to the API <em>“.get”</em> call by returning the<em> “kdodds.html”</em> file. <br><strong>Line 14–17 </strong>is the exact same. Whenever the route <em>‘/sklymenko’</em> is called with the API <em>“.get”</em> method, the <em>‘sklymenko.html’</em> file is returned.</p><p><em>Hi Five!!!! We are on a roll. We have created a router with multiple routes.</em></p><p><strong>Step 4: Route to return data</strong></p><p>For this next part to work, create a subfolder named <em>“resources”</em>. Place in that folder a JavaScript file name <em>“states.js”</em>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/386/1*ZQSf7zQ7VJ0MjTRk2xgZBA.png" /><figcaption>This is the states.js file which contains the data to be sent.</figcaption></figure><p>If you notice at the end of the “<em>states.js</em>” file, there is a <strong>module.exports</strong> function that exports the variable <em>states</em>. This is important and cost me precious moments I will never get back in my life.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/722/1*CQMLRLoYkWHrmQNsUTozKQ.png" /><figcaption>This is how to send data.</figcaption></figure><p>Line 19 uses the Node’s require and path built-in modules to export the data from <em>states.js</em> to the local variable. <br><strong>Line 20–22</strong> uses the response’s <em>.json</em> method to convert the data into a json and return it. The API call <a href="http://localhost:3000/states">http://localhost:3000/states</a> will return the states json.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/684/1*ZMV1l-H59ARmd2APGRfpRQ.png" /><figcaption>Data, Data, Data</figcaption></figure><p><em>So close to being finished.</em></p><p><strong>Step 5: Create a middleware to use the router</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/621/1*1aJ0srwa2CvNLoGShD3iYA.png" /><figcaption>Final piece of the puzzle. Let’s do this!!!!</figcaption></figure><p>Line 23 creates an Express middleware that makes an overall family route called <em>‘/mentors’ </em>that is linked to the mentorRouter. This produces API calls like <a href="http://localhost:3000/mentors/kentdodds">http://localhost:3000/mentors/kentdodds</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/674/1*xvQpT3_rU7Hf-GEkQ4Nyig.png" /><figcaption>Check out Kent Dodds, he is awesome!!!</figcaption></figure><p><em>Finished, we now have multiple routes and can send data with Express API calls.</em></p><p>You can follow my journey doing #100DaysOfCode on Twitter at <a href="http://www.twitter.com/JCSmiley4">JCSmiley4</a> or connect with me on LinkedIn at <a href="http://linkedin.com/in/jcsmileyjr">JC Smiley Jr</a>. As always, let’ have fun and do lots of victory dancing.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/1*6pWEIpPwIxavv_t7WPKTqw.png" /><figcaption>Developer — Tech Meetup Organizer— Learner</figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=12b7cabcd13c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/codeconnective/how-to-setup-multiple-api-routes-with-node-express-12b7cabcd13c">How to Setup Multiple API Routes with Node &amp; Express</a> was originally published in <a href="https://medium.com/codeconnective">codeconnector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A Simple Guide to Node/Express]]></title>
            <link>https://medium.com/codeconnective/a-simple-guide-to-node-express-1986a9904d63?source=rss----3af2fda2471a---4</link>
            <guid isPermaLink="false">https://medium.com/p/1986a9904d63</guid>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[expressjs]]></category>
            <category><![CDATA[code]]></category>
            <category><![CDATA[api]]></category>
            <category><![CDATA[nodejs]]></category>
            <dc:creator><![CDATA[JC Smiley Jr]]></dc:creator>
            <pubDate>Sun, 12 Apr 2020 21:28:12 GMT</pubDate>
            <atom:updated>2020-04-13T16:02:28.154Z</atom:updated>
            <content:encoded><![CDATA[<p>This is a stupidly simple short guide full of pictures to create and start a Node web service with an Express API. This is the first article in a series using Node, Express, MongoDB, and React to teach the process of creating a simple full stack application.</p><p>First, I’m going to show the complete file. I will break down each line to the best of my ability.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/616/1*WFKIj3MxZMOkiA3w6KBMkQ.png" /><figcaption>See how amazingly simple it is!!!</figcaption></figure><p>FYI, you need to have Node installed on your computer. Here is a link on how to install: <a href="https://www.guru99.com/download-install-node-js.html">https://www.guru99.com/download-install-node-js.html</a>. If you are wondering what is Node, the short answer is it’s a run-time environment that allow developers to write server side code in JavaScript. Yeah, JavaScript rules the world!!!</p><p>Now let’s begin:</p><p><strong>Step 1. Set up a new npm package</strong></p><p>Inside of command prompt, go to the folder you will be building the app in. Type the command, <em>“npm init”</em>. You will be asked a series of questions. You can push the “enter” key to answer all the questions and “yes” to the last one.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/1*FMiTQkKwdsQitDwcscBuiw.png" /><figcaption>This process creates a package.json file.</figcaption></figure><p><strong>Step 2. Install Express</strong></p><p>Inside of command prompt, type the command <em>“npm install express”</em>. This will install the “Express” framework used to create an API on Node.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/736/1*F-GBXvzrj6u6S8BlHCBjQw.png" /><figcaption>One command to rule them all, with API calls we will find and bind them. — Developer Gandalf</figcaption></figure><p><strong>Step 3. Create an “app.js” file to use Express</strong></p><p>Finally, time to code. Create an “<em>app.js”</em> file in the same folder containing the package.json file. In the “<em>app.js</em>” file, write:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/371/1*MyzhfT8-57lPOcK3WTAHUg.png" /><figcaption>I love Express.</figcaption></figure><p>Line 1 is the standard way to import a module into the application. AKA, allows you to use that software. Line 2 is creating an Express object or application in a variable called “<em>app</em>”.</p><p><strong>Step 4. Setup a listening port variable</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/393/1*o7eNX6ClfwiIKUu-Zw8OFg.png" /><figcaption>I swear this is a lot simpler then it looks!!!</figcaption></figure><p>Line 3 is setting up a port for the server to listen for API calls. Ignore the “process.env.PORT” section, this is use set the port to an environment variable. The important part is the “3000”. This allows you to view the app at <a href="http://localhost:3000/">http://localhost:3000/</a> when we are finished.</p><p><strong>Step 5. Create an API call</strong></p><p><em>I feel a tingle in my toes, time to create some magic.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/581/1*Z9ObunaHBP7yYPwluztmRQ.png" /><figcaption>I told you it was super simple.</figcaption></figure><p>Let’s quickly break down lines 5–7. This is an API call used by a client to ask the server for a resource. Line 5 states that if a client asks for the root directory of this service, a request and response objects is created. The request is from the client to convey additional information to the server like a query or id. The response is from the server to the client to return the requested information/resource. Line 6 is the response from the server sending text back to the client.</p><p><strong>Step 6. Using the port variable to listen for API calls</strong></p><p><em>Last lines of code, let’s get ready to do our developer victory dance</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/589/1*G6h6l_PsbEQ7IGWK0YsEJA.png" /><figcaption>I’m not kidding, I can’t believe something so simple works!!!</figcaption></figure><p>Quick break-down of lines 9–11, on line 9 the Express application (“app”) is listening on the port for incoming HTTP requests (aka, API calls). Line 10 isn’t really needed but during development it helps to know if something works.</p><p><strong>Step 7. DONE, let’s test drive this bad baby</strong></p><p>Inside of command prompt, type “node app.js”. You should see the console.log statement from line 10 in the command prompt letting you know it works. Now in your browser, type <a href="http://localhost:3000/">http://localhost:3000/</a>. You will see some magic that you created.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/369/1*O6-qSFJ6jJTWlWCOWBCbjg.png" /><figcaption>It’s Magic</figcaption></figure><p>You can follow my journey doing #100DaysOfCode on Twitter at <a href="http://www.twitter.com/JCSmiley4">JCSmiley4</a> or connect with me on LinkedIn at <a href="http://linkedin.com/in/jcsmileyjr">JC Smiley Jr</a>. As always, let’ have fun and do lots of victory dancing.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/1*6pWEIpPwIxavv_t7WPKTqw.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1986a9904d63" width="1" height="1" alt=""><hr><p><a href="https://medium.com/codeconnective/a-simple-guide-to-node-express-1986a9904d63">A Simple Guide to Node/Express</a> was originally published in <a href="https://medium.com/codeconnective">codeconnector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What I Learned from a Mentor in One Lesson using Exercism.io]]></title>
            <link>https://medium.com/codeconnective/exercism-io-what-i-learn-from-a-mentor-in-one-lesson-9a56e5a0e042?source=rss----3af2fda2471a---4</link>
            <guid isPermaLink="false">https://medium.com/p/9a56e5a0e042</guid>
            <category><![CDATA[code]]></category>
            <category><![CDATA[learning-to-code]]></category>
            <category><![CDATA[exercism]]></category>
            <category><![CDATA[javascript]]></category>
            <dc:creator><![CDATA[JC Smiley Jr]]></dc:creator>
            <pubDate>Tue, 17 Mar 2020 20:04:48 GMT</pubDate>
            <atom:updated>2020-03-18T02:43:21.559Z</atom:updated>
            <content:encoded><![CDATA[<h3>What I Learned From a Single Lesson using Exercism.io</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*UaaNTPHL-7lK7CrQ" /><figcaption>Photo by <a href="https://unsplash.com/@benwhitephotography?utm_source=medium&amp;utm_medium=referral">Ben White</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><h4>A little background</h4><p>I have been teaching myself to code with JavaScript for the last two years. I have a Management Information Systems Bachelor’s degree, but that was 13 years ago and I haven’t written code since then.</p><p>What is <a href="http://www.exercism.io/">exercism.io</a>? It’s a website that allows users to practice coding in a huge variety of programming languages for free. What makes it fantastic is mentors review your code and make suggestions for improvements. This is beneficial for aspiring beginners or self-taught developers, like myself, to learn how to write good code and use good coding practices.</p><blockquote>Just like good house building practices will transform a lean-to into a quality home, good coding practices transform code that runs into human readable, efficient, and easily maintained code.</blockquote><p>I recently finished the “Protein Translation” JavaScript challenge. The goal was to break down RNA sequences into a series of three letter codons and translate the codons into proteins. Edge cases included certain “stop” codons and error messages.</p><h3>Lessons learned from submitting 3 solutions to the same problem</h3><p>Let me state, each solution worked, passed all test cases, and I finished in good time. The following was the mentor’s suggestions and my “A ha” moments:</p><h4>1. <em>Don’t use Magic Numbers.</em></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/338/1*dcJb29oxKOag2fOZktQL6Q.png" /><figcaption>JavaScript function with a default value as a parameter.</figcaption></figure><p>That “0” was a magic number. It was not meaningful, just useful. JavaScript has “null” and “undefined” variable types that can be use to test if a parameter exists. Don’t reinvent the wheel.</p><h4>2. Learn other iteration techniques for looping through an array/object other than a basic “for-loop”.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/319/1*sO7hiBeg82D9I-4bgoAOXQ.png" /><figcaption>I had a 38 line for-loop with 18 if-statements testing each codon possibility.</figcaption></figure><p>A better solution was to use a “for-of” loop with a array. This was much cleaner and less code. Use the best tools for the job, not just a tool.</p><h4>3. JavaScript arrays and objects have methods that can be used as lookup functions. Don’t reinvent the wheel.</h4><blockquote>I was using loops to find a value in an array and object.</blockquote><p>Don’t waste time, do this:</p><blockquote>if(object[key]){do something}</blockquote><blockquote>if(bigArray.includes(searchItem)){do something}</blockquote><p>Instead of this:</p><blockquote>for(let i=0;i&lt;array.length;i++){<br>if(bigArray[i] === searchItem){do something}<br>}</blockquote><h4>4. Should this array or object be rebuilt every time you run a function?</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/550/1*VoxzV1K0FD7hcLpHF-pXtA.png" /><figcaption>I had place a huge object {} and a big array [] inside smaller support functions that was called in each iteration of a loop.</figcaption></figure><p>The solution was to place the non-changing object or array high up in the primary function and then pass it to the support function when needed. This made the code more efficient.</p><h4>5. This huge block of data makes it hard to read your code. You can’t see the tree because of the forest. Practice good separation of concerns.</h4><p>The solution was to break the primary function into smaller functions and use loops correctly. This made it immediately clear what is happening and where.</p><h3>I learned the power of a code review</h3><p>In the last two years I have written thousands of lines of code and numerous side projects. I have learned a lot. But in this short time period I was forced to accept that I don’t always write good code. The code starts off readable and slowly converts to non-readable code like “x = 0”. A code review is an opportunity to learn from others, reflect on what you don’t know, and observe your bad habits.</p><p>You can follow my journey to breaking into the tech industry on twitter at @JCSmiley4. I am doing the #100DaysOfCode (currently on round 3). Connect with me on LinkedIn at <a href="https://www.linkedin.com/in/jcsmileyjr/">www.linkedin.com/in/jcsmileyjr</a>. Thank you for reading and I hope you learn along with me.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9a56e5a0e042" width="1" height="1" alt=""><hr><p><a href="https://medium.com/codeconnective/exercism-io-what-i-learn-from-a-mentor-in-one-lesson-9a56e5a0e042">What I Learned from a Mentor in One Lesson using Exercism.io</a> was originally published in <a href="https://medium.com/codeconnective">codeconnector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What App Should I Build]]></title>
            <link>https://medium.com/codeconnective/what-app-should-i-build-90df747fe603?source=rss----3af2fda2471a---4</link>
            <guid isPermaLink="false">https://medium.com/p/90df747fe603</guid>
            <category><![CDATA[project-management]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[developer]]></category>
            <category><![CDATA[project-based-learning]]></category>
            <category><![CDATA[app-development]]></category>
            <dc:creator><![CDATA[JC Smiley Jr]]></dc:creator>
            <pubDate>Mon, 03 Jun 2019 15:30:37 GMT</pubDate>
            <atom:updated>2019-06-05T03:59:12.191Z</atom:updated>
            <content:encoded><![CDATA[<h3>What app should I build?</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*xaUtzhuTcolVL9gq" /><figcaption>Photo by <a href="https://unsplash.com/@kaleidico?utm_source=medium&amp;utm_medium=referral">Kaleidico</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>At a past Code Connector tech meetup, I was asked for advice from an aspiring developer on what to build. This developer had a passion building apps, but didn’t know how to start things up from scratch. How do you build a Facebook or Uber by yourself and at the beginning of your career? How many versions of to-do lists, Twitter clones, or calculators can you build? In that moment, I gave that developer a short suggestion. This article is what I would have said if I had given it more thought.</p><h3>Turning passions and problems into ideas to build</h3><p><em>Super Daddy to the rescue</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/280/1*Nz2UsnQ5bkrQkhsaxt_l4g.png" /><figcaption>Photo by <a href="https://unsplash.com/@good_citizen?utm_source=medium&amp;utm_medium=referral">Humphrey Muleba</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>First things first, look for problems or passion that you, your family, or your friends have. For example, my daughter was taking an extremely long amount of time writing practice tests in preparation for tests at school. Since she learns best by repetition, it became obvious that an app which lets her write a test once and practice as much as she wants would be beneficial. This app needed to be a web or mobile app since she is always on the go, but keeps her phone on her. With the above criteria in mind, I built an app called Index Cards. With the app help my daughter’s report card grades rose by a letter in a single semester. On top of that, the feedback from my daughter lead me to gamify the app and add new features. In the end it forced me to learn new technologies and create something that mattered. Interested in checking this project out? You can view the demo <a href="https://jcsmileyjr.github.io/Index-Cards/">here</a>.</p><h3><em>Work Smarter Not Harder</em></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*g3GpZ9SnKCgiM5t2" /><figcaption>Photo by <a href="https://unsplash.com/@danieleriggifotovideo?utm_source=medium&amp;utm_medium=referral">Daniele Riggi</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>A great way to gain experience in software is building tools to fix repetitive tasks at in your daily workflow. As a new hire, I didn’t understand why I needed to search through several 300-page books of standard operating procedures for an answer. As a senior level employee, I found a deep desire to automate or digitize many of these process. These tasks pushed me to build a web app called Agent-pedia. This apps focus was to help new hires search for answers quicker. Basically, I digitized my company’s standard operating procedures into an app for easy accessibility. The content was formatted based on frequent asked questions or most common tasks/issues. You can view the demo <a href="https://jcsmileyjr.github.io/agent-guide/#!/logIn">here</a>.</p><h3><em>You have to crawl before you can walk</em></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/252/1*xACUdGz6BxEXzRO6qwSsxw.png" /><figcaption>Screenshot of my “I Love Math” app</figcaption></figure><p>Always take the time to rebuild something that you have done before. It’s a great moment to flex those new skill and knowledge muscles. A personal example of this is a math practice app called <a href="https://jcsmileyjr.github.io/ilovemathAngular/home">I Love Math</a>. I built it for my daughter and her younger half brother using Angular JS. Where things get interesting is where I decided to go for the rebuild. Because I was being pulled into a freelance gig with a friend I decided to give it another shot using React Native. Was it a challenge? Most definitely! Was I able to utilize new skills and knowledge while building upon those along the way? Oh yeah!</p><h3><em>You have two ears and one mouth. Listen more than you speak.</em></h3><p>Perhaps the simplest (and best) way to find things to build is to listen to other people talk about their problems. Someone explained to me that this is thinking about an issue from the user perspective and gathering the requirements for the project. After all, without knowing the problem you’re about to tackle, how can you expect to start let alone finish?</p><h3>How to start from scratch</h3><p><em>Failing to plan is planning to fail</em></p><p>A approach to building out a new project is to write a short description of your app, the purpose, and describe the users. Plan your app with one or two features that the app must have and that you can absolutely do. This is called a MVP (Minimum Viable Product).</p><p>Write out a short list of the most logical steps that must happen for the finished product to come about. For example let’s focus in on an email app. The user must start a email, enter a title, write the body, push a send button, and be alerted that the email was sent.</p><p>Now, with some planning behind you, pick a technology that you’re most comfortable with and stick to it. If you are feeling like a super coder add one additional technical feature. For example, if you know basic HTML and CSS, build a static website first and then add some basic JavaScript functionality.</p><h3><em>A picture says a 1000 words</em></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/303/1*nlG3VKnap9nweULNl5aMlQ.png" /><figcaption>Lo-Fi Wireframe of my Wheel of Fortune mobile app</figcaption></figure><p>Draw out a lo-fi wireframe (using pencil and paper to draw a black and white rough draft) of your idea. Go crazy and draw as many versions as you want or need. This will help you brush aside the horrible ideas and lead you down better design paths.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/547/1*_Ta9FgcEJrIRxTwGjC6N-g.png" /><figcaption>Hi-Fi Wireframe of my Wheel of Fortune mobile app</figcaption></figure><p>Use a hi-fi wireframe/prototype software (like Adobe XD) to really flesh out the components of your product. Add colors, words, and mock out the functionality. The idea is to test how the app will look and behave before you build.</p><h3><em>A closed mouth won’t get fed</em></h3><p>Throughout the above process of building any app, do not be afraid to ask someone for their opinion of the product. You are not on an island. Use the people around you - family, friends, co-workers, Facebook, Twitter, Reddit, etc. to validate your product and get motivation.</p><p>My personal validation process is to take a my mockups (lo-fi and hi-fi), post them to social media (Slack, Discord, Twitter, LinkedIn), and/or send them to someone (mentor, dev friends, family) for their feedback. I include a super brief title and description and ask for a quick critique. “Is it something that you would use?” “Do you like the way this makes you feel?”</p><h3><em>Run this race one step at a time</em></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*WpzV-mOm7t7ybYl-" /><figcaption>Photo by <a href="https://unsplash.com/@quinoal?utm_source=medium&amp;utm_medium=referral">Quino Al</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>Like we walk by putting in front of the other, you’ve got to build out one feature or one unit at a time. Test and validate what you have created before continuing on to the next task. For a website just focus on building the landing page before moving on to additional pages and features. For a calculator app, develop additional features that easily within reach. This will drastically lower the chance of over-complication and failure as you progress along.</p><blockquote><strong><em>As you learn new things, adding complexity to your past projects is a great way to level up your skills.</em></strong></blockquote><h3>Tools to help build faster, smarter, and more efficiently</h3><p>● A great code editor is your best friend. I recommend <a href="https://code.visualstudio.com/download">Visual Studio Code</a> or <a href="http://brackets.io/">Brackets</a> but there are so many to choose from.</p><p>● Using version control with a repository like GitHub or GitLab is essential.</p><p>● A fantastic hi-fi prototype software is <a href="https://www.adobe.com/products/xd.html">Adobe XD</a>.</p><p>● Trello to organize tasks from idea to completion</p><h3>List of Online Resources</h3><p>If you still don’t know what to build, here is a list of online articles that literally give you things to build.</p><p>● <a href="https://github.com/florinpop17/app-ideas">https://github.com/florinpop17/app-ideas</a></p><p>● <a href="https://github.com/tastejs/awesome-app-ideas">https://github.com/tastejs/awesome-app-ideas</a></p><p>● <a href="https://www.ideaswatch.com/startup-ideas/app#">https://www.ideaswatch.com/startup-ideas/app#</a></p><p>At the end of the day, you are only going to finish a project when you have something to lose if you don’t. Find something to build that you are passionate about or someone you know needs. Plan to succeed by planning. Do not learn in a bubble but show your work.</p><p>Above all else, build build build. Build something, anything, big, small, ugly, or bad. Just have fun doing it.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=90df747fe603" width="1" height="1" alt=""><hr><p><a href="https://medium.com/codeconnective/what-app-should-i-build-90df747fe603">What App Should I Build</a> was originally published in <a href="https://medium.com/codeconnective">codeconnector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How teaching latin has helped me code]]></title>
            <link>https://medium.com/codeconnective/how-teaching-latin-has-helped-me-code-ff51a1cce7c3?source=rss----3af2fda2471a---4</link>
            <guid isPermaLink="false">https://medium.com/p/ff51a1cce7c3</guid>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[coding]]></category>
            <category><![CDATA[growth]]></category>
            <category><![CDATA[careers]]></category>
            <category><![CDATA[learning]]></category>
            <dc:creator><![CDATA[Stefan Hodges-Kluck]]></dc:creator>
            <pubDate>Tue, 14 May 2019 12:49:30 GMT</pubDate>
            <atom:updated>2019-05-14T12:49:30.223Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/992/0*lImfPsBbbUNw_U_Y" /></figure><p>For the past ten months, I’ve been tutoring Latin part-time while teaching myself HTML, CSS, and JavaScript. I’ve written before about how<a href="https://medium.com/@shodgeskluck/ancient-languages-and-computer-languages-8f4eabae483e"> my familiarity with language got me into coding</a>. And yet while knowing languages — particularly languages like Latin which have fairly complicated systems of grammar, syntax, and morphology — certainly involves many of the same brain cells as programming scripts, I’ve also learned some valuable coding skills; not from my knowledge of Latin, but from my experience teaching it.</p><p>First, let me say a little about my progress as a developer. Over the past few months, I’ve started to consider myself a junior-level web developer, instead of just a guy who’s learning code in the hopes of becoming a junior dev. Within the past couple of months, I have started to do contract work for a local dev shop, thus accomplishing my primary coding goal for 2019 (getting paid to code). This contract work has been a valuable experience, including working with a team, building real-world apps, having my code reviewed by others (yikes!), and learning to use Git without deleting anything important or summoning any ancient demons (super yikes!).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*hc9i9Tx4akIc4R4P" /><figcaption><em>This is what happens if you commit changes to the master branch.</em></figcaption></figure><p>Working with a team has also taught me just how much I still don’t know. I’m getting the hang of building components with responsive UIs, working with libraries such as Bootstrap, Angular, and jQuery, and using the Chrome debugger to adjust CSS properties. At the same time, much of the development process still feels like the work of magical internet elves to me. Thus far I have benefited from lots of help in setting up sites on my localhost, using Windows IIS and SQL. I’ve had to ask a lot of questions before making Git commits, to make sure I don’t do anything I shouldn’t (like summoning that aforementioned ancient demon). And even in the front-end styling that’s more familiar to me, I’m learning just how much more there is for me to learn. I think I can hold my own with CSS, but working on a large-scale project, with a stylesheet built out of several SCSS partials, has shown me how much of a challenge it is to modify one part of a webpage/app without accidentally modifying something else. CSS is nothing to be taken lightly!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*qNOXILJlwdcPB91q" /><figcaption>This is what happens when you change a parent’s CSS class without knowing all its children.</figcaption></figure><p>This brings me back to Latin. Not to brag or anything (because really, who cares?), but I’m great at Latin. I can read most any text with little to no help from a dictionary, and I have a keen eye for catching parts of speech, noun declensions, verb moods/tenses, and all the other annoying little rules that Latin has for how to construct words. (The classic<a href="https://www.youtube.com/watch?v=0lczHvB3Y9s"> “Romans Go Home” scene</a> in Monty Python’s <em>Life of Brian</em> offers a humorous look at how frustrating it can be to get all these forms down.) I’ve been reading Latin for over 15 years. I enjoy reading it. I’ve even read<a href="https://www.amazon.com/Hobbitus-Ille-J-R-Tolkien/dp/0007445210"> <em>The Hobbit</em> in Latin</a>, as bedtime reading. So it makes sense that I’m so comfortable with all of the pesky little rules and forms that give Latin students so many headaches.</p><p>The students I’m teaching, however, are much less experienced. I’m chiefly teaching high school students with around 2–3 years of Latin experience. The most important part of a tutoring session, for me, is patience. Latin passages that I can read in five minutes sometimes take students an entire hour and a half session to muddle through. Vocabulary words and endings that are obvious to me are often completely obscure (dare I say foreign?) to my less experienced students. As a tutor, it’s my job to be patient, and let students work where they are, while directing them where I’d like them to be.</p><p>When I code, I often find myself in my Latin students’ position, scratching my head to figure out things that seem simple to the more experienced developers around me. Experiencing this feeling has given me a new sense of compassion for the students I work with. At the same time, I think it’s also helped me become a better coder. I’m often frustrated, confused, overwhelmed, and/or exhausted by what I can’t do as a developer. But I also know that I can do more today than I could yesterday. As long as I can be as patient with myself as I need to be with my students, and can learn from those with more experience than myself, I will continue to become a more proficient coder. This is an encouraging thought.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ff51a1cce7c3" width="1" height="1" alt=""><hr><p><a href="https://medium.com/codeconnective/how-teaching-latin-has-helped-me-code-ff51a1cce7c3">How teaching latin has helped me code</a> was originally published in <a href="https://medium.com/codeconnective">codeconnector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[From baking pizzas to building software]]></title>
            <link>https://medium.com/codeconnective/from-baking-pizzas-to-building-software-2c4ac03a456c?source=rss----3af2fda2471a---4</link>
            <guid isPermaLink="false">https://medium.com/p/2c4ac03a456c</guid>
            <category><![CDATA[success]]></category>
            <category><![CDATA[coding]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[career-change]]></category>
            <category><![CDATA[technology]]></category>
            <dc:creator><![CDATA[Andrew Elick]]></dc:creator>
            <pubDate>Mon, 29 Apr 2019 12:35:00 GMT</pubDate>
            <atom:updated>2019-04-29T12:34:59.909Z</atom:updated>
            <content:encoded><![CDATA[<p>By Andrew Elick</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*5Zoxe5vd6f-vd8mv" /><figcaption>Photo by <a href="https://unsplash.com/@alanaktion?utm_source=medium&amp;utm_medium=referral">Alan Hardman</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>Computers have fascinated me ever since I was young. They allow you to play complex games, talk to your friends, and build things that one could never imagine. I first got into programming after watching <em>The Social Network </em>when I was in high school. Seeing how a kid in college could create such a life altering thing in such a short amount of time amazed me and I knew right there I had to learn. I began making websites and created my own social network for my friends and I to use. As time went on I began neglecting coding and eventually went off to college to study finance after thinking that my dreams of software development were beyond my reach. After bouncing around to a few different institutions I found myself working a series of dead end jobs which eventually led me to making pizzas. That’s when I met the group that changed everything, Code Connector.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*B-lUdL1BE0AIIWMQdY0rVg.jpeg" /><figcaption>Code Connector Meetup</figcaption></figure><p>Code Connector is by far the biggest reason I am working in the technology industry today. The community has shown me that there are regular people out there that do what I’ve always wanted to do. They gave me the confidence to start programming again and that getting a technology job was not exclusive to computer science students. After a few months of writing as many lines of code as I could and attending every meetup in the Memphis area, I was ready to start applying for positions. I had made a few projects and got my resume to a respectable point to which I could have a good chance of getting some interviews. But what helped seal the deal was one of the members who had seen me around told me to apply for a position at his work. One month later I could officially say that I was a professional software developer. Everything that I had worked for finally paid off and I was where I’ve always wanted to be.</p><p>What I do from day to day is actually quite simple; I help other developers make sure that they are getting done what they need to. I figure out the problems that they are encountering and try to provide them with a solution they are looking for. Everyday there is a new problem, a technology to learn, and a new question to ask. It can be very challenging at times but I think back to when I was making pizzas day in and day out and realize that I would not have it any other way. The best advice I can give to aspiring software developers is to never give up. Write one more line of code, run that next test, and send that resume out one last time; because you only need one break to change your life forever. And without the help of everyone at Code Connector I would have never believed in myself enough to follow my dreams, let alone achieve them.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2c4ac03a456c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/codeconnective/from-baking-pizzas-to-building-software-2c4ac03a456c">From baking pizzas to building software</a> was originally published in <a href="https://medium.com/codeconnective">codeconnector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[From depressed college student to excited (and employed) web developer]]></title>
            <link>https://medium.com/codeconnective/from-depressed-college-student-to-excited-and-employed-web-developer-9087023a0e8c?source=rss----3af2fda2471a---4</link>
            <guid isPermaLink="false">https://medium.com/p/9087023a0e8c</guid>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[coding]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[overcoming-obstacles]]></category>
            <category><![CDATA[career-advice]]></category>
            <dc:creator><![CDATA[Shane Harper]]></dc:creator>
            <pubDate>Tue, 02 Apr 2019 12:01:09 GMT</pubDate>
            <atom:updated>2019-04-02T12:01:07.148Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*n95GashLJARszFNtTK3izQ.jpeg" /></figure><p>After eating a late dinner at the school cafeteria, I returned to my dorm room to wind down. It was a Friday night and the alcohol was flowing between the dorm rooms as my peers were getting ready for a night on the town. However, I did not have any plans, and settled on finishing some studying then catching some sleep. Some girls came into the building and proceeded to enter one of the rooms, passing me by while I was studying. Behind closed doors, one of the girls asked her friends, “Was that Shady Shane?” In an instant, I flew into a rage and was screaming on the phone to my parents, telling them I was going to transfer to another school. Fighting back tears, I went to bed without any certainty of how I would live my life.</p><p>Thanks to self-healing, amazing friends, and hard work, I was able to transform my life within a mere three years. Hey everyone, my name is Shane Harper, and let me tell you my story.</p><p>Whenever I hear someone saying that college is the best four years of your life, I remember all the times in college I struggled to make it through another day and think to myself “There’s no way he/she is serious.” Due to my social and mental struggles, I was unable to have the picture-perfect “party-filled/memory-making” college experience. When I started making mistakes that negatively affected my social life, I said to myself “This is not good. I need to fix this.” And as I was trying to fix all of my problems, BAM! I graduated with a degree but with no purpose for the life ahead of me. In addition, I had failed to make any lifelong friends and create lasting memories, whereas most of my peers did. The worst part of all was the fact that I did not have a calling or purpose in life. Instead, I felt a large hole inside of me that I believed nothing could fill.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*906UHCCPGzyhdM65UmhKyA.jpeg" /></figure><h3>After college,</h3><p>I decided to take a gap year to teach in the Dominican Republic. Even though I was living in a foreign country, my demons from my past still haunted me and prevented me from making a lot of friends and memories while living abroad. To be clear, I thoroughly enjoyed my time there. Nevertheless, I had not been able to move on with my life. I decided to return to the States after my contract expired to take a position at a local insurance agency as a sales and customer service representative. Although I was with a hard-working team and successful agency, I still was striving for something greater for a fulfilling career.</p><p>During this time, I had been communicating with my cousin on how to transition to a rewarding career field, since I felt that neither education nor insurance fit the bill. At the time I considered in going towards international business, but somehow or another he convinced me to look into web &amp; software development. Even though I found that career field interesting, I still had many questions for him. How would I ever be able to be a full-time developer without a Computer Science (CS) degree? What technologies would I need to learn to be job-ready? What resources are available for you to learn coding? Then, after introducing me to Free Code Camp (FCC), I got hooked!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*3FFOvLPfuIY09e_EIaYyxg.jpeg" /></figure><p>When I got started, I was very much in the state where “I didn’t know what I didn’t know.” I didn’t know how to properly structure an HTML page. I didn’t know how to link a CSS stylesheet to the page, or how to use different child selectors for more specificity. Heck, I thought Java and JavaScript were referring to the same programming language! I could not tell you the number of times that I hit a roadblock. Looking back on them, they seem easier to me now, but then I had no clue as how to complete the next challenge or next project. Nevertheless, I realized that I had to start somewhere, and that with each line of code I wrote, things were becoming more and more clear.</p><h3>After several FCC lessons,</h3><p>I decided to join a developers’ meetup at a local coffee shop. When I first arrived and met the other attendees, nearly all of the confidence I had built up through my lessons evaporated. I met full stack developers working on large scale projects, whether writing code for passport verification machines at Hartsfield-Jackson Atlanta International Airport or developing new software for AT&amp;T. And in the midst of these amazing people was me, a young gun with dreams of getting my foot in the door in the tech industry with some HTML and CSS knowledge. Needless to say, I was the greenest person you ever saw in that coffee shop. I asked myself, “How am I supposed to get from where I am to where they are?”</p><p>For a time, I viewed these two places as two cliffs separated by a vast expanse with almost no hope of possibly bridging the gap. However, in the midst of confusion, the other attendees greeted me with open arms and were so glad I came. Not only that, they were willing to dedicate some of their time to teach me new concepts in web development, how to start looking for full time work, and more! As I continued attending these meetups, that gap that I described earlier started becoming smaller and smaller.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*DTwnThUsa-g8Egm00qzjLg.jpeg" /></figure><p>Soon afterwards, I realized that I was making progress! I was able to scratch code static pages in HTML, CSS and Bootstrap (a JavaScript framework for responsive design). I absorbed new concepts more quickly and was able to apply my new-found knowledge tomy projects. Even if it meant progressing one lesson at a time, I had established a fundamental knowledge of web development. I even created a static page for my mother’s Mary Kay unit! I realized very quickly that developing real life projects was one of the best ways to reinforce learning. Sure, you can do simple exercises in FCC or other websites to level up your coding knowledge, but when you apply what you have learned in projects, you develop a much better understanding of the concepts that you have learned. Even though the static page I created only used HTML, CSS and Bootstrap, this accomplishment was a giant leap toward my goal.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*Ua4_dyb_xnkemvqiDcVtIA.jpeg" /></figure><h3>Not too long after that, I created my blueprint on how I was going to become a full time developer.</h3><p>I decided that I need to achieve this goal by the end of the calendar year. In addition, I was going to accomplish this goal on my own. My cousin and main mentor said that it is entirely possible and that although I would need to work very hard, it would absolutely pay off. I began taking classes on TreeHouse, a subscription service that has organized tracks for learning web and software development. Despite the challenges ahead of me, I was determined to make this career change.</p><p>After a few months learning basic concepts that I felt wouldn’t land me a job, one developer at the meetup encouraged me to apply to a coding bootcamp, an educational organization that teaches the core concepts of web and software development with the goal of getting a job quickly. The programs typically involve 3–4 months of full time coding, and cost more than $10,000. The prospect of getting a job quickly actually convinced me to look into a program, but my cousin reeled me back into the self-taught route. He convinced me I could definitely still get a job with my own hard work, persistence, and determination, without thousands of dollars of debt.</p><p>Although I still had lingering thoughts of going to a bootcamp, I returned to my self-taught education only to start running into roadblocks. The first big one was learning JavaScript, a very popular object-oriented programming language that most employers essentially require from prospective employees. Even using Treehouse’s courses for JavaScript, I was still having issues with the language, whether it was learning how to make functions or manipulate the DOM (Document Object Model). In addition, there are multiple JavaScript libraries and frameworks that vary in popularity and demand, which would only lead me to further challenges.</p><h3>Starting in September,</h3><p>I decided that I was ready to start applying for jobs. I made a simple spreadsheet on Google Sheets and tracked who I applied to. I looked just about everywhere to find open positions — Indeed, Monster, ZipRecruiter, Glassdoor, etc. Most of the companies I applied for shared several requirements: a few years of front end knowledge with frameworks and a Computer Science degree. I asked my friends at the meetups what their thoughts were and they all said the same thing: don’t worry about not having a CS degree because all they want is someone who can do the work well. In fact, I knew several people that had a full-time software job without a degree, so why shouldn’t I accomplish the same thing? With that in mind, I kept updating my resume and cover letter and dedicated myself to keep applying.</p><p>Throughout this time, I accepted a freelance developer position for a friend’s startup. Even though we did a few sites for small businesses around town, I realized that I needed to leverage my position to show that I had the experience necessary to be a full-time developer. After applying to a few jobs, I started getting discouraged because I never heard back from anyone and even got one or two no’s. However, as time progressed, I started preferring rejections because so many companies never reached out to me! For a period of time I felt convinced that I may not be truly ready to be a full-time developer since companies were not reaching out to me. Nevertheless, my close friends at the meetups kept encouraging me to stay the course.</p><h3>Then…it happened!</h3><p>I started to receive few interview requests from companies! I was so thrilled I didn’t know what to think! Someone actually took the time to review my application and felt that I could be the right fit for them! However, as time went on, I had to mark each one off of my list as after a first-round interview, they either never responded or said no. In fact, I had been invited to a social event for a large company only for them to turn me down prior to the event. Nevertheless, I attended the event as per their advice, and l actually learned a lot of valuable information from them and still appreciate their time and consideration.</p><p>As I kept applying and not hearing back or getting rejected, I finally had an interview request from a private company in Baltimore. I did what I had always done, kept professional with the interviewer and followed up on the recruiting process. During this process, the recruiter recommended that I apply for another affiliate company. Although I had been turned down for the first company, I went through round after round with this new company! Finally, after much anticipation, I had been called for an in-person interview in Baltimore!</p><p>I was very nervous yet excited for this interview. As I drove to the airport, I did not know what to expect. When I finally met with the recruiter, I had calmed down enough to feel comfortable meeting the development teamas well as my interviewer. The office space was very open and I was able to meet several employees. As I had lunch with the lead developer and operations manager, I knew that I was very close to the actual interview. Although nervous, I was prepared because I had been spending the last year and a half preparing for this moment. I walked in with confidence, shook their hands, and did my best interview with them as I knew how.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*G-OZ3B5dbSwAlTInqRxvFg.jpeg" /></figure><p>After the interview, they told me that I would hear back within a week. With that in mind, I returned to the airport, asking myself how I could have done the interview better or if I made any mistakes. All of this was swarming my mind, when, an hour after arriving, I got a call from the recruiter. With much joy in her voice, she announced to me that they had extended me an offer!!! In that very moment, I realized that all of my hard work had paid off. I was no longer a lonely college graduate with no plans for the future, but a full time web developer!</p><h3>Today,</h3><p>I can confidently say that I do not work at all, rather, do what I love. I wake up in the morning with anticipation to get back on that computer and code. I am also working with an amazing development team that has proven itself by tackling some of the more challenging projects that our company has ever faced. On top of that, I am learning new technologies to level up my coding skills and help me progress in the tech industry! And I can trace all of these accomplishments to a decision I made to change my life in the summer of 2017.</p><p>I am writing this extensive article to let you know that if you have a dream of making a career change, whether it is to be a developer or not, I want you to know to never give up! The journey may seem difficult at times, but always remember the pain of regret is worse than the pain of putting in the blood, sweat and tears to strive towards your goals. You are able to accomplish more than you ever thought possible if you just put your mind to it. Looking back on the past year and a half, I am extremely thankful that I carried on despite all of the seemingly insurmountable obstacles in my way. When I was at my lowest, I remembered my time in college and said to myself “You are going to do whatever it takes to never live like that again.” And, just like a boxer that suffered from what looked like a knock-out blow, I got right back up, refusing to give up.</p><iframe src="https://www.instagram.com/p/BsguuAJl3eC/embed/?cr=1&amp;amp;rd=https%3A%2F%2Fwww.instagram.com" width="658" height="1024" frameborder="0" scrolling="no"><a href="https://medium.com/media/978028209eb472ecb96f9688b26fbed0/href">https://medium.com/media/978028209eb472ecb96f9688b26fbed0/href</a></iframe><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9087023a0e8c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/codeconnective/from-depressed-college-student-to-excited-and-employed-web-developer-9087023a0e8c">From depressed college student to excited (and employed) web developer</a> was originally published in <a href="https://medium.com/codeconnective">codeconnector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>