What is WordPress and How Does it Work?

Image : What is WordPress and How Does it Work?

You may be wondering what WordPress is, how it works, and what it is used for. In this article, I answer all those questions.

WordPress was created for bloggers. It has since grown into a Content Management System. WordPress was created using the PHP programming language and utilizes a database. Its behavior can be modified and extended by creating a plugin. It is user friendly and easy to use.

This article covers the open-source, downloadable, self-hosting, version of WordPress, not WordPres.com. I do not recommend using WordPress.com for any serious venture.

WordPress is simple but complicated. It is easy to learn and use by the end-user. WordPress’s behavior can be modified and/or extended by a PHP programmer that knows the WordPress ecosystem. Let’s dig deeper. 

What is WordPress?

WordPress was created in 2003 by Matt Mullenweg using the PHP programming language, and the data engine MySql.

Part of the ideology of WordPress is open source. Open source means the code is available to anyone and can be used for any purpose. Part of the requirements of adding a plugin into the WordPress repository is it much be open source.

WordPress was created for blogging. It has since evolved into a Content Management System (CMS).

What is a content management system? In the case of WordPress, it is the storing, retrieving, editing of content. WordPress comes with two types of content – pages, and articles.

WordPress can be extended to manage other types of content. To do so one needs to utilize or create a WordPress plugin. I talk more about plugins below.

WordPress is utilized by about 30% of the websites on the Internet.

WordPress Consists of 3 Major Parts

  • The Core – Most of the functionality is provided by the core source code. One of the principles is to never modify the core because it is always being changed and updated by the WordPress community.
  • Template system – This is where some of the functionality comes from. The template provides for the look and feel and some of the functionality that brings together the website. Note there are a lot of free themes and a lot of themes you must pay for. 
  • Plugin architecture – Changing the behavior or extending it is done in the plugin. These same changes can be done in the theme, however, it is not recommended. The reason is the theme can easily be changed, taking with it the change that is built into the theme. If it is desired that the changes survive a theme change, they should be completed within a plugin. 

What is WordPress Used For?

As mentioned before WordPress is an extendable CMS that is used to build websites. If you want to create a blog or a website that is rich in written content then WordPress will probably be up for the task. 

WordPress can be extended to manage other types of content such as a business listing. If this is done, WordPress becomes a hybrid CMS and web application.

How to Use WordPress

WordPress is mature and feature-rich, however, it is not overly feature-rich. You do not need to know a lot of technical details to manage a WordPress website. 

To begin managing your website you will want to login. If this is your first time logging in, use the username and password you created when installing WordPress.

The URL to the login page is www.YourDomain.tld//wp-login.php. TLD stands for top-level domain. A top-level domain is .com, .net, .org, etc. 

Once you go to that URL you will see the login form.

Image of the WordPress Login Form

Now that you are logged in you will see the Dashboard.

By reviewing the below list, you can see there are several options on the control panel menu. We will not cover every detail, however, I will give you a brief overview. 

  • Dashboard – The dashboard consists of several messages about your website and some links you can use to manage your website. Under the Dashboard, there are two options. 1) home which is the dashboard, and 2) updates where you can check for updates and complete the update process. For more information refer to the Dashboard Screen.
  • Posts – This is where you can list all of your posts, add a new post, or delete posts. You will also be able to create, modify, and remove categories and tags. You will probably spend most of your time here after your website is fully configured. 
  • Media – You will manage your media here. Media meaning images.
  • Pages – You will need to create, modify, and remove pages as your website grows. The average small business will need about 10 pages.
  • Comments – If you allow comments on your website, this is where you will manage them.
  • Appearance – A lot is going on here. The appearance option is the gateway to managing themes, customizing themes, working with built-in widgets, managing menus, managing plugins, and the theme editor. Unless you know what you are doing I would not edit the theme.
  • Widgets – As listed above, WordPress widgets give the website manager the ability to add functionality to the theme without needing to do any coding.
  • Plugins – These are used to extend WordPress or to modify its behavior. Creating and managing plugins is the work of a WordPress PHP programmer.
  • Users – When you first installed WordPress, you created a username and password that WordPress used to create the main administrator. There is a complete user system that allows you to add, edit, and remove users. This includes the login system. Add to this access control.
  • Tools – By using the export tool, you can download posts, pages, field groups, and media. The main area I’d like to point you to is the ability to export personal data. This has become important because of the push for privacy on the Internet. For more information see the Tools Export Personal Data Screen on the WordPress site.
  • Settings – Is where you manage the configuration of your WordPress website. Settings are made up of 7 sections:
    • General – This is where you will manage things like the site title, taglines, the URL of your website, Admin email address, select if anyone can register to become a user, the new user’s default role, and the date and time format. For more information refer to the Settings General Screen.
    • Writing – Set the default post category, default post format, post via email, mail server, login name, password, default mail category, and update services. For more information refer to the Settings Writing Screen.
    • Reading – Where you set your home page display, max number of blog posts to display on each page, max number of syndicated feeds to show, how much text to show for each post feeds and setting your website to be visible to the search engines. For more information refer to the Settings Reading Screen.
    • Discussion – This is where you manage the default post settings, other comment settings, email whenever, before a comment appears, comment moderation, comment blocklist, and avatars. For more information refer to the Settings Discussion Screen.
    • Media – This is where you manage your images. For more information refer to the Settings Media Screen.
    • Permalinks – This is where you manage your permalinks. What you set here may have an impact on how your pages, articles, and other content ranks on the search engines. Most blog owners choose the “post name” setting. Before you configure this, make sure you understand how you configure your permalinks might affect your website ranking. For more information refer to the Settings Permalinks Screen.
    • Privacy – As a website owner you will be required to follow all applicable privacy laws world wide otherwise your website may be blocked in some regions and may lead to complicated legal issues. WordPress provides a starter page. You will need to be aware of the General Data Protection Regulation and I recommend reading the Settings Privacy Screen documentation.

WordPress Can Become an eCommerce Solution

The most popular eCommerce solution is WooCommerce. WooCommerce is a WordPress plugin. This is a great combination. 

WooCommerce is both free and open source. This brings eCommerce into the grasp of most individuals and small businesses. 

By being a WordPress plugin it leverages what WordPress already brings to the table. 

WooComerce is not a resource hog. Shared hosting might provide enough resources depending on your needs. Having said that I would opt for a Virtual Private Server (VPS) as an entry-level hosting option.

Conclusion

WordPress is simple but complicated – there is a lot to know. If you are building a website using WordPress it is well worth the effort to learn how to make WordPress purr like a kitten. 

Now that you know what WordPress is and have some basic familiarity with it, it is time to put that knowledge into practice and start managing your website.

I had a professor that used to say inch by inch anything’s a cinch. In the case of WordPress that applies. All it takes is spending a little time here and there and in no time you will be an expert WordPress manager. 

Should I Code My Website From Scratch?

Should you build your website from scratch or should you use an alternative? I share my thoughts as a PHP developer.

In the old days coding a website from scratch was the norm. Today there are alternatives such as WordPress and frameworks such as CodeIgniter. If you are a student this could be a good learning opportunity. If this is a business website, I would recommend considering your alternatives.

I have been a PHP developer since 2006 and I built my first website in 2000. In those early days, I created websites from scratch. Today there are a lot of alternatives such as, WordPress, Drupal, Joomla, Wocommerce, Drupal Commerce, Magento, and some that have less market share. 

If you are considering coding a website from scratch there is a lot to consider. Let me explain.

Skills 

To code a website from scratch requires a minimum of knowledge and skill. 

