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

Ruby

Tenzin Phuljung
Tenzin Phuljung
3,275 Points

Should I learn ruby right after html/css or first javascript and then ruby?

Hi there. I just finished the html and css adventure, but I am still not confident about using all the css properties and integrate it well with html. In other words, I don't know how to create a simple website. For eg: a website with Menus properly aligned, web site's homepagedesign, and all the other stuff. (Although I did finish the "build a simple website" tutorial, I didn't fully learn how to create a website from scratch. In that video, I feel like they went over some stuff very quickly without explaining how to do it manually such as the normalize.css and grid.css.) That being said, my goal is to become a web developer within a few months(ruby developer). And I don't think I should jump right into ruby without gettting a good grip of html and css first.

So here are my questions:

  1. What do you recommend? Should I go start the other html and css projects or get a book? Should I start javascript?
  2. How to master html/css? All i see in the tutorials are just explanations and I get it but I have no clue how to use it on my own project from the ground. Maybe I should start the other remaining projects.
  3. When should i jump into ruby? I mean how proficient do i have to be with html and css to jump into ruby?

All answers are very appreciated. Again, a little about me. I am a college student but the things I learn in school are bull crap as many of you already know. They are completely newbie stuff and go very slow without any practical stuff. So my goal is to become a intermediate web developer(ruby) within 3 months or around that time frame.

thanks again.

8 Answers

HTML and CSS are crucial to master even if you end up relying heavily on prebuilt frameworks because there will come a day when a framework doesn't do what you need it to, and you'll need to know how to fix/change that. You'll most likely find yourself learning 3 or 4 different things together (HTML + CSS + JavaScript + Ruby), picking up bits and pieces of the new stuff as you go along. So, as already stated, there's no strict order to learning them, but HTML and CSS are critical for a foundation in web development.

How to master HTML and CSS? Build stuff. I know, I know, lame answer. If you don't already have a website you are building or maintaining, then pick something you're passionate about and build a website for it. A hobby, a friend, a friend's hobby, a video game, pictures of lighthouses, pictures of cats, pictures of cats in lighthouses, whatever. Then do a google image search for "free PSD website templates". Pick one and forget about all the glitz (shadows, gradients, etc.) at first, you want the bare bones, focus on the layout. Sketch out the layout on a piece of paper: where they put the logo, where they put the nav and the items in the nav, the main content, a footer, maybe a sidebar.

Then stop looking at the image and look at your sketch. Start making decisions and writing notes and drawing boxes around things. That logo? I think I'll put it inside a <div> and wrap an <a> tag around it. And the nav will be an unordered list with links. And these other parts will be <div>s, too. Don't worry about whether you're making the best decisions, just go off of what you've learned so far here at treehouse.

Now crack open your text editor, write the basic markup for the doctype, the <html>, <head>, and <body> tags. Then use your notes to start marking up your page. Just think about the HTML structure first. Look at the order of the pieces in your sketch and put the HTML in that order. Maybe add some classes to your HTML like class="logo" and class="nav".

Then chuck a <style> tag up in the head and try to work out with CSS how to layout all this HTML you just marked up so that it looks similar to your sketch. This is where you'll learn so much, as long as you stick it out and fight through it. Why the heck does that happen when I float this other thing? What happened to the margins I set on these paragraphs? How do I get these nav items to look more like a navbar and less like bullets and text? Google the crap out of those questions. This is the point where those tutorials will come in handy, especially if you don't just copy and paste the code from them, but dig into it. Delete that line that you have no idea what it does and then refresh your browser and find out what it does.

After that, start thinking again about the topic you chose to make a website for. What kind of colors are typically associated with that topic? Do you want things to look edgy or maybe a little more rounded off? What cool effects do you want to add to things, like hovering on links, or 3D looking nav items. Google the crap out of those and mess around.

Then start all over from scratch again. Seriously. Doing this you'll gain such an intimate knowledge of how HTML and CSS work (or don't work) in browsers that it will become second nature to you.

I've easily fallen into the "read-and-watch-a-bunch-of-stuff-about-web-development-and-get-excited-but-don't-do-anything" hole many times. Sometimes it's a good place to be in because I can pick up on new stuff happening in the industry, or maybe stumble across a solution to a problem that I just couldn't figure out a week ago. But, usually, it doesn't get me anywhere because I'm not doing.

