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.

Development Tools

Thomas Moore
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Thomas Moore
Front End Web Development Techdegree Graduate 25,371 Points

Backend languages

Hi there,

I was interested to know what I should be learning for the backend stack. Treehouse has the front-end covered, with a variety of tracks covering HTML, CSS and JavaScript (which I'm currently working through).

However it leaves the backend surprisingly open. Whenever the backend is mentioned in the courses I'm working through, the instructors usually say something like "...whether you're using Python, PHP or Ruby" without recommending which one to pick or what's needed for the full backend stack (APIs, databases, servers etc.)

Any help or advice would be greatly appreciated.

For what it's worth, this would make an excellent Treehouse course that's currently missing – a generally agnostic view of a web app's (or native app's) backend incl. APIs, databases and server hosting.

The requirements I have are fairly standard: – User account creation and authentication, – User uploading text and images to a database, – User liking/favouriting content drawn from the database, – Database information available through APIs.

Thanks,

Christof Baumgartner
Christof Baumgartner
20,864 Points

Hi Thomas, just one note in general: When you start discussions in the Folder "General Discussions", people can't get points for answering it. So the chances of somebody answering is lower, then when you use a category like 'Digital Literacy' or 'Development Tools', because you can upvote answers there.

Christof Baumgartner
Christof Baumgartner
20,864 Points

You can still change the category afterwards, by clicking on the three dots below your answer and select edit question. Now you can choose another category.

1 Answer

Christof Baumgartner
Christof Baumgartner
20,864 Points

Hi Thomas,

Yes, you're right, a general and language agnostic view on this topic would be nice to have. There is the https://teamtreehouse.com/library/how-the-web-works course, which covers some general terms here, but it's not going very deep. However most web framework courses at teamtreehouse start with basic explanations of web server architecture. Once you have worked with one, the other ones will be a lot easer to understand, because most basic concepts are the same for different systems.

The reason why teamtreehouse is not telling you what to choose for backend, is because this is a very open topic. Frontend technologies like HTML, JS, and CSS are used on nearly every webpage, but for the backend there are pages, that run only with python, or only with java. So you have the free choice here. A lot of people start with a web framework in a language that they are familiar with (spring for java, or django for python). If you have no experience in any of these languages, then no worries, you can't make anything wrong. All framework courses start with the basics and explain how a webserver is working and how it is processing requests.

A few thoughts on some technologies:

  • Many people without prior experience in backend web developing start with PHP, because you don't have to learn another language before it (PHP has been made for server backends) and it is very easy to set up. You can start directly by writing your first commands that will make your web pages come to live. However creating larger projects can take some time, because you have to write all the code on your own.
  • This is were big frameworks like ruby on rails come into place. They already have a lot of libraries and code included. You will need to learn some ruby first, but then ruby on rails supports you with commands to create basic systems like a block backend in just 5 minutes. This is great when you directly want to have something 'cool' and working
  • Somewhere in the middle are micro frameworks like Flask for Python and Spark for Java, that are quite basic, but allow you to use your existing Java or Python code. So you can upgrade your local software projects to web applications. Micro-Frameworks are also great to understand what a web server is really doing, because you write most stuff, like the request-handling on your own.

To avoid frustration you should start with a track here, like 'PHP Beginner', or 'Rails Development'. They will teach you all you need to know from the beginning. Once you have finished the first one, the next will be a lot easier and soon you will find the web framework, that you like most.

Have a good coding time :)

Thomas Moore
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Thomas Moore
Front End Web Development Techdegree Graduate 25,371 Points

Hi Christof,

Thanks very much for your helpful reply. That's now much clearer why the topic is left a bit more open-ended on Treehouse.

Your overview of the different languages is great. I'm currently working through the Front-End track, but as soon as I'm done I think I'll start on the Rails Development track to hopefully get a better understanding of the dependencies in the backend. I've heard it's quite 'beginner friendly' and there's lots of community & support materials out there so seems like a good place to start (and then look at other languages to compare).

Sorry for not putting this post in another topic (where answers can be upvoted). If I could label your answer as helpful I definitely would.

Thanks, Tom