Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.Start your free trial
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.
Heath Morris2,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.
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.