Jon Gottfried ADT podcast cover
Episode: 132

Jonathan Gottfried - Developer Education

Posted on: 25 Apr 2024
Jon Gottfried ADT podcast cover

Jonathan Gottfried is the co-founder of Major League Hacking, as well as the podcast host of the State of Developer Education podcast.

In this episode, we discuss the importance of developer education in today's highly volatile digital world. We talk about the evolution of developer education, the impact of (generative) AI, as well as the role of hackathons and the lessons Jon has learned from founding and running MLH.

 

Links & mentions:

Transcript

"Having different perspectives and approaches is part of creating technology. And when you're learning something new, it can really speed things along because you get to hear, you know, how other people interpret different concepts, or, you know, they might be faster paced than you on one thing, and you might be faster on something else. And it really sort of like, helps everyone level up together."

Intro:
Welcome to the Agile Digital Transformation podcast, where we explore different aspects of digital transformation and digital experience with your host, Tim Butara, content and community manager at Agiledrop. 

Tim Butara: Hello everyone. Thanks for tuning in. Our guest today is Jon Gottfried, co founder of Major League Hacking, and also the podcast host of the State of Developer Education podcast. In today's episode, we'll be discussing the importance of developer education in today's highly volatile digital world. Jon, welcome to the show. We're very, very happy to have you with us today to discuss this with you today. Anything you'd like to add here before we dive into the questions and the discussion? 

Jonathan Gottfried: No, thank you for having me. I'm really excited for our discussion and you know, you said that it's sort of a volatile digital world. I think now more than ever with a lot of the you know, AI advancements going on. So yeah, I can't wait to dive in more. 

Tim Butara: So I'm guessing that like my first question is going to be why is ongoing, I guess, education even more so or why is education in the broader sense so important for software developers, especially in current times, which you already started to answer. 

Jonathan Gottfried: I don't think this is a particularly hot take, but, you know, software engineering and technology more broadly is sort of a unique field in the pace that it advances.

Pure, I don't know, like, building bridges, right? The core physics and mechanics of how a bridge works don't change fundamentally. Year to year. Certainly, you know, strategies might evolve over time, but in software engineering, the core tooling, the core understanding that you have of how to build good technology can literally change on a month to month or year to year basis.

And so it's not that, like, you know, learning and sort of developing your skills is this nice to have thing to optimize your career. It's a necessity, right? And a lot of developers can get sort of like bogged down in the day to day work that they're doing and lose sight of both, you know, the fun aspects of learning new skills and also the sort of necessary aspects of, of keeping up with trends.

And that is compounded by. All of the crazy stuff going on with AI right now. And that's not to say that I don't necessarily think that AI is going to like replace programmers. Like I think that's a little bit, you know, extreme, but it's definitely changing how people write code, how people debug, how people think about, you know, designing software. And that's happened over the course of months, not years. 

Tim Butara: Yeah, yeah, definitely. I mean, AI is definitely one of the biggest, most impactful things here. And as you said, right, even if it doesn't take over jobs, it's still a huge disruption to, to the way software engineers and developers have been, have been used to working and operating and being successful, right?

If you have this tool suddenly that, you know, you can use for tedious tasks, which allow you to more easily and more effectively get into a state of flow. And then, you know, that changes things a lot. It shakes things up a lot, right? So you mentioned that, that there has to be a balance between like making education fun. And on the other hand, what was the other, other angle again? 

Jonathan Gottfried: I mean, I said part of it needs to be fun and part of it is a necessity, right? At MLH, most of our programs are designed for people who are early in their careers. So they might just be learning to code. They might have learned to code in the last couple of years.

You know, they might be getting their first job in tech. And if the listeners can think back to when they were students, Ask the average student what they think of going to class. It's not like their favorite activity, right? It's kind of just like a necessary evil for a lot of people. And so we really approach it from the perspective of how do you teach people things and get people to, you know, learn new things on their own in an environment that's actually enjoyable.

