Joel and Ali Spittel discuss her time in a teaching position, code challenges, blogging platforms, teaching beginners, and getting involved in local dev communities.
Today we are joined by Ali Spittel, a Software Engineer and Developer Advocate at dev.to, who speaks with us about:
"Developing Yourself While Teaching Others - with Ali Spittel" Transcript
Joel Hooks: Hey, Ali.
Ali Spittel: Hey.
Joel Hooks: So, I'm pretty excited you joined the team at dev.to, and I think that's an awesome move for everybody in that community, and I was wondering how that's been for you so far.
Ali Spittel: Thank you so much. I'm so excited about it. It's really, really cool to have been part of the community for a while and then be on the other side of it now. It's dream position, as well, that I'm working as a software engineer and getting to write production code. But then also doing more developer advocate work and getting to talk and things and still interact with the community and work on education-focused stuff as well for them. So, I'm really excited. It's kind of the perfect position for me.
Joel Hooks: Previously, you were doing a almost pure teaching role, was your prior position. Is that a good way to put it?
Ali Spittel: Yeah. I was teaching full-time for the enterprise program at General Assembly. I still actually teach part-time for them, but full time all at dev now.
Joel Hooks: I was thinking about that, and I think I saw you maybe even tweet something about it. Like, if you move to full-time teaching in some ways you actually lose because you're not making production code anymore, right? If you're teaching all the time, you're teaching to a curriculum and you're not in there solving production software problems. You're solving problems, but not production software problems. Did you notice that that was an issue while you were teaching versus writing production code?
Ali Spittel: Yeah, a little bit. It's great to get back into it. I think a lot of that still remains. My fundamentals are so much stronger than they were before I was teaching. And debugging as well, because students come up with bugs that I personally would never come up with, just because different people work different ways. It's really cool to see all the different things that different people come up with and all the questions that different people have. So, it was super, super helpful in that way. But also not writing production code in the same way that I was at a traditional software engineering job.
Joel Hooks: So, it fundamentally changed. The teaching aspect of it was a way to enforce your own fundamental understanding what you're doing when you're writing software.
Joel Hooks: One of the primary skills I took out of it, from teaching workshops, is the ability to spot syntax errors like I'm a human linter. I can look at a page of code and be like look there it is, right there. Change that one character and your thing will work.
Ali Spittel: A hundred percent! That's such a teaching thing. It's so funny how people think you're magic but you're like, "no I do this all day, everyday".
Joel Hooks: It's like an intense pattern matching on people's code.
So you've moved to a new position, it's like an amalgamation though cause you're still teaching, you're still out here. You've written some of the nicest, friendliest, most informative blog posts that I've been reading lately, and I really enjoy that. So I've been wondering, this practice of blogging and sharing, how did you develop that and where does that come from?
Ali Spittel: Thank you. Actually, I totally started blogging pretty randomly. I went to school for government, but my focus was that I wanted to be a journalist and follow people on the political campaign trail. That was my dream. But I fell out of that when I started a software engineering job and then last year, this idea for a blog post, I was learning how to create art with CSS and I didn't know CSS that well before creating art with it. I wrote this post about learning CSS through creating this artwork. From there, I started writing a couple more medium posts, mostly on that same topic of learning something new and how that process was for me learning that thing. That didn't really gain any traction [inaudible 00:04:56] I think I got seven readers per post or something like that.
I found dev too and started cross-posting my work to there and it gained a more traction. And then I fell out of it this winter and spring because my speaking stuff was getting more traction. So I was having to focus and spend more time on that. But then this summer, I moved to Connecticut and didn't know anybody. I was totally isolated and had a ton of free time on my hands so I started writing again and that was really the concept that got a lot more attention. I have really been passionate about writing, I like writing the more beginner, friendly content because that's what I am used to, writing as the teacher working with newer people to programming and really distilling those concepts down and explaining them in usually multiple different ways so that different people can understand those different ways. I like a lot of multi-media content, I will explain something in words and then I'll do a picture and I'll do a code-pen or something along those lines so that people can really understand things from different angles.
Blogging has been huge for me this year, its been super, super exciting and I'd love to be a bigger part of the developer community as a whole.
Joel Hooks: I think one of the coolest things, you mentioned this, is that you focus a lot on people that are just getting started and you explain things and in this clean way, but for multiple directions too. And I think a lot of time developers are like, oh well if I blog I have to spend a lot of time in doing something fancy and novel and deeply technical or advanced. I got a lot of recent CSS posts that you did that was amazing, that they really explained it a lot to me and I learned something and I've been doing this for quite some time. Where does this idea, is it just from your teaching practice or just kind of what you know in terms of teaching, but the focus on the beginner in terms of what you write and teach?
Ali Spittel: For me that's been what's most interesting to write just because I like writing more comprehensive stuff and usually more advanced content is a more niched down. And I like writing more broad stuff. In the future maybe I'll try to write some stuff more geared towards my level at this point. But, I've felt I could have the most impact if I'm writing a post for our newer programmers and so that's where I've focused and that's where most of my readers come from at this point, and so I have that niche that's there already.
Joel Hooks: Well that's huge. I don't have any real statistics, but I would think that the audience for beginner content is way way bigger than really specific, advanced content. Like the net you can cast or here's what CSS is and here's how it works versus here's how to animate or do something very specific with CSS.
Ali Spittel: Oh totally. I would guess the same, especially I still teach a bunch of very beginner workshops and the amount of people coming through those each weekend is huge. There are tons of people out there that have basic HTML and CSS knowledge but aren't really full developers or maybe not even looking to become full developers but want to learn more about code and so I think there'll be even more of those people in the future.
Joel Hooks: I saw on Twitter, somebody was talking about the idea that we are narrowing the entry paths to web development. You hear a lot of folks that are talking about view source and the stuff that we have lost as the web has progressed. But the actual path into the career, from somebody that doesn't know anything, the conversations around CSS and JS and as HTML and CSS as an entry path still valid. I was wondering, if you've noticed anything along those lines.
Ali Spittel: Oh interesting. Yeah, I really like HTML and CSS as an entry point just because for the pure reason that it is really visual, so people can see what they're creating. Whereas, something like writing a Python script can maybe more abstract at first. But both are totally valid paths. Huge proponent of CS Fraud and trying to teach computer science earlier to people just because I think that once you have fundamental algebra skills, programming is there to some extent. And a lot of those skills can really build off of one another. Like teaching algebra through code I think would actually be really cool. I think teaching earlier and making sure that everybody has access to computer science education at some point is really important in the future.
Joel Hooks: I am always torn because I think at the edges when we're building software when we're building web apps, you have to have the complexity a lot of times just to plain index HTML and a CSS file wouldn't allow me to build "Egghead" for instance. But at the same time, like you can just make an HTML file and add some CSS to it and start playing and watch it change in almost real time and hit refresh and watch your page change, which is super powerful and kind of fun when you're learning and first approaching these things. With kids it's harder though because they're like this isn't Xbox.
Ali Spittel: Yeah that's so true. That beings said, I have almost found it easier to teach kids how to code than adults. I've taught workshops for middle schoolers and seeing them code was just incredible they were building stuff so fast. I was so impressed by. I think in a lot of ways that kids will totally have these skills in the future.
Joel Hooks: Yeah, I mean, I think they're gonna need them. I mean hopefully, they need them for a while, I'm counting on these skills being viable for many more years, personally.
Ali Spittel: Same, same.
Joel Hooks: One of the cool things, to me just as an observer right, like you know yourself, as an observer, you're very intentional and I feel like you build really good habits and practices around just being a developer in general. And things like your daily code challenge that you do quite a bit, is really interesting to me. And I was wondering if you could explain the daily code challenge and then where that practice actually came from.
Ali Spittel: That's a good reminder that I should start doing those again, I've fallen out of them because of puppy.
Joel Hooks: Oh yeah, that'll do it.
Ali Spittel: So, last year, for around six months on Twitter every morning, first thing when I got to work I would do a code challenge off of something like Hacker Rank or Code Wars or even from Cracking the Coding Interview or something like that, I would just do one of those. They would be increasing difficulty. So Mondays would be really beginner, friendly ones for people just starting out. And then the Friday ones would be really hard ones, something like a Google Code Jam or something along those lines.
And I did those for a lot reasons. One, we talked about how I wasn't writing production professionally at that point, so I wanted to keep my skills fresh in that regard.
Second of all, being somebody on the Internet people can sometimes doubt your skills or pass things off and so part of me was like I'm proving to the world that I can write good code and that I can solve hard problems. So maybe that's not the best reason for doing it, but in some ways it was pretty validating to show people that I'm not just some blonde chick on the Internet that was stupid.
The third reason is I think a lot of people think of those problems as being for interviews only and I think that there's just a lot of fun in just solving them for their own sake. They're fun to solve puzzles and to solve problems, that's a lot of reason why I'm a programmer in the first place and so doing them for the sake of doing them and building my skills and just having fun with it was a big reason for that. And then, also just getting in the habit of it was really nice as well. I have a lot of fun with those and should really start doing those again.
Joel Hooks: It's kinda like doing the New York Times Crossword Puzzle or Sudoku or something right. It's like its using your brain, it serves so many different purposes. One, cause I think the public reception, just be what it is, right, cause you are writing beginner blog posts, so its dudes on the Internet that are like oh nice beginner stuff, but at the same time, how do you show that you do other things. To me, it seems like one of the least benefits but it's actually a real benefit too. Aside from, the gross part of the Internet, just for yourself and having a catalog and showing yourself in public and building your personal brand is like hey look I'm somebody that solves problems and I do this for fun and recreation and also to build problem solving skills is a great practice.
Ali Spittel: Totally, there is this awesome little community of other people solving them in different languages or the same language in different ways. And that was really cool to see and build some base level knowledge of programming languages that I haven't used before. Just even seeing them, you can learn from them.
Joel Hooks: Oh yeah, cause you get the crossover. A lot of times you use Python, right, to solve yours but then you'd see someone solve it in a different language. It's like watching a moving a foreign language essentially, right? So you can match up the context and the words.
Ali Spittel: Totally.
Joel Hooks: So you blog a lot, and I've been really pushing this idea that we should get off of platforms, like Medium, and build our own spaces and blog and share what we know. And, I was wonder what do you think? Do you think that there is going to be a blog revival, that we will have a pushback from these wall of gardens, and people are going to start blogging more? And maybe we can get back to Web-Rings and that sort of environment that we no longer have.
Ali Spittel: I think for me and people starting out blogging, I think the overhead of having to write the code for this site and doing the SEO and doing the publishing work and pushing it on social media platforms and stuff like that, that's a lot of initial overhead if you don't know that you like blogging in the first place. And so that's why I started out with Medium and Dev and honestly, at this point I'm just writing on Dev and have had great experiences there with interacting with the community and having that community already in place instead of having to start from scratch. I did have some success building my own platform and I think that it's totally valid to do so and I think it's a great idea but it's definitely a lot more initial overhead than posting somewhere else.
Joel Hooks: This is where I've been sending people actually, I send them to Dev because, I don't know, I get a really good feeling from the entire thing and what Vince built in general. And then, I don't feel that as a platform is trying to steal your words for their own commercial gain. So much, as that is the exact feeling I get from Medium.
Ali Spittel: Totally, yeah, for sure. That's an important one.
Joel Hooks: So just to dig into that, can you explain what Dev2 is how that community operates for those that might not be familiar?
Ali Spittel: Community for developers in order to write posts, have conversations, there's a bunch of different multi-media options on there for embedding things and having different forms of posts, doing videos, doing podcasts, all of that is built into one platform, but the thing that really sets it apart is the community is a lot more inclusive and friendly than a lot of other developer communities out there. That's really been what's drawn me, especially as a woman in tech to right there instead of some other places on the Internet. It's been really pivotal for me and there platform has been super helpful for me in building my blogging presence.
Joel Hooks: It's open-source too. So the entire platform you can go and fork and run your own. And one of the things that I think is really interesting, is its an amazing example of a rails app that's really well put together and super performant. I've been startled by that actually, just the way its blazingly fast and the design is clean and everything about it top to bottom is just gold stars all the way down for me.
Ali Spittel: Totally. If you ever want to contribute, or anybody listening if you want to contribute we have open issues and so you too can write code for the code base.
Joel Hooks: Do you keep inter-friendly issues or good first issues, is that something that's part of the repository in the project in general?
Ali Spittel: Yep, there are two flags for beginner friendly issues. The first one is good first issue, and then the other one is entry level as well. Entry level is a good one for new developer. Good first issue is good for new people to the project.
Joel Hooks: I know you've done a lot of generative art type stuff, you mentioned doing art with CSS, which I need to research. I want to look more into that and see what you're doing there, cause I think that's very interesting. And then, there's P5JS and then even just a language like processing to create generative interactive art pieces, have you experienced that from the learning side, in terms of getting people interested and involved in solving those problems but in a very visual sort of way? Have you explored that at all?
Ali Spittel: Totally, yeah I've done a workshop on learning code through generative art and I'm also doing another one later this spring using Python and there's a library build in called Turtle. So I'm gonna be teaching people Python through that. That's pretty much what I'm very excited about, but I've also done a bunch of workshops on TSS art which I think is another great on-boarding tool up there. I think just focusing on people's interests and if somebody is already an artist and already likes building visual things, maybe that's a really good path for them to get into code.
Joel Hooks: Is the Python Turtle like a tell-turtle drawing application.
Ali Spittel: Yep.
Joel Hooks: I'm kinda dating myself, but on a TRS80 with Logo is when I did my first Turtle graphics. And I still, to this day, is one of the absolute best ways to get an introduction to the power of what you can do with computers. It's kinda amazing what you can do with turtle graphics in general I think are a neat low [inaudible 00:20:41] entry approach.
Ali Spittel: Yeah, totally. It's actually built into the Python's standard library which I think is really cool.
Joel Hooks: Yeah that is cool.
Ali Spittel: So, really excited to teach that like loops and conditionals. Those become a lot more apparent when you can visual what that loop is actually doing or what that conditional is doing.
Joel Hooks: Yeah, fun spiral flowers and weird mazes and all that kind of fun stuff.
Ali Spittel: Totally.
Joel Hooks: I remember using graph paper, so we'd have to get the graph paper out and then graph out our name or whatever and then make our turtle do our name.
Ali Spittel: That's awesome, that's a lot of work, but that's really cool.
Joel Hooks: Yeah it was but they had a lot of time to kill, so it was fun.
Another thing that I observed that you do, is you have a practice of volunteering and putting your time out there and supporting local groups and efforts, mainly around the coding side. And I was wondering, how did you get involved with that and where can people go to find those opportunities to help people and do service with their communities in a real in person kind of way?
Ali Spittel: I started volunteering actually pretty early into working in software. I mentored for Djengo Girls, maybe a year into writing professional code, maybe a little bit more than that, but somewhere around there and that was a really awesome opportunity to see people grow and then got more involved with other community groups. There's an awesome community in DC called Hear Me Code, that teaches women Python in day-long workshops and so I started teaching that as well. Then after that, I started teaching full time at, GI, and we encourage students to go to a lot of meetups so that they're interacting with the tech community and building that really awesome network so that finding a job is easier once they graduate. And so, I started going to those a lot more in order to practice what I preached. And so, I ended up getting more involved in speaking at them and then from there, organizing. So right now, the meetup that I founded is called the Art Code Collective and that one focuses on the intersection between art and code. And then I'm the tech director for women who code in DC, we actually just had a lightening talk meetup last night, which was really fun. And then I'm working on starting up a Vue Vixens chapter here in DC as well.
So I think for getting involved, there's great online communities that turn to great in-person communities, but in DC specifically, we have two slack groups. One for women who code and one for DC tech as whole. And those have been really awesome for meeting people and getting involved in the communities before even going to something in person.
And then there's also a website called DC Tech Cal that lists every single meetup in the DC area in the tech community. And so, that's been really pivotal as well. So I think in order to get involved, it's meeting new people, going to the events in the first place. Once they see you a couple times, normally every meetup is in need of more organizers so they will probably reach out once they've seen you a couple times, in my experience at least.
Joel Hooks: So how do you get motivated after working all day to, its five o'clock, the day's over, and now the meetup is on the schedule, do you just do it? Is that the trick? Cause you're busy, right? You're not an inactive person, at all.
Ali Spittel: Totally, I think its side tracked. I think that's one of the nicest parts of having a puppy. She makes me stay home more, relax. But I'm definitely very used to going pretty much all the time at this point. In college, I actually was working a sophomore junior job, going to school full-time and then I had a part-time teaching job. And so, at that point I got used to working a lot. And then, from there, I've really like to stay busy and so, I think it's just carried over. But, in a lot of ways, I've had a lot of fun with these things as well. Especially for Women Who Code, a lot the women in that have become some of my closest friends and so going to those events is not really work thing or a networking thing it's really just a hanging out with my friends thing. So, that's a big part of that, it makes that a lot of fun.
Joel Hooks: That's the best part of networking, right? It's not like some sort of, I'm trying to get ahead, it's just I would like some friends and human companionship.
Ali Spittel: Oh, totally. And I feel like that's what networking should be. One sided relationships are just not going to be beneficial to anybody.
Joel Hooks: I had a tweet that was like building real relationships and friendships as a business strategy. That's the approach I want to take, I actually want to have connection and not just see how much cash I can extract out of the world. Cause what is that if you don't have the relationships and the contact with other people.
Ali Spittel: That's awesome, totally.
Joel Hooks: I think it's also what you're talking about. Cause as you get older and you're out of school and you're not forced to be with people all the time, the idea of making friends gets even harder and the types of folks you can meet in this field, there are so many good people and you have this common ground that's something you can talk about and have intelligent conversation. And getting out there and actually showing up at the meetups is such a great way to meet folks and build friendships that can last a lifetime. Right, its an awesome way to go. And you continue to inspire me, Ali, I really appreciate your efforts and what you do and your general message and all the hard work that you put in.
Ali Spittel: Thank you so much. That means a lot.
Joel Hooks: Thank you so much for sitting down and talking with me and as a last question, what's your top tip for anybody that's just getting started to code?
Ali Spittel: That's a good question. I think this message has been through this whole thing, but find your niche and find the thing that you're interested in and the thing that makes you like writing code because if you like doing it and you're having fun writing that code, then it makes a lot the other stuff that you'll have to deal with a lot more worth it. If you're not loving writing code and you're trying to teach yourself or go through a bootcamp, or something like that, that's a lot of commitment and a lot of work that you're putting in to something that you're not having fun with and that motivation might be really hard. So find something that you're interested in within the code world, there's so much from games, to web-development, to more specific things within web-development if you like styling or making things interactive or dealing with databases, or something like that, or data. Find the thing that you're interested and focus on that, and learn that first so that you like what you're doing instead of just spending time on something that's not fun for you.
Joel Hooks: Yeah, have fun. I think that's a great message cause its possible and there's so many options and there is fun to be had. So we can do that.
Ali Spittel: Totally, totally.
Joel Hooks: Alright, Ali, thank you very much.
Ali Spittel: Thank you.