Tereza Sokol
Community, learning goals, and the big picture, with Tereza Sokol
Tereza is a front-end developer obsessed with the Elm language. NoRedInk, a platform helping millions of students learn how to write, nabbed her after spotting her skills. Tereza is also the creator of Elm Plot - a graph plotting library built in Elm.
Your browser doesn't support HTML5 audio
Time Stamped Show Notes
0:50 – Tereza is from Copenhagen, Denmark, and has been coding most of her life. She learned BASIC and Komodo 64 before she learnt english. She recalls how surprised she was when she realised ‘if’ and ‘then’ were actual english words. When she’s not coding she likes to read fiction (philosophy, political science, and psychology). Tereza believes writing literary works is a beautiful process and finds it similar to writing code.
2:41 – Tereza enjoys the design part of software development. She likes how logic can be expressed in software engineering, how malleable it is, and how it presents opportunities to design entire languages. That’s why she’s really into Elm. Tereza also wants to get into Haskell to work on the compiler.
5:19 – The worst experience Tereza ever had on a project was when she worked as a consultant. She was helping develop a platform for video streaming. There were multiple issues: refactoring was never planned, no one had a strong connection to the project which was evident in the code, there was only one permanent staff member writing code, and management were only interested in finishing on time, ignoring important issues.
9:04 – The outcome of the project could have been improved had a language that enforces restrictions on what you can do and has a clearly explained architecture been used. Elm is one such language. Elm is one of Tereza’s most necessary development tools when working on the frontend.
9:50 – Elm guides you quietly towards functional programming. There’s a lot of focus on creating really good documentation. She recommends you start off with simplest examples and build from there – like a story. It took Tereza a few hours before she could create a small application, and only 2 to 3 weeks to feel completely confident. Elm encourages you to think of the data structure before starting to code.
10:59 – She currently works with a huge codebase at NoRedInk. They use Webpack to bundle it all, but compilation can be slow and frustrating. They’re building an internal project called Jetpack to bundle their assets. She thinks it might become open source at some stage.
13:30 – Tereza is excited about her own project, Elm Plot, a graphing library built in Elm that she’s built with some of her colleagues.
14:02 – In addition to being excited about Jetpack, Tereza’s also excited about getting into Haskell, and another Elm project – Elm CSS.
14:55 – Tereza spends a lot of time working on Elm. She sticks to the Elm community. She also has a strict learning schedule. Every Saturday she logs her goals – what she has to do and learn.
15:50 – Tereza decides on items that go into her todo list by what will assist her workflow at that time.
17:00 – What has improved the way Tereza writes code most is thinking about how it feels while writing code, and learning to stop when she gets frustrated because it’s easier to write bad code when frustrated.
18:03 – She also likes to look at problems from a design perspective/broader perspective. She asks herself what problems she can batch into a single problem to solve.
Quickfire Questions
18:54 – Best advice about programming
Linus Torvalds once said that a good programmer thinks about data structures, while a bad programmer thinks about code. This is some of the best advice Tereza has ever come across. She’s a fan of taking a long time to think about data structures before she starts coding.
19:26 – Habits for writing better code
Taking breaks and thinking about the big picture makes her write better code. Take care of yourself, don’t work too hard (like 10 hours in a row), drink water, and eat!
20:00 – Book
Clean Code by Robert Cecil Martin. It covers tools and methods to write cleaner code, as well as naming, structuring, and consistency.
20:43 – Inspiring devs
Evan Czaplicki, the designer and developer of Elm. In addition to being technically skilled, Evan’s integrity and loyalty to quality is inspiring.
21:40 – How to learn code from scratch
If Tereza had to learn to code from scratch she would seek someone who knows code already to guide her.
21:52 – Drawing diagrams, which is something that is a lot easier with functional languages. She finds the classical diagrams she drew of ‘if’s and ‘then’s to be helpful when creating a picture of an application.
22:14 – Tereza also enjoys reading manuals, and read through the entire Javascript API on Mozilla and W3 Schools. She was quite overwhelmed at first but found it gave her an idea of what’s possible. She didn’t try and remember everything.
23:38 – How to work smart
Be aware of your mental state and emotions. Use the emotions to motivate you to reach your goals. Being extra conscious and self-aware can help you reach your goals easily.
Tools, Tips, and Books Mentioned
Contact Tereza
twitter: @tereza_sokol