Giter Club home page Giter Club logo

Comments (8)

jmmastey avatar jmmastey commented on August 30, 2024

Spoke to @fengb a bit on this one. There are basically three options:

  1. Use the existing exercises
  2. Add more exercises to Engineering I
  3. Build a new course.

I think (3) is the only good option. The existing course is long enough as it is. Similarly to the perf course, I think you could build a single app up from more rudimentary bits and pieces for this.

Questions:

  1. What constitutes the frontend stack you want to target. Ember? Angular? POJS?
  2. Do you have folks to help code review?

Flagging @djkotowski as Enova's UI guild had talked about a more in-depth UI course before. Anyway I think this is a good idea.

from level_up.

fengb avatar fengb commented on August 30, 2024
  1. My current goal is probably POJS as the frontend environment changes so quickly and the basics can be applied across any environment (including mobile and node.js)
  2. Should be able to get code reviews, depending on workload

from level_up.

djkotowski avatar djkotowski commented on August 30, 2024

We're looking to build a "200-level" Advanced UI course for newish hires. After they complete Engineering Baseline I, new hires get assigned to a team. The 200-level courses would be a part of their continuing professional development.

from level_up.

jmmastey avatar jmmastey commented on August 30, 2024

@djkotowski That sounds like Engineering Baseline II (another thing that actually exists in the codebase but is not turned on). Is that what you're talking about? I think this would probably be a UI-only thing. Hrm.

from level_up.

jmmastey avatar jmmastey commented on August 30, 2024

Okay, @fengb, so usually I start on these w/ a list of things people need to know (esp. the ones they suck at). There's some very very basic stuff in Interaction I, but not much. Some thoughts:

Javascript: organization patterns (something to make them neat). unobtrusive stuff. bubbling.
Async: your list is pretty well spot on. not sure whether anyone does event loops in POJS? if not, what framework would be easy enough to add?
DOM: ehh... no idea. what could someone learn here? is this maybe just part of tagging elems with behavior?
HTML: semantic markup. newer html5 elements, especially form elements.
CSS: pain points seem to include positioning and sizing. basic animation?

I know @brousalis also did a course at Enova, which was good. Maybe he has curriculum he already built too?

Thoughts?

from level_up.

fengb avatar fengb commented on August 30, 2024

I would like a separation of JS and DOM/HTML/CSS. General JS knowledge is pretty useful on its own (node, browser-based backend, even mobile). So maybe two separate courses:

  • advanced Javascript - "the good parts", prototype, async
  • advanced UI - semantic web, progressive enhancement, navigating a DOM, rendering quirks

I think this approach could work better because we already introduced JS and these concepts are pretty orthogonal.

Maybe we should also use CoffeeScript instead of Javascript? Despite my grievances, it's a lot less quirky to start with.

On event loop: it's one of those nice to know low-level concepts, but I can't think of a practical use so maybe it's not really necessary.

from level_up.

jmmastey avatar jmmastey commented on August 30, 2024

Okay, so for POJS, maybe provide some basic HTML running on a Sinatra app (if any backend is needed), then ask them to progressively add to it using event-driven behavior / templating / async loading. Data binding? Trying to think of an app that's sufficiently simple but also would respond well to those sorts of changes. Recipe website (to add sarcasm, have it randomly switch ingredients and then ask for a rating), or something like 99designs (again w/ bonus sarcasm). We could provide all the templates so they're only worrying about wiring them to each other. Or would you prefer something 100% JS (node, Ember, Angular, etc)?

For visual stuff, same basic idea (maybe if the above becomes node, this becomes that). But add new sections to an existing page. "Add a new voting widget to the sidebar." Use HTML5 to mark it up, including shimming new field types etc. Add JS behavior (navigating DOM). What would you do for rendering quirks?

I don't know about coffee. Not against it, but not sure if I'd really teach it.

I feel like this is close to being actionable :D

from level_up.

jmmastey avatar jmmastey commented on August 30, 2024

Closing as this didn't result in any action. Let me know if you still have some need around this.

from level_up.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.