[dev nexus 2024] teaching your kid programming from the perspective of a kid

Speaker: Cassandra Chin

@cassandraonjava

For more, see the 2024 DevNexus Blog Table of Contents


General

  • Steven Chin’s daughter.
  • Worked with coding and YAML in MInecraft
  • Starting teaching kids to program at 14 at conferences
  • Junior in college
  • Creating podcast at internship for younger people (ex college)

Tech diversity

  • 20 years of feale tech panels and still need
  • Women who try AP Comp Sci in high school ten times more like to major it.
  • Black/Latino students seven times more lilkely.
  • Need to provide opportunity
  • Even at 6 year old, kids think computers are more suited to boys. Fifth grade it tapers down so sweet spot for starting.

Kids and code

  • Schools mandate human/world languages, but not coding languages
  • Since schools dont always provide, parents need to
  • Not all screen time is equal
  • Limit youtube
  • Minecraft in middle
  • Best use is learning to code – ex: Scratch
  • Redirect computer use vs taking away

Mistakes for parents to avoid

  • Don’t leave your daughters out. Bring to tech event
  • Computers at home matter – an actual computer, not a tablet. Lets do more than play mobile games
  • Don’t need to be good at math. While Assembly requires math, nobody uses anymore Modern programs use logic, not math
  • Kids dislike math the most followed by foreight language. Computers is third highest. Both things above are types of art.
  • Don’t start with books like Discrete Math
  • Give examples of programmers that they can relate to
  • Don’t start with boring parts like what an array is. Better to start with legos
  • Don’t do the code for the kids. They won’t learn. Never grab mouse or keyboard. Means content too har

Geniuses

  • Anyone can learn to code. Don’t have to be super smart.
  • Kids told programmers are genious do worse than kids who think practies will make them better

Books

  • Phippys AI Friend – comes with online workshop that takes about an hour. Actually use boo as prop
  • Coding for Kids Python
  • GIrls who Code

Helping kids

  • Relate to your kids hobbies. Ex: discuss who built
  • Lego Spike – build robot and do block coding
  • Mbot (Make Block). Uses screws instead of legos. Don’t have to use blocks
  • Hour of Code. Lots of themes
  • Choose age appropriate. Often we choose twoo hard
  • Squishy circuits for 3-9 year olds
  • Raspberry Pi and Arduino – 9-15 years old
  • Groups of two works best. When three kids, the younest will often feel left out
  • Take kids to localy run workshops – ex: confernces, girls who code

My take

I like her responses to Todd’s mini interview a the begining while they dealt with AV issues. Great humor. I liked that she made a joke about her dad being there to tell jokes. I also like “I’m not the daughter of Steven Chin; I have a name”. Great content throughout hether new to the topic or not.

The content resonated well. I gave my best friends five year old (daughter) a toy robot for her fifth birthday. I enjoyed seeing her play. I now have a gift idea for next year!

I also liked the demo from her book!

[dev nexus 2024] a glance at the java performance toolbox

Speaker: Ana Maria Mihalceanu

@ammbra1508

For more, see the 2024 DevNexus Blog Table of Contents


What is performance

  • From user POV, how much work can do in a reasonable amount of time
  • From business, what is cost in computational resources needed to provide that user experience

Cloud

  • Practically unlmited resources
  • Reasonable cost

Container images

  • Tools to build container images – docker, jib, kaniko, buidah, etc
  • All started with a Dockerfile
  • Other tools arrived later to make easier

JLink

  • JRE stopped being included in Java 11
  • Can use jlink to include custom JRE with just modules need.
  • Can also omit man pages and header files.
  • Compress zip-9 offers the best compression.

Fine Tuning JVM Flags

  • Ergonomics docs – process for JVM/GC to tune performance measures
  • Tune min/max heap size with -Xms and -Xmx
  • Consider Java heap ratio

jcmd

  • Tracks native memory
  • Want available in container
  • Add jdk.jcmd module to application

Other commands/tools

  • Use jinfo to see what flags used in app
  • Helps when don’t know all flag names
  • Look for amount of memory reserved and amount used
  • Look for big values
  • JConsole – can see graph of memory use
  • jstat – garbage collection statistics
  • jmap – histogram of heap summary
  • Profiling with Java Flight Recorder – use when looking for something, not all the time. Need jdk.jfr module. Can specify how long to record.
  • Prometheus server – monitors/alerts on events
  • JFR Streaming – sends metrics to monitoring service

Sample app for testing at https://github.com/ammbra/performance-glance

My take

Good information and good demo. It was nice seeing the commands actually get used. Clear how to apply.

gson supports records

I like using records in Java and getting rid of the boilerplate on my immutable objects. I also like using gson (google’s serialization/deserialization library) for my lightweight JSON needs. All I need is an annotation to use a different field type. (For complex parsing I use Jackson)

Suppose I want parse this

var json = """
   {"first":"Mickey",
	"last":"Mouse",
	"birth_year":1928}
	""";

For example before records, I would write:

class Name {
	 private String first;
	 private String last;
     @SerializedName("birth_year") int birthYear;

     // boilerplate methods
}

I needed to use my IDE to generate a constructor, getters, and a toString(). And additionally, equals/hashCode if needed for that class.

In Java 17, I switched to records. I didn’t realize I could use them with gson annotations until recently. Turns out all I need to write is:

record Name(String first, 
   String last, 
   @SerializedName("birth_year") int birthYear) { }

The parsing code remains the same

var gson = new Gson();
var name = gson.fromJson(json, Name.class);
System.out.println(name);