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!

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

General Discussion

Kyle Enslin
Kyle Enslin
1,421 Points

PHP/Ruby/Python or just complete my track?

Hi Everyone,

I've just completed the first module of the "Front End Web Development" Track called "How to make a website". I'm not sure if I should carry on with the track to completion or move onto another track?

I'm looking to build a tour operator website. Clients will:

  1. Choose a tour
  2. Choose a date. The web site will check for availability. (20 places on each tour).
  3. Then for each day on the tour the client will be able to choose three activities.
  4. For each activity chosen the cost of the activity will be added to the total cost of the tour. This will essentially result in each client having their own itinerary (20 itineraries per tour).
  5. I should be able to print each itinerary so that I can make the booking for each activity.
  6. The client must also make payment from the website.
  7. The system also needs to know when the deposit has reflected in bank account and then send an email to the client confirming that payment has been received.

Any recommendations as to what I should do? Or what tools I'll need?

From the track previews I've watched it seems PHP, Python and Ruby all deal with databases (which I'm guessing I'll need) and do the same thing. If they do the same thing, which should I choose? What about SQL?

Also, what role does Javascript play in front end web design?

And, should I do the "Web Design" track?

So, soooo many questions :)

Thanks a bunch!

3 Answers

The Build-A-Website module is a crash-course preview of what the rest of the track will be about. You're wanting an interactive website with back-end processing. There's client-side (Javascript) and server-side (PHP/Ruby/Python, and others). It sounds like you want both, and are not terribly concerned with the html/css aspects at the moment as much as getting functionality.

I would stick with the web-dev track, as most of the course is Javascript, which you are definitely going to want to know if you want to build the interactive parts of the website.

Kyle Enslin
Kyle Enslin
1,421 Points

Thanks, Dan. I appreciate the help!

Greg Kaleka
Greg Kaleka
39,021 Points

Hi Kyle,

I'm going to take a slightly different view than Dan, although his suggestion is definitely valid as well. To build the project you're talking about, you'll need:

  1. Back-end programming like PHP, Ruby OR Python
  2. Database management/interaction (with MySQL or another database system), which will hold up-to-date information about users, tours, etc.
  3. Front-end development of HTML, CSS and Javascript to make the user interface work
  4. Design, to make your site look good

While it is possible for you to learn all of these things, I don't think it's a good goal as a beginner. Instead, I would pick the piece of it (note 1 and 2 go together, in large part), and get good at that. Then, down the line, you can find people who are good at the other parts and collaborate with them.

So your first step is to figure out which piece you will most enjoy, are most likely to be good at, and/or will be able to add the most value.

I would poke around the various courses in Rails, HTML/CSS, Javascript and Design, and especially the workshops, since you'll see some examples of more advanced stuff, to get a feel for what will be the best fit for you.

Good luck!

Kyle Enslin
Kyle Enslin
1,421 Points

Thanks a bunch! I think I have a good idea what HTML and CSS are about. So I suppose I need to move onto the back end and database languages.

Which back end database language would you recommend?

Greg Kaleka
Greg Kaleka
39,021 Points

I started with PHP, but honestly, I think Rails is better for a beginner, and it's sort of the hotness right now among small firms. That would probably be my first choice for something to check out and experiment with.

Also, just a quick note that "back end" and "database" aren't the same thing. The back end code (like Rails or PHP) often interacts with the database, but it's separate. In fact, oftentimes web apps will have the database on a completely separate server than their server side code.

PHP, Ruby/Rails, and Python are back-end languages, because they run on the server, rather than the browser (the front-end). MySQL, SQLite, Postgress, MongoDB, etc. are different database architectures, all of which will use the same basic "language" of SQL (I think... Now that I'm writing that, I'm not entirely sure about Postgress and MongoDB. There are also NoSQL databases, which of course don't use SQL. Either way, the "language" of databases is pretty straightforward compared to programming languages.). Your focus should be on choosing a back-end language (if you want to go that route), and then do some research about which db plays nicely with it.

Kyle Enslin
Kyle Enslin
1,421 Points

Thanks for clearing that up! I just had a look at the tracks for PHP, Ruby and Python and they all include a module for databases so that should give me an idea which db is best suited to which language.

From the research I've done, here, it seems Python is the most simple, and popular, so I think I'll start with that.

I would go with Rails if you are building up new projects and want to be hired for a diversity of new web projects, Python if you want your skills to be useful in things other than web as it's used in a lot of desktop apps/plugins too (and games) and PHP if you also want to be valuable on old and new projects.

I've known PHP for a long time, but now I'm wondering if Rails may be my next step to stay current. It's hard to find a job in my area that isn't looking for someone with rails experience. My biggest fear with Rails is deploying it, but just playing with the language a few years ago, I remember it being very easy. Maybe too easy, I had a tendency to put semicolons in to terminate statements out of habit, and ruby doesn't like punctuation all that much.

I can't help you decide which language, but I'd go back-end and maybe learn a simple front-end framework like Bootstrap concurrently.