You must know: 

  • HTML – Is the foundation of web building.
  • Cascading Style Sheets (CSS) – A working knowledge of CSS is a must when building a website from scratch. The developer will need to know how to make the website look and feel good and any modern website must be mobile responsive. Mobile responsive means the website must be able to be viewed on all sorts of devices from desktop computers to laptops to mobile phones.  
  • JavaScript/AJAX – JavaScript and AJAX make your website interactive. For the entry-level website, these skills may not be necessary. Some JavaScript may be needed for form valuation.
  • A server-side scripting language – This is a necessity. The developer that builds from scratch will need to be armed with a server-side scripting language. The PHP programming language is by far the most widely used language for creating websites and web applications.
  • A data engine/Structured Query Language – If this site is more than just an HTML/CSS/JavaScript website, a data engine will be necessary. MySql is by far the most widely used web data engine. The Structured Query Language (SQL) is how the programmer utilizes the data engine. SQL skills are a must if a data engine is used. 
  • Code editor – A code editor can make a website developer’s life much easier and can speed up the programming process. Code editors can utilize auto-complete and give the ability to do a global search to find other code. These editors usually provide the ability to edit remote code.
  • Local development environment – Unless the website to be built is your basic HTML/CSS/JavaScript website, a development environment is probably necessary. Note that HTML, CSS, and JavaScript run in your web browser so websites that are limited to these technologies can be run locally without having to configure a development environment. If this project is purely for learning, the project can be completed on a publicly facing server. If this is a production website you may want to have 3 servers, one for each of the following, development, testing, and production. 
  • Hosting – Hosting is always necessary when creating a website. Shared hosting is the basic starting point. If you are building a PHP website, you will need a Linux hosting package. At one point or another, I have hosted with GoDaddy and HostGator. They should meet your entry-level needs. I hear Bluehost is a good choice as well for cheap entry-level hosting.
  • File Transfer Protocol (FTP) – If you are creating your website local you will need to transfer it to your server. That is where having FTP skills come into play. For a simple FTP client, I recommend Filezilla.
  • Project management skills – Building a modern-day website requires project management skills. As you can already see there are a lot of moving parts that will require a plan and the ability to execute that plan.

The above skills transcend three and possibly 4 distinct skill sets. In modern web development, 4 skill sets are needed to build, upgrade, and manage a website.

  • Designer – This is the person that uses HTML and CSS to create the look and feel of the website.
  • JavaScript / AJAX developer – In some cases, a Javascript developer might be required if the website or web application is using a lot of complicated JavaScript/AJAX to make the website interactive. If you are using JavaScript for simple stuff like form validation, the scripting developer is probably able to take care of the JavaScript programming.
  • Server-side programmer – This is the person who writes the server-side scripts or the web application code. In my case, I use the PHP programming language. One thing to ensure when choosing a programming language is that the language is readily available by most hosting providers. PHP is very popular and is widely available. The developer may need Object Oriented Programming skills if the code is to be reusable.
  • Hosting server administrator – The hosting server administrator ensures the web server hardware, software, and connections to the local network and ultimately to the Internet are all kept in good working order.

Questions You Should Ask Before Starting Your Project

  • What type of website are you building – Before you get started you need to ask yourself what you want to achieve. Are you building a web application or a content management system (CMS)? What you ultimately wish to achieve, will affect the skills necessary to complete the project.
  • Who is the website for – Is this a project used for learning? Will it be a business website? Is this a do-it-yourself web project? 
  • Time constraints – It will take longer to create a CMS than to use an application that is already available such as WordPress. If you are building a web application it will take however long it takes. Using a framework can speed development. You need to know the deadline for 2 reasons. One, you need to evaluate if it is reasonable, and two, to better understand what path you need to take and to discover how much you can accomplish within your given time frame. 
  • Would an alternative be better – I think I have somewhat covered this already. Let’s dive a little deeper. Say you want a simple CMS. Something like WordPress, Drupal, or Joomla may be a better solution than building from scratch. Let me explain why. If the developer starts from scratch it will take a lot of time and effort to duplicate the features and functionality these alternative applications already provide. They already have user management, content management, etc. These applications can be extended without editing the core source code of the application. And do not forget these applications are very mature and it may have taken the community hundreds of man-hours or even thousands of man-hours to get where they are today. It is not realistic that these features can be duplicated in just a few hours of programming. 
  • Is this an exercise so you can learn web development – If you want to learn web development skills, building a website from scratch can be a great way to learn and show off your skills. As you see there is a lot to learn. For the do it yourselfer, some of this can be streamlined. For example, you will not need to have Object Oriented Programming skills to build your website. Eventually, I would recommend you learn everything I have outlined if you want to build websites for others.

Advantages 

You will learn a lot if you build a website from scratch. The website may require less hosting resources and may run faster. And you will be fully familiar with your code.

If you are building a browser-based web application, building from scratch is a viable alternative to using a framework. Frameworks come with a learning curve that can add time to the project

Another advantage may be creating reusable code for a niche that a developer may be targeting. Once the code has been created it can be used for other projects.

Disadvantages

If this website is a business website, building from scratch may be a disadvantage unless that is what is required. It takes a ton of time and effort to duplicate what is already available. Time to market could be much sooner if you use an alternative such as WordPress or a framework. Time to market translates into cost.

Not using a framework can add time to the project when you take into account, frameworks contain a lot of functionality that can be tapped into and add structure and features you might have to create on your own if you are building from scratch.

Resource Utilization

In the past, my peers and I have discussed server resource utilization by applications such as WordPress. Some of my friends say building from scratch always trumps using a canned application because the source code will take up a smaller footprint and will require fewer server resources.

No doubt creating anything from scratch will make for a more efficient code base that requires less web server resources. However, you have to ask yourself is that a good business decision?  

I am looking at this from a business perspective. It is cheaper to throw a few more server resources at the application than to pay a developer to duplicate what is already out there. 

There are times when building from scratch is the solution, however, for the most part, most websites do not need to be created from scratch.

If there is a viable alternative that will shorten the build time, it should be considered. Manpower is expensive. Hosting servers in comparison are much less expensive and are getting much more robust almost daily.

This did not use to be the case. Until recently, as hardware became more powerful software would jump ahead and would require more power. That problem does not exist today. Modern web servers are very powerful and are less costly than what a developer costs.

I’m a minimalist too, however, we must consider business costs when creating a website or web application.

There are exceptions. In some cases, an application is given limited resources by design. This could be because the application is embedded on a small computer that has limited resources. This is not usually the case when it comes to websites and web applications.

Build a Website From a Template

Utilizing a professionally made website template can reduce the time and effort it takes to build a website. There is a lot of free templates. You can also buy a template. I’ve seen high-quality templates that were between $50 and $100. 

The advantage of using a template that was created by a designer is the HTML and CSS will be much better than most of us nondesigners can create. Add to this the template will be mobile responsive which requires advanced skills.

WordPress vs Build From Scratch

To build a website from scratch means creating the entire code base and the template as well. This could be a lot of work. Since most websites require a CMS, let’s cover that.

First, let’s look at what WordPress beings to the table. WordPress comes with the following:

  • User management – This includes login/logout, password management, and the application’s access control list (ACL). The ACL allows the WordPress administrator to limit access to certain functionality by the class of the user. 
  • Content management – WordPress manages articles and pages. It comes with an advanced content editor, aids the writer by creating the URL of the article/page, and provides for categorizing this content.
  • Widget management – The core functionality allows the WordPress theme developer to add places for widgets. WordPress comes with widget management. 
  • Theme management – The theme is separate from the core WordPress code so it can be changed with a click of your mouse. The theme developer can take advantage of the core functionality and build the theme to be responsive to the user’s needs.
  • Plugin management – One of the principles of WordPress is that no one is to be able to edit the core source code. To extend or modify WordPress, a developer can create a plugin that will interact with the WordPress core system. It is done this way to prevent community updates from overwriting any changes, the user may have made, to the core source code.
  • URL management – When you look at a WordPress website you will see the base domain followed by the article name. WordPress uses the article name to fetch the content you would like to see. This is done by a software router.
  • Add data types – This means a developer can add a data type for whatever is needed. Let me give you an example. Let’s say you have a website that is a mix of articles and business listings. WordPress does not come with a way to manage business listings, however, that functionality can come in the form of a plugin that adds that functionality and creates a data type of business. In essence, by extending WordPress, it has taken on another role that makes it more like a browser-based application.
  • Control panel – All the functionality and features can be accessed via the WordPress control panel.
  • Community – WordPress is made up of a community that manages the source code and the on-site documentation as well as the off-site documentation.

Let me give you 3 examples of the WordPress documentation:

  • WordPress Codex – This is the table of contents that covers : 
    • What You Most Need to Know About WordPress.
    • Learn How to Use WordPress.
    • Working With Themes.
    • Write a Plugin.
    • Give Back.

 You can find the WordPress Codex here.

  • WordPress Theme Handbook – Covers everything you need to become a WordPress theme creator. You can find the WordPress Theme here.
  • WordPress Plugin Handbook – If you are interested in learning how to modify or extent WordPress functionality, they have written a handbook that can get you where you want to go. The WordPress Plugin Handbook can be found here.

As you can see building from scratch must be analyzed so one does not create a project that unnecessarily duplicates what might already be available. 

There are times when building from scratch is the only real solution. Recently I had the pleasure to review a web application that was created to run a multi-million dollar manufacturing business. I’m guessing they spent hundreds of thousands of dollars building this application. I think it was a wise move.

