Rank #1: 003: What Is Coding / Where To Start!?
In this episode I’ll help you figure out where to start once you’ve decided to learn to code or be a programmer.
Some of the resources I mentioned in the episode can be found at these links:
LearnCode.Academy: 2016/2017 MUST-KNOW WEB DEVELOPMENT TECH (YouTube, 23 mins) Or just click around the map via this link.
Mar 13 2017
Rank #2: 065 - New Computer, New Dev Setup
There’s a lot involved to get up and running with a new dev environment—it can be pretty troublesome in fact! After working on one machine for a while, it’s easy to forget (or take for granted) all of the software and helper tools you’ve installed slowly over time. But as soon as you want to get coding on a new machine, those tools are quickly appreciated!
Here are some of the steps I took to be able to keep coding while traveling with a temp laptop, and what I plan to do going forward to make it easier next time around:
- Store coding projects on Dropbox to sync project files across the machines. No need to push/pull commits using a remote repository.
- Keep a list of all of the tools I use (especially in the command line). I think even the simplest of lists would be a better place to start than trying to remember all of the software I’m used to using. Check search results for “dev environment new computer” to also check lists others have come up with.
- Keep a copy of my command line shortcuts (.bashrc file) in a GitHub gist for easy future reference.
- Document! Document! Document! Any time I do a new installation on my machine, I’ll take note of how I did it and any resources that helped with the installation.
Apr 18 2018
Second Career Devs
La Vie en Code
The Mentoring Developers Podcast with Arsalan Ahmed: Interviews with mentors and apprentices | Career and Technical Advice | Diversity in Software | Struggles, Anxieties, and Career Choices
Complete Developer Podcast
How To Code Well
Eat Sleep Code Podcast
Start Here: Ruby on Rails
Rank #3: 005: Learn To Code Resources
Today's episode is an overview of the different types of learn-to-code resources I've found out there. From apps to use when you're bored to full-time study programs, there are a lot of options!
Before deciding which option to go for it's important to think about your own personal learning style: are you self-motivated or do you need more structure? Is there something specific you want to build straight away? Do you already have some coding experience? Do you like learning on your own or in a group?
Once you have an idea of how you learn best, it's time to look at the different tools. I'll go into these in much more depth in future episodes, but in the meantime here is the overview:
- Free online resources (YouTube, MOOCs, dedicated learning sites, etc.)
- Online games & coding challenges (example: Code Wars)
- Paid online resources (bootcamp prep courses, Udemy, Treehouse, etc.)
- Mobile apps (examples: Mimo, Lrn)
- Community programs (Meetup groups, Facebook, etc.)
- University / school courses
- Programming books
- Figuring it out from scratch (via Github, SourceForge, etc.)
- Bonus method! Kids apps (example: Tynker)
Regardless of the method you choose, the one piece of advice I have is to code every day! There is a lot to learn and you want to make sure it sticks.
What do you think about this list, is there anything I missed? Leave a comment below!
Mar 23 2017
Rank #4: 060 - It Doesn’t Actually Have To Take This Long!
It’s been a year since I started this podcast! But I still haven’t become a full-time developer. Does it really have to take over a year to change careers and become a programmer?
Short answer: no, I really don’t think so!
But for me, a few things along the way have slowed down my progress. You can get the full story by listening to this episode, but to recap what I think I’d do differently to speed the transition up a bit:
- Set a firm date for when I’d quit my job and STICK TO IT! My “deadline” kept being pushed farther and farther away from me.
- Work on a single program or curriculum that will provide you with full projects to complete and add to your portfolio. This is massively necessary when it comes to actually looking and interviewing for jobs. Some good examples are the freeCodeCamp certificates and Udacity nanodegree programs. Coding bootcamps are another viable option, though they can be costly.
Despite my (I think) slow timeline so far, I’m still excited by what’s still to come and look forward to sharing more updates soon!
Mar 14 2018
Most Popular Podcasts
Rank #5: 034: How To Get Unstuck When You're Learning To Code
Getting stuck when you’re learning to code on your own can be FRUSTRATING!! Here are some tips on how to get help.
TIP #1 - Google
This one goes without saying, but it's worth starting here first. Start searching with specific terms, then get more broad if you can't find what you're looking for.
TIP #2 - Rubber Duck It
Walk through your code out loud to an inanimate object (like a rubber duck!) and pose your question. As you're asking the question, the answer might come to you.
TIP #3 - Slack Communities
Slack is a chat & collaboration platform used by a lot of people in tech. Some public groups include CodeNewbie, Code Buddies, and Career Change Coders. You can also search around for language-specific or local Slack communities. Once you're in, join the channels that are focused on the languages or tech stack you're learning.
TIP #4 - FreeCodeCamp Message Boards
FreeCodeCamp has a great, supportive community. If you're working on FCC projects there are scores of people out there who can help when you get stuck. If you're not working on FCC projects, chances are you'll still get some help.
TIP #5 - StackOverflow, Reddit, etc.
Join StackOverflow or Reddit to participate on their boards. Be sure to check their guidelines for advice on forming a good post to increase the odds you'll get a good answer. And of course, search first to make sure an answer to your question is not already out there!
TIP #6 - Revisit What You've Already Learned
Review whatever book, tutorial, docs, etc. that you learned your skills from. Doing so might jog your memory of other things to try, or you might find that you missed something important the first time around. If that doesn't work, try learning the same topic through another medium--if you originally learned by watching a video tutorial, try a book! Different sources and different media may help you find a solution to your problem.
TIP #7 - Take a break!
Work on a different project, go to sleep, go for a walk...do anything to clear your mind of the topic at hand. Come back refreshed and you may find discover the answer you've been looking for.
TIP #8 - Join A Group
This takes a bit of fore-planning, but join a group and build a crew of people you know you can go to with questions when you have them. Check out Start Over Coder episode 9 to hear more about this.
TIP #9 - Pay For Help
As an absolute last resort, you can pay for on-demand assistance at sites like Hack Hands and CodeMentor. Costs start at about $1/minute. But I'd use caution here--you may get things working but you may learn less!
Getting stuck when you're learning programming and be very discouraging--honestly it's a reason many people give up! But sticking to it when things get difficult will help you learn a lot, and it's much easier to do if you get some help.
Sep 20 2017
Rank #6: 025: Think Like A Programmer - Key Takeaways From A Helpful Book
Think Like A Programmer by V. Anton Spraul aims to teach the fundamentals of computer programming. It's not perfect, but it offers some great takeaways for anyone learning to code.
In the book Spraul breaks down how to go about solving a problem step-by-step, covering fundamental topics like arrays, pointers, dynamic memory, classes, and recursion. Each topic comes with code snippets written in C++, and the chapters conclude with a list of exercises you can do on your own to make sure the information sticks.
The key takeaways were:
- Take the time to form a plan when faced with a problem to solve. Random trial and error is not advised!
- Break big problems into smaller pieces and try to solve the small pieces. Then you might spark ideas about how to work on the parts you're less comfortable with.
- If a program will have multiple parts to solve, start with the one with the most constraints.
- Write separate programs to test small functions within a bigger project. If you can write a small piece on its own, you'll have an easier time fitting that function into the bigger project.
- Start with what you know and find analogies with code you've already written.
- Be careful with using other people's code...doing so can hinder your own learning, even if your program works.
- Don't get frustrated! Work on something different or just go take a walk when things get tough.
- Where to find the book: Goodreads, Amazon, No Starch Press
- Start Over Coder ep 18 - free stuff from your local library
- V. Anton Spraul's YouTube Channel
Jul 26 2017
Rank #7: 031: How To Host A Website (Part 1)
Once you’ve learned a bit of code, you want to show it off! Here are some of the options you can try for hosting a static website.
In part 1 of 2 we're talking about hosting static websites, or sites that don't require any database connection or dynamic content. You might want to buy your own domain name (ex: yourname.com) which is where people will find your website. Separately, you will need website hosting, a service which stores your webpage files on a server and sends them to users when they visit your domain.
There are many companies eager to sell you a domain name and/or their hosting services. Sometimes you can bundle the two and get some great discounts! Here's a quick overview of the different web services I mention in the podcast (not a comprehensive list!!):
Free Web Builders
- Do a Google search for "free website builder YEAR" (whatever year it is now) and check out the lists people have curated for what's hot at the moment. There are MANY options!
- Most have a drag & drop interface...you can write the code on some but these are designed so you don't need to know how to code.
- Choice & customization possibilities are limited.
- You will be required to keep ads on your site!
- GitHub Pages Link
- A much better free option if your goal is to show off your own code.
- Post your code to your GitHub account and your site will be automatically generated from your repo's master branch.
- Check out episode 14 to hear about git & GitHub basics.
- Your site can be visited at yourusername.github.io, or you can hook up your own domain.
- Squarespace Link
- Drag & drop easy user interface but waaaaay cooler looking pages than the free options!
- You really don't need to know how to code to use Squarespace but it's a good option for getting a site up quickly, and you can code customizations if you want to.
- All Squarespace sites are responsive -- no matter what device people check out your site on, it will look great.
- But it comes at a cost! At the time I recorded this podcast accounts start at $12/month and go up from there. Squarespace hosting includes a free domain name which you can port to another registrar if you decide to close your account.
- Look for vouchers or promo codes to get some discounts or free service.
- Wordpress.org Link
- Different from wordpress.com!
- Free, you're not required to have ads on your page, but you need to pay for your own hosting.
- All hosting services are Wordpress compatible. Some may require you to install it yourself, but most will even do the Wordpress installation for you.
- There are many free Wordpress templates, some better than others...or you can buy a template for more features.
- You can make your site really dynamic with Wordpress plugins for social media, SEO, eCommerce, etc.
- Unfortunately because it's so popular, it's also very vulnerable to security threats (listen to my story as a tale of caution!!!). Be sure to update your Wordpress software and plugins often to avoid being hacked.
- Be sure to backup your site regularly too in case you do get hacked. There are plugins that can do this for you.
Amazon Web Services
- AWS Link
- Certainly the most complicated of these options...very steep learning curve for newbies!
- Many AWS services are free to try for a full year. At the end of the year you go to the normal pricing, but even so it's still pretty inexpensive. For example, monthly hosting on AWS might cost $0.50/month compared to $7+ monthly on other hosting services.
- AWS is very scalable. If/when you want to expand the capabilities beyond just a basic static site, you'll be able to do it pretty seamlessly. (For example, you can grown to the scale of AirBnB, NASA, GE, Capital One, or Netflix to name a few...all users of AWS!)
So which of these should you choose? My approach is always based on my goals for the site I'm building at the time. Do I want it to be ready quickly, do I want it to be inexpensive, or do I want it to be high quality (ideally with my own code)? You can only get 2 out of 3 at a time!
For fast & quality, Squarespace is certainly the one to pick, but I'll pay more than what I'd like. For cheap & quality (well, as good quality as I'm capable of writing), it's AWS...but the tradeoff is the time it will take me to write my code, AND the time to figure out the monster that is AWS!
The next thing I ask myself is what are the goals for this project. If it's something I know I'll keep up long term, I'll take the time to set things up properly on AWS and build it myself from scratch. On the other hand if it's something I'm just trying out, I might start on Wordpress.org (with a steeply discounted hosting plan) just to get something up quickly and see whether I'll actually stick with it. Perfect example--startovercoder.com!
Next question--are there any deals to be had? Even though I prefer AWS, sometimes it's worth it to use another service in the first year to take advantage of their promotions. For example, to buy the Start Over Coder domain on AWS it would be $12 for the domain, plus the monthly hosting and storage costs. Instead I used a registrar which offered a free domain and 12 months of hosting for $11.92! At the end of the year it's just a matter of moving everything over to AWS (another great skill to learn!).
Visit domcomp.com to compare the latest prices & services from many registrars at once.
Final question: I ask myself what I want to learn by building my website. Personally, I'm not interested in learning PHP (not for now at least) so I'm fine to use a mediocre-looking Wordpress theme rather than building my own or doing a lot of customizations. On the other hand, having a level of comfort with AWS will be a great asset (I think!) when it comes to looking for jobs, so I accept the pain & time that will go into figuring it out.
Sep 01 2017
Rank #8: 038: Programmer 101 - What is front end vs back end vs full stack development?
Oct 18 2017
Rank #9: 011: How I Learned to Call My First API
I’ve just completed my first project where I call an API to randomly generate an inspiring quote, and this episode is all about how I did it.
Before getting started though, I spent a lot of time procrastinating. Part of that led me to the Dev Tips YouTube channel (and in particular this video), which was the inspiration behind my quote machine's video background.
Here are the other resources mentioned in the episode:
- Free video backgrounds from coverr.co
- Google Fonts
- Mashape is the API marketplace I mentioned
- Forismatic created the API I ended up using
- Random Quote Machine [video] from Stephen Mayeux
My main takeaways / things to remember from this exercise were:
- After you've written the code to call an API but before implementing its data to appear on your site, test that it's being called correctly by opening the browser console to console.log any output from the API. This way you can make sure it's working properly before integrating the API information into your site or app. [video explanation]
- My quote machine was coded using jQuery to get a new quote each time the button was clicked. The button click also annoyingly caused the whole page to reload and jump to the top, but this could be avoided by adding an event listener to the function to prevent this default action from taking place. [video explanation]
And finally, you can see the final outcome of my random quote machine on CodePen.
Apr 27 2017
Rank #10: 049: Lessons From A Year In Coding
A whole year of learning to code, whew! In this episode I reflect on some of the bigger lessons that will carry into the new year: Code. With Others. And set goals! These are the keys to success.
Dec 27 2017
Rank #11: 017: Break It Down - Accomplishing Goals With an Algorithmic Mindset
Jun 01 2017
Rank #12: 029: The Web Developer Bootcamp [Online Course Review]
Udemy’s Web Developer Bootcamp is a fantastic course I can highly recommend. In this episode I share the best & worst parts, and some tips to get the most out of it.
To check out the full description of Colt Steele's course or to sign up, view the course on Udemy.
Other things mentioned in this episode:
Aug 15 2017
Rank #13: 004: What Is Financial Independence / Where To Start!?
In this episode I’ll explain how you can achieve financial independence, and why I’ve chosen to do it. It’s not just about sitting on the beach!
Here are some places you can read more about FI:
The Mad FIentist: The Perfect Life
Mr. Money Mustache: The Shockingly Simple Math Behind Early Retirement
Mr. Money Mustache: How To Go From Middle-Class To Kickass
And here's Dave Ramsay's article about me and my friend Einstein (well, you know what I mean!): How Teen's Can Become Millionaires
Mar 16 2017
Hitting a key milestone in learning to code: that moment when you stop the coding exercises and actually build something!
Apr 07 2017
Rank #15: 010: Stumbling Block #1 On My Learn To Code Journey
I hit my first major stumbling block when it comes to learning to code. I say ‘first’ because I’m sure there will be more! In this episode I share what I think happened, and what I’m going to do differently to make sure this this speed bump doesn’t become a dead end.
Apr 21 2017
Rank #16: 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.
Dec 22 2017
Rank #17: 014: Git & GitHub Basics
If you’re new to programming you will undoubtedly come across GitHub & Git pretty early on. This episode describes the difference between the two, and explains how you’ll use both as you learn to code.
If you're ready to get started, here are some of the beginner tutorials I found helpful when I first started using Git & GitHub:
- Install Git
- Create a GitHub account
- Tutorial to put a project from your local computer onto GitHub
- How To Do The GitHub (YouTube)
- Dev Tips 'GitHub For Noobs' video playlist (YouTube)
And once you're more comfortable, some additional resources to check out:
May 11 2017
Rank #18: 022: Should I Learn More Than 1 Language At Once?
With an endless list of programming languages and topics to try & master, it can be tempting to try to learn more than one language at a time. In this episode I explain why I think that’s a bad idea!
Mentions in this episode:
- My learning plan - Start Over Coder episode 13
- Harvard CS50 on EdX
- The Web Developer Bootcamp on Udemy
- My intro to Node.js - Start Over Coder episode 19
- Super easy (!!!) Jekyll blog on GitHub pages
- If you're going to give it a go I highly recommend Jonathan McGlone's Step-By-Step Guide
Jul 06 2017
Rank #19: 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
- US Government Data
- UK Government Data
- Cloud9 web environment to practice
Jan 17 2018
Rank #20: 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.
- 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.
Jan 03 2018