YouTube Channels For Learning Web Development

Reading Time: 2 minutes

YouTube

Thinking about teaching yourself web development? Perhaps out of interest, a potential career change or just our of curiosity? Well, the good news is that learning web development does not have to cost you a cent.

There are two key ingredients you will need and those are patience and practice. That’s it!

Where to start learning web dev?!

YouTube is a massive resource for free learning opportunities. There are many people out there, who are committed to sharing knowledge by creating good course content.

Even if you’re already a well-versed web developer, YouTube is a great resource to pick up a new skill set.

There are of course other ways to pick up learning web development for free, but for the purpose of this article, I want to focus on using YouTube as a free and accessible resource for new comers.

What do I need to start learning web dev?

Besides the two key ingredients I mentioned above; patience and practice, you will also need the following things to make your life a lot easier:

  • A Mac or computer with Windows / Linux (Ubuntu)
  • Access to the internet.
  • A good web browser like Chrome(Free) or Firefox (Free)
  • A good code editor like Visual Studio Code (Free) or Sublime (Free)

That’s it! Let’s move on to the free courses…

Learning To Code

The free courses at your fingertips


Codecourse | https://codecourse.com/

YouTube Channel:
https://www.youtube.com/channel/UCpOIUW62tnJTtpWFABxWZ8g

Some free courses on offer by Codecourse:


Coding Addict

YouTube Channel:
https://www.youtube.com/channel/UCMZFwxv5l-XtKi693qMJptA

Some free course on offer by Coding Addict:


Corey Schafer | http://coreyms.com/

YouTube Channel:
https://www.youtube.com/channel/UCCezIgC97PvUuR4_gbFUs5g

Some free course on offer by Cory Schafer:


CS Dojo | https://www.csdojo.io/

YouTube Channel:
https://www.youtube.com/channel/UCxX9wt5FWQUAAz4UrysqK9A

Some free courses on offer by CS Dojo:


freeCodeCamp.org | https://www.freecodecamp.org/

YouTube Channel:
https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ

Some free courses on offer by freeCodeCamp.org:


LearnCode.academy

YouTube Channel:
https://www.youtube.com/channel/UCVTlvUkGslCV_h-nSAId8Sw

Some free courses on offer by LearnCode.academy:


LevelUpTuts | https://www.leveluptutorials.com/

YouTube Channel:
https://www.youtube.com/channel/UCyU5wkjgQYGRB0hIHMwm2Sg

Some free courses on offer by LevelUpTuts:


Traversy Media | https://www.traversymedia.com/

YouTube Channel:
https://www.youtube.com/channel/UC29ju8bIPH5as8OGnQzwJyA

Some free courses on offer by Traversy Media:


sentdex

YouTube Channel:
https://www.youtube.com/channel/UCfzlCWGWYyIQ0aLC5w48gBQ

Some free courses on offer by sentdex:


And that concludes my list of free YouTube resources on getting started with web development!

If you feel that I’ve missed some channels offering free web dev courses, please let me know in the comments below.

Switching to Cloud Hosting

Reading Time: 3 minutes

Background

Over the course of a long weekend, I attempted to move my standard shared hosting websites over to a cloud hosting solution.

Having multiple websites on shared servers, can get quite costly on a monthly basis and I wanted a solution that not only saved me some cash, but gave me some technical flexibility.

The Solution

I started investigating DigitalOcean which I’ve heard good things about before. They offer a cloud hosted VM solution called “Droplets“.

“More than just virtual machines. Droplets are a scalable compute platform with add-on storage, security, and monitoring capabilities to easily run production applications.”

– From DigitalOcean’s website

This sounded like a winning solution to me and off I went, signing up and spinning up a Droplet that runs the latest Ubuntu LTS release with a LAMP setup.

This was great because it allowed me to install the latest version of Apache, PHP and MySQL without being at the mercy of a service provider dictating versions to me (often found them to be behind the curve). I could run wild on my server install what I liked.

Weighing It Up

Pros of this approach:

  • Ability to run latest versions of LAMP packages.
  • Flexibility and freedom of managing your own server.
  • Better overview of what’s going on “under the hood”.
  • Cost effective with all your websites in one space, billed at a single cost per month.
  • All websites share the same server resources (this could a negative depending on how you look at it).
  • Potential to be way more secure.
  • Potentially snappier access for international users.