Reusable Code

If the idea of creating a website from scratch is to create a codebase that can be reused, this code must be well thought out and be very modular. Creating truly reusable code is an advanced skill. 

I would recommend following the Object-Oriented Programming (OOP) design pattern. Doing so will allow the developer to create modular code that can easily be reused. 

I would also recommend implementing the design pattern Model View Controller (MVC). MVC is a great way to structure one’s code/project. It makes the code base more understandable and easier to maintain. Another benefit to MVC is it makes it easier for more than one programmer to work on the project at the same time. 

In Conclusion

There is a lot to consider when one sets out to create a website. Should you use what is already available or build from scratch? 

When considering building a website or web application from scratch, I would recommend researching the alternatives before you make a decision.

Why You Should Never Use a Website Builder

There are more disadvantages to using a website builder than there are advantages. There is a lot to know about building websites.

Should I use a website builder? There is several reasons not to use a website builder when creating a website. The main reason is you cannot move your website – you will be held hostage. If your website is important to you or your business, you should consider an alternative.

A lot goes into building a website. Buying a domain, obtaining hosting, choosing a platform to build your website on, the look and feel, writing content, and Search Engine Optimization (SEO).

I’ve been building websites for over 20 years. Here are my thoughts on when to and when not to use a website builder.

When it is OK to Create Your Website Using a Website Builder

I’m not completely against using a website builder. There are limited number of reason to use a website builder.

If you can answer yes to each of the following questions, you could be a candidate for a website builder. Even if you can say yest to every question, I would still take the time to consider the alternatives which could be helpful in the future.

  • Do you want to have a website that consists of just a few pages – something like a brochure website?
  • Are you reasonably capable of creating something visually appealing?
  • Does ranking on the search engines such as Google not matter to you?
  • Will you direct your own traffic to your website?
  • Is site speed not important to you?
  • You will never want to move your website to another host?
  • You do not have any long term plans to expand your website. 

If you answer no to any of the above questions, I would recommend evaluating other options. 

The Disadvantages to Using a Website Builder

There are several reasons not to use a website builder. Below is my list.

Your Website Will Be Held Hostage

Website builders consist of the web hosting, the builder itself, and the visual layer – what your visitor sees. They are proprietary and specific to the builder themselves. This locks you into one provider. You lose control and must work within the parameters they provide or dictate.

This type of arrangement may seem good at the moment, however you have to ask yourself can your provider be bought out and the builder neglected? What happens if the host company decides they are not going to support their builder any further? What if the hosting becomes slow? Lack of support, show servers, and phased out products occur. 

You own your content, and the hosting provider owns the hosting and the builder. The builder and the hosting are tightly coupled. You cannot just move your website. You can take your content elsewhere, however you will need to rebuild your website from scratch on the new platform. There is a good chance your website will drop in ranking on the search engines, at least for a while, if it ranks at all. It might take a year or longer to recover from a move.

So why take the chance?

Website Design Considerations

If you are a talented website designer the world is your canvas, however for the rest of us we need the help of a professional designer. I must say I have seen some amazing websites created using a website builder, however those were created by very talented people. 

When using a builder, one must conciser the design aspect of the website. If you have an eye for design then this will not be an issue. 

Remember you will not be able to take the design with you.

Potential SEO Issues

I’m not convinced that website builders will entirely kill your SEO, however I do believe they can hamper your SEO and potentially keep your website from getting any real organic traffic from the search engines.

Here is some of the SEO features that are limited or missing.

  • Sitemap – Some builders create a sitemap, however you do not have access to it.
  • Robots.txt – They may provide it however you have little or no access to it and no ability to modify it. 
  • Ability to configure redirects – If you ever want to rename an article or remove it you will have no way to relay that to Google or any of the other search engines.

You may need granular control of your website that builders do not provide. This could come at a price, especially if SEO and organic traffic is of importance to you.

Host on Their Web Servers

I’ve already mentioned the tight coupling of the builder and the hosting. This is a potential problem. I’ve already mentioned some of the potential issues and wanted to talk a bit more about this potential problem.

The big hosts put thousand of websites on each server. And some host do not do load balancing, some do. When I use the term load balancing I taking about the mix of websites on a server and how they utilize resources. Most websites use a small amount of server resources. Others may use a lot of resources. If your website is on a server that is overloaded with sites that are using a lot of resources, the server may slow and in turn your website may slow. 

The solution is to have a mix of low utilizing websites with some resource intensive websites so the server is not overtaxed and therefor does not slow. 

Believe it or not speed is an SEO factor so you want to be aware of your website’s load speed.

Another thing to consider is what happens if your website starts to get a lot of traffic. If you are using a builder your website is tightly coupled to your hosting and you may not be able to move to a faster server. This is could be problematic, or even catastrophic. 

The Alternative to Website Builders

I assume since you are wanting to build your owe website you have a limited budget. I have a solution. You can build a website on a budget without painting yourself into a corner. Let me show you how.

I world recommend using WordPress. This will give you more options and can scale with you and will run on most hosting company’s servers. A lot of the hosting companies claim to specialize in WordPress. In reality WordPress will run just fine on most Linux web servers that run the PHP programming language. 

I called several hosting companies to gather information on their website builders vs hosting with WordPress

HOSTPLATFORMCOSTSSLBackupsPage Limit
iPowerWebsite Builder$7.99PaidNo6
iPowerRegular Hosting$7.99PaidNoUnlimited
iPowerWordPress Hosting$6.95PaidNoUnlimited
HostGatorWebsite Builder$4.99FreeYesUnlimited
HostGatorRegular Hosting$10.95FreeYesUnlimited
HostGatorWordPress Hosting$14.95FreeYesUnlimited
BlueHostWebsite Builder$7.99FreeNo6
BlueHostRegular Hosting$7.99FreeNoUnlimited
BlueHostWordPress Hosting$29.99FreeNoUnlimited

* The above information is subject to change by the respective hosting providers.

There are some points I’d like to make concerning the above table:

  1. One of the support representatives did not seem very enthused about using a website builder and indirectly said it was entry level and seemed to think web builders were not for the serious web site owner.
  2. WordPress will run on the basic hosting plan. That is what I would choose to start with.
  3. The WordPress specific plans were limited in what they allow you to do as the website owner / administrator. Compare this the regular hosting where you install WordPress onto that hosting. The regular hoisting give you full hosting access to WordPress. 
  4. The WordPress hosting plans provide a control panel that is external to WordPress. From my research I do not believe the WordPress specific hosting is worth the extra cost.
  5. On the regular hosting WordPress is installed by simply clicking a button on the control panel. A support representative can help you with the process.

Domain + WordPress + Theme + Some Customization + Basic Hosting

WordPress is pretty much SEO ready right out of the box. There is a ton of free and paid themes for WordPress.

All you need is your domain, a basic Linux hosting plan, WordPress, a theme, and some customization.

If you search YouTube you will probably find more than a few video’s that will wank you through every phase.

WordPress is Scalable and is Capable of Handling High Traffic Websites

I am aware of a website that gets a fair amount of traffic and contained 3000 articles that runs on WordPress. There are a lot of enterprise level websites that run on WordPress. If they can use WordPress it will meet your website needs.

Learning Curve

No mater which path you take there is a learning curve. The site builder will come with a propriety learning curve. On the other hand WordPress will come with a learning curve that is not proprietary and you can use theses kills on any WordPress website that is hosted almost anywhere.

For Those Who Want to Create Their Own WordPress Design

There are several WordPress theme builders like DIVI. The cost is low. You can expect a learning curve. 

Opportunity Costs

Using a website builder over the alternative of WordPress comes with some opportunity costs. 

  1. You will not be able to move your website. You are married with your host no mater what. 
  2. Getting help will probably be limited to your hosting provider, while there a many WordPress meetups and support groups. And there are a lot of YouTube tutorial videos.
  3. Websites created using a website builder will have limited SEO options.
  4. Several of the hosts limit the number of pages your website can have. If you want organic traffic to your website you will need a lot of content on your website. 

In Closing 

After a close look it is clear that a website built using a website builder will cost about the same as building a website using WordPress. 

The builders look nice, especially if you have design chops. You may achieve the same effect on WordPress by using a template builder like DIVI. 

For me I want the option of moving my website. The website builder limits your options. While using WordPress might be a little more complicated it is well worth it if you want to build a robust website that you hope will be visited. 

The website builder, in my opinion, should be limited to the small brochure website that the owner does not have any plans to expand.

