Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

General Discussion

Building first web app, where to start.

I have some experience building websites, so I decided to build a web application since I have never done this before. My question is the process of getting started, I know I obviously need a front end a, and database, and a language to handle the back end processing. Are there any good resources or advice on making the decisions or even knowing where to start when it comes to building an web app compared to a website.

Simon Coates
Simon Coates
28,692 Points

I think people may be lost by your web site vs web application terminology. If this is just a term for website (?) there are the frontend and web design tracks, and a number of tracks that cover server side programming (PHP, python, ruby) and may include some database integration (i think this is true for php, python). The tracks may or may not include courses on databases as a discrete topic.

1 Answer

Heath Morris
Heath Morris
2,858 Points

TL;DR - PHP and MySQL. Or not, but whatever you choose, choose it quickly and dive in. The choice is largely inconsequential at this point in your learning.

I'm still a novice so take this all with a bag of salt, and I'm heavily projecting from personal experience here, so apologies if it doesn't apply to you:

If you are anything like me, then you sometimes suffer from choice paralysis. "What is the absolute best back-end/front-end language for my app? What is the best editor to use, what is the best DB to use, what is the best html/css preprocessor to use? I can't start until I know I've done serious research into it and know I'm on the best possible path, otherwise I might be wasting my time". And so on.

The most important thing, especially early in the learning process, is getting your hands dirty and just picking something and diving in, racking up coding hours and feeling what it is like to personally build something. If you let the perfectionist take the driver's seat, you are wasting time that could be spent learning what it is like to build software, and break/fix/improve software.

Also, thousands of very smart and articulate people are out there right now, waiting to tell you why their language of choice is the best, and they are all right in their own area and for their own paradigms and purposes, but almost none of that matters for your first web app, and probably your second and third as well. And until you get past those apps, you probably aren't personally experienced enough to recognize why certain languages and technologies are better, because you won't understand what problems they were designed to fix.

That is my pitch for diving in head first with PHP (and MySQL). There doesn't seem to a huge learning curve with the language or development environments, and the language still seems to have a decent future. Also, a lot of what you learn (as with most languages) can be later applied to others if you decide to jump ship.

From what I've seen, PHP and MySQL as a back-end/database stack has one of the largest pools for resources on the web, because it is so widely used, and so many legacy apps were built with it, and need to be maintained. I've found it easier to get questions answered with this stack than with others, and that helps a lot when you're building your first apps. Composing a well phrased PHP/MySQL question on Google will almost always take you to a goldmine of solutions, with StackOverflow's usually being the easiest to chew and swallow.

Treehouse has a huge library of beginner material for PHP and MySQL, for example PHP Basics, Build a Basic PHP Website and others.

Also, Randy Hoyt kicks ass, and when you feel comfortable I recommend his intermediate course Enhancing a Simple PHP Application, and then moving on to PHP courses which introduce Object Oriented concepts and projects, of which there are a several courses. Randy's course that I linked to improves upon a previous project, which seems to be missing from Treehouse, but it is still very useful and easy to absorb.

When it comes to your first app, whatever collection of languages you decide to use, I think the most important thing is to get started. Most of what you'll learn (CRUD, OO, managing complexity and keeping your projects readable, etc) are concepts that are language agnostic, in the end.

Also you're probably better off using straight HTML and CSS at this point, because it is biting off too much to get into pro-processors, in your first app. But again, novice here.

Good luck!

Justin Horner
Justin Horner
Treehouse Guest Teacher

Great advice, Heath! Also, +1 for Randy Hoyt as well, because he is awesome :)