Culture / Development

Q&A: Tracy Hinds on Bringing Node.js to the People

13 Apr 2016 8:16am, by

JavaScript’s massive popularity has largely been a grass-roots phenomenon. Rarely taught in universities, the language grew slowly by word-of-mouth (and by IRC) over the last decade, as developers, both trained and self-taught, applied Brendan Eich’s 10-day creation to creating ever more sophisticated Web applications. Likewise, use of the JavaScript server-side runtime, Node.js, despite its almost instant adoption the enterprise, grows by the informal channels — the local meetups, the informal training sites, and the weekend hackathons.

So, it made sense for the Node.js Foundation to foster wider adoption of Node by hiring on Tracy Hinds as the organization’s education community manager. Hinds was instrumental in fostering the Node.js community in Portland, Oregon, by helping run a number of local conferences and meetups. We spoke with Hinds at the Linux Collaboration Summit about her plans to help introduce the technology to more people, and to a wider, more diverse, potential user-base.

TNS: How did you first get involved in programming?

Hinds: I am a relatively new programmer; I’ve been doing it for about four years. I was previously in healthcare administration. Healthcare was really interesting but also riddled with technology challenges. Every position that I faced was a problem with adapting electronic medical records. I worked in an addictions facility at one point as well and hit a point where I asked myself, “Okay, where am I going to go next?”

One consideration was grad school for health care, but I’d always been really savvy in technology. I was really good at math, though you don’t have to be in order to be a good programmer. Most of my friends in school were engineers. So they suggested I try it. At that time, there were all of these new opportunities for learning, programming on your own.

So I learned Python to start. They had a really incredible community: meet-ups, conferences, online community. The earliest help was from IRC. There’s always someone who can help you when you’re struggling with a challenge.

While I was living in Portland, I had the opportunity, through all the connections I made through learning Python, to get my first job as a programmer professionally at Urban Airship. The company hired me on as a junior engineer, but it was also sort of an apprenticeship, and the condition was that I would instead learn JavaScript.

So I said, “Well, I don’t care. I’m fortunate enough not to have enough opinions.” So I learned JavaScript. It was a deep dive. My mentor was incredible, Chris Dickinson, who is now at npm. He’s a great programmer and also really interested in the way people were learning JavaScript as well as this new language Node.js.

So we buddied together to go to this meet-up, the first Node.js meet-up in Portland. At that first meet-up, which was the inaugural PDXnode, there was so much energy. The problem was that you could feel everybody wanted something out of it, but there was no organization to it whatsoever. So I met the two organizers, and we talked after the meet-up, and they said, “You should help us.”

So I started helping them run the meet-up and then I ended up taking the helm to run the meet-up and helping grow PDXnode. We held the largest International NodeBots Day in the inaugural year. I ended up getting sponsorships for hardware, which is not a thing that people did in that day.

We had a really diverse group of attendees. Most of them never having programmed Node.js before, yet alone worked on hardware. That’s a gateway for Node.js and, in a lot of ways, so is NodeBots. These people wanted just to see lights blink.

We did that, and we started running a NodeSchool, which was an incredible opportunity because it sort of empowered me and made me realize you don’t have to be a senior engineer to help other people learn. It also taught me that different levels of expertise are really valuable, even at a mentor-level, because you might be able to bridge the gap between vocabularies.

Because of that NodeBots Day, I was asked to run my first conference, CascadiaJS. I ran that while I was still working at Urban Airship, so I was a web engineer by day and a community liaison and events person by all other hours.

TNS: What are your duties as the Node.js Foundation’s education outreach person?

Hinds: My goals for this year include figuring out how we can provide a certification program for Node.js. That’s one of the three focuses I’ve got for this year. That, as well as building out the diversity of the Node.js community — I believe that education is a way for us to do that. My third focus is improving the documentation in Node.js to facilitate that learning.

TNS: Let’s go through those three. The certs — I guess the need is for credentials that enterprises would recognize…

Hinds: Yes, I’m working to identify that now. I know that historically, certs are mostly taken advantage of by large companies and by people trying to either get promotions or get hired. But there are a lot of smaller consulting groups using Node.js and those certifications might be a really powerful way to establish experts and competencies.

TNS: Excellent. You’re also facing the challenge of new technologies. The traditional Microsoft and Oracle certifications: I don’t know if they’re still book-based, but they’re all kind of old school.

Hinds: Oh yeah, so what’s exciting for me: you’ve got all these MOOCs [Massive Open Online Courses]. There’s the more traditional MOOC, which is something like edX, Coursera, and then you’ve got these newer versions like Codecademy and Khan Academy, which have these really truly rich interactive experiences. I don’t want to say that it may not work for everybody, but I’m really excited by that. I’ve been looking at the Linux Foundation’s edX MOOC, and it’s really incredible; it’s an extremely rich project.

