## 07:48 plmw notes
### where do you want to make an impact?
- where are you goyng to focus now?
- what interests are most valuable to explore now? what shuold be tabled
for later?
- the grass is not greener over there - need to produce research
at some point! find wnat you're doing now useful!
- churning through a bunch of things without publishing is bad - define
a scope for your research topic and work at a point, and use that as a
jumping off point to learn.
- you have to fully commit! can look around a bit but have to punch in
on one topic and finish.
### ensuring learning
- to learn, try to use it! hold yourself accountable. can you prove a
theorem? can you write some code? make sure to do something formal.
- research: just as much a topic as it is about the person behind the
work to guide someone with learning.
- make the best decisions locally and understand how they pan out
globally
### managing 'drinking from the firehose'
- avoid being overwhelmed! do not go to every session!
- not worth trying to understand everything - try to optimize what you
take in; if you want to understand anything you can't worry about
that!
### getting most ouf of your advior!
- need an undergrad montor - need to learn more about pl faculty, even
just in a few minutes!
- poke around at the conference to find out what you're interested in!
- contact the faculty to learn what others are planning to do/ email,
connect with, reach out to others!
- make sure research interestss match! you'll have a much worse time
otherwise.
- what are your own missions? what do you aspire to be? what questinos
should you be asking these future advisors?
- financial incentives; funding in the long run matters much less so
long as basic needs are met. biggest factro is advisor fit
- don't worry about prestige - do what you want! work with the advisor
who is the perfect fit for you!
- count of papers have no importance - what *impact* did they have?
should have a sense of other students being productive.
- getting involved: can start in year 2! intro CS course - teach things
at the end of the course to introduce ideas; run a reading group in
the spring and see where things go from there!
- ask to spend a semester just reading papers without actually doing any
work! just a bit of time showing up and reading. build up a
relationship. follow up!
- very good to have research experience, though publication is by no
means necessary. looking for testimony - what are you like?
- always keep good notes on research interests and questions. always
follow up on them! these are things to be explored more!
- watch conferences for everything - understand what others take for
granted and don't!
- department is a safe space to make mistakes and learn - discuss! talk
about work in progress! ask questions! these things are needed to
grow.
- don't let the urgent trump the important - put research before
classes. your job is to work on a daily basis, and doing work daily is
the most important - moreso than working in bursts. you're in it for
the long haul!
- don't avoid advisor - much slower progress! take time to make lab
friends to expand support and learning network.
- help pick the starter project! make sure people care about it. should
help develop technical skills; not just 'go read papers and find a
problem'
- your advisor is not just your boss - the biggest product of a phd is
you! they're your mentor, collaborator, evaluator, promoter, source of
support and more. it's your wirk; advisor is just here to support it
along the way.
- develop strategies for engaging so that your needs are met. keep
following up! keep planning the future! what's the next step? what's
the next work?
what do I want?
### learning to use editors better
1. add some keyboard shortcuts with semantic knowledge of the code
2. write those shortcuts down on paper or in a document that will be
readily available
3. consciously practice them until they stick! i don't know enough of
them yet.
### metatheory
cannot pattern match on functino bodies in agdaa, ocaml - functions are
'black box'. must examine inputs and outputs contextual modal type
theory: model context and holes in our language! give a hole a name: a
contextual variable. can instantiate with a contextual texm, reifying LF
typing derivations! build a proof system for manipulating these
contextual objects - to get proofs as functional programs! abode the
water, we have induction, case analysis, quantification; allowed to
pattern match on contextual objects in beluga instead! write as
recursive program; abstract over contexts, higher order pattern matching
Learn more about Beluga! meta programming fox contextual types: allowing
system f to match on itself. contextual types provide high level
framework; broad, logical foundation for working with well scoped
programs. learning theorem provieg: skills are transferable; just pick
one to learn and roll with it! the most important thing, like all
things, is to start - without starting nothing can be done.
### emotional machines
turns out feelings are very important indications of what we want, need
and believe in! we have certain biological needs and require emotional
maintenance! mental health is fundamentally a social endeavor - talk to
others!! get stuck in 'loops of distraction' instead of dealing with
what you want do deal with; avoiding using whatever vice you have access
to. unhealthy 'fawn response' - keeping safe through appeasing others.
contrarily develops aversion to saying no and ending up deeply
overcommitted to others! freeze response: procrastinate, isolate,
withdraw, narrowing life, dissassociation; anything but engage with the
topic that gives you this emotional struggle
tolerating your feelings: listen to all of them, then decide how
to respond to them. making new choices than what we're comfortable with
is profoundly difficult - but the more we resist our instant emotional
responses, the better we can rationalize and make decisions that are
better for ourselves. the first step to fixing these behaviors is
identifying these behaviors and working on them, navigating those
feelings and behaviors so that you become more accustomed to these
healthy responses.
combining this with management and leadership roles: these things are
even more important when you're responsible for others! cannot project
your on feelings onto those you're trying to support!
### writing papers
come back to this! talk and essay by derek dryer.
### pl for expressing data structures!
abstraction to allow linking to single implementation of ADS, proven
correct with a standard language toolkit contains a language extension
or expressing these data structures, a type system, and a type safety
guarantee that only a hash collision can invalidate the security of the
data structure parsing away sql solutions for security
verifying data planes: network misconfiguration can make things
unreachable, poorly route packets and decrease quaiytl of service p4:
language for programming data planes on routers. verifying the p4
language
- guarded command language to express and model p4 programs
- define control interface and preconditions for programs
barriers to entry: PL expressive notation! difficult to understand and
therefore use. need better education, tutorials, and other things (like
distill.pub) and others. standardize notation! many use their own
curtomized notation rather than a general one - still.
there are far more building builders than brickmakers; but this makes
working in developer tools far more important. working on tools others
use has this multiplicative, compounding factor; a compiler optimization
optimizes every program written with that compiler! This power to
have a disproportionate impact on programming and program development is
incredibly valuable.
### Teaching functional programming
- wadler: scheme is a terrible approach! doesn't support typing or
pattnrs matching like miranda! (frequent fallacy: i like the language
== we should use the language to teach)
- cognition is fundamentally different early and late in training (The
Children's Machine: instructionism vs constructionism: accesss to
information = learning???? nice to believe in self determinism, but in
practice this is not feasible.)
- biggest mistakes:
- studentr are like us
- what i love must be great for teaching
- students will 'figure things out' given the right toolsz
- excitement is or leads to copetency or equitable learning