I think that hackathons in particular are a way. really powerful learning vehicle for developers because you're forced to solve fairly complex problems in a short period of time without a lecture. But beyond that, like the smartest developers I've ever known, and certainly, you know, I've tried to do this myself, learn through doing side projects, right?

They learn through experimentation. And, you know, there's a lot of like, educational psychology and studies that have been done about like how to make concepts stick and how to make people go in more depth on on different topics and enjoyment and sort of like novelty and experiential learning at least in a modern lens are a big part of that.

And so I actually think that like It's not just about, great, you're a developer at a company, take this online course to learn this new framework. It's really, how do we get people to experiment and play and really internalize a lot of the concepts that are sort of coming out in the space? Because that will be much, much more powerful than just like, getting a certification.

Tim Butara: So, so doing some kind of tangible actual project would kinda take care of both of these, right? So it would also be like something necessary, but it will also be done in a very fun, enjoyable and therefore approachable and easily memorizable way because it's fun, because it's not a pain in the neck while you're doing it.

Jonathan Gottfried: Exactly. And I think fun, tangible, ideally social as well, whether that's working with your colleagues, whether that's working with, you know, your friends, having different perspectives and approaches is part of creating technology. And when you're learning something new, it can really speed things along because you get to hear.

You know how other people interpret different concepts or, you know, they might be faster paced than you on one thing and you might be faster on something else. And it really sort of like helps everyone level up together. 

Tim Butara: Okay. Before we start talking about like specific tools and approaches in developer education, how they compare, which we already kind of started talking about.

I mean, we want to take a short step back and take a look at how developer education or this topic that we're discussing today. Has evolved over time, right? Because software development that's been around for, for quite a while now, but you know, we are talking as we stated in the intro, we are discussing this, this topic right now in the context of AI, of generative AI, of chat GPT, of all the disruption that this has caused, but what did it used to be like, so how these techniques and approaches evolve and what's the like more holistic state of dev education right now?

Jonathan Gottfried: So it depends if you're talking about what it used to be like 50 years ago versus what it used to be like 10 years ago. Computer science and, you know, coding in general certainly have roots in math and, you know, some, some hard sciences, but mostly math. And so a lot of historical computer science education is math oriented.

Some of that was just sort of like natural thing where People who are mathematicians were a lot of early computer scientists, but some of it was also necessity in that early, you know, technology and early programming required a fairly in depth understanding of some mathematical concepts because you had such limited compute power and memory and things like that.

And so that's really like where it stems from and even in those early days you saw hacker culture You know really evolving pretty quickly and I differentiate like hacker culture from computer science culture Because those were the people tinkering right like those were the people experimenting And that that was happening as early as the 1950s or 60s.

That's not like a new phenomenon of people playing with technology more recently, though, I think A lot of coding education has shifted from sort of like theoretical mathematics, things like that, to much more practical hands on skills. So really shifting from like computer science as a academic discipline to software engineering as a practical discipline and most places you go, you know, we'll still teach you the fundamental computer science concepts, but.

It's not as in vogue anymore. I think that you probably need some kind of mix if you want to be able to have a more advanced career. Like personally, I have a history degree. I'm a self taught programmer. I worked as a software engineer. I think I was decent enough at it, but I still am missing some of those fundamental underpinnings of, like, you know, let's talk about, like, how you design really efficient algorithms.

How do you, like, build something that scales to billions of computers, right? Like, that's not my expertise. I can build you a great web app or maybe a mobile app, but I'm not going to be the person building, like, A fundamental new, efficient library. And so I do think that like, in order for people to do that kind of work, you need a balance of practical skills and sort of theoretical skills, but the way that is taught is, is kind of a different question, right?

Like, I think one of the major problems with computer science education and coding education is that. A lot of the people teaching it are fairly disconnected from industry. And so they might be academic experts or research experts, but when's the last time they worked on a high scale software engineering team, maybe never, maybe a long time ago.

And so that really does, you know, create kind of a big gap in, I think what students are able to learn in traditional academic environments. And so most people use on the job learning as sort of like way to plug those knowledge holes.

