As a web developer I have run into many frustrating problems and usually I find a way to fix the problems myself. In this process I also commonly find many tools and tricks that help me get the job done quicker and easier. Sometimes I find tools that work great when I start using them, but then find something much better later on. So I want to dedicate this page to helping other web developers find great tools, articles, tutorials, and references to use. I hope that in the process of maintaining this site I will also learn a lot. I have ideas on where to expand this area. But for now I will keep it simple with some commentary, a few links, and the occasional article that I will write.
Being a developer I actually do some freelance work (gotta pay the bills). The ironic problem is that my business website has suffered because I am too busy working on sites for other people, including 2 e-commerce websites (one of which is for my father’s small business). Hopefully I will have my own business site completed in the next few weeks (I also plan some drastic changes from my original plan). Once I have it done I will talk about it on this site. In the mean time, if you like what you see here, or are interested in hiring me to do some freelance work for you, please email me at firstname.lastname@example.org or at email@example.com.
The Subject of Web Development
As a web developer I find I work most efficiently when I use good tools. If you are just starting as a web developer you have a lot of choices to make like which programming language to choose, when is it better to build an app or feature than to use another programmer’s app or code, what is a framework and how can it help me, what is AJAX, etc? Luckily for you I already have experience with answering these questions. Below I will go over each question and do my best to instill useful knowledge into you. If any of these points are confusing don’t hesitate to email me about it. I enjoy helping others.
Which programming language do I choose?
This question is interesting in that to some extent it doesn’t matter which language you choose because they are all at least decent for web development. However, some languages are better suited for certain needs than others. For example, if you want to work with databases and just need a language that is good for quick development of database center applications then PHP is the way to go. There are some that would recommend Ruby On Rails, which is the Ruby language using an MVC framework called Rails (I will discuss frameworks later). If you want something that is designed to work well with your Microsoft Windows servers and Visual Studio (if you are so inclined) then ASP using either C# or VB using the .NET framework is the way to go. If you have a need for complex applications that can interface with a users computer hardware then Java is probably the solution for you.
Each of these languages has their benefits and drawbacks. For example, in order for Ruby on Rails to run quickly you must have a server that is specially configured for RoR efficiency including using a semi-proprietary web server system (other than Apache or IIS). If not your application will be annoyingly slow. In the case of ASP, though you can run it on Apache servers it doesn’t run anywhere near as well as it does on a Windows server running IIS. So your technically locked into using Windows servers which can be costly. Java is an interesting option in that you can write web and desktop applications for it as well as apps for most mobile devices. The drawbacks of it are learning curve and development speed.
Finally, looking at PHP, we have a language that is quick to use as well as simple. It doesn’t require compiling like Java does. It doesn’t require a special server to run it on nor special software or configurations. It will work with Apache or IIS. It works very well with databases (which is originally why it was created) and has great, easy to find online documentation. Many applications have been written in it and are freely available on the internet.
You will have to determine your needs carefully if you are learning a language to use at or with a particular set of systems. For example, if your companies web apps are already written in ASP then it would probably be best to stick with that. If you need to interface with a device attached to the users computer then Java will probably be the best way to go.
Personally I am biased towards PHP for a number of reasons. The language is completely open and open source. Many freely available, open source apps are written in it. It has a small learning curve. If you come from C++ or C then you will know how to use it almost immediately. It requires not recompilation of application scripts. Documentation is extremely easy to find for it and this is key. Just this last week I had to teach myself classic ASP written in VB at work because I had to fix old code. I spent hours searching all over the net for information on how to implement simple error catching. I looked all over Microsoft’s website and found less information there than on other parts of the internet. They expect you to buy books on it. I had to enlist the help of another programmer to answer the question I had. If I were to search for the same thing in PHP it would take me less than 10 minutes to find the answer on PHP.net (the official site of PHP) and the answer would be clear and concise and even PHP version specific. PHP also works with any db you can think of, plus a few you have probably never heard of.
If you are looking for a language that you can learn quickly and easily and will work with just about any web host I would recommend choosing PHP.
When is it better to build an app or feature than to use another programmer’s app or code?
This is surprisingly an easy question to answer. If you have a need that many others have probably had to solve before then chances are a great, free app is available for you to use. Check around, if you need to make a blog with feature X then chances are WordPress will suite work great and that extra feature can probably be downloaded as a plugin. Here is another thing to consider. Using a pre-built app that covers most of what you want and then build your own addon for it that gives it the extra functionality that you are looking for. This can save you a lot of time and frustration. If you have a very specialized need or a need that would have never had a wide audience to address it such as truck pricing and tracking applications then you will probably have to build it.
What is a framework and how can it help me?
Frameworks are applications and application design patterns that help you efficiently and easily create applications. The most commonly used type of framework is called MVC. That stands for Model – View – Controller and is intended to divide an application into three parts. The database interface and calls, the HTML displayed to the user, and the application logic code. This allows for better organization of code which means it is easier to maintain and easier to develop. You know where to expect to find certain aspects of your application. In the case of PHP there are multiple options available already, but the biggest two are CodeIgniter and CakePHP.
What is AJAX?