Good luck! Keep learning!

Arijit Bhattacharya
Arijit Bhattacharya
4,563 Points

You definitely should have a basic understanding of HTML/CSS to go ahead and create backends in Ruby.

Understanding how CSS layouts and Box Model works is fundamental. Don't just read them, play with them. Knowing how your CSS will affect the elements on the DOM instead of using trial and error methods will save you a lot of time and will help you to create flexible information architecture.

Web development or design is an iterative process. There is nothing like, I have finished learning and now I will just build stuffs. There is much more to learn than one anticipates at first. So, be patient and keep learning.

Also, technologies are coupled tightly. So, the process of learning HTML/CSS, JavaScript or Ruby isn't sequential but overlapping. After having some basic insights into each of these domains, most chances are you will have to learn them concurrently.

Probably, you should get familiar with a bit of JavaScript, some jQuery, to perform some basic DOM manipulations before diving into Ruby. But the order isn't strict.

Finally, to get started, you got to do more, build stuffs, that's how will stack up your knowledge to a basic working level, pretty fast.

I am trying to do exactly the same as you. I would spend more time on HTML+CSS until you can build a decent webpage... nothing too fancy but creating a good layout is pretty key. Using something like twitter bootstrap makes this a lot easier in my opinion. I would say get to grips will HTML+CSS well then move onto Javascript. I just asked the question PHP Ruby or Javascript first.

I got a great answer recommending that I learn Javascript to begin with and then move onto something like Ruby or PHP

Hope I helped

Spen Taylor
Spen Taylor
13,027 Points

I agree with Arijit - you will certainly be overlapping your learning alot, especially the deeper you go.

Remember that HTML and CSS aren't so much programming languages, more mark-up code, where as ruby and JavaScript are.

You'll see ALOT of similarity in how Object Orientated Programming languages (such as JS and Ruby) work. All of the languages you'll want to learn will make use of variables, arrays, functions, methods etc.

Because of the similarities you'll be able to grasp which ever language you learn second much more easily and for that reason I'd recommend learning JavaScript before Ruby, as from what I've seen so far Ruby/RoR is more complicated than JS. JS also seems to give much quicker results - you'll be able to see that your doing things right or wrong faster.

Also you'll find that you'll be picking up CSS and HTML along the way with the JavaScript course :)

Everyone has given great advice above! Personally, what helped me out a lot was starting the walk through of the RoR beginner app. I did maybe the first 3-4 sections of that to get the big picture of working with RoR. I now have a RoR app developed as a little practice stage and am now tuning my skills in html/css. I actually started a morning routine where I create a new page in my app and go...for 30 minutes - 1 hour every morning. This has helped me stay familiar with the folders and commands working inside RoR and also has me working on my html and css skills. Find something that works with your learning style! Best of luck!

Tenzin Phuljung
Tenzin Phuljung
3,275 Points

Keith Wyland Hey keith, thank you for you detailed answer. It does make a lot of sense. It's all about doing it, not just thinking and watching. Thanks again. You just got a new twitter follower.

Thanks for all the other answers. I appreciate it. I might have followed you on twitter :)

Tenzin Phuljung
Tenzin Phuljung
3,275 Points

Thanks Spen I appreciate it.

Nathan Monte
Nathan Monte
16,643 Points

Here's my story:

I started with HTML and CSS and designed a lot of user interfaces/websites and little projects until I was totally comfortable. This made learning JavaScript much easier than when i tried it originally. Actually understanding the DOM (Html structure) and having some experience with LESS or SASS make learning JavaScript much easier!

I then learnt JavaScript and learnt everything I felt was necessary to me - jQuery, some Node, Backbone.js - and then when I felt that I was started to push the limits of JavaScript (Only my opinion about JavaScript in the backend), I started to learn Ruby. I picked it up really quickly and I am currently writing command line apps. Once I feel really comfortable I am going to build and API out of pure Ruby before I start looking at the Rails framework.

This felt like a really natural progression and I have never felt out of my depth.

Good luck!