Creating Web Apps: The Skills, Technologies, and Trends a Developer Must Know
There is a web application for nearly every purpose these days, and there's never been a better time to be a web developer. There are several different types of niches in the web development industry, including everything from mobile design, to mobile apps, front-end development, and developers for particular platforms like osCommerce or WordPress.
However, one of the fastest growing niches for web developers are those that appreciate doing more back-end work, and love to create entire website applications. Many clients can build their website off of existing platforms, while for others their idea may be more beneficial to do so from scratch. This is where these types of web developers come in.
In this article, we're going to look into some of the technologies and needed skill sets that web developers must know for creating web applications, whether a web application is for a client or for their own personal project.
Some Type of Server-Side Scripting Languages
Obviously what separates front-end developers from those who make full web apps is a knowledge of a server-side scripting language. A server-side language is any language that runs on a server, and therefore has more programming capabilities and can access and work with a database. Examples include PHP, Perl, Ruby, ColdFusion, Java, or ASP. Among the most popular and efficient languages for web apps in particular are PHP, Ruby, and ASP, where ASP is primarily used by agencies or larger companies. For the individual web apper, PHP or Ruby is probably the best option, and best of all, they're both open source. See Sitepoint's Which Server-Side Language Is Right For You? for a better reference.
Image credit: laughingsquid
Many new web developers make the mistake of trying to learn several languages, which really isn't necessary. In the beginning, it's great to try out a few to see which you would prefer, but beyond that learning several languages can just be a waste of time. Choose one, stick to it, and focus on learning more about it. Learn the best practices, syntax, collect snippets and scripts, and try out a popular framework. (For example, CakePHP for PHP, Ruby on Rails for Ruby, or ASP.NET for ASP.)
Object Oriented Programming and Coding Archicture
Knowing basic syntax is one thing after you choose a server-side language to work with, but the real talent in being a programmer comes from whether you code the right way or not. Always use object-oriented practices for any language as it's the best way to re-use code and keep files and code in order. There are endless resources online and elsewhere for explaining the logic behind OOP, and endless tutorials for each particular language. It's not too difficult of a topic but may be confusing to some at first. The best way to understand and learn OOP is to read through tutorials and get in a lot of practice.
Image credit: ppix
Also, learn about programming architecture so that your code can maintain consistency and efficiency. An example of coding architecture, and the most common and supported is the MVC architecture (Model-View-Controller). Knowing how to organize code so that it's easy to update, runs efficiently, and is in logical order is essential for all coding, but especially for web apps which will be larger.
A Knowledge of Database Design
A database is needed for nearly every type of web application, and if you're going to use a database, be sure you know how to structure it well. Like with learning a new programming language or coding methodologies, using good database design also takes practice. Many new developers may think that database design can vary fully for each type of application, but there are several sets of rules, concepts, and best practices for database design, just as there are for the programming language and web app architecture itself.
Image credit: keepingitfake
Look up resources for relational database design and begin to understand the core concepts that drive a great database structure. With a poorly designed database, not only can you have a harder time keeping your code straight in relation to it, but as the information begins to populate you can begin to see errors and a slow web app.
Below are a few resources to get started:
- The Basics of Good Database Design in Web Development
- Ten Common Database Design Mistakes
- Relational Database Design
Smart Use of AJAX
If you've ever been able to login, register, update a profile, load some information from a database, or whatever else and not seen a page reload, it's probably been AJAX. AJAX saves on server resources, and has a huge benefit to mobile websites, but also creates a much better user experience. You can utilize AJAX for a number of reasons that create huge benefits, especially in larger web applications.
Below are a few resources for learning AJAX and some specific tutorials:
Integration with Third Party Services
Almost every web app these days has some sort of integration with Facebook, Twitter, Google, PayPal, Amazon or whatever other service. It may let you sign in via a popular social network, connect your data from another service to the web app to use, or let you do some sort of other action more easily so you don't have to set up separate information entirely.
Besides some of the most popular mentioned above, there is an API for just about every web service out there. Many of them may have slightly different syntax and uses, but overall they use similar practices. A developer should know how to use API's in a general sense and the concept of SOAP, which is a generally universal method for working with web services. A great starter guide and tutorial is here: Understanding Web Services Specifications.
Responsive or Mobile Development
Having a web app be versatile in terms of which device you're viewing it on is more important than ever these days. Every app should have a mobile version, tablet version, and be able to easily accommodate many screen sizes. This is especially true if it's a paid web app. It all comes down to accessibility and pleasing your users. If you create a difficult experience for them on a mobile device, it can really hurt the web app's brand.
Know how to create a mobile experience for your web app, or hire someone if need be.
The Basics of Good Business, UI Design, and Strategy
If making your own apps, you need to know beyond how to create the application, but how to implement it well. Having a good grasp of business strategy, how to design and layout a web app, and how to market a web app all comes with coding one. With such an over-saturated market, having this this know-how is not an additional advantage, but a necessity. It won't matter if you make the fastest, most efficient, best coded app on the market; if it's a bad idea or poorly executed from a design and business standpoint, it won't succeed.
To an extent this is also true for building web apps for clients. A client may have an idea, but even as developers it can be our responsibility to give our professional input on the creation of web apps. Whether the client hires a professional interface designer, has a solid business plan, and is a marketer themselves or not, having a bit of education in this area can help you combine the knowledge with your development skills as well for the best possible result for the project.
While not necessary for all applications, if creating web apps for public use, every developer should be aware of a great versioning system. This is also essential if you'll be working with others on a web application as it helps keep track of updates and fixes. There are plenty of quality open-source version control systems available, such as Git, SVN, and CVS, including many free tools for versioning your web apps. For a great starter guide, check out Smashing Magazine's 7 Version Control Systems Reviewed.
With new web applications popping up every day, and with every one having a great idea for their own app, joining the niche in the web development industry as a web app developer is a smart choice. It's also a very challenging yet rewarding niche in web development, which is likely why so many developers choose to go that route.
While there are many technologies to learn and best practices to be had, the majority of resources are available free, and anyone can learn how to create web apps when dedicated to doing so.