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
Paul Ozag
11,369 Pointsbroad overview of software/web development?
hey folks --
i have spent 20 years in the financial services industry. recently decided to pack it in and switch careers into the tech/software development fields. have screwed around w/ a lot of the free online course work available, but they consist of either 'extreme neophyte training' in one computer language or another, or classes that are so esoteric and specialized that they are incomprehensible. which is what brought me to treehouse.
when you know next to nothing, deciding what to study can be kind of daunting. i feel what i am lacking is a broad (non-super-technical) understanding of the software development industry. my learning style benefits from having kind of a top-down overview of the industry as a whole, so i can see how all of the pieces fit into that whole. this stuff is changing so fast and i feel like i am trying to jump onto a moving merry-go-round.
i am currently doing the ruby on rails path which has exposed me to HTML,CSS, javascript and jquery, all of which pretty much made sense. recently started the rails section. and was kinda blown away by the complexity and all the moving parts of what makes the web work the way it does.
can anyone suggest either a class or other reference that goes over the web as a whole, and then breaks down all the pieces and shows how they fit together?
thanks much!
paul
4 Answers
Stone Preston
42,016 Pointsyeah I would start with doing the html, css, and javascript deep dives. Then move on to php before doing the ruby on rails projects. There is a lot of information in the ruby on rails deep dives and I can see how its confusing. The php project is much smaller and easier, so i would do that one first.
James Barnett
39,199 PointsSo as not to repeat myself, a few months ago I wrote up my thoughts on learning Ruby on Rails in a different thread.
Paul Graham
1,396 PointsOnce upon a time some idiot decided that RoR was a great thing to teach beginners. It's not, and it's probably going to do more harm than good if you continue with it.
You say "kinda blown away by the complexity and all the moving parts of what makes the web work the way it does." You're right, Rails is incredibly complex. You should not have to learn a billion things to get started.
Here's what to do if you have no experience...
First, learn HTML. HTML is the base format of all web communications. No matter what you're writing, it's likely to be output to HTML eventually. Learn how to use all your HTML elements and make well-formed documents.
Second, learn how to style that HTML with CSS. Making a few pretty things is easy but there are three things you MUST understand on a deep level to really get how CSS works: the box model, inheritance (the cascade), and specificity. Study about managing large scale CSS projects with something like OOCSS.
Third, JavaScript. You can use JS on both the server and client. It's the most important programming language on Earth going forward and you absolutely cannot avoid it. With those three things you should be able to do anything client side.
Now learn how to deploy those things. Learn about how web servers work and the basics of how communications happen on the Internet.
Next you'll want to learn your first server side language. PHP is probably the most common and easiest to start with. PHP used to be a terrible language but recent versions have improved it significantly. The web's most popular server side software, WordPress, is powered by PHP. Once you get these things down, you have the ability to get paid for working on the web. Ruby is another option here although deployment and ecosystem of Ruby can get very complex. Another choice is Node.js. With Node, you can actually forget learning PHP or whatever because you'll be writing both server and client code in JavaScript.
At that point you'll probably want to learn about databases and how to cache that data. You will be wise to learn as much SQL as you can stomach although many write through an object-relational mapper (ORM) which is a database wrapper that allows you to write database code in the language you prefer. PHP has these and so does Rails. It's called ActiveRecord and if you like it you can pull it out and use it separately.
Once you get to that point, then maybe try to come back and work with Ruby on Rails if you still want. Rails is great in making it simple for very small teams to manage very complex code but as a teaching tool, I consider it an absolute non-starter. It requires entirely too much domain-centric knowledge to simply get started.
Paul Ozag
11,369 Pointsthanks everyone for the 2 cents. going to look into php, and also go deeper w/ the HTML, CSS and javascript as Paul suggested.
Paul Graham
1,396 PointsThe PHP developer track on here actually covers all of this. You'll need practice but it's a great curriculum. http://teamtreehouse.com/learning-adventures/become-a-php-developer
Paul Graham
1,396 PointsI also reread some of what I wrote, it's bit inaccurate to say you have to get to PHP to make money on the web, you can make money with just front end skills. While I usually do more frontend-on-the-server type stuff (interfaces, APIs, CMSes, etc), I've made tens of thousands of dollars doing jobs where I was hired to do ONLY HTML, CSS, and minor JavaScript. As soon as you have the big three, you should start looking to see if you can find a job.