Start Over Coder

Start Over Coder

By Start Over CoderTechnology
Download on the App Store

Start Over Coder episodes

  • 053: Pair Programming

    Pair programming is a productive way to write code with other people, and often used as an interview tool as well. I've been incorporating pairing into my study plan recently, and here's what I learned!

    What is pair programming? It's two people writing code together, and sharing one computer to do it. One person is the driver: their hands are on the keyboard and they are talking through the code they write as they write it. The other person is the navigator: the navigator takes a 'big picture' approach and reviews the code as it's being written, stopping to ask questions or offer guidance based on what the driver writes.

    During the pair programming session, you would periodically switch so that each person sits in both roles several times. The main idea is that with two heads working together, the code will be better than if just one person was working alone.

    Here are the biggest benefits and lessons I've found so far in my pair programming experiences:

    • You see another way to approach solving problems. It could be better, it could be worse, or it could simply be different. Regardless, you can learn something by seeing multiple ways of doing something!
    • It's easy to put pressure on yourself to start writing code even if you haven't thought it all the way through yet, just because there's another person there watching. Instead, take advantage of a second mind and work together to create a full plan before actually writing any code.
    • Pairing is a unique experience that you can only practice with another person! Make the effort, it's worth it.
    • Since you're may work more slowly as a pair, take any environment obstacles out of the way before starting: dedicate a set amount of time and make sure you have a good internet connection (and backup plans).
    • Regardless of who is the more experienced coder, it's beneficial for both people to work in both positions—the driver and the navigator. Make sure you switch off regularly!

    If you're learning how to code (on your own or otherwise), I would highly recommend working some pair programming time into the mix! It might be intimidating to start, but these benefits and more make it worth it in the end.

    And if you don't live in a busy area or can't get yourself to a place where other people are up for pairing, don't discount the option of finding a pair programming partner online. My experience was great—I'll include some links to open communities where you can look for a pairing partner in the list below.

    Show Links:

    • What is pair programming? YouTube video
    • Codebuddies public Slack
    • Code Newbie public Slack
    • Codeshare lets you work on code together online
    • Codewars gives you coding challenges - great for pairing

     

    Thoughts on this episode? Leave a comment at startovercoder.com/053 or tweet me @startovercoder.

    17 min
  • 052: Relational Databases Intro

    Working with data is one of the most important aspects of development. This week I got an intro to relational databases, and here's what I learned.

    As we all know, a database is where we store data...what makes it relational is the method we use to store it: information is stored in tables, and then we relate those tables to each other by referencing unique id numbers from one table to the next. To interact with the data, we use a relational database management system (RDBMS) like MySQL, PostgreSQL, MariaDB, etc.

    Another option for storing data is to use a non-relational database like MongoDB or Neo4j which takes a less rigid approach to how and where data can be stored. These are also sometimes called NoSQL (not only SQL) databases and they provide flexibility when the data you're working with vary a lot in structure and content. However when the information is uniform, relational databases can be very efficient because there is not a lot of repetition, and you can easily access exactly the information you need with SQL, when you need it.

    With an RDBMS like MySQL, you can write queries to do everything from basic CRUD commands (create - read - update - delete/destroy) to refining searches and aggregating information. Using these queries and commands not only allows you to determine what information is displayed in your application, but it can also help with marketing decision, business development, advertising and much more.

    One correction—when I gave the Instagram example, I said that you would have a table for users, and then a table for "that user's photos" and so on. I meant to say you would have a table for ALL photos—it would not be a table for each user. You then link a user id to the photos table to show which user that photo belongs to. Sorry I misspoke!

    Links from this episode:

    • Most popular baby names by US state
    • The Ultimate MySQL Bootcamp
    • W3 MySQL Exercises
    • SQLZoo
    • US Government Data
    • UK Government Data
    • Cloud9 web environment to practice

     

    If you have some tips on how to practice working with a database, leave a comment at startovercoder.com/052 or tweet me @startovercoder.

    15 min
  • 051: Static Site Generators - Best Bet For A Low-Maintenance Website

    They say every professional coder should have a portfolio available for potential clients and employers to review. Here's a low-maintenance, inexpensive (or free!) way to do it.

    The simplest and least expensive way to host a website is to create a static website (I talked all about these in episode 31). But hard-coding all of the pages and your entire file structure is tedious and not a good use of time, especially if you expect the amount of content to grow over time (like with a blog, for instance).

    Static site generators allow you to set up a template for your site one time...after that's done, you only need to think about adding new content going forward. You write the content, and the site generator will process everything into a bundle of HTML pages for you. If you don't want to write any HTML or CSS you don't even really have to...there are many, many ready-made templates out there so all you need to do is add content, if you want. Easy!

    You'll need to basics to work with a static site generator:

    • Access to your computer's command line (not as scary as it sounds!)
    • A text editor (check out episode 39 for more info)
    • Your programming language of choice installed
    • A package manager or install method for getting the site generator

    Here are some options for getting started with static site generators:

    • You'll need to get familiar with Markdown syntax for these
    • Jekyll - written in Ruby, lots of free themes available (I can recommend Clean Blog), and host for free on GitHub Pages
    • Hexo - written for Node.js, get started with a YouTube walk-through playlist
    • Hugo - written in Go
    • Gatsby - for JavaScript & React
    • Gitbook - for book publishing
    • ...or visit StaticGen for 199 options!

    No matter which one you choose, be sure to take the time to look through some theme examples to see the capabilities...some generators have more functionality & more flexibility than others.

    Happy coding!

    If you've made a site using a static site generator, I'd love to see it! Leave a comment at startovercoder.com/051 or tweet me @startovercoder.

    18 min
  • 050: Learning Plan 2.0!

    It's time to revisit my learning plan for learning to code! With the start of a new year and career uncertainty ahead, I'm setting some goals to make sure this Start Over Coder expedition stays on track.

    For the record & prosperity (!) I'm going to:

    • Gain skills with relational databases: learn structure, learn SQL, build sample projects.
    • Learn React, and build sample projects.
    • Learn CSS grid, and build sample projects.
    • Dive deeper into JavaScript and Node.js. And build sample projects!
    • Get my first paid work as a developer by 30 June, 2018.
    • Be more specific about calendarizing work sessions: more specificity = more productivity.
    • Share what I learn in this podcast and in a blog.
    • Practice pair programming.

    Thoughts on this episode? Leave a comment at startovercoder.com/050 or tweet me @startovercoder.

    18 min
  • 048: Coding School Rejection! 😣

    This week I got rejected from a coding program that would have been great for jumpstarting my new career. Bah humbug : (

    While I put a lot of effort into researching and then applying for the program, turns out it's just not in the cards for the near future. So now it's about resetting, making some plans, and figuring out where to go from here.

    Have you ever been rejected from something you had your mind set on? How did you reset your path? Leave a comment at startovercoder.com/048 or tweet me @startovercoder.

    8 min
  • 047: Node.js - Back To Basics

    This week I realized I didn't know as much as I thought I did about Node.js, so back to the basics.

    Episode Links:

    • Node.js
    • Node.js Docs - Getting Started
    • Start Over Coder Episode 20 - Too Early Intro to Node.js
    • The Net Ninja Intro to Node.js For Beginners Playlist

    Thoughts on this episode? Leave a comment at startovercoder.com/047 or tweet me @startovercoder.

    13 min
  • 046: Too Much Reading, Too Little Coding

    The reading-to-coding ratio is important to be aware of when learning to code...it's important they don't get out of balance. When I notice I'm not writing enough code, here are some things I try.

    Thoughts on this episode? Leave a comment at startovercoder.com/046 or tweet me @startovercoder.

    17 min
  • 045: Improving Naming Conventions

    The more you write code, the more you realize the importance of choosing good names for your functions and variables. In this episode I discuss a few best practices I've picked up so far.

    As a newbie to writing code, it's just about getting the darn code to work. Lots of questions take priority: What is a function? What is this var I keep seeing everywhere? Did I miss a semicolon AGAIN!? Thinking about how to name functions, variables, or elements takes a back seat.

    But the more you read code, and especially the more you read your own code from the past, it's easy to see just how important it is to name things well. It's probably the most important thing you can do to make your code readable. 

    Here are some tips I've picked up so far about naming conventions:

    1. Be specific with names so that the name describes what is actually happening. Example: name a function calculateAge() instead of just calculate(), which is too vague.
    2. Don't use similar names. My terrible bad example was when I called a button "item-reward" and on the same page called a form "reward-item." This is the epitome of confusing when you go back and read your code after a few weeks away.
    3. Don't use initials, single letters, or numbers as names. It's harder to understand and nearly impossible to search. Brevity does not always win over clarity!

    Basically when reading through your code, the reader should be told a story: a sequence of actions that makes sense to human understanding. 

    To improve your own style of naming things I can recommend:

    1. Read other people's code, both good and bad. You'll get best practices from the good, and can see what not to do from the bad!
    2. Read books about best practices. I can recommend CLean Code by Robert C Martin.
    3. Ask other developers to review your code and offer suggestions for improvement.
    4. Do the time test: read your own code a few weeks or months after you've put it down. After some time away you'll see rather quickly where improvements could be made, as well as how clear or confusing it is.

    All of these are just a start. If you have some tips to add, you can leave a comment at startovercoder.com/045 or tweet me @startovercoder.

    13 min
  • 043: Node/Express Project - Progress Report

    For some info on what it takes to build an app from scratch, here's a progress update on the app I introduced in episode 35.

    The main updates:

    Goal #1 is shipping a minimum viable product (MVP). Since my initial plans got a bit complicated, I took a new approach and simplified the basic functionality of the app. I can always go back and add more robust features later—for now I'd like to get a good foundation completed.

    I also aimed to pick up a new skill by using a new front end framework, Semantic UI to style the site.

    In the testing stage, I found a bug! So researching some possible fixes, including the Mongoose queries written in my Express routes, and using AJAX requests to update small portions of the page.

    I'll do at least one more update on the app before wrapping it up! In the meantime...

    Thoughts on this episode? Leave a comment at startovercoder.com/043 or tweet me @startovercoder.

    11 min

About Start Over Coder

From the publisher's feed

What is the Start Over Coder? Well, that's me! And I'm taking you along on my quest: taking up a new career as a professional developer, and pursuing financial independence. On the podcast I share all…