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

Nicholas Lee
Nicholas Lee
12,474 Points

How related will 'Intro to Computer Science I' be to my web development life?

I just got out of a Computer Science I class at college. I'm trying to gauge how useful it will be for my web developement hobby. I'm currently working with ruby on rails and all the goes with it...

The professor mentioned we will be working with python as a tool to understand the greater topics of comp science.

"This course introduces ideas and techniques that are fundamental to computer science. The course emphasizes procedural abstraction, algorithmic methods, and structured design techniques. Students will gain a working knowledge of a block-structured programming language (Python) and will use the language to solve a variety of problems illustrating ideas in computer science. A selection of other elementary topics will be presented (history, ai, comparison and evaluation of programming languages).

The goal is to learn how to solve problems with a computer. Specifically, we will learn how to design programs to accomplish certain tasks. In so doing, you will learn analytical and "algorithmic" thinking." Reading "Think Python: How to think like a computer scientist"

Sure it won't hurt my brain... but how much will taking this course confuse or compliment my knowledge of web dev? Will learning structured design techniques mess with learning oop?

Would something titled, which has a comp sci 101 requirement...which i dont have.

"Programming W/Data Structures w/ Java" "Advanced programming techniques in Java language. Elementary techniques of software engineering: documentation, coding style, basic testing principles, and informal reasoning about correctness. The notion of an abstract data structure and various important data structures: stacks, queues, linked lists, tree-based structures, and hash tables. Use of object-oriented language constructs for encapsulation of data objects. Lecture, programming projects." Be this be more of use for myself?

At the very least the professor of comp sci is pretty attractive.

I very much appreciate any help from the community.

2 Answers

Ricky Catron
Ricky Catron
13,023 Points

I think that python course would be very helpful to you for understanding the basics of computer science. Python is a great language and the book mentioned is a fantastic book that I used to teach myself Python

If you know Java and are comfortable with programming I would take the other class. The main idea of computer programming is don't do anything twice aka. a function instead of copying and pasting code. python and ruby are far more similar then java and ruby so Java will expand your mind and teach you more. Python will not be as hard to learn but it will not teach you to many new concepts.

As for concerns with OOP Python uses objects as well. Both will help you a ton.

Take the Java if your are comfortable with it but if not the Python will still teach you a great language and maybe some new concepts.

Edit: After reviewing your question I see neither class has much focus on web design but both will teach you things you can apply to web design. Python can be used on the web via django or flask and the Java course will teach you to write better code and have a deeper understanding of the magic going on in the background.

Andrew Shook
Andrew Shook
31,709 Points

Most Intro. to Computer Science classes, I have taken a few online and one at college, are designed to help students understand how a computer ( the hardware ) and a program ( the software ) work together to preform a task. You will learn things about memory management ( the stack and heap ), compilers and interpreters, how to go from concept to a process that a computer can execution ( algorithmic thinking), and will introduce you to programming best practices ( abstraction, encapsulation, and DRY). Now if you plan to be a web designer/front-end developer you might not find this case very helpful. However, if you plan to build web apps like Treehouse, Facebook, or Pandora then you should definitely task a lot of computer science classes. Servers are still computers so a lot of the things you will learn will carry over. Also, the things you will learn about programming, regardless of the language, should carry over as well. Yes, PHP and Java have two entirely different syntaxes, but an if statement is still an if statement. Your college should also offer some web specific classes like Linux Admin, network security, and PHP. If you want to focus more on the programming website then I would recommend focusing on computer science classes. If you want to design websites and do html/css/js then I would recommend taking design courses and classes specific to those languages.