INFI-CON 2019, Maandag 27 mei

Learning at Lightning Speed

Jeroen Heijmans

INFI-CON 2019, May 27th

Welcome

INFI-CON 2019
.infi-con-2019:first-child { content: 'jeroen'; }
INFI-CON's common theme
What is the basis for technology projects?
A great Office? Customers? Agile?
I will highlight Learning!

About me

I'm a 'busybody', a 'meddler'...
Note: I'm also a cook...
I'm mainly a Jack of all Trades
Perfecting the art of learning

The framework

Caveat 1: there's existing theory
Caveat 2: it's about active learning
Bonus: it's also useful outside tech
My goal: inspire to learn in new ways.

The framework

A new framework...

Center: You!

Satellites: Methods.

Ring: Empathy...

Quickly about conscientiousness...

Conscientiousness is the personality trait of being careful, or diligent...

...they also are less likely to engage in antisocial and criminal behavior.

Let's talk Satellites!

1. Tests

Test your assumptions!


              [Fact] // "Test"
              public void Can_serialize_regular_object() {
                  var result = JsonConvert.SerializeObject(new Bar { Name = "Moe's" });
                  Assert.Equal("{\"Name\":\"Moe's\"}", result);
              }
              
              [Fact] // "Test"
              public void Can_serialize_dynamic_object() {
                  var result = JsonConvert.SerializeObject(new { Answer = 42 });
                  Assert.Equal("{\"Answer\":42}", result);
              }
              
              [Fact] // "Test"
              public void Can_serialize_circular_reference() {
                  var input = new Dictionary<string, object>();
                  input["Nemesis"] = input;
                  var result = JsonConvert.SerializeObject(input);
                  Assert.NotNull(result); // Fails! TODO: Invert assertion.
              }
          

Empathy

unveils biases that are hurting your assumptions

helps you write the right tests, in the right way

2. Questions

You learn from the journey, not the destination!

Empathy

helps closing the gap between your context and that of others

prevents wasting other people's time

3. Issues

You learn from the journey, not the destination!

Empathy

helps you learn about workarounds and solutions

prevents wasting other people's time

4. Repros

Finding your own resolution

Getting quicker resolution from others

For future reference

Empathy

helps you identify the key bits of a problem

has a net postive result for you too

5. Examples

Examples should be exemplary!

Empathy

helps you create more diverse and complete examples

6. Teaching

If you want to get good at something, start teaching it!

Empathy

makes you a better teacher

but also makes you a better student

7. Exploring

is the gateway to the other six satellites

            // Proposal TC39: Public/private class fields in Javascript
            
            class Tc39Test {
              #foo = "ryan";          // Private field!
              bar = "announcement";   // Public field.

              get old() { return "school"; }
              get backdoor() { return this.#foo; }
            }
            
            let thing = new Tc39Test();
            
            console.log(thing.old);       // "school"
            console.log(thing.bar);       // "bar"
            console.log(thing.foo);       // undefined
            console.log(thing.backdoor);  // "ryan"
          

Empathy

Don't explore only your own comfort zone!

Summarizing

Sattelites

  1. Tests
  2. Questions
  3. Issues
  4. Repros
  5. Examples
  6. Teaching
  7. Exploring

Enablers

  • Empathy
  • Conscientiousness

Thanks for listening!

Questions?

If there's time...

References

jeroenheijmans.nl

github.com/tc39/proposal-class-fields

cooking.stackexchange.com/questions/50468/why-place-potatoes-on-salt

cooking.stackexchange.com/questions/22405/make-a-palindrome-cocktail

cooking.stackexchange.com/questions/46531/classic-sauce-bolognese-ragù-bolognese

github.com/infi-nl/coding-dojo-netcore

github.com/jeroenheijmans/sample-angular-oauth2-oidc-with-auth-guards

github.com/jeroenheijmans/sample-auth0-angular-oauth2-oidc

youtu.be/q15eTySnWxc (about conscientiousness)