Course Philosophy - pippinbarr/dart450-2018 GitHub Wiki

This is a technical course

While we will spend time discussing ideas around design and the web, the vast majority of our time will be spent learning and using technical concepts and tools. Remember:

  • Your code not working is its natural state (it only works right at the end!)
  • Debugging can be pretty entertaining and/or zen
  • It's really important to ask questions when you're confused or even just a little unsure
  • Make sure I'm not moving too fast when covering material, it's fine for us to go over things multiple times

Ways of learning

As in all things, learning technical material is at its best if you have multiple ways to learn it:

  • Practice: the number one way to get better with technical learning is to try it, get it "wrong", and keep going - there's no substitute for hands-on experience
  • In class presentation of material by me: a chance to run through code, get explanations, ask questions (this is a great time to ask questions as everyone benefits)
  • Asking questions: there is never a bad time to ask a question, whether it's during the presentation of material, during an exercise, during studio, via email, in a hallway, or any other way
  • Helping someone else: as they say, teaching someone else is the best way to learn, so always be ready to share your knowledge with other class members
  • The Internet: you already know how to do this, there are many resources online about every possible technical topic, from documentation to tutorials to videos to forums like Stack Overflow
  • Books: antiquated, but there are books about programming and specific technologies you could read if you learn well that way

Consider designing outward from the technology

There's a strong instinct when learning technical material to design by coming up with a great idea and then trying to work out how you would make that with the tools/skills you have available. This is perfectly reasonable and can lead to great work.

However, an alternate practice that can be very useful is to allow your tools/skills to inform your design and to ask, instead, "what can I do with these specific tools?" This has a couple of advantages:

  • Most obviously, you're not going to need skills you don't have
  • You can build confidence with your skills and extend yourself more gradually
  • You'll be able to think seriously as a designer about the expressive/creative properties of the particular tools you currently have access to, which is great in an age where people are always in such a rush to use the latest and greatest technologies

"Cut and Paste Coding" considered

There's a very reasonable tendency to try to get your code working by cutting and pasting code you find online and then hacking at it until it does (more or less) what you want.

This can be a great way to learn knew tricks, but it should probably be used in moderation as there's a risk of doing things you don't understand. A major goal of this course is for you to be able to read and understand the code you want to cut and paste, but early on it may be best to try to write things from scratch so you understand them line by line.