There is a lot to know when it comes to the anyone wishing to create a new website. I hope this article provides answers and helps you decide what to do – should you use a website builder or take another path.

I wish you the best in your endeavors!!

Is It Worth learning PHP in 2020? – Everything You Need to Know

I would wholeheartedly recommend learning PHP in 2020. PHP is widely used, is in high demand, provides a lot of opportunities, and the compensation is good. 

Learning PHP in 2020 would be worthwhile for many reasons. PHP is the most popular server-side scripting language on the Internet today. WordPress, Drupal, Joomla, and Magento were all created using PHP. Add to this PHP was first published in 1994, making it very mature.

The Internet has been exploding for a while and will continue to expand for years to come. PHP is widely used and is in demand. With the recent closure of many businesses worldwide, some are thinking those businesses will adapt by moving more of their business to the web. Based on that some are thinking there will be even more demand for PHP developers.

Why is the PHP Programming Language Relevant Today

As you may know, about 80% of the websites on the internet run PHP. PHP is very relevant today and will be in heavy use for years to come.

Here is some of the reasons Learning PHP in 2020 is worthwhile: 

  • The PHP language is very mature – The PHP programming language has been around since 1994 and has matured into a language that is the most widely used server-side scripting language. PHP is a modern language with many modern features such as Object-Oriented Programming (OOP) functionality. 
  • PHP 7 brings a lot to the table – Version 7 is much faster than PHP 5. Some of this has to do with the restructuring of PHP to make it more efficient. Add to that PHP 7 comes with OpCode caching which improves performance as well. The PHP community is always looking for ways to make PHP even better.
  • PHP is the most widely used server-side scripting language – PHP runs on the server, hence server-side scripting. PHP is the most popular server-side scripting language.
  • PHP is secure – Let’s face it, the Internet is a hostile place. The PHP programming language has a lot of security infrastructure built into it. This makes it easy to secure your application. 
  • PHP is Open-Source and free – This means not only is it free, but you can also inspect the source code, and modify it as you like. PHP is a package that can be installed into Linux rather easily. The entire stack is Open Source and free. That being HTML, Cascading Style Sheets (CSS), JavaScript/AJAX, PHP, MySql, and Linux. They are all Open Source and free.
  • PHP can connect to and use many different databases – The most widely used database is MySql. MySql is both free and Open Source. Some of the other databases PHP can work with are PostgreSQL, Oracle, Sybase, and DB2. This opens a lot of doors to being able to use business data on the Web.
  • Some of the most popular web applications were created using PHP – WordPress, Drupal, and Joomla were created using PHP. WordPress holds the most market share at around 30%. An eCommerce, WordPress plugin, WooCommerce is the fastest growing eCommerce solution. WooCommerce was created using PHP as well.
  • PHP hosting is available everywhere – All the major hosting companies offer PHP as part of their hosting plans. You will have your pick of Godaddy, Bluehost, HostGator, and many others.
  • Community support – The PHP community is huge. It only makes sense given it is so widely used. Throughout the world, there are many support groups for PHP. Even the Linux user groups are willing to lend a hand. 
  • Great documentation – PHP’s documentation is as mature as PHP is. The manual is available for each version of PHP. The manual contains user comments with a lot of examples. If the user manual does not satisfy your needs, the Internet is replete with an overwhelming number of tutorials and examples.
  • PHP developers are in high demand – With the expansion of the Internet, PHP developers continue to be in high demand. Word on the street is that due to current events, businesses are increasingly shifting to the Web, leading to an increase in PHP usage.
  • PHP is easy to learn – There is a learning curve if you need to learn the full stack of technologies that come together to host and create websites and web applications. However each is easy to learn and, the good news is, you do not need to know everything to get started.
  • The barrier to entry is low – With all the free tutorials, free software, and how easy it is to learn, becoming an entry-level developer is easier than it used to be. I’m reading and hearing stories of self-taught developers getting entry-level jobs. If you want to go a little further you can become an entry-level developer by attending a 3 or 4-month boot camp. Back when I got started a 4 year degree was required. 
  • Pay and benefit packages are decent to lucrative – An entry-level PHP developer might start at around $40,000 to $50,000 a year plus benefits. A seasoned PHP developer might be able to fetch over $100,000 a year plus a lucrative benefit package.
  • Work remote – With modern technology working remote is always a possibility. To work out of your home office all you need to pay for is a laptop and an Internet connection. And the laptop might be provided
  • Learn PHP so you can complete your projects – In 2000 I learned to create interactive, data-driven websites so I could launch my website. It was not until 2006 that I went out on my own as a freelance PHP programmer and offered my services to others. You may find yourself in the same position. In my opinion, PHP is the best server-side scripting language for the Do-It-Yourself (DIY) web developer.

Disregard the Naysayers 

Some people throw rocks at PHP. I would not listen to them. Look for the proof in how PHP dominates the Internet. All languages have their pros and cons. PHP is no different. 

Some say PHP is a dead language. They do not know what they are talking about. I’ve seen Internet programming languages come and go, while PHP stays steady. 

Some Say You Should Learn Other Languages

I disagree. The PHP ecosystem is so rich and in such demand that I would not think to lean other languages would be that important. At some point, maybe yes, you will want to learn other things, however, I believe that in 2020 PHP is a really good choice. 

In the early 2000’s I used Active Server Pages (ASP) and Perl to build websites. Those two are almost gone while PHP is going strong. 

You will see other programming languages being used for web application building, such as C# and Java. C# is a Microsoft product and Java was created by Sun Microsystems which was acquired by Oracle in 2010

I am not a fan of using any language for website building other than PHP. I prefer staying with the full-stack of Open Source software in my web developer efforts.

I believe the PHP ecosystem is so rich you will need to specialize and you will be able to ride that niche for years to come. Don’t try to be a jack of all trades which causes you to become the master of none. Go deep.

Let’s look at one example. Take WordPress and it’s plugin WooCommerce. WordPress holds about 30% market share while WooCommerce is exploding. The move to the web has been going strong for a while. Given current events with all the business closures, some are thinking there will be even more of a push to do business on the web as businesses begin to adapt to being less brick and mortar and more online.

If you take up the combination WordPress and WooCommerce you could be going strong for at least a decade and maybe longer.

Learning Local

Of course, if you are going to learn how to program using PHP you will probably need a local development environment. You can use any number of localhost development environments such as XAMPP. There are many.

Summing Up Why PHP is Worth Learning in 2020

PHP is a very mature language that is here to stay. The most popular web applications are written in PHP, such as WordPress and WooCommerce. The demand for PHP developers is high and will remain so for years to come. PHP is free and easy to learn. There is a ton of references on the Internet, including the PHP manual. Pay and benefits are decent to above average.

In my opinion, learning PHP in 2020 is well worth it. 

Happy hunting!!

Is PHP a Good Career Choice?

Image : Is PHP a Good Career Choice?

If you are looking for a good career, becoming a PHP programmer could be a good choice. The demand is high, the pay is decent, and there is a lot of opportunities. 

PHP is in high demand. About 80% of the websites and web applications on the Internet use PHP in some fashion. The barrier to entry is low given PHP is Open Source, easy to learn, and there is a lot of free tutorials. And don’t forget the pay is decent as well.

I like PHP because it is easy to learn, is in high demand, pays well, brings with it interesting projects, and provides a rich career path. Let me explain.

Opportunity

As stated above PHP powers, at least to some degree, about 80% of the websites on the Internet.

Here is a shortlist of some of the web applications that were created using PHP.

  • Frameworks – There is a lot of PHP frameworks, such as CodeIgniter and Laravel.
  • WordPress – This application makes up about 30% of all the sites on the internet. It is classified as a Content Management System (CMS).
  • Drupal – Drupal is also a CMS plus more. Drupal can be used to build robust applications. This is enterprise software. 
  • Joomla – Is a minor player with a small market share. Joomla is a CMS.
  • eCommerce – You have probably seen the movement from brick and mortar to the web. Ecommerce skills should continue to be in high demand for years to come.
  •  WooComerce – This is a plugin for WordPress and is experiencing wild growth.
  •  Drupal Commerce – You can build an eCommerce website using Drupal and an eCommerce module. This is an enterprise solution that comes with a serious learning curve.
  •  Magento – Magento 2 is a one size fits all shopping cart application that is very feature rich. Magento has both an Open Sourced version and a licensed version.

PHP is a Mature Language

First launched by Rasmus Lerdorf in 1994, the PHP programming language has matured since those early days. PHP has grown to become the most widely used server-side scripting language in the world. PHP is robust and can handle high traffic websites. 

