..
Timestamp: 2023-05-01
As a tech person, what might one learn?
That’s a hard question. Our industry is moving, and our tools are
chaning. And as we get better, the speed of change increases.
I don’t presume to be able to find a final answer to this question.
I’ll aim for:
- Clarity
- Then lindy compatibility
(where possible)
Here we go. In a mix of Norwegian and English, sorry.
- HTTP og servere
- Hva er en HTTP-request?
- Headere
- Body
- HTTP-request med Curl
- HTTP-request med js-fetch
- Inspisere HTTP-requests i Firefox / Chrome
- Skriv en HTTP-server i Go
- Kjør den lokalt
- Kjør den på nett
- Hvordan serve HTML
- Hvordan serve JSON
- Hent ut headere
- og skriv til logger
- og skriv til body
- sett andre headere med curl
- —
- GraphQL
- GRPC/protobuf
- https://avro.apache.org/
- Teknikker for serialisering og deserialisering når du mapper fra
body (string) til typer i språket ditt.
- Testing og andre teknikker for å vite om koden gjør den du
tror den gjør
- Enhetstester
- Hvordan kjører testene i CI?
- —
- Integrasjonstester
- Property testing
- Utviklingsprosess.
- Hvordan spille andre gode.
- Jeg er fersk, og jobber sammen med en erfaren utvikler. Hvordan kan
jeg hjelpe grinebiteren å ha færre problemer i hverdagen?
- Jeg er erfaren utvikler. Hvordan kan jeg hjelpe en nyansatt å gjøre
en god jobb?
- Hvordan kan jeg hjelpe en produktleder eller prosjektleder?
- Produktledelse og teknologiledelse — hvem skal jeg spørre?
- Hvordan jobber jeg med en designer?
- Hvordan shipper jeg det designeren har tegnet opp?
- Interaksjonsdesign vs grafisk design.
- Parprogrammering
- PR-er
- hvorfor+hvordan bruker vi PR-er i dette teamet?
- unngå bugs?
- lære / lære bort?
- Hvor stor PR er dette?
- Gjør du én ting eller mange ting?
- Hvordan skrive kode for å kunne shippe mindre inkrementer.
- er det mulig å skjønne hva du har gjort?
- klarer du å uttrykke det konsist?
- bør du inkludere bilder, figurer eventuelt en video? Github støtter
opplasting av media rett i PR-beskrivelse.
- hva ønsker du feedback på?
- —
- Feature-flagging
- Ensemble-programmering
- Gradvis utrulling
- Databaser og datamodellering
- hva er en database
- state i database, ikke andre steder
- databaser og miljøer
- SQL 101
- prøvekjøre med sqlite og sqlitebrowser
- hvorfor?
- kjempebra å bruke til å lære bort SQL. Håndfast, lett å installere,
og du kan se tabellene.
- Databaser på Iterapp
- hvordan kommer du i gang? et eksempel du klarer å kjøre selv, der du
lager en bitteliten app med DB som kan gjøre noe.
- Migrations
- —
- PostgreSQL-spesifikke ting vi bør vite om?
- SQLite
- Putting “non-obvious” stuff in the database
- one database vs “We have PostgreSQL, Redis and an object
store and we don’t know where to put things”
- tester og database. Hva kan vi gjøre? Får vi skrevet tester på kode
som bruker databasen?
- CSS
- Hva er en anbefalt måte å begynne å skrive CSS på?
- React
- Sikkerhet
- Unix og Unix-verktøy
- Editoren min - en investering.
- Git
- Terminal emulator and shell
- Different shells: bash, zsh, fish, sh
- Terminal enulators on Mac: iterm (built-in), kitty, alacritty,
iterm2, …
- —
- POSIX - the things you know will work.
- Curl
- jq
- Environment variables
- Command line arguments
- Jobbe med filer
- filer som stdin, stdout
- temp-filer
- “namespacing i filsystemer”
- Små, skarpe verktøy
- Pipes
- hvordan bruke pipes til å koble sammen andre programmer
- hvordan skrive egne programmer som funker godt med pipes
- “Operations”: Når appen din kjører i prod
- Feil og logging
- Hvordan får du appen din i prod den første gangen?
- Skriver du loggmeldinger som du klarer å lese?
- Hvordan får du vite at noe ikke funker?
- Structured logging.
- —
- Miljøer
- Dev og prod
- Eller dev og test og prod
- Docker
- Hvordan skriver du en dockerfile?
- Hvordan tester du om en dockerfile funker? (–entrypoint bash)
- Dockerfiles til Iterapp
- Github actions
- Kubernetes
- Backup og gjennoppretting av databasen
That’s all for level 1. Topics that can be postponed are put below
the “fold” (the horizontal line)
- Modularitet, API-design og systemdesign
- Interfaces between modules
- Typed interfaces in programming languages
- Go:
interface
- Java:
interface
- Typescript:
interface
- Rust:
trait
- Haskell:
class
(typeclass)
- Clojure:
protocol
(java interface
also supported)
- CQRS and event sourccing
- Idempotence
- Immutability
- Teodor opinion prefer shallow hierarchies
- build namespaces, not taxonomies.
- Data and serialization. Cycles.
- Functional programming.
- Types.
- Data.
- Pure functions.
- System-level functional programming (eg using GET requests with
immutability and caching)
- Types and type systems.
- Types in object oriented languages
- Types in functional languages
- Elm
- Haskell
- Clojure
- Elixir
- F#
- Declarative programming
- HTML
- SQL
- Prolog
- Minikanren
- Datalog
- Ytelse
- Allokering
- Dataorientert programmering (tenk på hvordan minnet ditt
funker)
- Finn ut hva som er tregt med tracing
- Hvordan ytelse påvirker brukeropplevelse
- Trege og raske CLI-verktøy – og hvordan de er bygget
- Mobilutvikling
Spør etter: under hver kategori, hva bør vi gjøre?
Helst: så vi er klare for nyansatte i august.
teodor sammendrag
- viktige spørsmål:
- hvordan skal vi bruke lista til å hjelpe nyansatte denne uka?
- hvordan skal vi bruke lista til å hjelpe de som starter i
august?
- skal vi bruke kateogriene til å holde oversikt over “artifacts”
(feks sammendrag spillutvikling)?
lista er fin. Spørsmålet er /“hva gjør vi nå???”/