Tim Butara: Yeah. You mentioned earlier on, you mentioned hackathons, and I think this is a good place to talk a little bit more about them. So maybe for those listeners who maybe haven't yet attended a hackathon or who had never heard of a hackathon, maybe can you explain a little bit, a little bit what a hackathon is and what kind of a role do hackathons play in in developers, developers education today, or maybe should play. 

Jonathan Gottfried: So I always like to clarify that, you know, when I say hacking or hackathons or hackers, we don't really mean that in a security sense.

Certainly the word hack is used in that sense, but we're referring it in terms of hacker culture, which is really the culture of people who like to tinker and experiment with technology. Hackathons are an extension of that philosophy. So they tend to be weekend events. So you start on a Friday night, you end on a Sunday morning and I, I call them invention marathons.

Imagine a hundred or 200 developers getting in a room together, brainstorming all the crazy ideas of things they want to work on. organically forming teams around those ideas, and then literally spending their weekend building a working prototype of those ideas that they then can demo to their friends and judges.

Most hackathons have some kind of prize. It might just be sort of like recognition. It could be actual like stuff of value. And really, it's a dedicated time and place to make your ideas a reality. When we have jobs, when we have school, when we have commitments in life, it can be really hard to like find space and time for side projects and focused building and learning.

And I think the magic of hackathons is that they provide that time and space to a large group of people. To do that together, you know, you really feel the energy of being in a room surrounded by people building cool stuff and it's a really kind of addictive concept. Like it's fun, it's educational, it benefits your career, like, and you know, it's social.

Tim Butara: Basically, it's learners learning together. By working together with other learners under the, not, not the supervision, but the guidance, like from, from, from the few hackathons that I've attended, we, we, like, you know, you had like groups of people working, working on their own, but then you had like, I don't know, someone from the, from the hosts, from the hosting, from the, from the company or organization provided the hosting or did organize the event would maybe have like a few experts of their, like maybe matter in this case, maybe like development managers or like higher level engineers on the field, you know, talking with them, like not telling them what to do, but like, like, you know, nudging them in the right direction if they, you know, lose their, lose their momentum or something. So it's like in the spirit of everything that we discussed before this, it's really, you know, not, it's like the opposite of learning it from somebody who is disconnected from the industry.

Jonathan Gottfried: Yeah, it is practice, you know, to really learn and internalize and understand technical concepts. You have to use them and hackathon provide that environment for a lot of people to use them. The analogy I always like is imagine if you want to become a painter and you go to art school and all you do every day is sit and watch your teacher paint and demonstrate different techniques and you never do it yourself.

You're going to be a terrible painter, right? Software engineering is same way where just because you understand the concepts doesn't mean you know how to apply them. You need to learn to apply them too. 

Tim Butara: That was a very, very excellent point, Jon. And I'm wondering, so since developer hackathons seem to be a really awesome way of, you know, of doing this that kind of covers all of these different aspects that we discussed.

How would you compare hackathons to, to other you know, major and most popular tools and approaches that are currently used in, in dev education? 

Jonathan Gottfried: I don't believe that hackathons are the end all be all of learning, you know, technical concepts. I actually think they are complimentary to most other ways of learning.

So if you are in school for computer science, if you're in a coding bootcamp, if you're doing an online course, if you're just reading a textbook, you know, all of those things are sort of like direct foundational learning mechanisms, right? Like I will. Listen to someone talk about this concept, or I will read about this concept.

Hackathons compliment that, but they don't replace it. You know, typically hackathons don't have someone teaching you the foundational concepts that you're using. There's simply, you know, the kind of mentorship you described to deal with more like practical problems. And so I think that like you need, honestly, like for, for any technical education for developers, you need a mix of different approaches.

You need someone to explain the concepts to you, you need, whether that's in writing or live, and then you also need a place to apply them and try them out. The third layer of that, which is, you know, even beyond like a classroom or a hackathon, is on the job training. Like, Hackathons don't replace the experience of being a full time developer or software engineer.