As an example of what PHP is capable of, Facebook started as a PHP application, and still uses PHP to this day.

PHP is Open Source and Free

PHP is free to use and its source code is made available for free. You can download the source code and modify it if you like.

PHP is native to Linux and is widely available by the major hosting providers. 

Compensation

Compensation is not tied to the region as one would think. If you are willing to work remote, you may be able to live in a region that has a low cost of living while reaping the benefits of working for a company that is located in one of the higher paying countries. 

My experience has been different though. Developers from regions that have a low cost of living are usually willing to work for less.

What I am seeing is, programmers from places like India are willing to work for much less than your garden variety United States developer.

A freelance PHP developer from India might be willing to work for as little as $15 an hour. A United States developer might want $125 an hour and the rates can go higher.

In the United States, an entry-level PHP programmer who is an employee can expect $40,000 to $50,000 a year plus benefits, while senior PHP developers can fetch as much as $100,000 a year plus benefits.

Freelance Consultant vs W2 Employee

A freelance worker is one that is an independent contractor. They set their hours, pay their taxes, and pay for their benefits. Their hourly rates are usually higher because they do not get benefits.

An employee is usually provided with everything they need, such as a computer, phone, and desk. An employee will more than likely receive at least some benefits such as sick leave, paid time off, and health insurance. 

Region Where You Live

All regions of the world, for the most part, use PHP and have some level of PHP talent. It does not matter where you live if you have decent PHP skills because you can always work remotely. 

Remote vs Onsite

There are three arrangements you can expect.:

  • An employee working onsite – You show up to work at a prescribed time, go to lunch as scheduled, and leave work at the end of your workday. Most everything is provided for you.
  • An employee working remotely – Much like the onsite worker everything is provided for you. Your employer might provide you a laptop as well. The real difference is you will be working from your kitchen table for your home office.
  • A freelance developer working remotely – This is a contract worker. One who has regular work from one or more companies or is a gig worker that takes on serial projects on a contract basis. This person sets their hours and provides for their benefits. A freelancer must wear may hats, such as marketing, sales, accounts receivable, accounts payable, and skill-building on top of completing projects.

The Full-Stack

PHP does not live in a vacuum. As a PHP developer you will be working with:

  • HTML – The skeleton or bone structure of web pages.
  • Cascading Style Sheets (CSS) – Defines the layout and style of web pages. 
  • JavaScript/AJAX – Makes web pages interactive and provides for a way to talk directly with the hosting server.
  • PHP – The programming language we are looking at.
  • MySql – The data engine. 
  • Linux – The operating system of the webserver.

How to Get Started

Becoming a PHP programmer comes with a serious learning curve. PHP itself is easy to learn as is each of the related technologies that are used along with PHP. Collectively there is a lot to know. 

The good news is you do not need to learn it all at once. If you have some programming skills you might be able to pick up the basics in 10 or 20 hours. 

I recommend learning HTML first. Then move onto PHP and MySql.

I already had programming experience when I started learning PHP. I figured I needed to know how to do 6 things, to begin with, and expand from there. Here are the 6 concepts I started with:

  • Create a PHP/MySql database connection – Basically, I searched the manual for how to create a connection. Then I created it and tested it.
  • Create a Record – I hardcoded an insert to add a record to the database table I had created. 
  •  Read a Record – I wrote a simple read query and displayed the record. 
  •  Update a Record – Added the code to modify an existing record.
  •  Delete a Record – Created a simple delete query to remove an existing record from the database.
  •  List a bunch of records – I created a simple PHP script that pulled the records in the database and displayed them.

That is how I got started programming in PHP.

You do not need to know everything to get started.

Potential Career Path

From reading this article you probably are familiar with some of the opportunities available to a PHP programmer.

There are many paths one can take. Some of the opportunities are frameworks, WordPress, eCommerce, Drupal, Joomla, and browser-based applications.

For most people I would think becoming an entry-level employee would provide a great learning opportunity. Once you have 2 or 3 years under your belt, the world might be your ouster. 

After that one can become a freelance developer and run a business out of your home.

Conclusion

As you can see there is a lot of demand for PHP developers starting with the entry-level employees to the seasoned developers who have decided to freelance. 

Compensation and befit packages are decent as well. PHP is being used in about 80% of the Internet websites and this is not going to change in the short term.

There is a lot to know, however you do not need to know everything to get started.

I’ve been a freelance PHP developer since 2006. I am glad I chose PHP as a career path. If you have a passion for web development, you will probably be as satisfied as I am. 

I wish you the best in your career pursuit.

How Long It Will Take To Learn PHP – An in-Depth Guide

Image : How Long It Will Take To Learn PHP

If you are looking into becoming a PHP developer you might wonder how long it will take. The time it will take to learn PHP is a function of your starting point.

It might take a nonprogrammer 6 months to learn the entire PHP ecosystem to the point they can be productive programming in PHP. On the other hand, someone with programming skills that has some website development experience may need just a few weeks to get started. 

The amount of time it takes to learn to program in PHP depends on two factors. 1) Your programming skill level and 2) your level of knowledge of website development.

Let’s dig a little deeper.

Becoming a PHP Programmer Requires Other Related Skills That Take Time to Learn

If you are interested in learning to program in PHP you probably already know the ecosystem consists of multiple layers. To become an entry-level PHP developer one must have a basic understanding of how the following technologies work:

HTML – The skeleton web pages are built on. You will need to know this so you can build websites.

Cascading Style Sheets (CSS) – What gives your web pages their look and feel – their styling. As a developer, you do not need to know CSS to the degree a web designer needs to know CSS.

JavaScript – Gives you the ability to make your website interactive. Knowing JavaScript is a must. You do not need to be an expert however you will need to know a lot.

PHP – The programming language this article is about.

MySql – The data engine that makes your website data driven. Every website/web app you work on will more than likely require you to use MySql and the Structured Query Language (SQL).

Linux Hosting – PHP is native to Linux and you will need some sort of development environment that runs Linux.

Development Environment – To make things easy I suggest you get the basic Linux hosting package at Blue Host. This will make your life easier and will allow you to learn about hosting and hosting providers.

Code Editor – I recommend you start with Video Studio Code. This editor is free, and easy to learn with lots of online tutorials, and will allow you to edit your code remotely, or right on the server in real-time.

How Long Will it Take to Learn to Program if You Are a Complete Beginner

You will need to develop some core programming knowledge. Below is a list of some of the things you should understand before you start trying to learn PHP:

  1. Programming logic.
  2. Working with variables.
  3. Control structures.
    1. Loops – such as while loops.
    2. Conditions – such as if/elseif/else statements.
  4. User-defined functions.
  5. How to work with arrays.
  6. Manipulating Strings.

And there is much more. Learning how to program by itself is a 3 unit college course that requires roughly 50 hours of classroom time. On top of the time you will spend in the classroom there is homework that will add to the time required to learn to program.

If you are self-studying I estimate you might learn enough in about 20 or 30 hours to get you started, if you follow a good tutorial.

How Long Will it Take to Learn PHP if You Have Programming Skills

If you have some simple programming skills you will need to learn the following:

  1. HTML might take as little as 6 hours to become familiar with the fundamentals. This includes hands-on.
  2. Cascading Style Sheets might take as little as 4 – 6 hours to learn the fundamentals.
  3. You can jump over JavaScript, for now, however, this is a skill you will need in the future.
  4. To become familiar with PHP might take 10 – 20 hours. It will take much more time to become proficient to the point you can call yourself an entry-level PHP developer.
  5. You will need familiarity with the MySql data engine/Structured Query Language (SQL). If you are learning about databases for the first time, MySql and SQL might take at least 10 hours to learn and might take more like 20 hours to include hands-on.
  6. You will need a development environment. My suggestion is to get a basic Blue Host hosting account. This will benefit you in two ways. It will expedite your learning since you will not need to learn how to install a development environment. And you will learn a bit about web hosting. It might take an hour or two to become familiar with your hosting/development environment.
  7. You will need to know the basics of how to use a programming editor. I recommend the free editor Visual Studio Code. This editor will allow you to edit code remotely. Meaning you can edit code directly on the server. You will probably need to spend at least 2 hours learning how to use the editor. 4 to 6 hours is more realistic.

This adds up to 35 – 60 hours of studying and hands-on. Don’t be surprised if it takes longer.

How Long Will it Take to Learn PHP if You Are an Experienced Website Builder

If you already know most of what I have already talked about you might need to spend 10 – 20 hours becoming familiar with the basics of PHP. This is probably not enough studying to become a PHP developer, however, it is probably enough to get you on your way.

