As a follow up to my previous post “Teaching yourself online – Pt. 1 Starting from the beginning” I want to give my opinion on why Tutorials online can be bad but how you can still use them to enable the self-teaching process.
Why are they bad?
Many new developers have been tasked with a specific program or piece of software to create, this leads the self-teacher to Google for “<language> how to make <software> tutorial“. E.g. “PHP how to make E-Commerce tutorial“. This will bring up many useful tutorials on developing an e-commerce website, along with simple copy and paste steps which gives the developer what hes looking for.
But is this the answer the developer is looking for? This process doesn’t teach you anything but to copy and paste, which is great if you’re just looking to get paid. If you’re serious about self-teaching though, this is a waste of your time.
Sam is a fictional character for the sake of providing a scenario where a self-teaching developer loses out on valuable knowledge.
Sam is creating a contact form for a client and did the obvious, he googled “PHP Contact Form“. A click or two later he found the following page*. So great, we can see this definitely provides the solution Sam wants. He copies and pastes it all into his favorite text editor, tests it, hacks it to death until it looks right and now the client is happy!
So the client is happy, problem solved? Sure, if you’re just trying to make a quick buck, but if self teaching is serious to you then the stories not over.
Sam has played with the contact form now, but did he learn anything from copying and pasting? I’ve seen this hundreds of times in younger developers, they made it, but they can’t walk me through the code or recreate it without a reference.
The problem isn’t the tutorials, it’s the reader, the self teacher.
*The tutorial in this page is by no means bad, it’s a good tutorial if you understand all the technologies involved, this was simply used for the scenario and I mean no disrespect to the author.
How should I use tutorials?
As an amateur developer and self-teacher, you should approach your development and self-teaching process as a learning experience. Start by researching the product you want to make, comparing existing solutions and the components that make them work.
In the example I used above (contact form) start by looking for existing contact forms in the language you are learning. It’s normally a good idea to download some existing solutions and interrogate their code and inner workings, this can give you a good idea of what’s required and can even spark inspiration if their solution is amazing.
Create a list of features your software requires, in our example these would be:
1. Contact form (HTML)
1.1. Name Input
1.2. Email Input
1.3. Subject Input
1.4. Message Textarea
1.5. Send Button
2. Page to post to Email (PHP)
2.1. Handle posted contact form
2.2. Email contact form contents
With this list, you should be able to start designing the user interface and components of your software on paper, or even in Photoshop or Word.
When you have your designs and you know what components they exist of, you can begin to research the subjects required to develop them. In this example they would be:
- How to create a form in HTML.
- How to handle posted data in PHP.
- How to send an email in PHP.
The aforementioned list is the minimum you should have to learn to create a contact form.
You should acquire the knowledge to create forms on HTML, this will be reused in the rest of your web development career.
You should learn about handling POSTed data in PHP, this will also be reused whenever you program for the web.
You should know how emailing from PHP works and what different ways of implementing email are. Email is a big tool in the IT world, everyone can read an email but not everyone can understand a database.
Tutorials can be used in the self-teaching process, but as a self-teacher you should consider the fact you may just be copying and pasting code to get your solution.
You should research the topics you need to create your solution, don’t simply get the code written, learn about the components you’re using to create your solution.
Remember to always research more about everything you come across. If you’ve coded it, you should be constantly learning about it.
Top Tip: If you are following a tutorial, don’t copy and paste, put your code side by side with the tutorial, and write it by hand! This helps you to remember the functions and the order of the code.
I am going to be following up this post soon with another called “Teaching yourself online – Pt. 3 How to fill the holes in your knowledge”, I hope this post will get you curious to read Part 3.
Thanks for reading! Remember to share if you like this and comment your thoughts