- Is this course right for me?
- Do you need to know how to program?
- Will I be at a disadvantage if I can't program?
- How should I set my goals for this program?
- How will you support me to reach my goals?
- How will we be graded?
- Are there really no prerequisites?
- How should I approach working on a given project?
- Why are you guys running this course?
- Can I use {Arduino, Raspberry Pi, jQuery, foobar} for my project?
- Are we allowed to work together or use code we find online?
- Do I have to come on Saturdays?
- How will I know if I'm failing?
- How will I know if I'm succeeding?
- What's the traditional skillset associated with this course?
- How will I know you guys love me?
- How will I know if I'm making you proud?
- What keywords can I list on my resume after taking this course?
- What does this course prepare me for?
- What is this course at its greatest aspiration?
- When is X due?
- Why aren't there any due dates?
- I might have to miss a day (or two, or three, or…); is that OK? What should I do to make up the work?
- What if I'm already a programmer?
- Isn't this too much stuff to cover in a term?
- Are you going to be offering lectures online?
- When will there be a distance version of this course?
- Can I take CS50 after this?
- What if I took CS50 before this?
- How much time outside of class should I plan to devote to this program?
- Why tessel?
- Why not jQuery, Bootstrap, Jizzawatt with the Hamstring extensions and Graunt.ns for smexing?
- Why JavaScript?
- What should I do when I panic?
Is this course right for me?
If:
- you are interested in becoming more fluent in making interactive digital and physical things with the help of HTML, CSS, and JavaScript
- and you feel comfortable committing to investing the time required to make it a valuable experience for you (in our experience, 10–15 hours weekly outside of class sessions)
- and you're open to guidance in appropriately scoping your projects and expectations around those projects
- and you're open not only to learning the skills involved in these projects, but the skill of learning these skills then absolutely!
If you have any questions or concerns about this, please don't hesitate to let us know…This program is unusual and different from many others in that our focus is on helping you to articulate, define, and achieve your own definitions of success; we don't come in with a particular agenda.
Do you need to know how to program?
Nope!
Will I be at a disadvantage if I can't program?
Nope in at least two ways: 1) this program is intended for folks who've never programmed before, 2) it's not a competition!
How should I set my goals for this program?
That's really up to you, but in our experience, the best use is made of this program when the participants:
- …articulate their longer term goals for themselves—are you looking to change careers? To make art? To just get a sense of what all this hubbub around coding is about? To build a personal portfolio? To…
- …are sensitive to scoping projects appropriately so that they feel complete and well-finished, even if they are smaller than originally intended
- …and above all, find ways to identify authentic projects for themselves.
How will you support me to reach my goals?
We happen to know more about HTML, CSS, JavaScript, physical computing, and perhaps the design process than most of the participants in this program. We see our role as making that expertise usefully available while offering a healthy structure within which folks can develop their own expertise. That means that we're happy to sit down and help you to brainstorm and scope projects appropriately, meet with you one-on-one at any time to discuss technical, design, or other questions or problems you encounter.
Concretely, we'll also host studio sessions on Saturday from 9AM–1PM at Clover in Harvard Square where you can come and work on your projects, get one-on-one help, or work with other participants. We will also be scheduling regular, check-in meetings throughout the term to help you articulate and refine your project. If you have a question that isn't appropriate for those venues, you're always welcome to email the team at dgmds15@gmail.com or any of us, individually.
How will we be graded?
As is hopefully clear by this point, our goal is to help you meet your goals with respect to the technologies and skills touched on in this program. That means different goals for different people. There is no articulated, minimum technical bar people must reach. We hope that through ongoing discussion about you, your goals, and your projects throughout this course, you'll be able to articulate standards of success for yourself within which you can unambigously assess the quality, depth, and arc of your work as captured by your portfolio.
More simply: you're all adults, in this program for a reason, and you know if you're doing the type of work you came here to do. We know grades can be stressful, but we want you to be able to deal with questions of self-assessment on your own, and are more than happy to sit down to talk through the inevitable discomfort that responsibility may cause.
Are there really no prerequisites?
Really!
How should I approach working on a given project?
If you're unsure, please don't hesitate to sit down with us to get feedback on the project, and importantly, its scope and timeline. In our experience, being able to complete a well-scoped project feels far better and teaches you much more than leaving a larger project unfinished. And it's hard to scope projects appropriately as a beginner, without something of a sherpa to give you a sense for the landscape's difficulty. Let us play that role! Check in with us regularly, articulate what you'd like to get done on what timeline, and don't hesitate to revise the project scope—it's not a sign of failure.
Why are you guys running this course?
We hope to to contribute, in a small way, to making the technologies of the web accessible in this way, for these types of purposes, by working directly with people like you.
Can I use {Arduino, Raspberry Pi, jQuery, foobar} for my project?
No but, if you really want to, yes, as long as you realize that we will be less able to support you. We've chosen what we think are good tools that couple nicely together, and there is vanishingly little those other tools enable you to do which isn't possible with the default toolset.
Are we allowed to work together or use code we find online?
Yes! Cheating is about intent and misrepresentation. Here is how you can add comments to JavaScript code, and you can read here about commit messages—annotations to your git commits where you can also document where your resources and inspiration are coming from.
Do I have to come on Saturdays?
Nope! But we'll be there.
How will I know if I'm failing?
Each week you'll find yourself dreading class. You'll momentarily consider the Saturday sessions, but feel like debugging is overwhelming and that you aren't really sure about what you want to be working on anyway. You'll choose projects that you aren't really interested in, but which you think will get you a good grade. You'll be too shy to ask for help. You'll excuse subpar work because we aren't forcing you to revise and polish your output.
How will I know if I'm succeeding?
Each week you'll find yourself excited to come to class and will feel disappointed about any Saturday sessions you can't make. You'll consistently feel like you're getting a handle on new concepts and content and bending those to be useful to you. You'll be working on personally meaningful projects, producing work which you think is of the highest quality.
Christopher Alexander (the famed architect) wrote:
In my life as an architect, I find that the single thing which inhibits young professionals, new students most severely, is their acceptance of standards that are too low. If I ask a student whether her design is as good as Chartres, she often smiles tolerantly at me as if to say, "Of course not, that isn't what I am trying to do.... I could never do that."
Then, I express my disagreement, and tell her: "That standard must be our standard. If you are going to be a builder, no other standard is worthwhile. That is what I expect of myself in my own buildings, and it is what I expect of my students." Gradually, I show the students that they have a right to ask this of themselves, and must ask this of themselves. Once that level of standard is in their minds, they will be able to figure out, for themselves, how to do better, how to make something that is as profound as that.
What's the traditional skillset associated with this course?
Associated keywords include: front-end development, physical computing, JavaScript, single-page web applications, node.js, embedded programming, git, HTML5, CSS3, dynamic web applications, …
How will I know you guys love me?
How will I know if I'm making you proud?
What keywords can I list on my resume after taking this course?
Whatever feels honest to you.
What does this course prepare me for?
The specifics of the answer to this question depend on you and the projects you choose to do throughout this program. Minimally, we hope that you are left with the basic technical infrastructure and experience to begin messing about with these tools and ideas for your own purposes, comfortably self-identifying and self-starting projects of your own in the future.
But folks who've taken this course in the past have gone on to get jobs in front-end web development, entering the Digital Media program here at the extension school, building small websites for their department or company, and 'simply' beginning a personal practice of exploring and making small projects for themselves, their friends, and their family.
If you'd like to sit down and talk with us about some specific endpoints you have in mind, please don't hesitate to get in touch!
What is this course at its greatest aspiration?
"Curriculum" comes from the Latin for "race course" (like for horses). That isn't what this program is. We hope it will be closer to a boxing gym—a place where people with a common interest come for many different motivations (health, self defense, competition, craftsmanship) and happily co-exist, teaching and working alongside one another with the help of more expert staff and some specialized equipment.
When is X due?
You'll notice there aren't any deadlines listed. This is not an accident. There aren't any deadlines in this program. We intend for the projects to be prompts, inspiration, and scaffolding for you to learn with and climb around in.
Why aren't there any due dates?
You can't rush love. Seriously: due dates are imposed by you. Much of what we'd like you to get good at is scoping projects. And given that much of the premise of this program is that we'd like to see making things with technology become a meaningful part of your life, it seems like it'd be weird for us to define that sometimes, life happens and intervenes!
I might have to miss a day (or two, or three, or…); is that OK? What should I do to make up the work?
As long as you don't miss the deadlines! (JK! See "When is 'X' due?")
What if I'm already a programmer?
No, you can't use C++ or the Raspberry Pi or HTML9 Responsive Boilerstrap JS.
Isn't this too much stuff to cover in a term?
You aren't expected to eat everything at a smorgasborg! And although the US is only 36th in life expectancy, our estimate currently stands at 78.9 years. Aren't you a lifelong learner?
Are you going to be offering lectures online?
When will there be a distance version of this course?
Can I take CS50 after this?
Talk to !
What if I took CS50 before this?
Did you get a t-shirt?
How much time outside of class should I plan to devote to this program?
About fifteen hours a week is enough for most folks to get something valuable out of the program, but the opportunity to do much more work than that is offered through projects and their extensions.
Why tessel?
It's thoughtfully designed, the setup and usage is very streamlined, it has wifi embedded so that communicating over the web is very straightforward, it runs JavaScript, and there's a pre-fabricated set of modules guaranteed to be well-documented and work nicely with it.
Why not jQuery, Bootstrap, Jizzawatt with the Hamstring extensions and Graunt.ns for smexing?
You can hear the creator of jQuery himself tell you, but basically, there are a lot of frameworks out there, and that deeply understanding the system will enable you to do much more, much more confidently. And in our experience, when folks getting started distract themselves with plugins and frameworks, they both spend a lot more time fighting with those than they need to, and they don't learn much from doing so.
But as with much in this course: ultimately, it's up to you what to take on and how to do so. The best we can do is advise you relative to your goals.
Why JavaScript?
It is the most popular programming language in the world; runs on hardware, in your web browser, on your server; and despite its warts, is a very flexible and expressive language that is only improving.
What should I do when I panic?
Sit down, and take a deep breath. Now, close your eyes. Take another deep breath. And another.
Recall that there are no due dates and that grades are very much within your control.
Now, drop us (or just the one of us you like the best) an email!
Then, take a break for thirty minutes or so. Make some tea. Take a bath.
Finally, if something technical is harshing your vibe:
- take a stab at Googling your question
- take a few minutes to articulate your question and post it to StackOverflow and/or our Slack channel.
- ask for a time to sit down with us one-on-one, come to a Saturday session, or ask one of your participants for help