How Long Does it Take To Become An Entry-Level PHP Developer

There is a lot to know to become an entry-level PHP developer. You will need to know all the above plus how to secured applications. Depending on what you are going to be doing you probably want to go beyond what has been listed. For example, you will need to know Object Oriented Programming (OOP) in PHP.

I would spend a very minimum of 30 hours learning OOP in PHP to include a lot of hands-on.

If you are new to programming I’m thinking you will want to spend at least 100 hours of learning and hands-on to get to this point.

If you look at the time required to complete a programming boot camp, you will discover these courses may span 4 months of 60 plus hours a week. These courses are extremely intense. It may take upwards of 1000 hours to complete this type of course. These courses are intended to develop the skills necessary to be able to compete for an entry-level programmer job.

How Long Does it Take To Become A Mid-Level PHP Developer

By the time a developer becomes a mid-level developer, they have added some additional skills and a couple of years of full-time PHP developer work along with some self-study.

The additional skills a mid-level developer should probably have is stuff like dependency injection, composer, autoloading, namespaces, and some Linux hosting command line and troubleshooting skills.

How Long Does it Take To Become A Senior-Level PHP Developer

I think a senior-level PHP developer should know everything a mid-level knows. Add to that a senior developer might need to have some familiarity with things like Domain Name Service (DNS) and concepts like SPF and DMARC.

It might take a PHP developer 6 to 10 years of hands-on development along with some self-study to become a senior-level developer.

How Long Will it Take to Learn Just the Core of PHP

You can learn PHP without learning the above technologies, however, your PHP programming skills would only allow for server administration. And even that would be limited.

Learning just the core of PHP might take a few hours a day for about a week to gain a basic familiarity with PHP.

Conclusion

As you can see there is no straight forward answer to how long it will take to learn PHP. It depends on where you start and how far you want to go.

I hope this helps and I hope you enjoy your journey in learning to program in PHP.

What is a Web Application?

Image : What is a Web Application?

Web applications are widely used, however, I think most of us do not recognize them even when we are using them.

A web application runs in a web browser. It is just like a program that runs on your computer or an app that runs on your phone. The difference is a web app runs in a browser so there is nothing to install, just point your browser to the web application and you are off and running.

There are several types of web applications. The nice thing about a web application is all you need is a modern browser and the address of the app and you are off and running. 

I ‘ll explain what a web application is, what are the advantages and disadvantages, and what is required to build and run a browser-based application. I will also cover who creates a browser-based application.

More Information On Web Apps

A web application is a software package that was created to perform a task or a group of tasks for an Internet user. This is an overly simplistic and broad definition.

When I think of a web application I think of a banking website. You are able to log in and manage your banking accounts, apply for loans, etc. Another example might be purchasing tickets for a concert using a browser-based application – a website that sells tickets, such as Ticketmaster.

Types of Web Applications

  • Applications that help us do things – When I think of web applications that help me do something, the first thing that comes to mind is a mortgage calculator like the one : Online Mortgage Calculator [martasset.com/mortgage/mortgage-calculator]. Google docs is an example of a suite of applications that help us do things such as create text documents or spreadsheets.
  • Applications that aid us in doing business – Registering for college online is a web app that helps us with a business transaction. The banking example I mentioned above is another example.
  • Applications that help us run our businesses – Recently I spoke with the owner of a million-dollar business. He was using a PHP web application to run his business. The application was run from a server that was public-facing so it was accessible from inside the business and outside. Great concept.

What Goes Into Creating a Web Application

This part gets a little technical, it’s okay if you do not understand some of this. In a nutshell, an Internet programmer creates browser-based applications.

In more detail, an Internet programmer such as a PHP programmer creates web applications. He or she would use a JavaScript library such as jQuery, to create Ajax routines to make the web application interactive. Add to this some Cascading Style Sheets (CSS) to make the application mobile responsive and it will run on any device that has a modern browser. The application will also need a database and a hosting platform.

A web app can be as interactive as a computer or phone application.

