Hi, I’m Keith Smith. This is my website. I am a freelance PHP programmer. I’ve been a freelance PHP programmer since 2006.
This website is dedicated to mentoring new and not-so-new PHP developers. I have an associated YouTube channel as well.
Below you will find the outline of what I hope to accomplish with this website and associated YouTube channel.
PHP Programming Tutorial
I prefer Ubuntu 22.04LTS Linux and that is what I will be using. Ubuntu 22.04LTS was released on April 21, 2022, and is supported until April 2027. Its code name is Jammy Jellyfish.
Is it Worth Learning PHP
In my opinion, PHP is well worth learning. Some say not. Keep in mind that 80% of the Internet runs PHP in some fashion. You can read more about it here: Is it Worth Learning PHP.
How Long Will It Take To Learn PHP
This is not an easy question to answer. The answer is it depends on where you are in the learning process and how far you want to go. If you want to learn the basics your learning curve could be short, however, if you want to become an accomplished full-stack PHP developer then it will take a while. You can learn more here: How Long It Will Take To Learn PHP.
Skills a PHP Developer Should Have
There is a lot to know to become a skilled PHP developer. If your goal is to learn just the basics, then you will need to know less. If your goal is to become an accomplished full-stack developer, then you have your work cut out for you. Learn More: Skills a PHP Programmer Should Have
Learn the Basics of Configuring and Managing a Linux, Apache, MySQL, PHP (LAMP) Server
Like I said above I believe a PHP developer should know how to configure a basic LAMP server. I am not a fan of all those “PHP servers” you can run on Windows or MAC. They are work-a-like servers. Once you can configure your own LAMP server for development and testing, you can make it work like your production server.
Learn the Basics of Installing, Configuring, and Managing a Linux Workstation
I first became aware of Linux in 1998. I installed it and played around with it. In January 2000 I installed Linux as my desktop and ran it for about 8 months. I began using Linux as my desktop again around 2010 for the second time. In 2016 I migrated to Windows for business reasons.
Today I am free to run Linux as my desktop once again. You are welcome to take the Journey with me.
Learn the Basics of HTML5
HTML stands for Hypertext Markup Language. HTML is the bone structure of a web page. HTML is not a programming language, it is a markup language and is easy to learn. HTML5 is the current/latest version of HTML.
Learn the Basics of Cascading Style Sheets (CSS)
CSS gives the website or web pages their style. This includes color, font, and font size. CSS is not a programming language. CSS is a little more complicated than HTML, however, it is easy to learn.
Learn The Basics of PHP Programming
PHP is an acronym for “PHP: Hypertext Preprocessor”
PHP is said to be used in some way on upwards of 80% of the websites on the Internet today.
It should be noted that skilled PHP programmers are in high demand.
Learn the Basics of MySQL and Structured Query Language (SQL)
MySQL is the most popular data engine for websites. SQL is how programs interact with the data engine.
Learn the Basics of AJAX using jQuery
Learn PHP Object-Oriented Programming
There is functional programming and Object-Oriented Programming (OOP). Functional programming is said to be old school and OOP is said to be more modern. There have been some disputes about this last statement.
Create a Basic Model View Controller (MVC) PHP Framework From Scratch
MVC is a popular design pattern. Model is the database code. The View is the output from the server to the browser. And the Controller is the brains of the operation.
MVC is the design pattern I prefer.
Create a Home LAMP Web Server Complete With DNS and an Email Server (Postfix and Dovecot) for Single Domain and it’s Web Site.
Years ago I configured a web server that ran out of my home office using my business Internet connection. It was a full-blown LAMP setup, complete with DNS and email functionality. Recently I did the same on an old laptop. That server would serve multiple domains and email accounts.
My goal is to back that down to one domain running DNS and an email server. This configuration can be extended to server multiple websites and multiple email accounts. For starters, we need to understand the basics and grow from there that is why I am taking this approach.
Dissect WordPress Inner Workings and Source Code
WordPress has been around for years. It is built using the PHP programming language and uses MySQL for the data engine. It can use other data engines, however, we are going to stick with MySQL.
I think there is a lot to learn from dissecting WordPress and looking at its code and functionality.
Learn How to Make a WordPress Theme
You will probably never create a WordPress theme as a PHP developer, however, I think there is some benefit to creating a basic WordPress theme.
Learn How to Create a WordPress Plugin
Plugins are used to extend and/or modify WordPress functionality. WordPress is a vast ecosystem. As with creating themes, I think there is some benefit in learning the basics of plugin creation.
I am a freelance PHP developer. If you need help with custom PHP programming please visit my PHP programming article: PHP Programmer.
I’ve been a freelance PHP Developer since 2006.
I have been a freelance PHP developer since 2006. I want to teach you everything I know. There is a lot to know.
I believe that a PHP developer should be able to configure and maintain a LAMP server for development and testing.
I think it may be wise to be able to configure and use a Linux workstation.
For fun and skill-building, I think running a LAMP server out of your home office is a great learning experience. This server should serve a domain, run DNS, and run an email server. As a stand-alone comprehensive PHP web server.
There is a lot to know and we will touch on all the basics including object-oriented programming (OOP), programming using PHP, and creating a simple Model View Controller (MVC) framework.