itp-dwd / 2020-spring Goto Github PK
View Code? Open in Web Editor NEWRepo for Dynamic Web Development Spring, 2020
Repo for Dynamic Web Development Spring, 2020
I'd only seen this mentioned a couple times, but saw this and wanted to flag it: https://www.robinwieruch.de/web-components-tutorial
https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f
Trying to prevent what this blog post talks about, needing to add a ton of different technologies before being able to get anything done, is something I think has come up a lot in the context of this class.
Possible guiding principle: including additional technology and abstraction only when necessary.
How to install and use node:
https://www.taniarascia.com/how-to-install-and-use-node-js-and-npm-mac-and-windows/
via: https://www.taniarascia.com/developer-blogs-to-follow-2019/
https://www.robinwieruch.de/blog
https://hackernoon.com/personal-developer-blog-of-the-year-hacker-noon-noonies-awards-2019-hz2tu32ql
https://khalilstemmler.com/articles
SwyX: https://www.swyx.io/writing
https://gomakethings.com/resources/ ==> vanilla JS // See projects section for vanilla JS applications and tidy clean code.
As someone who has done software development exclusively on Mac and Linux, I have no idea how folks develop JS applications on Windows. Apparently they use a thing called "Windows Subsystem for Linux." I'm going to try installing it on my Windows machine and report back...
Just got a copy of https://www.superhi.com/learn-to-code-now-book for our reference, just fyi!
More emphasis cannot be put on making sure students can articulate their concepts and project needs through wireframes and sketching. Effective sketching and wireframing is a key skill for working on a team.
How to interface with a server / api / database
Some really cool webpack bundler wrappers that are basically zero config:
Check the GDrive Folder for the /Slides
directory.
I've started adding content to the various weekly slides.
One thing that comes up a lot is the need to store images. One quick-and-dirty solution is to store compressed small images as base64 strings in mongo, but better is to use static file hosting like S3.
This feels like an important thing to raise as considerations for development.
e.g. w/ heroku
https://devcenter.heroku.com/articles/s3-upload-node
Students should be able to get a brief and break down how to make simple prototypes of the larger web application in a way that shows they are on the right track. They should then be able to discuss how to bridge the connections between unconnected components so that they might fit together.
Make a website and dial up your Git jazzercize routine to the max.
git add
→ git commit -m "adds feature X"
→ git push origin
→ repeat
This Git disco will get you PUMPED UP.
There are SO many CMS options out there so in some ways the trick is to pick one and learn that one really well for commercial jobs or having a sweet blog for your awesome art mag collective etc.
Here's a list of ones I'm familiar with:
name | url | level | based on |
---|---|---|---|
jekyll | https://jekyllrb.com/ | intermediate | ruby |
GatsbyJS | https://www.gatsbyjs.org/ | intermediate - advanced | javascript / React |
KirbyCMS | https://getkirby.com/ | intermediate - advances | PHP |
Other Possibilities
name | url | level | based on |
---|---|---|---|
VuePress | https://vuepress.vuejs.org/ | intermediate - advanced | javascript / Vuejs |
WordPress | https://wordpress.com/ | intermediate - advanced | php |
KeystoneJS | https://www.keystonejs.com/ | advanced | javascript |
Hugo | https://gohugo.io/ | advanced | rust |
Strapi | https://strapi.io/ | advanced | javascript |
EnduroJS | https://www.endurojs.com/ | advanced | javascript |
Ideas:
Where can one do dev work for do gooder studios or other orgs?
Curated lists by cool people:
Not in any particular order:
(more to come)
I think Tania Rascia is one of the best (maybe THE best) writers of tutorials out there. At least something about the way she writes and structures everything really resonates with my brain internals.
Intro to the DOM
A basic HTML file
Design for Developers - structuring the DOM and styling
You don't need a framework for responsive design
Just a bunch of stuff I've made that are relevant for this course:
Backend:
* Express Basic Authentication:
* https://github.com/joeyklee/very-basic-express-auth-example
Pretty fancy stuff - maybe not for this class, but worth showcasing
A few readings on people's career trajectories into development I think could be interesting. I think it could also be enlightening in highlighting the difference between being and web developer (full stop) vs. using web development in creative practice.
Create a form for students to submit their homework that includes:
Open questions:
For reference:
I love this piece about "How to talk to kids" as a way of deconstructing feedback, suggestions, advice, and critique. Regardless of whether we're talking to children or adults, this type of conscientiousness is amazing.
https://www.theatlantic.com/family/archive/2018/06/mr-rogers-neighborhood-talking-to-kids/562352/
@catarak Based on the https://roadmap.sh I created a kind of "check list" for front end and backend concepts that might help our students to see where they are and where they might go with web development:
See:
Maybe each student can make a copy or fork it and then fill out these sections so they can map their own progress and knowledge gains/gaps.
@catarak - added a gues speaker briefing in the wiki:
https://github.com/itp-dwd/2020-spring/wiki/Guest-Speaker-Brief
Oh so many wonderful deployment options these days...
service provider | url | client | server |
---|---|---|---|
Github Pages | https://pages.github.com/ | ✅ | 🚫 |
Glitch | https://glitch.com/ | ✅ | ✅ |
Heroku | https://www.heroku.com/ | ✅ | ✅ |
Zeit | https://zeit.co/ | ✅ | ✅ |
Netlify | https://www.netlify.com/pricing/ | ✅ | ✅ |
In order of what I use / think are the most approachable:
Students should leave the class with the ability to identify the key requirements and needs when given a briefing.
In other words, students should be able to spec out the needs and requirements for their projects - identifying higher level needs (e.g. the project needs a database or data does not need to persist) and then drilling down into specifics (e.g. we will use mongodb)
Javascript Types:
https://www.taniarascia.com/javascript-day-one/
Fetch:
https://www.taniarascia.com/how-to-use-the-javascript-fetch-api-to-get-json-data/
Understanding events
https://www.taniarascia.com/understanding-events-in-javascript/
Navigating and using object methods
https://www.taniarascia.com/how-to-use-object-methods-in-javascript/
TBH, I feel like firebase is all over the place. Maybe once you get a hang of the API its great, but all their tutorials feel chaotic 😬
https://firebase.google.com/docs/web/setup
example:
https://github.com/firebase/quickstart-js/tree/master/functions
SuperHi! Is a nice ref - web dev for designers:
They use a different stack, but good for reference:
@catarak - I made a first pass at defining week 2 assignment.
One thing we should emphasize more in Week 2 is the design process of sketching ==> wireframing ==> creating a design in sketch/<insert design program here>
==> creating a style guide ==> then translating to code. I feel it might make it easier to understand how to go from content to a styled layout and features.
Create a google form to send to students to gauge their backgrounds/interests etc
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.