Multiple Layers of Technology

  • HTML – This is the bone structure of each web page. HTML is the foundation or starting point.
  • CSS – Cascading Style Sheets is what gives your website it’s look and style. Think design – things like defining color, location, font, etc.
  • JavaScript – JavaScript gives the web app its interactivity. JavaScript runs in the web browser. Each web browser has it’s own JavaScript interpreter. Since each browser uses a slightly different interpreter, JavaScript is quirky. To resolve this issue a number of JavaScript libraries have been created.
  • Server-side programming language – There is a number of programming languages that are in use today. I am a freelance PHP developer so I use PHP. There are others such as ASP.NET (C# or Visual Basic), Java, Python, and Ruby. 
  • Data engine – MySql is very mature, is very feature-rich, and is the most widely used data engine on the Web. Microsoft has its’ data engines, however, for web work, I like to stick with MySql.
  • Linux – Is very popular and is used on desktop computers as well as on web servers. Linux is the most popular web server operating system. Microsoft has web servers also. For web work, I like to stick with Linux web servers.

For building browser-based applications I like to use Open Source products. That is HTML, CSS, JavaScript, PHP, MySql, Linux, and Apache or NGINX.

Private Intranet or Public Internet

Some browser-based applications are run on a private network that is called an Intranet. These networks are not reachable from the outside or what they call non-routable – they are private.

The Internet itself is routable. Some of these apps are hosted on the Internet which means they are accessible by everyone on the internet.

Each configuration has its pros and cons.

The Internet is a hostile place. If there is no need to make your web application accessible via the Internet, then running it on a private network would make more sense.

As businesses increasingly allow their workers to work remotely, making their application public is probably worth the risk.

I recommend you consider which configuration you need before launching your web application.

What are the Advantages

The main advantage is the browser-based application runs in a browser and therefore does not need to be installed. A phone app needs to be installed as does the software that runs on your computer.

For example, say you work for a company that has 600 employees and each has a Windows computer that they use daily. In the old days, we would build an application that would require it to be installed on every computer. Installation is difficult and time-consuming.

And this is a reoccurring process. Periodically, those desktop applications will require updates that will need to be installed on each computer as well.

In contrast to a computer or phone application, the browser-based application does not require installation. It runs in a browser that is already installed on your device. All modern devices have a browser.

To utilize the web app, all you need to do is point your browser to the web application. Simple!

What Are The Disadvantages

I cannot think of any disadvantage to building and running web apps. There are a couple of areas of concern and one is security. The developers need to be security conscious when creating the application to ensure it does not get hacked, especially if it is publicly facing.

If I were to state a disadvantage that would be building web applications requires an extensive skill set given the layers of technology that must come together when building and running a web app.

I think the benefits of utilizing a web application far outweigh the disadvantages.

What is the Difference Between a Website and Web Application?

The main difference is a web application is interactive and helps one do things. A website, on the other hand, is a collection of content.

I keep bring up your bank’s browser-based application that helps you bank online. This is a classic web application.

The website you are currently on is a website. This website is a collection of articles (content).

Conclusion

Web applications run in a browser making them available to any device that runs a modern web browser. A web server is needed to run a web app. A web programmer is the one who creates and upgrades the browser-based application. These applications can run on a private intranet or the public Internet. The advantage of a browser-based application is it does not need to be installed on every device that will be running it and there are no upgrades to be installed on your device either.

The only concern I have when it comes to web apps is security. The Internet is a hostile place.

The Gig Economy for the PHP Programmer

Image : The Gig Economy for the PHP Programmer

The gig economy is still emerging. It is really this silent phenomena that no one is aware of and is hard to track or measure. It is a shift from skilled labor being employed to being self employed. Think of this as skilled labor from film makers to accountants, to programmers and all the skills in between. Skilled labor is now becoming mostly independent – freelance workers that work on projects and independent contractors, working serial projects.

What is the Gig Economy

The gig economy is those who are self employed. The one man band. This excludes small businesses and entrepreneurs. Entrepreneurs start companies, the gig worker creates a one person business based on skills and a niche. Across all sectors of the economy, with rare exception, there are people working in a spare bedroom, on the kitchen table, or in the basement, these are gig workers or freelancers.

These independent freelancers are not part of a company – they work independently. This is the gig economy. These are skilled people who are working serial projects in their chosen niche as a way of earning a living.

According to the Bureau of Labor Statistics, [https://www.bls.gov/opub/mlr/2015/article/freelancers-in-the-us-workforce-1.htm] 1 in 3 workers were working independently in 2015. Other sources are estimating that by 2027 the gig economy will grow to a point where there will be more gig workers than employees.

What Do You Need to Become a Gig Worker

This is pretty simple, so simple you might think something is missing.

Laptop – A PHP Programmer can get by with a minimal laptop. Most of the time a PHP Programmer is creating programs in a text editor. The computer is waiting on them most of the time. A baseline Dell laptop that cost around $300.00 will do the trick.

If you can afford more here is what I recommend : I recommend a 15.6 inch screen with resolution of 1920 x 1080 or greater with the ability to drive 2 or more external monitors, 4G or more of RAM, a modern i5 or better, and an SSD drive. The SSD drive is worth the expense if you can afford it because it will enhance your computing experience and increase your productivity.

And do not forget to add a backup drive.

Printer / Scanner – At a minimum you will need to scan documents and turn them into a PDF.

Internet Connection – Self explanatory since you will be working on the Internet.

Hosting Account – This gives you the ability to build, test, and run your PHP programs. I recommend a simple VPS running Plesk.

Website – You need to be able to show prospective clients that you are in business. To start with you can put up a simple WordPress brochure site. Then you can start blogging.

Skills – Believe it or not you can start with some very simple skills. PHP, CSS, HTML, and some JavaScript / Ajax. Then as you progress build out your skills.

Passion – If you want to become a freelance PHP Developer you need passion. You need to be a self starter and you have to be a go getter.

Finding Your Niche

Being self-employees means you cannot be all things to all people. You must find your niche. The place to start is with the following 3 areas.

Inherent Skills and Abilities – What where you born to do? What comes natural to you and fits you like a glove?

Passion – What are you deeply passionate about? Are you passionate about building web apps, working on WordPress, Magento, WooCommerce? Do you get excited about Linux Apache MySql PHP CSS JavaScript / Ajax?

Experience – What experience do you have? This does not necessarily apply to employment. What have you done on your own? For example, building WordPress plugins on your own can be just as beneficial as working as an employee doing the same thing. Being a self starter and showing some passion might trump working for a company doing the same thing. I like to see passion and self starters.

Marketing Plan

To me there is three ways to market my skills as a freelance PHP Programmer.

Networking – Attend Meetups and get a membership in your local Chamber of Commerce. I’ve known two people that were very effective using the Chamber of Commerce for getting business.

Advertising – My least favorite. Google Adwords is probably the main form of advertising on the web. It is very expensive and requires building specific skills for Google Adword marketing.

Organic Search Results – Search Engine Optimization. This is the long game. It might take months or years to get to a point where your website is generating a lot of business leads. This is my favorite since, in the past, I have had some success with this form of advertising.

Difference Between Gig Work and Being an Employee

There is a huge difference between an employee and a freelancer. A freelancer does all the things that pertain to their business. This includes marketing, sales, bookkeeping, and working their projects.

My marketing professor at the university taught that 35% of everything is marketing. That means money and time. You can expect to expand some time every week doing marketing. This needs to be a regular part of you business.

As a Freelance PHP Programmer you may spend 4 or 5 hours a week on sales, which consists of:

  • Talking with prospects
  • Analyzing projects
  • Estimating what it will take to complete the project
  • Preparing a contract or a statement of work
  • Presenting that statement of work
  • Getting it signed
  • And collecting your first payment for that project

You will be your own Network Administrator. You are solely responsible for making sure your Internet connection is always working. This includes configuring your Internet equipment. I recommend a business class Internet connection. It may cost you as little as $20 a month, however it will come with business response versus residential support which is not as responsive. In my case I am able to run a server, I have a dedicated IP, and the response time is minutes versus residential which could be hours to days. And because I am working out of my home, I get business class service at a discount. I literally pay less than $20 more a month for business class Internet service.

If, like me, you home office, your work environment is always right there so there is not real break from business to home. You will have to make an effort to separate the two. That breaks both ways. Overworking or being distracted.

Medical Insurance is an issue if self employed. You will pay the full premium yourself. You are both the employer and employee.

You will more than likely need the services of a Certified Public Accountant.

Serial projects and at times no projects. Can be feast or famine. If one does not have enough projects in the queue one might need to take on projects they would rather not.

When there is enough work the money is good. When projects are scarce the money can be lacking.

Freelancers must be about there work and be diligent to ensure their reputation is kept clean. One’s reputation in the market place could make the difference between earning an above average income and literally starving.

Keeping Your Skills Sharp and Up to Date

You will need to keep your skills sharp and up to date with the changes in your industry. You will not have anyone to help you in this area. Set aside some time on a regular basis to work on skill building. This is not limited to programming skills, there are other skills to master such as time management and marketing.

No Submarine Mode

This is a big one. Staying connected is hard when you home office. I’ve not gone into submarine mode where I cut myself off from the entire world, however I tend to be reclusive. What is the solution? Join a few meetups. Join your local PHP group and at least one other group such as the group that’s in your niche.

What Should You Charge?

Over the years I’ve watched the market and how projects are priced. I have little experience with craig’s list, however it looks like a place where projects might be set at $35 to $50 an hour. I’m not discounting these, especially if you are just starting out. If you are just starting out this might be a place to get some real life experience in all the aspects of being self-employed.

In general :

  • The top end for Drupal is probably around $180/hr with $125 to $150 an hour being reasonable for a seasoned Drupal developer
  • I would expect WordPress and WooCommerce to be around $125 an hour for a seasoned developer
  • Web Apps should start around $125 an hour to about $175 an hour.
  • Developing using a framework is around $125 to $180 an hour.

Keep in mind these are ballpark and the actual value of a project depends on may factors.

How can a PHP Programmer Benefit From the Gig Economy?

There are pluses and minuses to being self employed. There are lots of hats to wear and lots of shifting gears. If you are good at this or can grow into it, you can build the opportunities you want. You can specialize in something you are passionate about. Once you find your niche and figure out the marketing part, you are golden.

You do not need to work full-time. Being a freelance developer opens the door for maximizing your income while minimizing the amount of time you work. You could very well create a lifestyle business. And location is not an issue. I know of a person who takes her laptop and phone with her on vacation to Hawaii every year. She takes one week off and works the second week while still enjoying Hawaii.

Personally I like the freedom that being a freelancer provides. Don’t get me wrong, I still work hard and long, however I do have the freedom to organize my time and efforts. I also get to pick and choose what projects I take on. In the end I would rather deal with all the hats and gears than work out of a cube. It just works for me and it may just work for you.

Conclusion

The gig economy is good and bad. In the old days, one would go to work at a company and do one thing. In this case we are talking about PHP Programmers. They would have all the resources provided so they could focus on one thing – being a PHP Programmer.

The idea of getting a job has shifted. It is not all that noticeable. If I were not an Independent Freelance PHP Programmer, I would probably be unaware of this phenomena. This movement is really under the radar.

If you are an employee your employer takes all the risk, and they provide for all your needs – you do one thing. As a freelancer you are the one responsible for everything.

If freelancing is for you it can be very rewarding.

How to Backup Your Website to AWS S3 Using The SDK

Image : How to Backup Your Website to AWS S3 Using The SDK

In this article I show you how to create an Amazon Web Services (AWS) Simple Storage Service (S3) script using the AWS PHP software developer’s kit (SDK). You can create a backup script based on this script to backup and protect your website.

70% of small businesses that have a major data loss go out of business within 6 months. That is why it is so important to learn how to use AWS S3 as a backup tool.

After learning the basics you will be able to extend this script and make a website backup script. You will want, at a bare minimum to backup the content and data of your website. I recommend daily backups that are automated with the Linux cron utility. I will leave extending the script to you.

I used the AWS SDK version 3 for PHP. I created this script on a Linux server running Ubuntu 16.04lts with PHP 7.0.x. installed.

I assume you have command line access to your hosting account.

Steps

  1. Sign up for an AWS Account.
  2. Create Your AWS S3 Credentials
  3. Create a Bucket in S3
  4. Download the PHP SDK With wget
  5. Create a File Named “stuff.txt”
  6. Copy My Script to Your Server
  7. Change The Following Values to Your Information.
    1. $version
    2. $region
    3. $bucket
    4. $credential_key
    5. $credential_secret
    6. $path
    7. $file
  8. Run the Script From The Command Line
  9. Verify the File Named “stuff.txt” is Stored in Your Bucket
  10. Enhance My Script to Meet Your Needs

Sign up for an AWS Account

To create an account, go to the S3 service page.

Then click the “Get started with Amazon S3” button.

Create your account.

Create Your AWS S3 Credentials

  • Go to the AWS Management Console.
  • In the upper right corner click your name.
  • Select “My Security Credentials”.
  • Click “Access keys (access key ID and secret access key)”.
  • Click “Create New Access Key”.
  • Take note of your two keys, AWS access key id and AWS secret access key

Create a Bucket in S3

Download the PHP SDK With the Linux wget Utility and Unzip

To make it easy, lets download the zip file using the Linux wget utility.

This is how I “get” files with wget:

  1. Change to the directory where you want to to download the file.
  2. Visit the page that contains the download link for the SDK in zip format. In this case the page is here
  3. Search this page’s source for the string “download the .zip file”. Then grab the link “https://docs.aws.amazon.com/aws-sdk-php/v3/download/aws.zip”
  4. Simply add “wget” to the download URL like this : wget https://docs.aws.amazon.com/aws-sdk-php/v3/download/aws.zip . Use this on the command line and the file will be downloaded to the directory you are working in.
  5. In the working directory you should find a file named “aws.zip”. Unzip it with the Linux command “unzip aws.zip”

Create a File Named “stuff.txt”

This is self explanatory. Simply create a file names “stuff.txt” in your working directory. You can add some text to the file if you like. This is a test file that will be uploaded to your S3 bucket if successful.

Copy My Script to Your Server

See my script below.

Change The Following Values to Your Information

$version – You can leave it as set. It is set to “latest”.

$region – This information can be found in S3. It is the region of your bucket. Complete list of regions.

$bucket – This is the name of the bucket you created.

$credential_key – This is the credential key you created earlier.

$credential_secret – This is the credential secret you created earlier.

$path – The complete path from the root of the server to include the directory where your backup file located (stuff.txt).

$file – This is the name of the file you created.

Hard Coding Your Credential into the Script

Hard coding your AWS credentials is not the preferred method and is not secure. Ways to secure your credentials 

Run the Script From The Command Line

My file is named basicS3Backup.php. To run it from the Linux command line enter the command “php basicS3Backup.php” and press enter.

Verify the File Named “stuff.txt” is Stored in Your Bucket

After running the script you should see a file in your bucket. If you named your file “stuff.txt”, you will see that file in your bucket.

Enhance My Script to Meet Your Needs

As you can see this is just a basic script that uploads a simple file. To extend this into a website backup script you may want to add the following features:

  • Tar and compress your website’s content
  • Tar and compress your website’s data
  • Name each file using the date, something like YYYY_MM_DD_content and YYYY_MM_DD_data
  • Remove from S3 any files that are older than you want to keep.
  • Send an email to the backup administrator with the status of the backup once the script completes.

You may want other features, these are just some of the features I like.

The AWS S3 PHP Code


#!/usr/bin/php -q
<?php

/*--------------------------------------------------------------------*/
/*   Created by Keith Smith  :  PHPCoderUSA.com                       */
/*   Copyright Keith Smith December 12th 2018                         */
/*                                                                    */
/*   This is a simple AWS S3 file upload script.                      */
/*                                                                    */
/*   Directions can be found at  :                                    */
/*   https://www.phpcoderusa.com/how-to-php-aws-sdk-s3-upload-script  */
/*                                                                    */
/*   You are free to use this script or modify it to your liking.     */
/*   By using this script you acknowledge you will hold               */
/*   Keith Smith Internet Marketing LLC harmless for any ill effects  */
/*   from uing this script.  Also you acknowledge this script is not  */
/*   secure and requires additional work to make it viable for        */
/*   any purpose.                                                     */
/*                                                                    */
/*--------------------------------------------------------------------*/

/* --------------------------------------------  */
/* - - -   Start Configuration Section    - - -  */
/* --------------------------------------------  */

$version                = 'latest';         // Probably set to "latest"
$region                 = '<your-region>';  // See  :  https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html
$bucket                 = '<bucket-name>';  // Name of the bucket

$credential_key         = '<credential-key>';
$credential_secret      = '<credential-secret>';

$path                   = '<path-from-root>';   // Full server path
$file                   = 'stuff.txt';

/* -------------------------------------------- */
/* - - - - -   End of Config Section  - - - - - */
/* -------------------------------------------- */

require 'aws-autoloader.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;

// Hard-coded credentials
try{
$s3Client = new S3Client([
'version'     => "$version",
'region'      => "$region",
'credentials' => [
'key'    => "$credential_key",
'secret' => "$credential_secret",
],
]);
} catch (S3Exception $e) {
echo $e->getMessage();

}

/*------------------------------*/
/* function upload_file         */
/*------------------------------*/

function upload_file($bucket,$path,$file){
global $s3Client;
$path_filename = $path.$file;
try{
$result = $s3Client->putObject([
'Bucket'     => $bucket,
'Key'        => $file,
'SourceFile' => $path_filename,
]);
} catch (S3Exception $e) {
echo $e->getMessage() . "\n";
}
}

/*------------------------------*/
/* upload file to S3            */
/*------------------------------*/

upload_file($bucket,$path,$file);

/*------------------------------*/
/*          E O F               */
/*------------------------------*/

Conclusion

We know backing up data is important and AWS S3 is one solution to consider. The script I provide is just an example used for learning and is not secure. I offer several features you may want to add to make this script a viable backup script.

You are free to use and modify this script for your use. If you use this script please keep in mind that by using this script you acknowledge you will hold Keith Smith Internet Marketing LLC harmless for any ill effects from using this script. Also you acknowledge this script is not secure and requires additional work to make it viable for any purpose.

Why You Should Backup Your Website

Image : Why You Should Backup Your Website

If you are a website owner and value your website or blog, backing up your website content and data is important. 70% of small businesses fail after a data loss. All the more reason to backup your data. I use Amazon Web Services S3 for storage of my website data. S3 stands for Amazon Simple Storage Service.

Why You Should Backup Your Website

Think about this if you will. You have a website. Your website contains 40 pages of content. Lets say writing, proofing, editing, and posting takes 4 hours per article. That is 160 hours or one man month. That is just the amount of time you spent creating content. You probably spent a lot of time on the design and layout as well. Losing your website could be very costly and might even be the catalyst for you going out of business.

10 Reasons You Should Backup Your Data

  1. Human Error – I was working a website project when another developer completely deleted the web application from the production machine. It took years to develop that application so recreating it was not an option. We had a copy on another server, however that was a test and development environment. It would have taken months to update the development copy. Several years earlier I had configured a script that ran daily to backup all the data and files on the server. Because I had been backing up the production server, I was able to upload the latest copy of the web application and it’s associated data within a couple hours.
  2. Viruses & Malware – A friend of mine that owns a data center tells me his biggest concern is someone opening an email that contains a virus. Interesting insight. He says all other possible points of hacking are secure.
  3. Hard Drive Damage – Damage to hard drives can caused by a number of factors, such as a computer fan failure that allows the computer to overheat or power surges, to name just a few. Hard drives often crash leaving the data on the drive unattainable.
  4. Power Outages – This can be a real problem for hard drives and all the components within the computer. An unexpected power outage can create power surges that are deadly to computer components and may cause damage to the hard drive and / or corrupted data.
  5. Computer Theft – This happened. Think employee or a burglar.
  6. Liquid Damage – Soda, water, fire sprinklers, floods, etc.
  7. Disasters – Hot weather causing strain on the electrical grid that could cause a brown out that could kill computer equipment. Fires that burn electrical lines, etc.
  8. Software Corruption – Software that gets corrupted which can cause data to become corrupted. Power outages, brownouts, and improper shutdown are among the causes of software corruption.
  9. Hard Drive Formatting – Accidentally formation a drive that contained business data can be the source of data loss.
  10. Hackers – Security breaches by hackers is almost a daily news staple. While most of the data breaches we hear of are someone stealing data while leaving the hacked data intact. Hackers can be destructive.

Data loss can happen for may other reasons as well.

70% of Small Companies Fail After Major Data Loss

With a 70% failure rate of those small businesses that lost data, one would think making regular backups would be important. Data is important to the survival of the small business. I recommend you backup your website daily.

I Recommend AWS S3 Backups

I’ve been backing up to Amazon S3 for maybe a decade. I’ve used those backups several times. And the best part is the price. I personally spend less than a dollar a month to backup to Amazon S3. Cheap insurance.

Conclusion

It takes time and effort to build a website. It takes just a moment to cause it to disappear. I listed 10 causes of data loss and there are more. I shared that backing up to AWS S3 is what I prefer. And I shared that the price is right. You might spend much less than a dollar a month to backup a small website on a daily basis. If you are not backing up your website daily, I would recommend making that a priority.