Before diving in, it is necessary that you check your equipments. An unequipped jump could simply agonize you at any point. Here is a technically drafted pattern of the skill set you will require to become a successful PHP freelancer.
This article is part of a series where I write on excelling as a freelancer based on my years of freelance experience. Earlier I wrote on top 10 skills to be a successful freelancer and that article is about the generic skills. This article is focussed on technology aspects.
If you are just planning to become a freelancer, read my introductory article on how to become a full time freelancer.
Somewhere a user types a web address in a browser and waits. On receiving the request, the server dutifully sends back the requested web page for the user to view. This process which sounds simple, postulates a great deal of technical traits.
A bunch of technologies work together on the server to make this happen. This bunch is fondly called the stack. LAMP is the common stack provided by the regular hosting providers.
Linux, the operating system, Apache, the web server, MySQL, the database, and PHP, the server side programming language. Substitutes like Python or Ruby instead of PHP, Engine X instead of Apache, or MariaDB instead of MySQL are also used.
When you buy a server space for a site, it usually runs a version of the LAMP stack. The operating system is usually one of the Linux distributions.
As a PHP freelancer, I often end up suggesting the stack and even hosting provider. Your client will count on you for these suggestions and your knowledge in these areas is quite important.
Many developers are not even aware of the PHP version they use for development. What version you use, compatible versions, plan for upgrade and similarly version details of the vendor components used all these forms the based of development.
A good PHP developer is proficient in scripting part and that is the minimum requirement for a PHP freelancer. But, what is assumed?
When a client hires a PHP freelancer, he implicitly assumes that the developer is well versed in UI/UX. A civilian client may not understand the difference between HTML and PHP. He will not worry whether you used a recursion or a for-loop. He starts the evaluation from the UI.
You need to master HTML(5), CSS and most importantly the queen JavaScript. JavaScript, every modern browser has JavaScript engine built in and it lets you do all kinds of changes, to make the web page more interactive.
Your PHP gets better only with the way you present it to the user. JavaScript is the best companion for that. Coding using JavaScript is difficult, so people use JavaScript libraries, like jQuery.
The JavaScript world is changing fast due to two reasons. CSS3 and HTML5 are starting to do a lot of the ‘look and feel’ things JavaScript usually does. And two, there are new JavaScript frameworks and platforms, like Backbone and Node.js that are taking the language to the next level.
I would say give the current situation jQuery is a must. But if you can master a JS library that is equal to jQuery or anything better than that would be great. But you must have the knowledge of a JS library.
Once you master the PHP grammar, picking up frameworks is not a big deal. When a project is so huge, it would be better to choose a stable and popular framework and build on it. You will get the advantage of security, logging, authentication, authorization, mailing support and lot more mundane tasks done at a platform level will be already available.
But, when you go for a framework it will be managing a beast. Ensure that your project really needs it. If your client is very specific on budget, the size of project is too small then do not over complicate it by introducing a framework.
Just get it done with plain core PHP. Having said that, my take on the top PHP framework below. As a PHP freelancer, the more the framework knowledge you have, it will enable you to get more work.
As a PHP freelancer, you will be building web applications and APIs. Any web application you build should have SEO built into it. SEO is in market for decades. When you build the application, if you build it in such a way that the SEO concepts are embedded in the blueprint, then it will save $ for the client in future.
The search engine optimization need not be done as a separate project. So, you should be aware of the fundamentals of SEO. Start with the neat URLs and .htaccess.
Responsive design is the default now. You cannot say that your application will work on X browser and on 1650 x 800 resolution only. No! Build the application in such a way that it always supports mobile, tablet, laptop and desktop all version and all sizes.
Start with media queries and learn the principles of responsive design. Your PHP web application will not be complete without responsive design and you will never be accepted as a PHP freelancer.
In this Internet era with varied devices, everything is provided as a service. Enterprise mobile devices depends on a backend server to which it communicates via an API. Most of the cases, it will be a RESTful API. As a PHP freelancer, it has come handy in many a times for me. Android developers, use a PHP server to maintain state across sessions.
You as a PHP freelancer may be required to work on a project that exposes an API. On the other hand, you may also sometime require to consume an API. You need to know XML and JSON processing. RESTful principles are a must to build a REST API.
Most of my clients even name it. They may not be knowing what it is. But, clients ask will you build the application using MVC architecture. It is so popular and PHP freelancer cannot survive without knowing it.
There are different styles of implementing MVC architecture and as a freelancer you should be aware of it as you may work on other developers code too. I am not going to teach what MVC architecture is and it requires separate detailed article.
I am 100% sure, your skill set will not be complete as a PHP freelancer without including the MVC architecture in the list.
As a PHP freelancer, you will often get a request to create a plugin or theme for a popular content management system and most often it could be WordPress. It will be an added advantage if you have good knowledge in a CMS, the more the better.
Every new CMS you learn will bring you opportunity.
Crafting isn’t enough to make your swim pleasant and profitable. The crafted product has to be presented to the client in a pleasing manner only then you shall move on.
The most essential soft skills that you are expected to possess our awareness and determination.
Think of the world into which you were born and simply compare it with the world which you live in now. The change is just beyond comprehension.
Such is the pace of technology and its growth. In this field of web development PHP freelancers can’t sit back, on the other hand we need to stay aware and up-to-date. Even a days old tool could outdate us if we aren’t aware of everything that’s coming up.
Awareness is not just staying technically fit, it’s about your ability to make value assessments. You need to make yourself aware of your client, his business, his competitors and so on before starting only then your understanding would match your client’s expectations.
Client satisfaction is the index using which you can reverse measure your skill level. Read my last article of freelancer’s 5 point guide to excellent client satisfaction.
Then comes determination. As a freelancer you are expected to work remotely with strangers. Concretising a stranger’s abstract wishes is like going through the mill. You might get hit or a pat when least expected but you ought to stay determined and face everything optimistically.
No client is your friend until you make them feel so and no client is your enemy when you give them you could give them what they ask. You can’t expect a client to encourage you as a freelancer when thing go wrong.
You need to stay balanced and tackle every situation that comes on your way. Awareness and determination when combined with your technical skills shall definitely seek you success. Go ahead and rock.