You will learn different things working on a company's roadmap than you will on a personal project. And so you kind of need like these different layers to gain like true experience. And they all complement one another. 

Tim Butara: Yeah, I'm guessing that it would be quite difficult to just jump straight away into a hackathon without having, like, any theoretical knowledge.

Maybe if it were, like, for similar technology, but if you're, like, a total beginner to programming, then that would just be a recipe for disaster, probably. 

Jonathan Gottfried: I mean, you'd be surprised. We do see a lot of first time coders at hackathons, and they do actually end up being quite successful. I think I'm talking more big picture, though.

Like, if you want a career in technology, you probably need theoretical knowledge, applied knowledge, and on the job training. But to be successful at a hackathon itself, in that experimental format, You can definitely get by with pretty minimal coding skills. 

Tim Butara: Well, but since we already started talking about this and to kind of start rounding the discussion off, what have been some of the most interesting experiences and maybe the key lessons that you've learned from founding Major League Hacking and probably organizing a bunch of events?

Jonathan Gottfried: There's a lot of things I've learned. Probably the main thing I've learned is that communities as a concept and especially technical communities are incredibly powerful. Major League Hacking operates in a decentralized community model and not decentralized in like the blockchain sense, but like decentralized in the very literal sense of we work with local groups on hundreds of different college campuses and in cities.

So, you know, a lot of folks listening have probably been to a meetup at some point, maybe a conference. For us, each of those meetups can be a chapter of the larger organization, and that's incredibly powerful. It is not as much of a top down approach, so people really care about what's going on in their local community.

You get different ways of thinking about teaching, different ways of thinking about engaging developers that change from city to city or school to school. And you really get a lot of shared knowledge between all of the different local organizers. And of course, MLH has this like, sort of like umbrella organization where if one school comes up with something innovative, a lot of other schools can utilize those same strategies and approaches.

And I think that's incredibly powerful because you're decentralizing, not just like the decision making, you know, authority or the sort of like format of these groups, but you're also decentralizing, like, experimentation and innovation, not to use too many buzzwords, where people really are creative and they really do care about advancing their own sort of like peers interests.

And if they come up with something that works really well, it's really advantageous for other groups to copy them as well. And so I think that's one of the biggest things I've learned from MLH is like, you don't have to be a genius all on your own, right? Like we don't have to invent every novel thing that happens You can really trust and sort of like empower other people to make an impact 

Tim Butara: Yeah, that makes a lot of sense. But basically by decentralizing innovation to reuse the buzzword you give yourself much more leeway for success than if that was centralized. Yeah. 

Jonathan Gottfried: And ironically, like the same thing is true of hackathons. Like hackathons are decentralized learning and innovation on their own because you have hundreds of people coming together to come up with novel, new concepts. 

Tim Butara: Jon, this has been a great discussion. And if anybody listening right now would like to connect further with you or learn more about you or learn more about major league hacking or like attend a hackathon, check out where the events are, where would you send them to if they wanted to do all that?

Jonathan Gottfried: Yeah, I'd recommend going to sponsor.mlh.io or you can email me directly at jon at mlh.io. You know, we primarily work with companies who are either hiring developers or who have a developer platform or API that they want to introduce to their customers. Developers to in mass. And so if you'd like to talk about either of those things, we would love to hear from you.

And thank you so much for the conversation. I really enjoyed it. You know, we care a lot about helping developers learn and empowering the next generation and hopefully everyone listening does too. 

Tim Butara: Likewise, Jon, this was an awesome discussion. I was really happy to chat about this with you. We were very glad to have you on and I'm wishing you an awesome day.

Jonathan Gottfried: You too. Thank you. And happy hacking. 

Tim Butara: Thanks. You too. And to our listeners, happy hacking. Have a great day, everyone. That's all for this episode and stay safe. 

Outro:
Thanks for tuning in. If you'd like to check out our other episodes, you can find all of them at agiledrop.com. As well as on all the most popular podcasting platforms.

Make sure to subscribe so you don't miss any new episodes, and don't forget to share the podcast with your friends and colleagues.

Listen offline

Share