Jerod welcomes new panelists Emma Wedekind and Divya Sasidharan to the party! We get to know these two amazing ladies and then open up the conversation to talk about what’s on their mind. Divya broaches the nuanced topics of keeping up with the fast pace of the developer world while maintaining balance and Emma wants to talk books.
Featuring
Sponsors
Rollbar – We move fast and fix things because of Rollbar. Resolve errors in minutes. Deploy with confidence. Learn more at rollbar.com/changelog.
Linode – Our cloud server of choice. Deploy a fast, efficient, native SSD cloud server for only $5/month. Get 4 months free using the code changelog2019
. Start your server - head to linode.com/changelog
Manifold – Manifold is the easiest way for you to discover, buy, and manage the best developer services for your application, regardless of your cloud. Discover the best cloud services for your projects at manifold.co
GitPrime – Download GitPrime’s 20 Patterns book, a field guide to help engineering managers recognize achievement, spot bottlenecks, and debug development processes with data.
Notes & Links
- Listen to this episode of The Changelog for more on Emma’s writing and mentoring efforts
- The Heroines of JavaScript Trading Cards feature 3 of our panelists 🙌
Books!
- Atomic Habits by James Clear
- Start with Why by Simon Sinek
- Malcom Gladwell’s Outliers
- Refactoring UI by Adam Wathan & Steve Schoger
- Blinkist is not a sponsor… yet! 😜
- Or you can just learn How To Talk About Books You Haven’t Read
- The Mythical Man-Month is a classic
- As is The Pragmatic Programmer
- The You Don’t Know JS book series
- Professional JavaScript for Web Developers by Nicholas Zakas
- Here’s Code Complete in PDF format
- Learning JavaScript Design Patterns by Addy Osmani
Transcript
Play the audio to listen along while you enjoy the transcript. 🎧
My, oh my! We are here for a party, and we are excited… Because we’re always excited on JS Party. But especially today, I have a couple of new panelists!
Yay!
We have Divya Sasidharan and Emma Wedekind. Emma’s joining us all the way across the pond. Divya joining us from Boston. Ladies, we’re so happy to have you here!
Yay! Happy to be here.
Yeah, thanks for having us.
We are gonna dive into lots of interesting conversations today about JS, the web, books, all sorts of things… But first, I need to tell you all about a raffle that we’re doing. You know we like to go to conferences and represent; the next conference we’ll be at is NodeConf Colombia. Kball will be representing JS Party there. That’s on June 21st and 22nd in Medellin, Colombia, and our good friends there have been so nice that they’ve donated a ticket for us to give away to one lucky listener.
Here is how it works - there’s two ways to enter, and in fact I’m gonna break the rules, I’m gonna add a third way today, because hey, why not? So the first two ways - way one, you can rate or review JS Party in your podcast app of choice; you can do that up to ten times, so feel free… And we’d appreciate that. Of course, five star reviews only; if you’re gonna rate us one star, are we gonna give you a free ticket? Something doesn’t make sense there. So please do that. Or you can share your favorite episode of the show on social media; you can do that as many times as you like. One entry per episode shared. And after you do that, you basically just take a screenshot, whether it’s your review or your social media post, and email it to jsparty@changelog.com. That’s how you enter.
One lucky winner will get a free ticket to the conference. It does not cover flights and hotel unfortunately, so that’s still on you, but you get into the conference gratis.
The third way I’m adding right now, because let’s face it, word of mouth is really the best way that people find out about podcasts - that’s how I pretty much learn about all the podcasts that I like to listen to, so… A little bit of word of mouth entry - think of a friend, think of a person who could really benefit from this show, send them an email, and just refer the show to them. Simply BCC jsparty@changelog.com, so we know that you’ve sent it, and that will be an entry as well.
This goes on for the entire month of April. If you’re listening live, that means you’ve got a couple weeks. If you’re listening produced, that means time’s about running out, so go ahead and get those entries in, and we are excited to give away that ticket. Thanks to our friends at NodeConf Colombia. We’re very much looking forward to that show.
[04:05] Okay, with that out of the way, let’s get to know our new panelists a little bit. Emma, we just had you on the Changelog; it actually went live, published a few minutes ago, so a bunch of our listeners will get to know you… So let’s start with you Divya. First of all, we’re very excited to have you here, thanks for joining us. Tell us a little bit about yourself and what you’re up to in the JS/Web world.
I’m Divya, as Jerod mentioned, and I am currently a developer advocate at Netlify. Netlify is a cool product; if you haven’t used it, you should check it out. Essentially, what I do is I travel a lot, go to conferences, talk about Netlify… Mostly about Vue, actually; and Kball knows this, because I’ve gone to multiple conferences and I’ve chatted people’s ear off about Vue, because I really like the framework.
In terms of overall JavaScript landscape, I’ve worked on a couple of open source projects. I think currently my focus is very much in the Vue ecosystem and that framework, so I’m kind of invested in that at the moment. I bounce around quite a bit, so…
What is it about Vue that you like so much?
I think the community is a huge part of why I picked Vue. I think it’s a very personal thing, picking a framework; sometimes the decision is made for you based on the company that you work for and the technology that was already picked… But for me, I had the privilege of being able to choose. I did React in the past, and then picked up Vue about two years ago, mainly because I thought the community was really good, and also I just really liked how accessible the documentation is… So learning it was really easy for me, and I really enjoyed that.
I also found that just like chatting with people on the core team was very easy. If you’re just a developer who picks up a framework, usually you’re kind of away from the actual core contributors, but I felt with Vue it’s really easy for you to get to know people who actually work on Vue, and they’re more than happy to help you if you want to contribute, or be an active member of the community, whether that be educating, talking at conferences, and so on. That kind of drew me in, and I’m kind of hooked at the moment.
Hooked! [laughs] Sorry.
Yeah.
Good one. Very cool. Definitely excited to have you on board. You may know Divya online as @shortdiv. I always loved that handle. Also, as Robert Tables is mentioning in the chat room, both of you are on the Heroines of JavaScript Card Set, which is a very cool thing where you almost look like superheroes, as your avatars… Which is quite an honor, I’m sure.
That’s awesome, yeah.
Yeah, that was a really fun project that [unintelligible 00:07:15.00] championed. I’m actually hoping more cards get made, because it’s currently a subset, and I’m like “There’s so many more people!” Maybe we can do extension packs. It should be really neat.
That would be a sweet idea. Very cool, Divya. Emma, how about yourself? Like I said, we had you on the Changelog, so if you wanna go super-deep into what Emma is up to, listen to that episode. We’ll link it in the show notes. But from your own mouth, what are you up to in the web world and in JavaScript?
Hi, I’m Emma… Just a quick comment, Divya - I actually was just tweeting about Netlify and how great the platform is today.
Nice!
[07:57] It’s super-cool that you get to work on it, because I’m thrilled with the whole experience there. So yeah, I work at LogMeIn, currently. I’m a UX designer – UX designer… Oh my gosh, it’s late at night now… I’m a UX engineer, which essentially is a hybrid software engineer, and I have some skillset in the UX world, or in the visual design world… But my primary function is software engineering on the front-end side. I also kind of created this little open source project called Coding Coach, where we are really trying to connect mentors and mentees globally, and do it for free, so feel free to check that out as well. And… What else am I doing? I’m doing lots of miscellaneous things, but in my spare time I am a proud cat mother, which you would know – if you follow me on Twitter, I only tweet about cats, and other things… And yeah, feel free to listen to my other podcast; I don’t want to hijack this episode. It’s really nice to be back, and I’m looking forward to chat with you both.
Well, one thing we didn’t talk about on the Changelog was your cat motherhood, so maybe expand on that… [laughter] Have you got a lot of cats?
I wish I had a lot of cats… So when I moved out of Texas after I graduated college for my first job, I was already kind of a crazy cat lady… So they had this thing called Kitty Palooza in Austin; it was basically like you walk into a room full of kittens, which is like my biggest dream, and you just get to go and pick one, and you’re like “That one. I want that one.” And you just take them home, and it’s beautiful.
I first adopted Loona, the all-white cat you see, and then I gave her a sister, because I was traveling a lot at that point back and forth to Germany… So I got her a sister, and then when I moved over here, they packed up their catnip and came with me.
Very good, very good. Well, Kball has posted into the chat room – by the way, if you’re not listening live, hey, why don’t you? We’re at Changelog.com/live, we record every Thursday around the lunch hour, U.S. times; as Emma mentioned, quite late there in Germany, but… We have a live chat room that we’d love you to participate in; Kball has posted “The Heroines of JavaScript Trading Card Set is a pack of 20”, so if you have no idea what we’re talking about, click open the show notes, check those out. They are very cool.
It gets me thinking a little bit – I’m gonna throw a curveball at y’all, because I didn’t put this in the document, so be ready, but… Thinking about superheroes in JavaScript - first of all, it’s very cool that we just have these concepts, I love the crossovers in that idea, but there is something about programming and writing software, making websites etc. that does give you a little bit of superpowers, in the sense of being able to accomplish a lot with a little… So curveball question for each of you is what are some ways that software has benefitted your life in a way that was almost like you have a superpower that other people do not have, or that people wish they could do that thing? I know I’ve done a few things where to me it seems second nature, and someone’s like “How the heck…?!”, because they don’t have these superpowers that software affords to us. Any thoughts on things that you’ve done, or software you’ve written or used that have “given you superpowers”?
Yeah, I think one thing software has provided me with is a large sense of empathy, mostly for users. It’s very easy to look at a piece of software and make assumptions about how we think people will interact with them, but everyone has a different life experience, and we can’t make these assumptions. Just because I use it one way doesn’t mean it’s intuitive for someone else… So I think bringing that sense of empathy into everything that I do, whether that’s blogging or creating an accessible UI, making sure your colors meet that color contrast, making sure that you know you can navigate a page with just a keyboard - those kind of things I think will make you a better person, but also a better programmer.
Very good. Divya, how about yourself?
[12:07] I feel like mine is not as profound… [laughter] Because mine is mainly – I think the ability to remove pop-ups from the web inspector… [laughter]
Oh, yes!
…is like a skill that–
I love that.
I’ve found a lot of my friends and family are like “How did you know how to do that?” I’ve tried to teach that skill, but it’s really hard for people to just have the confidence to do that… So I tend to just – if I’m at my parents’ house, or with friends, and they’re like “Oh, these pop-ups…!”, I’ll be like “Here, I’ll help you with them.” That’s kind of a skill I use a lot… People do ask “Can you build me a website?”, but I feel like this particular skill has been used quite liberally…
Do you wanna come hang out with my family? [laughs]
Yeah, seriously… I think all of us have the experience of being the de facto tech support for your family if you’re the technical person, assuming no one else, none of your siblings or any other extended family knows how to use computers… So yeah, in general, I’m usually the person that they’re like “Can you fix this?”
And this is unrelated, but related, because my grandfather had – do you know those slide projectors, where you have tiny slides and then you have this wheel, and there’s the focal point, and the light…
Oh, yeah. Old school.
Yeah. So my grandfather - he’s in his 90’s, so a lot of his photos are slides, and he needed to buy a slide projector to see them… So he was like, “Hey, you’re a technical person. Can you operate this?” [laughs] I was like, “I’m technical, but that’s different…” I mean, I figured it out, but… Yeah.
See, you figured it out, so that makes you the right person for the job.
Yeah.
Related - I used to teach intro to web development; I’ve probably told this story before… If you podcast for long enough, you’ve told all your stories, but here I go anyways. We would have the first couple of days of the course - the entire goal is just to get people excited, and feel empowered, and think about the possibilities of what they could do… So the very first step that we could take is we’d say “Okay, load up your favorite website”, and everybody would go to whatever site they live; then we would show them the web inspector, the dev tools, and then we would find a div and we would hit the Delete button. And then we would just delete, delete, delete, delete. I mean, that’s the mind-blowing moment, like “Holy cow! I have control over this thing. It’s not “Take it as it is”, it’s “Here’s some content, here’s some stuff. It’s in your browser, it’s under your control.” And like you Divya, where you show people how to delete a pop-up and their mind is blown, very much a mind-blowing experience to those who just never had that exposure before, to realize that they can do this, so… Definitely an eye-opener.
Yeah, I think also just going back to your question, just the – I mean, I don’t know if this is unique to software, but as someone who’s only done this, it’s just the ability to problem-solve that I find has been applicable to so many different areas of my life… This example of looking at gadgets, just the step-by-step process of debugging can be applied to real-world problems.
[15:47] I’ve noticed – I’m gonna use my family as an example, but as the one software engineer, I’ve found that this is a unique thing that I have… And I’m not sure if it’s because of the trade or field that I’m in, or if it’s unique to being a software developer, but I’ve found just the ability to – like, the fact that I’m used to debugging, and being frustrated about not knowing something, and having to go through and churn to figure out the proper solution… Yeah, I think the tenacity and determination - if anything, that’s what software taught me a little.
That reminds me… I was getting ready the other morning, and I was like “How can I optimize my morning routine, so that I reduce the runtime of this…” and I’m like, “Oh, gosh…”, I’ve reached max nerdy at that point.
Yeah, it’s like when you go bio-hacking, and hacking your routine and lifestyle… Which I’ve done, so I totally understand…
Yeah, it happens… And I can’t visit websites anymore without instantly forming opinions about bad user experience, or bad tech choices, or how slowly it loads… It’s like a double-edged sword.
Yeah. I get laughed at for that…
Really?
Yeah, because someone would be like “This restaurant is great!” and I’ll go on their website and I’ll be like “Their website is horrible!” [laughs] Alinea is one of the best restaurants in the U.S, and it’s based in Chicago… And their website is dreadful. I was like, “I don’t understand…!” [laughs]
Don’t eat there…
Yeah, but I think a ticket to get in is like $500, or something crazy, and that doesn’t include alcohol… But their website is dreadful. I was like, “Maybe they should use that money to update that.”
So it’s a bit of a gift and a curse, too. On the curse side - and maybe this resonates, maybe it’s just me, but when you’re using a website and you submit a form and something goes wrong, I start troubleshooting on behalf of the website owner; I start thinking “Maybe the CDN is out of date, maybe there are JavaScript errors… I’m gonna see what’s going on. Was it a client-side validation? Did I enter it wrong?” And I can’t not think those things and just use the web as it’s designed.
I did that, too. I moved to Germany, but I still had outstanding medical bills, because America… So they kept emailing me, like “You have an unpaid bill”, and I keep trying to go onto this patient portal, and it would not load. I think it was probably the fact that I was now in Europe, it refused to load… And I open a console, and it’s just a mass murder of red errors. And I sent them a screenshot, I go “If you want me to pay my bill, you fix your website.” [laughs] It didn’t sit kindly with them; I ended up paying it, but… [laughs]
But it felt good in the moment.
Oh, yeah. It did.
Alright, for the rest of the show we thought it would be fun to talk about whatever it is that Divya and Emma would like to talk about, kind of as our guests of honor, our new panelists… Just open up the conversation about things that you find interesting, or important, or just are at the top of mind, and go from there. We’re gonna start with Divya… What would you like to talk about today?
Yeah, so one of the things that’s top of mind for me always is this idea of how to stay up to date with JavaScript and the web. I get asked this a lot, and I talk about this a lot with people, just not formally, but more informally, in conversations. There are times where I feel like I’m totally up to date, and there are times when I’m not, and it’s kind of this battle where you’re like “Oh my gosh, I don’t know what’s happening.”
For example, I’m still super-behind on the GraphQL and TypeScript train… And I feel like I must be a bad developer. There’s always this sense of FOMO, like “Oh man, I’m just not up to date with this…” And I’ve been told so many times, “Oh, GraphQL will convert you from traditional REST… And TypeScript is the same - you can’t go back to not using types”, and so on. And for me - I have to always balance what I want to learn, what I have to learn, and what I should learn. The should is kind of relative; the should is just, whatever… It’s basically what you wanna learn. Yeah… If anything, I always prioritize what I need to learn, because usually your job requires it, or a pressing project requires you to be up to speed on something. What you want to learn is very much whatever time you have… Which feeds into social time, and family time, and everything like that. So yeah, it’s kind of like a battle of how to balance expectations and also make sure that you’re not fully spending all of your time just doing development work.
This is a segue, but for me it’s really important to have a balance, because it makes me a better developer. So if I’m always developing, it makes me a shittier developer, because I just burn out quickly… So yeah, that’s something that I think about.
I fully agree with that, because I know that there are people who can just sit there and code from the time they wake up until the time they go to sleep; my husband is a perfect example of that. But I personally, my brain shuts off; I’m with you on that. And it’s funny, because GraphQL is one of those things - I can fidget around with it in Gatsby, because Gatsby uses it for querying for blog posts, and whatnot… But ask me a GraphQL question and I just clam up, I have no idea; it’s one of those skills I’ve been meaning to learn for so long… But it’s a good point, it’s like “How do you prioritize what’s important?” and also “How do we determine what’s important?” Is it just based off of the publicity these things are getting on the internet? I don’t know… It’s hard.
I’m over here nodding along… These are questions and topics that we think about often, and we’re faced with them quite a bit around Changelog, because we are always helping other people keep up with the new things in the industry… So we feel the FOMO.
One of our old sayings is “We face our impostor syndrome, so you don’t have to”, because lots of times we’re talking to people about the new hotness, and we don’t feel like we know anything about it.” So at the end of the day we do have to pick and choose, because there’s so much out there now; there’s so much open source, there’s so many different areas of interest in programming and software development that you have to pick your battles, and you have to decide “Is this a fad, or is this gonna stick around? Is this a paradigm shift, or just a fad?”
[23:51] Lots of times procrastination can help you out there, which is one of my greatest skills - putting things off. Because the thing about a fad is it stands for “For a Day”, so fads come and go… And so sometimes the longevity and the perseverance of a particular idea or technology will eventually convince you that “Okay, this is not going away. This is worth me investing my time in.”
Besides that, the advice that I try to take is find a community of people that you respect in the space, that are tracking it either closer than you are, or maybe are a little slightly more bleeding edge than you are in any particular area, and then follow their lead. Don’t feel like you have to forge all paths; you can find people who are good at a certain thing, and say “Well, I’m gonna follow this person because I trust their opinion.”
How do you all decide “Hey, GraphQL - it’s time for me to go deep into it”, or “I’m gonna pass on this framework”? What are some of the decision-making techniques that you use to make these kinds of decisions?
I had to be okay with the fact that I wasn’t gonna learn everything. We did in that non-stop – what is it called, an infinity pool? Where every time you scroll up, there’s something new coming out… And one of those things for me was RxJS. I struggled so hard to understand observables. Ben Lesh offered to help, and I was just like, “No, I’m unhelpable.”
It was one of those battles, I was like “I’m not gonna beat myself up over it. I don’t have a practical use case for it”, so for right now it’s one of those things I’m choosing to let go. You had also mentioned procrastination, which we hear that word and there’s this negative connotation with like “Oh, well, you’re slacking off.” But when you procrastinate intentionally, you actually give your brain room to breathe, and kind of sort out some of those puzzles subconsciously. This is what I’m doing with my first talk that I am giving in two weeks, at ReactJS Girls London - I’ve created kind of a scaffold for it, but I’m intentionally procrastinating, because your brain will subconsciously work out some of these kinks in your mind, and when you actually sit down to work on something, it’s a lot more clear.
So in terms of picking new things to learn, I struggle with this a lot, because now that I’m in this role where I – I’m kind of self-directed with my learning… And I find it really hard. I have a backlog of items that I’m mediocre in skillset-wise, and I’m like “Well, which one do I prioritize first?” And I wish I had a better answer than “It kind of just depends on what I’m feeling.” Because I never force myself to learn something; if I’m not mentally in a good state to be learning something, or if I don’t wanna sit down and learn a specific skill, I won’t force myself, because I’ll burn out. It’s kind of just like whatever I’m feeling at the moment, which is a terrible answer.
I do something similar too, which is that I base it on how I feel… Because I think learning is very tied directly to your mood, at least for me; so if I’m in the right mood for learning and I’m open, then I learn much faster, versus like when you put a wall and you’re trying to force yourself to do something.
There are times where I feel like I should know something… A couple of years ago I was like “I should learn GraphQL”, and then I kept trying to learn it… And just the schemas, the queries, mutations, all of that - I kept being like “This is weird…” And it is, because it’s a huge shift from traditional REST API. So yeah, I wasn’t in the proper mindset for learning, so I learned nothing. [laughter] And also, I think it’s general excitement. If I’m invested in the technology, or if I feel like the reason for me to learn it is valid, then I’ll learn it.
[27:53] For example, I really like working on my own with WebGL, just for fun, just because I think it’s weird and interesting… And it’s difficult, because graphics on the web is hard. But at the same time I think I was really keen on learning it, just because I found so many use cases where I was like “Oh, there’s maps, and there’s data visualization, and there’s animation.” There’s so many different use cases… And because I saw a direct application, I felt more compelled to learn that thing. So I picked up shaders, which is really hard, but for some reason my ability to see how I applied it allowed me to learn it quickly.
This is my general approach to learning as well, which is I’m very much a practical application type person, which is why I didn’t do a traditional computer science degree; it didn’t make sense for me, because I can’t just sit in a class and be told “This is data structures” without knowing why I’m learning it. So I think for me, my learning is the reverse, where I see an actual application and then I learn the actual theory behind it, and dig deeper as I go. But again, it’s all tied, like I’m always saying, to my general interest and whether I care.
If I’m like “REST works for me, and I don’t really see a point in me using GraphQL”, then I’m not gonna learn it. It’s the same with TypeScript. I get and I understand why people want types in JavaScript, but I was like “Another framework…?” I mean, JavaScript as a language doesn’t have types, and maybe that’s great; I kind of like it like that, because I don’t have to think too much.
Also, just general comfort… Because I try to balance productivity; so if I try to introduce too many new things and force myself to learn new things, then I’m not as productive, which means I’m more frustrated, which means I don’t feel like I’m getting anything done. So if you could introduce new concepts bit by bit… If I already have a general way of working, and I wanna bring in this one new technology in - maybe RxJS is that - then I’m still looking with a framework that I understand, but there’s this other piece on the side that I’m trying to learn… So it’s not as difficult. Rather than being like “I’m gonna learn Elm!” Which is one thing I actually did… [laughs] I think a couple months ago, or something. Because one of the internal projects at Netlify is built in Elm. It’s not something that we use actively, but I was like “Oh, I wanna change something” and then I tried to learn Elm as a whole, and failed… [laughs]
To make one change?
Yes…! I was like, “I just want this link to be highlighted when I hover over it”, and then failed miserably, because I didn’t know what was happening.
Well, I will say I also haven’t jumped on the TypeScript train, but I have a different reason. I just wanna make Nick Nisi mad, so I just refuse to adopt TypeScript… So Nick is mad at me.
Yeah, I think Nick has at one point talked my ear off about TypeScript, and was like “You should use it!”
Pretty much anybody who knows Nick has had “the talk”… I’m just kidding, Nick. Okay, similar topic, a little bit shifting gears - I wanna pitch this back to you; this came up in chat… When we talk about learning, investing in ourselves and our knowledge, and learning new technologies, the other side of that coin is the balance that you talked about, Divya, the life balance. That’s why so many of these new job requirements in the software ecosystem aren’t really the best, because they require a certain amount of privilege or availability that some people lack because of their life circumstances, such as “You must be doing open source in your free time”, “You have to have a good portfolio of side projects”, “If you don’t code after work, then you don’t care about software…” Well, how do you balance the two? On one side you wanna learn and invest and advance, both in your personal career as well as the community and really the ecosystem of software that we work in; on the other side, we have lives. How do you maintain that balance?
[32:23] For me, I time-box myself. I work remotely. Netlify is based in San Francisco, so that’s Pacific Time, and I’m on Eastern Time in Boston… And for me it’s really important to time-box; to be like “I’m gonna be working from these hours”, and then not answer messages or do any work outside of those hours… Just because I think if you work remotely, it’s really easy for work to bleed into your life. And especially if I’m working with such a – it’s three hours of a time difference; I’m sure Emma’s time difference is crazier… But yeah, it’s really easy for you to do work while you’re having dinner, and not being engaged with or investing in your social life… Which honestly - I’ve mentioned this earlier, but it drives me insane if I don’t have that balance. Like Emma was mentioning, I burn out as well.
I take the time, similar to the procrastinating intentionally thing - I need the time out from work to be refreshed, to come back and be effective as a developer. Sometimes that means not doing development things and doing other things, hanging out with friends, or just anything.
Yeah, I love that. To the same tune, I love time-boxing things, because it’s easy to let things creep up in scope. But if you kind of set that limit on yourself, it’s a little bit easier. Plus, it’s almost like an internal challenge of like “Can I accomplish this task in 30 or 45 minutes?” But yeah, you’ve gotta disable notifications.
Last weekend I wanted to try this really fun experiment, so I literally deleted everything off my phone, except for the phone app, because I don’t think you can actually delete that… So I was like, “I’m gonna delete everything, and I am just gonna try and knock out all these tasks that I have to do.” And I’m not even kidding - my productivity skyrocketed. This is gonna sound totally unbelievable - I finished three books, two of which I had already started. But I did read one in full. And I wrote two blog posts… It was unbelievable. I’m like, “Holy crap! I spend way too much time on the internet. This is a legitimate problem.”
In terms of work though - I also work with people on the West Coast, so it’s like Santa Barbara time, and that’s a (oh, my gosh) nine-hour time difference… So we can often have meetings pretty late at night, like six or seven, and to compensate, I’ll make sure that I take time off; I’ll likely work at four, and sign back on later. I don’t overwork when I have late meetings.
I had this great conversation with my boss the other day about quality over quantity. It used to be that people were signing in with timestamps, and you were literally signing in and signing out to track your hours; but now that people are gravitating towards these salary jobs, or they’re becoming more prominent, my mentality is “You’re not paying me for 40 hours of work necessarily, you’re paying me to get my stuff done and to do well… And if that takes me 32 or 35 hours, I’ll use the remaining time to develop my skills.” So for me it’s about quality over quantity.
And we’re back from a break… And I don’t normally even reference the breaks, but I will say another pitch for the live show - we just had a great conversation during the break. Y’all missed it; no big deal. This is the official show, but the live show is fun; we have lots of fun in-between times. But here we are back on the official party, and we’re gonna talk about what Emma wants to talk about… So Emma, pitching over you… Your choice - what are we gonna talk about next?
We’re gonna talk books, because this is what I spend my time on when I’m not being on the internet, when I’m not on the – I can’t speak English anymore since moving to Europe. When I’m not on the internet, I read things… [laughs] So we’re talking books.
We can talk a little bit about some technical books that are useful, but I think the ones that have really impacted my career and my self-growth have been not technical. I think that, as JavaScript developers, we can all benefit from a little bit of career coaching.
I wanna start this out talking about habits, and goals. There’s this whole concept of like you have to have goals to succeed; you need to write your goals down to make progress. I was hardcore into this whole mindset, I’d bought into it… Until today. Because I was listening to Atomic Mindset… Oh, my gosh, now I can’t even remember the name. Atomic something… Atomic Habits! There we are! I was listening to Atomic Habits today, a book I was skeptical about… And he had two great points that I would love to start this conversation with… The first one being instead of goals, focus on systems. What that means is goals are the endpoint; it’s where you want to be. It’s like your Holy Grail. However, when we focus on that, we’re not focusing on the steps it takes to achieve these things. So systems is the methods that you put in place to get where you need to be.
Here’s an example. Let’s say I want to speak at a conference. That’s my goal. Well, if that’s my goal, I haven’t defined how I’m gonna get there, so instead let me focus on the systems… Which is become knowledgeable on maybe one or two specific areas that the world would be interested in learning about. Then the next step maybe is applying to things, and then maybe you talk to really renowned speakers and get tips for that.
So instead of focusing on those tangible checkbox things you can check off, focus on the steps it takes to get there, and those goals will be achieved in the process. That’s the first thing.
The second thing that was so profound to me was this idea of habits. We all know habits are the things that allow us to become more disciplined, or potentially reach our goals, or define our systems… But he talked about changing your habits; this is very hard to do, but the deepest way to change your habits is to change your identity, in a sense, or change the way that you interact with the world.
[40:06] He gave this example about smokers, someone who’s trying to quit smoking. The first person is offered a cigarette, and they say “No, thanks. I’m trying to quit.” The second person is offered a cigarette and says “Thanks, I’m not a smoker.” That blew my mind, because it’s like “Oh my gosh, it’s a mindset shift.” When you’re struggling to learn a concept, instead of saying “Oh, I’m learning JavaScript” or “I’m learning how to code”, change your identity and say “I’m a programmer. I’m a JavaScript engineer.” It’ll change the way that you learn.
I like that idea. I’m gonna give that a try. I have to think of a context in which I can try that out, and then report back on how it worked.
So then a system is just like – is it the action items in order for you to reach a goal?
Yeah, I guess it’s kind of more – and I have just started listening to this, and to be honest, I didn’t like the word “systems”, because I don’t feel like it properly encapsulated the idea behind it… But yeah, I would say that instead of one be-all-end-all goal, it’s kind of like the things that you’re going to change in your life to put yourself on a better trajectory towards achieving it. So focus on the path, the trajectory, point yourself in the position of the goal, or the direction of the goal.
That’s similar to OKRs, objectives and key results, which is something that I’ve been doing at work a lot… It’s just this idea that it’s really easy for you to create a goal - for example, if you’re working at a company… Let’s give an example of a blog, because that’s easier. So you have a blog and you’re like “I want this blog to be super-popular”, which is a general goal. If I wanna grow the traffic by 25%, or something; that’s a general goal, but that doesn’t give you the steps in terms of how to get there. So the idea of objectives and key results is just like trying to pin down specifically the various things to do in order to get to that goal… Being as granular as possible. Which I think is similar to this idea of systems. But systems seems - like you said, that mindset shift, where you kind of position yourself…
Yes. And I see this all the time… I’ve seen people - I don’t know about you, but people on the internet will say “I wanna gain this many followers by this date”, and I’m like “No, you have it all wrong”, because when you focus on numbers, whether that’s followers or whether that’s losing weight, you set yourself up for failure – or not necessarily failure, but disappointment in the long-term. You’ll reach those milestones, and you’re just unfulfilled by the end of it. Instead, you should start with Why, and this is another great book I recommend by Simon Sinek - Start With Why. Why do you want to do these things? Why do I wanna gain followers? Well, I wanna share my blog post knowledge with the world. Focus on that. Write blogs that you’re passionate about, find topics you enjoy… That’s your Why, and the followers will come in response. But don’t start with the data, or don’t start with wanting followers.
That’s a great point… I think this is for everyone - every year, at the beginning of the year, everyone is like “I want to do these things.” Then you never really achieve them. I’ve been doing similar, and reading about how exactly to be motivated, how to change habits and so on, and a lot of it has to do with your reasoning behind it… Because I think on the subconscious level if you don’t care, you will convince yourself and find excuses to not do the thing. But if you really nail down the core reason to why you wanna do something, and then that becomes your core belief, of like “This is something I really want”, then that’s already most of the motivation for you to do something.
[44:24] I think too, going back to this discussion about what it means to be great, I think the book is called The Outliers, and they discuss the fact that these people who are typically deemed great - there’s a plethora of failures, what we would say are “failures”. Not necessarily bad things, but they’re learning experiences and they teach you how to find the right trajectory… But we only see the 1% or 2% of things that become notable in the world. So if you’re struggling to learn programming, or you’re having this impostor syndrome, everyone that you look up to in industry, in the world, in history, have gone through these trial and error type of things, and they’ve come out the other end, and there’s no reason you can’t do that as well.
That’s the one where he talks about the 10,000 rule, or something…?
I think so, yeah.
You have to put in that many hours in order to reach expertise, and without those hours…
So that’s why I’m good at debugging now. I’ve spent 10,000 hours on my crappy code. [laughter] So any other books on your mind? I have a book topic that isn’t a specific book, but I have to bring it up… Emma, if you have other books you wanna talk about specifically, that you’ve been enjoying lately, or you would recommend to folks? We can go there first, before I do my little rant.
There’s one other one that I will recommend to anyone listening to this podcast… Anyone who’s an engineer or a developer, specifically in the UI - it’s Refactoring UI. I read this last weekend, and it is one of the most incredible books I’ve ever read. It discusses the high-level psychological reasons why we do certain things in the UI, and the best practices. The TL;DR of this is most of us can look at a UI and be like “That’s a great UI” or “That looks terrible”, but we can’t explain why. This book uncovers those reasons behind why things don’t look good, or why they do look good; and it could just be a matter of padding our margin pixels, or a little bit of color tweaking… I highly recommend it to any developer who’s struggling with design, or making UIs look great. Just a small plug for that; I couldn’t recommend it enough. Now I am intrigued to hear what you were gonna discuss.
I just wanna +1 one that, because I think Refactoring UI - that’s like the Adam Wathan and Steve Schoger book, right?
I forgot the authors’ names, but it was incredible. It’s the one you posted, yeah…
Yeah, so it’s excellent. For a lot of people who don’t consider themselves designers, or don’t actually know a lot and want to learn more, I think it’s such a great book. It’s so good.
I’m watching a lot of book recommendations sliding into the chat room, and this makes me have an idea; we need some kind of a Changelog Book Club kind of thing…
Yeah…!
I don’t know what that would look like, but that would be lots of fun… So we could all read a book and discuss it.
Oh. Yes. Please.
Like a GoodReads…
GoodReads for developers.
I don’t like GoodReads… That’s a whole other podcast topic. [laughter] We’ll start our own bookshelf.
Well, let me tell you about this new thing that I’ve recently found… And I should preface this and say “These folks are not a sponsor.” This is gonna sound a lot like a sponsor read, but it’s not. This is me actually just gushing, to a certain degree. I want them as sponsors, because I’ve been using their service for only a couple weeks now, but I’m very much in love… And it is Blinkist.
[47:59] Blinkist is a service for people like myself who would love to read lots of books, and gets recommended lots of books, but going back to that life balance - I actually don’t have the time to read the books; and I’m not going to make the time, I just know myself. I’m settled. I know I’m not going to read them, so this is a great service for books that you would like to read, but you just know deep down you’re never actually gonna get around to it.
It is an app and a website, it’s a commercial service, where they will read the books for you and break down the books for you into summarized chunks. Now, I know for some book lovers this is like anathema. But especially for non-fiction, especially for business books and for self-help style books, where let’s face it, a lot of these books have like one, maybe tops five good ideas in the book, and the rest is – they had to meet their page minimum, kind of stuff or stories… And that’s all well and good, but… Takeaways. You can usually summarize a takeaway of a good business book with like “Here are three things that will change your business or your life” but you didn’t actually have to read the rest.
Blinkist is super-cool because they will break down and they will actually write – they call them blinks; they read it and summarize it into maybe between 8 and 12 (what they call) blinks, which are two-minute reads. They’ll also do it in audio, so you can listen to the summary of a book in about 15 minutes.
It’s spectacular if you’re a busy person like myself, and specifically for self-help and business books. There’s history on there as well. I have loaded up to read the Albert Einstein documentary from Walter Isaacson. I’ve got a feeling it’s not gonna be the same for that, because a lot of the details about people’s lives are the interesting part… So it kind of sucks some of the joy out of books, but it also just distills it down… And I love it.
Yeah. I think that’s really cool, and I think that’s great for people that don’t have time. I personally am one of those people – I have the Pokémon mentality of “I’ve gotta read them all!”, and I have this internal challenge with myself, because I’m a little bit psychotic when it comes to reading things… But I think it’s a great alternative. I haven’t used the service, but I’m definitely gonna check it out now. It sounds really cool.
Let me just list off the books that I’ve “read”. This is one of the struggles - what do you say about that book? “I’ve read it”? I’ve heard a summary of it…
That’s true…
So far, I’ve gone with “A book that I didn’t read, but that I know about…” [laughter] But since I’ve been on this service, which is like two weeks, Nassim Taleb’s “Skin in the game”, “How to win friends and influence people”, “Never split the difference”, which is all about negotiating, “Rich Dad, Poor Dad”, about real estate, “The 7 habits of highly effective people”, “The bully pulpit”, “Antifragile”, another one by Taleb, Malcolm Gladwell’s “Blink”… And I’m not a reader. I don’t have time to read. But I’ve got 15 minutes here or there… So that’s seven books… I mean, sure, it’d be better to read these, but honestly, I’m just never gonna do it, and I can get some takeaways… So it’s cool. It’s a cool idea.
I would [unintelligible 00:51:10.04] tech books.
Oh, yeah…
I’m like, “Please, download this book to my brain…”
Tech books go out of date really fast too, so you have to move really fast… [laughs]
Can you imagine…? Imagine writing something like that, and it’s like 1,000 pages about JavaScript functional programming, or you know what I mean, something super highly technical, and then by the time you publish it, it’s already depreciated and it’s like “Oh, what have I done with my life…?”
Yeah, totally… That’s why I think Manning does the pre– Like, if you pay, you get to specific chapters as you’re writing them, or something like that…
Oh, cool.
Yeah… So that way you can update it. But Jerod, similarly to what you’re talking about - Blinkist, I think it’s called?
Yes.
It reminds me a lot about – so I read this book called “How to talk about books you haven’t read.”
[laughs]
Nice!
It’s just kind of weird…
Is that like recursive book writing…?
[52:09] Yeah, it’s kind of strange…
Did you actually read it, or are you just telling us here…?
I did actually read it…
Okay.
Yeah, because it fascinated me… Because I came across it at one point, and I was like “I’ll read it.” It seems like kind of blasphemous to write a book about not reading books… [laughter]
Yeah, no doubt.
And it’s kind of this idea… I think it’s a philosophical idea about books, because you read a book, but then a lot of the times you don’t – the book now lives in your memory of what the book is, or your interpretation of the ideas that the book talks about… So when you talk about the book, you’re kind of interpreting those ideas, rather than verbatim talking about what the book talks about…
Yeah…! That’s a cool idea. I never thought about it like that. It’s true, especially if you’re reading a fiction book and you picture characters in your mind to be one way…
Yeah.
This is probably why certain people love or hate a book. We experience it in relation to the things that we’ve experienced in our personal lives. That’s so cool.
Yeah. I think he’s a professor of writing, or literature, or something… [laughs]
A professor of writing…
…and he has a way of demarcating books in the sense that you were talking about, Jerod, which is – he has this thing where he’s like “SB is books I’ve skimmed, and then FB is books I’ve forgotten about, books I’ve heard about…” So it’s just like a way of you categorizing books in your brain…
I like that.
Because a lot of times – there were times when I’ve had full-on conversations with people about books I have not read, but I’ve just known about it because it’s popular culture references, or it’s something that I’ve learned from the CliffNotes version, or something… And I think a lot of times most people have not read books that they claim to have read…
Probably.
…because they’re like “Oh yeah, this is what happens in the book”, and usually it’s true, because you know… Like, I’ve not read Catcher in the Rye, but I kind of know what it’s about, and I probably will never read it, because it’s more a book for young adults, and I think the protagonist just irritates me… Because as an adult, reading it [unintelligible 00:54:35.05] But anyway.
Lots of thoughts on books. Are there any books – let’s close on this… We talked about a couple, Emma, that you recommend; these seem to be mostly around productivity, and ideas, and those things… But specific software books that are kind of must-reads? I will throw out a couple that I have read… Well, let me justify that - the second book I haven’t read the entire thing, but I read enough to get the main thrust of it. The first one is The Pragmatic Programmer, which is a spectacular book that every developer would do well to read.
The second one, which is a classic, and this is the one that admittedly – I’m actually looking at it on my bookshelf over there, and I read probably the first 5-6 chapters, and I got the gist and I moved on… Which is The Mythical Man-Month. It’s a spectacular book, and it stood the test of time… And can be summarized in a single sentence, which is “Nine pregnant women can’t have a baby in one month.”
I love that.
Take that sentence and apply it to software development.
Oh, that’s cool.
Oh, wow…!
I love that. I’ve gotta read that. Can you post that in the Slack? Because I’m gonna add it to my shelf… Yeah, I have a couple…
You bet.
[55:50] I wanna give a massive shout-out to Kyle Simpson for his “You don’t know JavaScript” series. He’s known as @getify on Twitter, and he is one of the most prolific teachers I’ve found. He also has courses on Frontend Masters, so if you don’t enjoy reading, he does the same content on that platform. All of his books are for free, which is incredible; if you can afford to donate to him, please do, because all his content is incredible. He explains JavaScript in depth, using analogies that resonate… And it wasn’t until he explained closures that I understood it. So his “You don’t know JavaScript” is incredible.
There’s also two more I want to recommend. One is “Professional JavaScript for web developers.” This one’s quite a big book, and I pieced through it and I really enjoyed it… And the second one is more for beginners, I would say; it’s called “JavaScript and jQuery.” I only read the JavaScript portions of it, but they have an HTML and CSS one as well, and they use the most beautiful images and graphics to explain concepts like CSS selectors, and whatnot.
So the second book I recommend is “Professional JavaScript for web developers.” It’s a big book, but I read through pieces of it and I really enjoyed it. The third one is really beginner-oriented; it’s called “JavaScript and jQuery: Interactive front-end development.” I read the JavaScript pieces out of this, and I loved it because they use these beautiful graphics to explain concepts, one being like scope, and event delegation… They also have one for HTML and CSS. It’s extremely beginner-friendly.
Very good. Divya, how about yourself?
For me, one of the books that I come back to, which is kind of just the over-arching – it talks about just code quality and code in general, and it’s called Code Complete. It’s a book that I find myself coming back to very often. Just like when I think about the overarching philosophy of decisions I make… It has actual examples, and so on, but there are some concepts that you can use across whatever JavaScript framework or language that you’re using. I think it’s just really interesting in terms of how to use specific software metaphors to explain ideas, and how to think about systems. I’ve found it really useful. I’ve never read it cover-to-cover; I usually read it in sections, where I’m like “Oh, I wanna read this particular section.” Because it is a long read. I think it’s available online for free.
Nice.
Yeah… I have one last one I wanna slip in before I forget it; it’s Design Patterns by – oh, I can’t say his name… It’s Addy Osmani, I think. I highly recommend it. He mentioned putting out a new version of that, with the updated ECMAScript version. I highly recommend it if you wanna learn more about designing code in effective ways.
Yeah. That was my go-to bible, so to speak, when I wasn’t using frameworks. If I was just doing things vanilla style and I wanted to create my own – because now I think most frameworks are pretty opinionated about the patterns and the things that you use… But that book helped me explain what exactly singletons are. I didn’t study computer science, so I was like “I don’t know what a singleton is.”
I think that was a very clear example, because he explains what it is, and then he shows you a code sample of how exactly to implement a singleton pattern, which allowed me to understand what the singleton pattern was. Yeah, it’s great.
Very good. Well, we will link up all of these book recommendations, as well as anything that we’ve talked about that was relevant here on the show in the show notes. You know where those belong.
That’s our show for today. Hey, we hope you enjoyed getting to know Emma and Divya. You’ll be hearing a lot more from them in the not-too-distant future. I just wanna remind you one last time to go ahead and try to enter for that free NodeConf Colombia ticket if you are in the area or would like to visit Medellin, Colombia and hang out with Kball, as well as a lot of awesome JavaScript developers… Definitely enter.
[01:00:16.11] Three ways to enter - rate or review the show in your podcast app of choice, share a favorite episode on social media, or just email a friend and BCC jsparty@changelog.com, and that’s how you will get entered. You have till the end of April to get that done. Please go out and do that if you’re interested.
That’s our show for this week. We hope you had a lot of fun. Next week Henry Zhu will be joining us, talking about Babel and all sorts of other things. He has a cool new podcast all about maintainers, so stay tuned for that. That’s our show, we’ll see you next time.
Yaay!
Yaay!
Our transcripts are open source on GitHub. Improvements are welcome. 💚