Yesterday. we had the pleasure and honor of interviewing Magnus Hagander - the winner of this year's Nordic Free Software Award. Well deserved after years of hacking and working for PostgreSQL. ... and needless to say, the focus for the interview was programming, education and pedagogy and believe it or not databases.
Name: Magnus Hagander
Age: 41. (Drat, should've postponed the interview until next year)
Education: Not-quite-complete Msc in computer science from KTH in Stockholm.
Funniest moment in your career: Funniest or funnest?
Main programming language: Does SQL count? Evenso, it's probably still Python, with SQL in second.
Favorite editor: Emacs (you had to go there..)
Favorite datatype: tstzrange
Favorite annoyance: Tabs vs spaces!
Wish I knew how to...: Make a UI that doesn't look like crap when I build my own simple webapps (or other apps for that regard)
OO, functional, imperative... or?: declarative? Or just an unholy mix.
Vi har känt att det är lite pinsamt gentemot våra arbetskollegor och studenter .. .. kanske även vår arbetsgivare i det att vi inte har koll på vad Systemvetenskap och Informatik är. Vi kände att vi måste försöka förstå ämnet. Vi kommer göra detta på en rad olika sätt och vi börjar i dag med att undersöka hur mycket tekniska ämnen olika universitet har på sina program.
Vår blogpost om saken: En jämförelse mellan olika Systemvetenskapliga utbildningar i Sverige
För några dagar sedan pratade vi med Mikko Helssing. Som vanligt var det mycket snack om programmering opch pedagogik. Och Python.
Name: Mikko Hellsing
Education: Datateknik CTH/Matetatikprogrammet GU Drop out
Funniest moment in your carrier: People trying to explain their brilliant ideas for revolutionary products that I should code for them
Main programming language: Python
Favorite editor: Vim
Favorite datatype: Dict
Favorite annoyance: Linux Desktop
Wish I knew how to...: ML and DSP programming
OO, functional, imperative... or?: Imperative
Det mesta vi tar upp i denna pod är kritik av andras grejer så det är väl inte mer än rätt att vi dissikerar vår nuvarande kurs och dess material. Vi tar upp några störande, men ganska roliga, misstag.
Kursen vi jobbar med just nu heter TIG058 och hålles på Göteborgs Universitet. Vi fick inte så lång tid på oss att jobba med kursen, men tackade ja trots de blygsamma 42 dagarna att ta fram en ny kurs. Kanske, eller förmodligen säkerligen, hybris. Men en rolig utmaning. VI skrev under dessa 42 dagar i snitt:
- 285 rader Java-kod (per dag)
- 0.5 presentationer eller 10 slides/sidor (per dag)
- 2 videofilmer (per dag)
- 1.3 artiklar (sidor) i wikin, vilka motsvarar 5 A4-sidor (per dag)
... och nej, vi hann inte detta på 42 dagar. Vi fick jobba en hel del övertid, inklusive jul och nyår. Tack famlijerna för att ni var ganska överseende med att vi var så uppe i varv under julhelgen. Dessutom har vi jobbat på kontoret alla fredagar - vilket inte verkar vara standard på universitet.
Tusen tack till alla studenter som har överseende och ibland ser att vi har en ambition att bli bättre. Speciellt tack till er som har varit tydliga och framfört kritiken eller ställt befogade frågor på ett konstruktivt sätt. Tack också alla handledare - helvete vad buggar ni hittat innan studenterna gjorde det.
I fredags snackade vi programmering, undervisning och annat med Jozsef Csongvai och Johan Lorentzon. Det mesta av samtalet kretsade (surprise!!) om pedagogik/didaktik med många intressanta reflektioner dessa båda till oss tidigare elever.
Name: Jozsef Csongvai
Education: Java Enterprise (YH), Bachelor of science in business & economics
Funniest moment in your carrier: once named a reference to a JSON Transporter object: jsonStatham
Main programming language: Java
Favorite editor: IntelliJ for java, VS Code for basically anything else.
Favorite datatype: THC is mindblowing. (Typesafe Heterogeneous Container)
Favorite annoyance: NullPointerException
Wish I knew how to...: write code in assebly language
OO, functional, imperative... or?: Love the concept of functions as first class citizens, and hope to go all-in functional some day. Until then, I'm quite happy with a balanced and somewhat contradictory mix of OO and functional.
Name: Johan Lorentzon
Education: Almost Bachelor degree in Construction Engineering. Made the classic ”mistake” of starting to work too soon. Java Enterprise 2 år (ni professorer vet väl kanske vad en sådan utbildning på YH heter på engelska?)
Funniest moment in your carrier: Chaned ownership of / on my workstation first day of work and asked devops why my shit wasn’t working
Main programming language: Java
Favorite datatype: JSON, Optional
Favorite annoyance: People chewing with open mouths. I mean, what the f?
Wish I knew how to...: Make a computer game
Idag har vi snackat lite programmering, test, undervisning och annat med Patrik Willard. Patrik jobbar med test på Ericsson.
Name: Patrik Willard
Age: 36 or something...
Education: Bachelor degree (The programme was Software Engineering and Management @ ITU, but didn't complete some of the necessary courses to get a "BSc in applied IT" or whatever the title would have been)
Funniest moment in your carrier: First of all, I have to be /that/ guy... s/carrier/career/ Secondly, do you really mean funniest, or more like "happiest/most rewarding"? Funniest: got to experience a "bedlam-dl4"-style "reply-all" mail storm Happiest: the realization that the impostor syndrome guilt I'd been carrying around was mostly unfounded.
Main programming language: Python, hands down, for reasons such as:
- Batteries included (cue relevant xkcd 353)
- The whitespace thing (indented code is readable code)
Python simply made programming fun again, and that's what I write mostly, both at work and privately.
Favorite editor: That would be Vim (but before I start a religious war, let it be known that if I were logged onto a system that had vi, emacs, sed, ed, and nano, I'd pick emacs, sed, nano or ed, in that order, before using vi.)
Favorite datatype: Shit I don't know... it it walks like a duck and quacks like a duck... y'know? Otherwise I guess booleans are pretty cool.
Favorite annoyance: Managers and/or other decision makers having no clue about the decisions they're making, or how it affects others.
Wish I knew how to...: plan my time better.
OO, functional, imperative... or?: Most of the stuff I write tend to be imperative. I might create a class here and there, but usually they end up being more of "data-containers-with-some-useful-processing-functions-attached", rather than something layered with interfaces and the likes.
Daniel was interviewed by Juneday over mobile phone in September 14, 2017
Name: Daniel Stenberg
Age: I'm 46 years old.
Education: Totally uneducated - well, lack of formal education. I only did twelve years of school (ie I never attended university). After I got a my first job (at IBM) things just took off and I never looked back again.
My computer education started out with Basic and assembly on the C64 and subsequently C on the Amiga. Of course I've never stopped being interested in computers, technology and software development so I've kept reading, trying, learning, programming on spare time and at work ever since.
Funniest moment in your carrier: I've had many really good moments in my carrier. Some of the most recent ones include:
- When I was hired to work for Mozilla in 2014, turning my spare time programming and hobby into my full time work.
- When I was awarded "second best developer" in Sweden last year: https://daniel.haxx.se/blog/2016/12/01/2nd-best-in-sweden/
- When I recently realized my code (curl) runs in virtually every Mercedes car model. (and BMW, Audi, Nissan, VW, ...)
Main programming language:
I would say C. That's the language I've written the most code in and the one I still use most. C++ is a contender since that's what the core parts of Firefox is written in that I work with at my day job, but I often find myself fighting the ++ parts than I really like them so I prefer to stick to C...
Favorite editor: Emacs! I learned my first baby steps with emacs back around 1991 on my first unix-related work and it has been with me since. I feel at home and I consider myself fairly productive using it. I don't try out new editors and I don't see myself ever switching away to something else.
Favorite datatype: I think I would have to say 'unsigned char' purely based on its simplicity and the fact that it is always 8 bits on all currently existing platforms and compilers. Also a type that is small enough that things like integer overflows are immediately visible and impactful so we need to deal with them, while they tend to be forgotten or ignored much easier on the larger data types (that then also have the bad style of changing sizes for different targets).
Favorite annoyance: When people who have a question or an issue with an open source that I am involved with, email me privately to ask about it or request some action from me. Things related to public open source projects should be kept on the mailing lists or the bug trackers as far as possible!
This happens almost daily these days and I almost always reply to ask the user to instead use a mailing list or a bug tracker...
Wish I knew how to...:
Oh, I basically wish I would be better at everything I do. Perhaps in particular some of the "softer" areas like dealing with humans and why not my English writing skills and vocabulary. But I also think I actually do improve in several areas over time, so if I'll just live long enough...
OO, functional, imperative... or?: The right tool for the right job, I think. But for me personally, I tend to pick the jobs that goes wells with the tools I like... I'm conservative when it comes to languages etc so I basically stick to the languages I've used for a long time and practically do not try out new ones. So, imperative without too much OO for me please. Stirred gently on a unix stove. =)
- Rikard and Henrik mentioned a paper by Ken Thompson during the interview (they simply wanted to brag about knowing stuff) and here's a link Reflections on Trusting Trust written in 1984.
Today we've spoken to Johan Thelin about pedagogy, programming and tons of other things. 30 mins approx.
Name: Johan Thelin
Age: 38 (born 1979)
Education: MSc E.E., or as the exam says, Civilingenjör. Studied at Chalmers.
Funniest moment in your carrier: Funny as in laughable might have been when something failed spectacularly (I cannot remember anything specific that works out of context right now).
My most enjoyable moments usually are the end of the worst moments. Showing a great demo at CES after having done a real crunch over Christmas, or seeing my writing in print after having worked on it for more than a year.
Main programming language: C++
Favorite editor: QtCreator, kate and vim, depending on what I do.
Favorite datatype: I like the nibble. Almost forgotten.
Favorite annoyance: Using the wrong tool for the wrong problem. Currently, I really despise desktop programs based on web frameworks. How could I do DTP on a single megabyte if you need half a gigabyte to show instant messages?
Wish I knew how to...: Manage my time properly and finish my tasks on time :-)
OO, functional, imperative... or?: Depends on the task. I tend to think in data structures and how to modify them. Sometimes it makes sense to wrap that into objects, sometimes it does not.
Vi har börjat spela in en liten filmserie som vi kallar "Så mycket sämre". Tanken är att vi tar kod som är i ett ok skick och gör den sämre ("så mycket sämre"). Det är ett försök att på ett lite roligare sätt diskutera kodkvalitet.