“When I first started learning Node.js, I was really frustrated by the lack of documentation. Python and Django have very good docs. So I kind of hungered for a richer API documentation set.”

Now, for Node.js, that’s going to be a very interesting thing to approach because Linux is a different piece to learn. With Node.js, we do have challenges around the different operating systems that we have to work in, and we want to make sure that we’re hitting users especially on Windows because that’s something that we could do a better job of.

TNS: There’s also the question of JavaScript because when you’re learning Node.js, you may be learning JavaScript or you will be.

Hinds: I was talking about this, this morning, with the cert team that I’m working with at the Linux Foundation and it’s something that we tried to address in NodeSchool in the past. We need to recognize that Node.js is a fairly simple thing at its base to learn. There’s a lot of glue, and there are a lot of pieces being put together, but if you don’t have a certain level of competency in JavaScript, you are going to have a really difficult time stepping into Node.js.

So that’s something that I am considering, and we’ll be talking to the education advisory group about what the core concepts or domains that we need to cover. I believe that we need to make sure that there’s a basic sort of test out there for JavaScript because you don’t want to start someone off for failure.

TNS: So what are the challenges in increasing the diversity of the Node.js user base?

Hinds: We have two challenges. One is getting a more diverse group and range of people — and that covers age, race, gender, identification. We have so many challenges around internationalization too. We want to get people to see that we are an inclusive group and that we take into consideration their perspectives.

But I also think Node.js has some really incredible networks that might be isolated. I’m really excited to connect with these user groups around the world.

I’m very inspired by the Python and Django communities. I would like to say they spoiled me, but I think that they set a level of expectation for me that I have carried through into JavaScript, and I have been really empowered by people in the Node.js and JavaScript community who believed the same thing, and we try and help each other.

TNS: It seems like C and Java tended to be dominated by people coming from universities, whereas JavaScript has always been more of a grassroots sort of education.

Hinds: Yeah, absolutely. JavaScript is not being taught as much in universities. People I know who are coming out of university who write Node.js, they learned other languages in school, but they recognized that that’s not enough for them to be competitive when they get out. I think it’s really awesome that they are willing to do that much more work outside of class.

I should talk a bit about the partnership with NodeTogether, which Ashley Williams is spearheading. We want to get different vendors supporting and supplying mentors to the NodeTogether program, which is a multiple-hour workshop where you learn not necessarily the basics of Node.js, but how you glue it all together to build something in Node.js, which is also something that’s lacking and that does help build the base competency of a Node.js engineer.

Ashley has been traveling alongside our Node.js Live events and teaching those workshops. We’re looking for other mentors who can help with that because it is an in-person teacher curriculum-based training, very interactive, very encouraging. It’s awesome because that also feeds into the diversity initiative that we’ve got. We find that the workshops draw a much more diverse group of people.

I don’t know if it’s because you are expected to come in and not know as much and going to learn, versus a meet-up style, which is where you may think you already need to know a lot of these things to be able to understand these talks. But what’s beautiful is you get these people who meet each other. They’re really excited, and they’re helping each other learn and now we’ve created this sort of connection that hopefully lives on past the event.

TNS: What are your thoughts on documentation?

Hinds: When I first started learning Node.js, I was really frustrated by the lack of documentation. Again, Python and Django have very good docs. So I kind of hungered for a richer API documentation set. It was very slim, and that was because I think the people who are writing Node.js at that point were not new programmers. They were sophisticated senior developers who would come from other languages.

TNS: It was the ‘API-is-the-documentation’ school of thought?

Hinds: Yeah, read the source. But nobody told me that in Node.js. They were never dismissive. They would say, “Oh, yeah, that’s lacking or that’s terrible, so let me just help you with this.” So the only frustration with that is that you aren’t always going to have somebody around who is knowledgeable, and that’s not acceptable. So I have started conversations with the documentation working group.

Chris Dickinson, who is part of the Node.js Technical Steering Committee, he’s been trying to re-ramp up the activity in the Docs working group. Chris and I met recently about the possibility of doing sprints in docs. Docs are one way in for newer contributors — even if it’s just getting that first commit on a typo, we have the opportunity to make you feel welcome.

We’re talking about doing an international docs day and the notion behind that is to get people excited around the world. We want to be able to have something like a live stream so that people can talk to each other from different parts of the world. We would have mentors or people there who can support and actually point to something and say, “You can help here. This is a great place for you to be able to contribute. If you know about this, then let’s look at this part of the documentation set.”

Another thing that I wanted to do with Chris and the working group is something we’re calling open source nights. They could be opening nights at conferences, smaller regional conferences, where you have a night of “my first pull request” take place.

So you get people who maybe have never contributed to open source before, but they’re using it all the time, and it’s a way to give back. That really energizes people too. I’ve seen a couple of different communities doing that, and I love the idea of encouraging people to give back to the language that they’re relying on.

Transcription by Mara Kruk.

A newsletter digest of the week’s most important stories & analyses.