Creating Web Apps: The Skills, Technologies, and Trends a Developer Must Know

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.

Creating Web Apps: The Skills, Technologies, and Trends a Developer Must Know

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.

PHP
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.

Structure
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.

Database Design
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:

Smart Use of AJAX

AJAX has been around for a while but it’s recently being used far more not only because it’s a cool feature and a great trend, but also because it has a lot of practical purpose behind it. AJAX allows Javascript to interact with the server with the help of a server-side scripting language. It loads a server-side script from inside Javascript and waits for a response, updating the page or working with a database without having to refresh.

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.

Web Services

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.

Alsa Creations
Responsive Design

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.

Matt Dempsey
UI Design

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.

Version Control

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.

Git
Git

Conclusion

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.

Kayla Knight is a web designer and frontend web developer. She specializes in responsive web design, progressive web technologies, and also knows her way around most CMS's and PHP. You can find out more and check out her portfolio at kaylaknight.co.

Comments

  1. / Reply

    Essential explanation for beginners.

  2. / Reply

    Right on! Another set of skills developers should have, whether he/she is a freelance or work for a company is the ability to communicate with customers effectively. This means being able to connect with them at the level of technical understanding and in the language they understand. In addition, project management which includes the ability to estimate schedules and requirements gathering are critical skills. As a freelancer in the past, I made the mistake of severely underestimating the time and effort required and I ended up working on a project very underpaid.

  3. / Reply

    i think you write an creative article with brief of web apps specially for intermediate level.

    • Sam,
    • November 21, 2011
    / Reply

    To anyone reading, don’t learn ASP, I think the writer means ASP.NET which is entirely different to ASP which is all. It abandoned. ASP.NET is comprised of several different programming languages which you can use. Look up
    ‘Classic ASP’ to see a comparison on what’s different.

    • Dan,
    • November 23, 2011
    / Reply

    I can go beyond HTML for creating interactive websites but I don’t have all of the skills listed in this blog such as version control.

    if anyone knows of any free online books or free courses online for creating web apps I’d like to hear about it.

    • Glenn,
    • November 24, 2011
    / Reply

    Great article Kayla — nice coverage of the “territory” !

  4. / Reply

    I think very rare today if a web developer writing ajax from scratch, use the javascript framework instead, btw, nice write up

    • Skinnyuser,
    • November 29, 2011
    / Reply

    You can also develop (or rather design) a web app by going to one of those online app building services. If you want to develop (design) a web app for all device families running iOS (i.e. iPhone/iPod touch, iPad) you should consider Seattle Clouds. They have one of the best content editing systems and is absolutely hassle-free.

    http://seattleclouds.com

  5. / Reply

    ~~~ will

  6. I like your post and that’s more useful Information for developers to build the website, Thanks for share this valuable post.

    • vlad,
    • September 12, 2012
    / Reply

    I am not a programmer but can create web applications in minutes using Snappii web service. Such apps are easy to update and besides I don’t have to join Apple or Google Developer Programs (that saves me money) and this way I avoid app review process which saves my time. I advice all to try it.

  7. / Reply

    Very nice and informative article.

Leave a Reply

Your email address will not be published. Required fields are marked *

Deals