Cons of this approach:

  • Initially took a while to set up.
  • Security is all up to you and there is no one to blame if the system gets compromised.
  • Up to you to keep your server and packages up to date and not let the server decay over time.
  • Renewing SSL certs is up to you (but this can be automated).
  • Backups are all up to you (but there are DigitalOcean solutions to this).
  • Not locally hosted. Potentially slower access for local users, but this can be debated.

The Test

To test my new shiny server out, I had to start small. I tested my fiance’s website out first, a basic HTML5 website. After playing around with some DNS settings, I was able to get the domain pointing and working as intended.

The next task was to move my other, more complex sites over to the droplet. This included a Drupal 8 and WordPress website. The WordPress site worked like a charm, with no issues, but the Drupal site complained a bit about using a newer version of MySQL (MySQL 8) it wasn’t quite happy with. After a few tweaks here and there, I finally got it playing nicely with MySQL 8.

Amongst other new features and improvements, one big advantage MySQL 8 offers is improve performance; InnoDB is significantly better at Read/Write workloads, IO bound workloads, and high contention “hot spot” workloads. Read more about MySQL 8 here:
https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html

I updated both domains to point to my new server and after a bit of tweaking here and there to get HTTPS working correctly, I was finally up and running with both PHP sites working perfectly.

Next step was security hardening on both an Apache and server level. After following a few guides online and a bit of trial and error, I was successfully able to harden the server and get the firewall operating optimally. Final step was performance optimization, particularly on Apache and MySQL’s side to reduce memory usage and not be so frivolous with precious server resources.

Conclusion

Overall I was impressed with how well everything went. Not only was this my first real web server setup from scratch using this particular flavour of Linux, but it was my first attempt at cloud based VM management.

So far, I’m super impressed with DigitalOcean. It’s dashboard is superb and it’s one-click solutions of certain things is so snappy and efficient. It has great monitoring and alert tools to ensure my VM stays up 24/7 and the feeling of having all my websites in one place makes me feel warm and fuzzy inside.

If you’re interested in challenging yourself in learning something new, while potentially saving in hosting costs (if you host more than 3+ websites), definitely take the time to explore and investigate a DigitalOcean droplet.

Dealing with MySQL ERROR 1214 (HY000): The used table type doesn’t support FULLTEXT indexes

Reading Time: 2 minutes

If you’re ever unfortunate to run into the same MySQL error that I’ve just run into, don’t stress. There is an easy solution to resolve this annoying error message.

Ther error I was getting:

In my case, I was trying to import a .sql dump and the error I got looked  like this:

ERROR 1214 (HY000) at line 5913: The used table type doesn't support FULLTEXT indexes

The reason you’re getting this error:

In a nutshell: InnoDB doesn’t support FULLTEXT indexes prior to MySQL version 5.6. You have to use the MyISAM database engine for FULLTEXT indexes for older versions of MySQL/MariaDB.

What was going on for me:

In my case, the .sql dump was coming from AWS, that uses a newer version of MySQL/MariaDB and I was trying to import the .sql file into my MariaDB database that was running an older version. I was on a machine that was using MariaDB 5.5 (MySQL 5.5 equivalent). I needed a way to update the InnoDB engine entry to MyISAM as you have to use the MyISAM database engine for FULLTEXT indexes.

How to fix it:

Linux method: If you’re fortunate enough to be using Linux, then this command will work for you; (make a copy of the file first, just in case anything goes wrong)

sed -i 's/) ENGINE=InnoDB/) ENGINE=MyISAM/g' your_db_dump_180731.sql

On Linux systems, sed is a Unix utility that parses and transforms text.

Windows method: If you’re using Windows, you’ll have to resort to a find and replace method.  This is relatively easy to do; open your .sql file up in something like Notepad++ or Sublime and search for ENGINE=InnoDB and replace it with ENGINE=MyISAM (remember to save).

That’s it!

Hopefully, the above solution will work for you as it did for me. Importing your .sql dump should be a simple straightforward process and you should not run into any more import errors.