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.

General Discussion

Kate Massie
seal-mask
.a{fill-rule:evenodd;}techdegree
Kate Massie
Front End Web Development Techdegree Student 7,062 Points

Incorporating Other People's Work

I spent a lot of years in the formal academic world, where the rules for integrating your work with other people's are strict and clearly defined. It seems like rules and conventions are a little different in the coding/programming world, and that's why I have questions.

The Techdegree intro, which I just watched this morning, seemed to indicate that students have to strike some kind of balance between using solutions they find on other websites/in other Treehouse tutorials/on forums like Stack Overflow, and submitting work that is still their own. Can someone outline for me a little more specifically what is and is not acceptable and conventional?

For instance: 1) Can I pull snippets of code from sites I have created in other tutorials, both on Treehouse and elsewhere, and use them in my Treehouse Techdegree projects or other Treehouse work?

2) If someone on Stack Overflow provides a handful of lines of code that solves my latest coding challenge, can I incorporate it into my Techdegree project?

3) Can I use code I find on other websites for the same?

4) What would be "going too far"?

5) Should a project provide attribution to sources of help, and how would a coder do that?

THANK YOU in advance for answering my questions. I really, really appreciate any insight you can provide.

Sincerely, Kate

2 Answers

Brendan Whiting
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Brendan Whiting
Front End Web Development Techdegree Graduate 84,696 Points

I think there's 2 different issues: 1) is it legal? 2) is it a good idea?

As far a the legal stuff they have a course on copyright here: https://teamtreehouse.com/library/copyright-basics

Whether it's a good idea, I'm still in the learning stage as well, but I'm starting to find some balance between doing things completely from scratch, or using existing code snippets, libraries, plugins etc. No one does everything and we're all standing on the shoulders of others, and people often want you to use their stuff, there's no shame in it. But I think it's a good idea if you're using an existing thing to at least have a sense of what it's doing so that it doesn't end up breaking your project.

Ben Jakuben
STAFF
Ben Jakuben
Treehouse Teacher

This is a great question, Kate! We added a step before the first project to help set some expectations (pasted below). I'll try to answer your other questions as best I can:

1) Can I pull snippets of code from sites I have created in other tutorials, both on Treehouse and elsewhere, and use them in my Treehouse Techdegree projects or other Treehouse work?

Snippets are okay if they are shared in a place for public use. Size and intent matter. If you take a short snippet that converts a List to an array, just make sure you understand how it's working. You don't want to use anything that you don't understand. You also don't want to take a "snippet" that's a full program from another Techdegree student. ;)

2) If someone on Stack Overflow provides a handful of lines of code that solves my latest coding challenge, can I incorporate it into my Techdegree project?

Definitely! Again, make sure you understand it, and potentially tweak it to fit your own program and style. Like the question above, size and intent matter here. We often show how to find and use code from StackOverflow in our courses.

3) Can I use code I find on other websites for the same?

The same thing goes here. Looking for help on blog posts and other tutorials is encouraged as part of your research, because that's good learning and what you'll do as a professional developer. If a blog post helps you solve a problem in your project; great! If it provides an exact solution then you would want to rewrite it on your own to prove to yourself and Treehouse that you can complete the assignment.

4) What would be "going too far"?

Researching distinct pieces and using code you find as a model is great. It would be going to far if you research an entire program or app or some large part of it and find a solution that you can pretty much drop in place.

The one caveat is using open-source libraries as intended. For example, if a project asks you to parse JSON and you use an open-source library to help, that's totally appropriate and cool because it's what you'll do in a real job and the code is provided and licensed for that intent.

5) Should a project provide attribution to sources of help, and how would a coder do that?

Most websites/open-source libraries will tell you what kind of attribution you need. So just be sure to check the documentation. For example, you may be asked to leave a comment in the top of the file where you use a specific library. If you use an automatic dependency manager, you usually don't need to do anything extra because the use of a library is explicit in the configuration file.


"When you get stuck, wait a moment before searching for the answer. You'll learn best by spending time on your projects, pushing through roadblocks, and trying to figure out how to solve a problem on your own.

Of course, even seasoned developers use Google and other resources to help them remember programming syntax, learn new techniques, and find answers to their coding questions. There's nothing wrong with using StackOverflow, Google or asking for some help from other students in the Slack team when you get stuck. And don't forget most languages and technologies have official documentation that may answer many of your questions.

When building your Techdegree projects, make sure you come up with your own solutions and use your own programming. If you take the files of another student who posted to Slack, or copy and paste code you found on the Web, you're not doing the work and you're not learning the skills you need to master the subjects taught in this Techdegree. We don't want you to cheat yourself out of a great education!"

https://teamtreehouse.com/instructions/getting-the-most-from-your-techdegree-projects