The Freelancers' Show 099 - Mentoring with Najaf Ali
The panelists discuss mentoring with Najaf Ali.
[Hosting and bandwidth provided by the Blue Box Group. Check them out at BlueBox.net.] [You're fantastic at coding, but do you have an action plan to take it to the next level? The upcoming book, Next Level Freelance will help you optimize your freelance business for happiness. The book is packed with actionable steps to make more money, case studies, tips to find more clients and exercises for you to establish your desired lifestyle. Extras include nine interviews of freelancers who make great money while enjoying great work-life balance, videos on strategies to find quality subcontractors, and videos on making more free time by outsourcing your daily tasks. Check it out today, nextlevelfreelance.com.] [This episode is sponsored by Planscope. Planscope is a project management and collaboration app built for freelancers and the way they work with clients. It makes it easy to price up new estimates, and once you're underway, helps answer the question, “Will this get done on time and under budget?” I've been using Planscope to do my estimates and manage my projects, and I really, really like it. It makes it really easy to keep things in order and understand when things will get done. You can go check it out at planscope.io.] CHUCK: Hey everybody and welcome to episode 99 of the Freelancers’ Show. This week on our panel we have Reuven Lerner. REUVEN: Hi everyone! CHUCK: Mandy Moore. MANDY: Hello. CHUCK: I'm Charles Max Wood from DevChat.tv and we have a special guest this week, and that’s Najaf Ali. ALI: Hi there. CHUCK: So do you wanna introduce yourself, for those who don’t know who you are? ALI: Sure, yeah. I'm Ali. I'm a Ruby on Rails freelancer. I run a very small consultancy that’s going to hire its first employee next week, I think, and I also do a Rails security workshop every couple of months. So that’s what I've got going on but for the most part I'm just a regular Ruby on Rails freelancer. CHUCK: Oh, cool. So this week we’re going to be talking about mentoring. Have you done a lot of mentoring? ALI: Yes. At the moment I'm doing mentoring through a variety of different channels, I guess. I'm doing training events with this group called Code Bar, who like to sort of outreach to people from underrepresented communities in technical circles. I also mentor people – basically anybody who gets in touch via email and asks for help getting into this industry. CHUCK: Yeah, it makes sense. I've done a fair bit myself. I do coaching; I do workshops, and I have a Ruby on Rails online course that I do, and that includes basically free coaching for the 12 weeks that it goes. REUVEN: I'm curious – how would you guys distinguish between training and mentoring? Or is there really a distinction? ALI: The topic is, I think, relevant. If you're teaching people how to program and going into their poll request and telling them that this might be a better way of doing it – I personally would count that as training, whereas if you're saying, if you wanted to get a job as a developer or get your first job, or get a better job, then if you're mentoring them in terms of their online presence and talking at events and stuff, then that I would count more as mentoring, but the distinction is, I guess, a little bit arbitrary. REUVEN: Yeah, I think I actually would define those exactly the opposite way, actually. ALI: It’s just like the vocabulary, right? So, yeah. CHUCK: Yeah, I tend to think of training more along the lines of in-classroom, a little bit more impersonal; mentoring is helping somebody come along with their skill set, but in a more personal sit-down, let’s talk kind of way. ALI: Right. CHUCK: One other thing that I think is interesting is that I've worked with several guys that are – when I say guys –. I don’t think I've had nay co-workers, at least when I work for a company, that were women that I needed to mentor or help out. Anyway, I've mentioned several people that I've worked with, and with them it was much less formal and more or less just when they needed help, needed a hand, needed something explained to them – that’s what I was doing. I think there are a lot of different ways of mentoring. ALI: Sure. One question that I kinda have for you guys is if you have done mentoring before. What is your reason for doing it? What is that value that you're personally getting out of that interaction with someone else? REUVEN: It sort of depends. I do a whole other different kind of training and I sort of see training as what Chuck said was kind of like classroom, lecturing and talking. But then a lot of my work is also of more consulting, which can variously be development, and can also be what I sort of see is more of the mentoring, which is like sitting down and pairing, talking to someone, sort of talking through their code, talking through things they don’t understand – much more sort of one-on-one. [Inaudible] call it like being a doctor, “Tell me what hurts you” or “Tell me what problems do you have long term?” ALI: Right. REUVEN: And so what I get out of it – I mean, obviously there's like the I get out of it business from clients, but beyond that I get a huge sense of satisfaction that this person does not understand something. They have a real conceptual block or they’ve written something very poorly, and I'm not going to go fix it for them. Yeah, that might fix the code, but that’s not really going to help things. I'm going to sort of walk them through it and help them through the thought process, so that they could sort of understand the concepts behind it, and then in the future they’ll be able to do it by themselves. ALI: Yeah, I totally agree with that sense of satisfaction you get from teaching someone. I run a security workshop for intermediate to advanced Ruby on Rails developers and at the end of the workshop with the last three or four exercises, I basically go through a remote code execution vulnerability that is very easy to sort of creep into your application. Just watching developers sort of get about ¾ of the way through the exercise, realizing how serious it is and turning around, looking at me, and saying, “Okay, I've gotta stop the exercise now, because I need to go and check my code to make sure it’s not vulnerable to this.” That is really satisfying because it means that finally, it’s clicked. They understood how serious it is and they go away and get it, so that’s – an immense amount of satisfaction comes out of that so yeah, that’s pretty cool. MANDY: I'm doing a lot of mentoring right now, because it’s going to eventually benefit me in the long run, because I'm expanding my business to Dev reps. I'm actually training my fiancé to some audio editing, so that eventually he can help me out and we can take on more podcasts and take on more clients and make more money. I'm also going to be doing the same thing with my step sister in a little while after she has her baby. And the same thing, I’ll be teaching her to do something to take off my plate so that I can expand my business. CHUCK: Yeah, the same kind of thing for me, both with subcontractors and sometimes with Mandy or some of the other folks, if there's something that I need done, and I need them to understand that I wind up kind of mentoring them there as well, but there's that payoff. The other thing is that it’s – for me, there's a lot of satisfaction that goes into having somebody get it; having somebody have that moment where it clicks, like you were saying, Ali. It’s really kind of fun; it’s like, “Oh, okay” and their life’s better, or at least, their code’s better. ALI: Right. For me, personally, in terms of security, I'm always the guy on the team that is really focused on security, so it feels like I'm always complaining in a vacuum, and I have to fix every vulnerability that I find by myself and nobody else really cares. But by teaching other people, I'm getting them to fix the vulnerabilities for me in other codes, so I'm making the software in my community – in London, at least – a little bit more secure, kind of, with on stepped removed from the actual software itself, so that’s pretty cool. It sort of sounds like – at least in software – this sort of mentoring has three benefits. There's the benefit of improving the code; there's the benefit of helping the person to improve. I guess your personal benefit is the feeling of satisfaction. And then of course on top of it there's the business benefit of hopefully this person and the people working with them are going to say, “Hey, I got a huge amount of value out of working with that person.” And they're going to spread your name around as the person who’s worth working with. So it’s like really a win-win for everyone, or a win-win, win-win, win-win or something. ALI: The only thing I would add to that is especially if you're a freelancer and if you want an extra bit of income doing workshops, like paid workshops, is a fantastically lucrative thing to pursue. I mean, when I first started doing them, it was something like a month of work, almost full time, to get the prep ready for it. But now, I can turn up with maybe about half an hour or an hour’s prep and I'm ready to do the workshop and it nets me something like my freelance income for about two weeks. From a business point of view, not only having the word of mouth, but also the amount of cash that it brings in is really, really good. CHUCK: That makes sense. That’s something that I'm working on right now; I'm going to be doing a workshop here in Salt Lake. It’s really interesting; it came out of another form of mentoring, which is in the mailing list for the Utah Ruby Users Group, you know, so you can get involved. That way, you can help people out on List. And then somebody mentioned, “Well, gee, it’d sure be nice if there was a workshop I could go to” and so I mentioned, “Well I have my Ruby on Rails course, I could do the workshop,” and people got excited. It was just kind of interesting to see how that worked out, but it’s definitely something that you can do. REUVEN: I think you’ve also been very smart in focusing on security – that’s something where people need to know about it. I mean, [inaudible] be better or worse at programming, or doing database optimization or something like that, but at the end of the day, everyone realizes that if your web application is vulnerable, your business is vulnerable. And so I think by going into that niche, not only was inspired to go into a niche, but a niche that people see as extremely valuable. I don’t know if you just fell into it or you did it on purpose, but that was very good. CHUCK: So we’ve talked about you have like kind of the in-person thing, the workshops – there are other ways of doing it, I guess, where you have the one-on-one training, which is what Mandy was talking about. And then I mentioned mailing lists; I sometimes get on one-on-one over Skype, do some peer programming. Or with some of my clients, we just sit down and discuss different things that they could be doing, where it’s more of a phone call or a face-to-face video chat or something like that. Are there other ways of mentoring people that you can think of? ALI: I'm not sure if it counts as one of the other ways that you mentioned, but doing stuff remotely –. I'm hiring a developer who’s starting next week; I won’t say she is a developer, but she’s learning the program pretty much from scratch. And yeah, we’ve been sort of working on, like exercises via Trello and GitHub and just sort of working via poll requests and giving each other feedback and what have you. I'm not sure if that counts as the same as what you were talking about with doing stuff over Skype but it’s not in person; it’s completely remote. I'm not sure how successful it’s going to be, but we seem to be making a lot of progress so far. CHUCK: That’s very similar to something that I've done with some of my coaching clients, where basically I take a bit of their code – and I know that this is very coach-centric but I think a lot of this apply to other fields. But I've actually gone over some of their work and recorded a video, a code review basically. So I look over there working and then I give them feedback on the video that explains I would have done it this way and here’s why; you're heading for a [inaudible] here with this; this looks really nice; I’d do this thing a little bit differently, and just kind of give them that feedback on how to approach some of that stuff. It’s not in person either then, it’s a recorded video. REUVEN: I'm talking to two companies in the last few months; I haven't done anything with either of them yet. I'm not sure what stage they're at but one of them is called Hackhands and the other was called Bloc.io and both of them are trying to provide online mentoring services. Hackhands is more like – I've just seen sort of a demo but it’s more like an iRC chat with screen sharing or editor sharing. So basically, if someone has a problem, they can go into this chat room and get help from someone online. I'm not sure exactly whether – I think they charge per hour or something. But I think the idea is if someone has a problem, they could sort of go, and I think they can sort of re-hire the same person again, and again and over time [inaudible]. And they're trying to provide something that’s a little sort of more coach-centric than just basic screen sharing. This other company that I spoke to – but then again, I haven't done anything with – is called Bloc, or Bloc.io, where they're trying to teach people to code from scratch. They have their own sort of curriculum, but they like to mentor people online. I think the idea is, yeah you can work through the curriculum on your own, but they're looking for people to sort of teach – but not teach the whole thing – just when people are stuck and when people need this sort of long-term, helpful, find that conceptual problem people are having and help them work through it. So there seem to be some platforms growing up around this sort of idea to make it more of a business and not just find someone out there on the web. CHUCK: Yeah, that makes sense. I kinda wanna move through some of these different ways of mentoring people, some of the different avenues that we’ve got and just talk about each one, kind of the pros and cons and make suggestions about how to do it. It seems like we’re talking about some of these online mentorship where you're not necessarily in person. Should we talk about maybe some of the live, online stuff and then we can talk about some of the not live, I guess? REUVEN: Dead, online stuff. [Chuckles] CHUCK: The deferred mentorship. ALI: Asynchronous mentorship. CHUCK: There you go. REUVEN: There you go, that’s much better work, yeah. Sure, sounds great. CHUCK: So the online, live mentorship – what tools do you guys use when you're doing that kind of thing? REUVEN: I've done it a bunch of times with different people and I'm always sort of trying new things. There's something called tmux.me, which is pretty great. I mean, tmux is this wonderful thing that allows you to share screens, and you can set it up on servers and on and on, but the configuration can be tricky for someone who doesn’t know what they're doing, or they just want to start doing it quickly. Tmux.me really kills the easy way to set the tmux section and share a screen with someone else, so as long as you're okay with a text-editor, so not a GUI editor, but if you're okay with Vim or Emacs, then it works fantastically well. CHUCK: Tmux is a command-line only, so. REUVEN: Yeah. CHUCK: If you're doing that kind of mentorship, it works great. REUVEN: Yeah. Wait, are there people out there who do not use Emacs? I've heard vicious rumors, but I've yet to meet such in a while. ALI: I'm in hostile territory [inaudible]. [Laughter] REUVEN: I think there's another company that I've seen more and more people I've heard of called join.me. It’s definitely one of my favorite URLs out there, and that’s a full, screen sharing thing, so you can really see the person’s full screen and window and if you're using one of those newfangled GUI editors or multiple windows, then you can use that too. I've used both of them in different occasions, and I've been pretty happy with both. CHUCK: Yeah, I wanna jump in here because I think we’re talking about two different things. If you're doing IT work, then tmux is terrific. If you're doing mentoring for something else, I think this is much along the lines of maybe business people or basically processes where you need to be able to see the person’s setup and actually look at what they're doing and maybe even take control, then tmux is not going to work for you; you're going to have to use something else. [Crosstalk] REUVEN: [Crosstalk] You're setting up servers, right? But you're right that it’s more of a business-y thing. You're totally right, yeah. CHUCK: Yeah. So if you're showing somebody how to edit podcast that something that Mandy mentioned or do somebody’s books or something like that, then you're probably looking at something else. I've used one called Screenhero –. MANDY: That’s it, that’s a good one. CHUCK: It’s a terrific tool. It allows you to share just one window, or you can share your entire screen. I have two monitors, so I can pick which screen I'm sharing, and that’s worked out really nicely even with programming where I needed to share the web browser so that I could see what somebody else is seeing. The other one that I use a lot for screen sharing is actually Skype, and we’ve mentioned that before. The difference between Screenhero and Skype is that Skype is one way, so you can see but you can’t touch, so to speak. With Screenhero, you can actually move the mouse on the other person’s machine. If they're just sharing a window, that window has to be in focus on their machine, but you can also control the window there, too, so it’s pretty handy. I've also used GoToMeeting, which is kinda like join.me, except it has its own client, and that works out pretty nicely. GoToMeeting actually has recording features in it and things like that. Reuven mentioned Google Hangouts in the chat and that also kind of works in the same way. GoToMeetings is a little bit of a higher fidelity, I found, than Google Hangouts – the sound quality is better, video quality is a little bit more reliable, but it’s not free, so that’s one tradeoff there. I'm trying to think because I've used several others. ALI: One that I've heard of that I haven't actually used for actually doing meetings yet but I just played around with – Sqwiggle. Apparently, that’s the new hotness in terms of videos and – there's no screen sharing involved there, but as far as like a video chat sort of thing goes, it’s really good if you’ve got a remote conversation over the course of two or three hours and you just wanna jump into and out of conversations as you have a problem, than have one sort of continuous video chat. CHUCK: Yeah, and that’s Sqwiggle with a ‘w,’ not with a ‘u’ after the ‘q.’ REUVEN: That’s why I couldn’t find it now; I was spelling it right. Silly me. CHUCK: Yeah, and then one other that I used is TeamViewer. TeamViewer is probably the best one that I've used. The problem that I have with TeamViewer is that the license is rather expensive, and if you're going to use it for commercial use, you're supposed to have one. So if you're going to use it for mentoring somebody or something like that where you're getting paid, then you're technically not supposed to be able to use it. But if you're using it like I used it to do some tech support for my mom – that’s free. She’s not paying me; I can just have her tell me what she’s seeing over the phone in Windows 7. I used to be able to do that in Windows XP, but I can’t do it anymore in Windows 7, so I just got in and fixed something for Firefox or something. So that’s a pretty good tool if you're just, out of the kindness of your heart, helping somebody learn. There's another one that I've been looking at using, but I haven't actually tried it yet – it’s called FuzeBox. F-U-Z-E-box.com. All of these are kind of the same idea: you're sharing a screen and you're able to see it and give them pointers. Of the one that we've talked about, the only ones that I know that you can take control of the other person’s screen or window are Screenhero and TeamViewer. REUVEN: Yeah, that’s pretty important I found – I mean, it’s one thing to be able to show the screen, but I often find that if –. Let’s say that I'm working with someone and they're showing their screen to me and we’re talking over Skype or Google Hangouts, very often I get frustrated like, “I just want to type HERE!” and I type faster than they do, often. Although you can argue that as a learning experience, it’s probably better for them to do the typing, just sort of hear what you're saying. ALI: I have to say that especially when you're mentoring people who are new to programming, having to sit and wait to watch them type stuff out is probably the most frustrating element of the whole process. CHUCK: Yup. One other thing I want to point out is that a lot of these work with varying success in Linux, most of them work fine on Mac and Windows, but I know that some of our audience are Linux [inaudible] and some of these work or work with varying success, so just be aware of that. I know that join.me is Linux-friendly. GoToMeeting really isn’t; Skype is hit or miss for most people that I've talked to; and I'm not sure about TeamViewer – I don’t know if they do Linux or not. I think they do. Anyway, just to point that out. REUVEN: Yeah, I just went to their website, and they do have a Linux client on TeamViewer. CHUCK: Okay, so the other question that I have related to kind of this online mentoring then is what techniques do you use? Because if you're sitting next to somebody, the communication is pretty easy – you're right there, you can grab the keyboard if you have to, you could gesture as much as you want. How do you compensate for that when you do online mentoring? Are you using something where maybe they can see your face, maybe they can see your screen or you can see theirs – what techniques do you use? REUVEN: I think what actually happens with me is I start using video, and then it ends up having problems because it’s consuming so much of the bandwidth either for me or the person I'm working with, so we end up turning off the video. And then we end up just trying to talk a lot and speak a lot to each other. I would say the frustrating thing in that is not that there's no video per se, but I tend to draw a lot on whiteboards, pieces of paper, whatever, so sometimes I just need to sort of open a drawing program somewhere and then squiggle a little bit so they can see things. CHUCK: Yeah, I like that. It’s really hard to do –. One thing that I found that really helps me when it’s a remote situation is being able to do all kinds of different things. So you have the screen sharing, you have the voice chat, sometimes I have my webcam pointed at me, and it looks like it actually fell off when I was doing some work in here because I don’t see it on top of my monitor –. Anyway, that helps because then they could see my facial expressions and things like that, and then the other thing is just having the chat channel and everything else, because then I can copy and paste links; we can share the screen and be looking at the same thing; when I pair programming, we have tmux open with Emacs, and we’re doing that, so we have all of these different media that allow us to communicate in different ways that are appropriate to what we’re doing. And so then if I do need to send a link over Skype, I can just do that. Somebody can click it, and that works out because it just opens up in their browser. If it’s some code segment or sample, then we can open up a new buffer in Emacs and type in, or copy in, or whatever, and then we can show the results in a shared window on the browser. It really pays off to have all these different tools and understand where you can put things, and in then that way you can open up the communication and do it in the most effective way. So what about in-person? What do we think about in-person mentorship? Is it easier or harder? REUVEN: I think it’s easier because you have the full bandwidth of all communication, and if you want to type, you can type; if you wanna draw, you can draw; if you wanna take a break, you can take a break; you can sort of walk down the hall together – it just opens up more possibilities. ALI: I'd have to agree wholeheartedly. CHUCK: Yeah, I tend to agree as well. I mean, you basically have all the same tools at your disposal as you do with doing it remotely, except the difference is that you're both looking at the same machine, so you're effectively having the same experience. The flip side is that I found that when I'm online and when I'm doing pairing, pair programming, or doing something else where I'm actually sitting down and actually helping somebody through something, I found that it’s easier for me to stay on task in those situations. When we’re both there in person, we can wind up chatting about something else, or get sidetracked by something that’s in the restaurant we’re sitting in, or things like that, and so I tend to prefer online depending on what we’re doing just because it’s easier for me to stay on task and it’s easier for me to keep the person I'm working with on task. REUVEN: When I'm working with people in person, it’s true that we’re usually working on their computer but I actually have my computer around separately just because I have my environment and setup, but I can do things faster with it. Very often they’ll say, “Why is it working that way?” and then I’ll open up Pry, for instance, and then just sort of walk them through it in my computer where they can see it faster, more easily, and then we’ll go back and keep working on theirs. CHUCK: I wanna hear Mandy’s take on this. Do you have them work on their machine or yours? Do you find that it’s a barrier making them do it on their machine instead of on yours where you have everything you have set up the way you like it? MANDY: I actually have three computers now that I have set up the same way. Of course I have the best computer, I have the newer Mac Book, but I do have an older Mac Book which is a lot, lot slower than my computer, so that’s another place for patience kind of comes in, as far as that goes. It’s set up the exact same way, so I’ll sit down right next to somebody, show them, ‘click here, then click here,’ and they're basically just mirroring just what I'm doing and then I’ll show them when I'm doing it I’ll say, “Now, I stopped the recording. What do you think I stopped it for? What's the reason do you think I stopped it for?” And they would be like, “Well, somebody said ‘um’” or “You stopped it because there was a long pause” or “You stopped it because it was a repeat word.” So I kind of quiz them along with me teaching them, so then they can tell me what is wrong and I can be like, ‘yes’ or ‘no.’ CHUCK: That’s interesting. I guess it’s the perks of being the boss and providing the equipment right? You set it up the way you want it? MANDY: Yup, exactly. I have two Macs and one Windows, so really we don’t use the Windows one all that much anymore, but it’s still basically the same. REUVEN: Sometimes, like actually not infrequently, I’ll do something on my computer, and some will say, “Wow! How did you do that so fast?” and then I’ll show them whatever shortcut or setup or configuration I've got. So little by little, my various techniques and shortcuts are making their way to the computers at all my clients’ offices, which is kind of a fun feeling. MANDY: Same here. I started out with some of the little things, because there's a lot of shortcuts that I can use, but as not to overwhelm somebody, I just kind of show them the basics to get the job done, and then if somebody asks, “How did you just do that so fast?” I’ll be like, “Well, you just press Command and whatever, and that does what it does.” CHUCK: I have to say that’s one of the things that I like about having people work on my setup, especially people who are a little more advanced than I am in some areas, is that then I end up getting mentored in that way. REUVEN: That’s a good point. CHUCK: But s far as recording, or in other ways, mentoring people when you're not either in person or live online – Ali, you mentioned that you do a bit of this. What do you do, and what kind of techniques do you employ to get the point across. ALI: Basically, when I'm not online and I'm doing stuff like mentoring somebody remotely, I basically give them exercises to do, and then I give them feedback on their answers. I think Reuven was saying before about how it’s much easier to do this in person, and it’s so true. I'm working with this person, and it’s stuff like they haven't indented the ‘how’ properly, which means that if I was sitting next to them, I could fix that in like a split second. But because it’s online, it takes a day for them to give me the code and for me to feed back to them. It definitely has challenges, but a lot of the time, because you're not there to fix the problems for them, they have to figure out the solution on their own, which takes them hours, but they often end up learning a lot that way, so there's pros and cons either way. CHUCK: Yeah, that definitely makes sense. And that’s something that I've experienced with my courses and with some of my coaching clients. I'll record a screencast and I’ll kind of semi-live, where they can watch me fix it. I don’t always do that, but yeah, a lot of times, by the time I've gotten back to them, they figured it out on their own. But I do try to make myself available especially with the courses, so that I can short-circuit those couple of hours. A couple of hours of Google-ing isn’t that productive other than them figuring out where to look for the answer, but if I turn around and I can answer their question in a few minutes and say, “Here are a couple of examples where you could’ve gotten the answer,” then a lot of times I save them a couple of hours, and then they can figure out, “Okay, so these kinds of StackOverflow questions, or these kinds of issues on GitHub or whatever, are places where I can go and look and get answers to these questions.” REUVEN: I thought, Mandy, when you were talking about the way you're asking questions, I was actually at an education conference just today and we were looking at a transcript of a teacher in a classroom and talking about how they are a good teacher or a bad teacher in technique, and it was clear that this teacher was very effective and very good, and the teacher never said, or almost never said, “You're wrong; you made a mistake,” but rather the teacher was always saying, “Well, what do you think about this?” or “Can you explain to me what you did here?” and by using that questioning, it both soften the blow, and it really made the person think better. So I was very impressed to hear that that’s the way you try to do things, and truth be told, in a way, you gotten me really try to sort of monitor myself when I talk to people, either mentoring or training, because I think it’s really effective to talk that way. CHUCK: Yeah, the technique that you're describing is the Socratic Method. It’s pretty popular in law schools. Believe it or not, I was actually looking into going to law school at one point, but anyway. REUVEN: Wow. CHUCK: Yeah. Long, another story. But anyway, yeah, so that’s basically what it is – you ask questions and you get answers and you try and use that technique to stimulate critical thinking and make them really think about not just what but why, and it’s very effective. I wanna kinda change directions here for a minute and talk about being mentored. Do you guys have people that you go to as mentors? MANDY: I do, yes. REUVEN: Yup. Yeah, I hadn’t really thought about that, but yes. ALI: Not officially that I'm in contact with, but people who I listen to the advice of a lot, yes, I suppose. CHUCK: And how do you pick those folks? MANDY: They pick me. [Laughter] CHUCK: I feel so much better about our relationship now, Mandy. MANDY: [Laughs] CHUCK: I'm just giving myself a lot more credit than I deserve. How about you, Ali? How do you pick the people that are your mentors, so to speak? ALI: Typically, I’ll have read something by them that kinda resonates with me quite well, that has a lot of things that either are useful to me, or I've already put into practice. CHUCK: Yeah, I'm kind of the same way. I was listening to New Media Expo, Michael Hyatt – he used to be the CEO of Thomas Nelson Publishing and now he has a whole series of podcasts and things that talk about sort of being productive and living your life to the fullest and things like that. He gave a talk at New Media Expo and he talked about, basically, I think it was Five things that every freelancer, but basically it’s every business purchase you do in building your platform. If I remember correctly, one of them was to basically choose mentors. And then somebody else, somewhere along the line – I don’t know where I heard this – but basically, yea, you basically choose two or three people out there and you just consume everything they produce. You do that for a year, and then you pick new people the next year, so they can be your mentors without actually one-on-one or through a class or anything – basically being that person that’s giving you direct advice, but you can still take what they're telling you and learn stuff from it. REUVEN: Right. I guess I would tend to sort of think that mentoring involves a little bit of interaction and not just consuming what they're saying, although there's certainly plenty of people whose stuff I read for years. I think, “Wow, I should have kept following their advice because they have really good advice.” CHUCK: Yeah. Well the other thing is, sometimes you can get that interaction either by hiring them or by simply talking to them, and that works out as well. I do take some people that I know personally or have the opportunity to interact with and find opportunities to get to interact with them. So some of my mentors that some people on this or on some of my other shows will know, a lot of the guests on my shows – not my guests, the regular podcasters, the regular panelists – I take as mentors. So people like David Brady on the Ruby Rogues podcast, just because I can go and have lunch with him. Or James, Avdi, or Josh – I mean, they're all topnotch. Katrina’s taught me a whole bunch of stuff about programming and about just life in general. On this show, Reuven and Eric and Curtis always have good suggestions for me about my situation and what's going on there, and sometimes I just pick stuff up off the show because we’re talking about, so it’s really awesome. And if I do have a question, and if I know that Eric or Reuven or somebody else has gone through something like that, then I can ask for their advice. Mandy technically works for me, but a lot of the things that – she’s had some life experience that I just haven't, and so I was able to ask her about some things and get her advice on stuff. The other thing is that she tends to know better than anyone else the stuff that I have going on and so she can offer me perspective in ways that other people really can’t. My wife is kinda my ultimate sounding board for things and she has a lot of insight for things, and even if she’s not an expert in programming and running a business, she still has insights that can pay off of me. There are a lot of people out there that you can find to be that mentor especially if you know what their background is and how you can benefit, then you can start asking the right questions, the right people, and get the insight that you need. ALI: One thing I kind of struggle with is having mentors and people who I get advice from are sort of from the same circle, so all Ruby developers or are all bootstrap business owner. So sometimes it helps me to speak to business people from sort of outside my close circle, just so I can get a feedback from a completely different point of view, just to see what they would tell me. Often I would end up thinking to myself, “Okay, I need to get my act together on marketing or sales when I speak to people like that” or some of that, we just don’t talk about that much within our kind of circle. CHUCK: Yeah, that’s definitely true for me too. And it’s easy to do, right, because you're already talking to those people in your circles. ALI: Right. So I think for me, my clients ended up being very good mentors for that sort of thing, because they're typically business people as opposed to developers, and especially if you become sort of good friends with them, they’ll give you advice like business basics that are obvious to them that to them you're doing wrong. So I found that extremely useful. REUVEN: Let me add that part of being a good mentor, or maybe just part of being a good person, is admitting you're wrong and some humility. I was at a client [inaudible] about two weeks ago, and I was working with someone for about an hour. I don’t know if I was tired or not feeling well or just not doing the best work I could, and basically I said, “Oh yes, you can do the code and this and this and this way” and so yesterday or two days ago, I get an email from someone who’s reviewing that code [inaudible] of the company. They said, “You really said this code was okay?” I looked at it and thought, “Hm. I did say that. That was really not good.” So I made it clear to the person whom I've been mentoring as well as the person doing the code review, “I'm glad that someone looked this over and know this was really a bad idea.” I think that was like a way better way to go than saying, sort of standing my ground and saying, “No, no, no. We must continue in the way that I said.” It’s always going to be give and take, and I think you guys will probably agree that I've learned so, so, so much from teaching and mentoring. Like, that’s easily half or more of what I know. ALI: With me, I'm the same. I used to think I knew stuff and then I tried teaching it to people and realized how little I actually clearly understand. So it makes you kind of focus your thinking and be very clear about what you mean and really ought to find out whether or not you actually deeply understand that things that you claim to be an expert on, so for me it was a huge learning experience. MANDY: Yes, I've been called out on some things when I've been editing my podcast, somebody will look at me and say, “Well you missed that” and I'm like, “Hey, I taught you. Don’t be –.” You just called me on something that I totally missed, and it’s kinda humbling. CHUCK: Yup. So I'm curious, who do you guys look to as mentors? REUVEN: I would say, right now, Brennan Dunn has been giving me a huge amount of help in mentoring. I mentioned when he was on that I'm a member of his Freelancer’s Guild, and I feel like between him personally and the other people there, and especially my Mastermind group from there, I've been gaining just an incredible amount of useful information. Yeah, that’s probably my number 1 source of great information and ideas nowadays. CHUCK: Yeah, Brennan Dunn’s awesome. MANDY: Yeah, he is. I've learned a lot from Avdi Grimm and his wife Stacey. Avdi got me started, as everybody knows by now, and he’s really been patient, introduced me to people. He taught me how to edit podcasts and all that kind of stuff, so he’s always been a very, very strong influence on me and I also continue to learn from just listening to the Freelancers’ Show every week because I'm editing it. I learn tips and tricks all the time. CHUCK: Yeah, I wanna say that the two people that got me into freelancing and really helped me along were Eric Davis and Evan Light. Evan used to be a panelist on this show and Eric still is, and they’ve just offered a valuable advice. One other person that has really paid off for me – and I'm part of his Mastermind group – that Mastermind started out focused a whole lot more around podcasting, but it since kinda shifted towards entrepreneurship and that’s Cliff Ravenscraft over at podcastanswerman.com. He’s just offered some tremendous advice for me and has really helped me kind of get some perspective on some of the things that I'm doing. Another kind of terrific person that I'm lucky to have personal contact with. ALI: For me, it’s gotta be Patrick McKenzie. Basically, every decision I've had to make in my career, like in my twenties, has pretty much been due to Patrick McKenzie’s blog posts. He’s just brilliant. I think most of my work I'm doing now, sort of branching out from freelancing doing mentoring and the workshops has been inspired either directly or indirectly by him. CHUCK: Awesome. Yeah, I like Patrick. He was on the Ruby Rogues podcast once, he’s just a brilliant guy. REUVEN: I've been taking his advice in the very slow lane. I’ll read his advice and say, “Oh that makes so much sense.” And then I’ll think about it a year or two later I’ll say, “You know, I think it’s time to actually do what he said.” And when I started doing it, I'm like, “I really should have done that a long time ago.” ALI: Exactly the same, I'm literally like –. His advice is so dense, right? There's just so much content that – I read a blog post, I read in 2010 or something, and I'm still not yet ready to implement the advice he’s got there. The stuff he’s got now, maybe I’ll get to in three years time. CHUCK: Yup. Awesome. Well there's so much more that we could talk about with some of this stuff but we’re getting towards the end of our time. Are there any other aspects of mentoring or mentorship that we should go over before we – I guess we didn’t talk about how to find a mentor. MANDY: Just ask. The worst they can do is say ‘no.’ CHUCK: Yup. And even then, you can kind of stalk them, right? REUVEN: [Laughs] MANDY: You just tweet them and not go away. ALI: Yeah, just stalk them. That’s my strategy pretty much – just stalk them. CHUCK: So, one thing I wanna throw in on this is that, so you ask them, “Hey, can you be my mentor? Can I send you periodic questions or however you wanna approach that?” I mean, if they tell you ‘no,’ you can always still – there are still other avenues to get their attention and get their advice. One of them is – I think we did a podcast on this, I think it was on Ruby Rogues as well; it might have been on the Teach Me to Code podcast – but there are a lot of techniques for getting in there and one of them is –. I don’t remember who it was who coined it but he said, “by sweeping the dojo.” Basically, what you do is you go in and you take care of some small thing that that person doesn’t have time or inclination to do. On a software project, you could be writing documentation, or fixing minor bugs, or things like that where you're setting yourself up to get their feedback on those things, and when you come back and you ask them a question on something that you know that they know about but isn’t directly related to what you’ve done – they know who you are, they know about what your skill level is on those areas, and so a lot of times they are willing to help you out anyway. If you give something back to them, a lot of times then you can get the attention that you want and get the mentorship that you're craving. A lot of times, they may just have the answers out there anyway. I mean, you guys mentioned Patrick McKenzie. He puts out great stuff and he may have the answer in a blog post. So you may email him and ask for his advice, and he may point you to something that he’s already put out there. MANDY: Yeah. And a lot of times, you can just have somebody be your mentor without them even knowing that they're mentoring you, because I've never come right out and said to Avdi, “You’ve really been my mentor for the past two years.” It’s just emailing him once in a while for some advice. CHUCK: Yup. REUVEN: I would say also, if someone asks you to mentor them – obviously there are a few different approaches, right? One is just to say, “No, I just don’t have time for this.” Another is to say, “No I can’t because I don’t know enough,” but truth be told, you almost certainly do now enough. Worst case scenario, you'll learn along the way as we’ve said it, like you'll learn something; it’s totally worth trying. And if you say, “I don’t know,” that’s an okay answer. And the other thing is, I know at least one person who says he doesn’t like to get questions personally from people, but he loves getting questions on email lists. So if it’s in an email list, then he’ll answer it there. In that way, a large number of people can benefit from the answers. And I see that as a totally legitimate response. CHUCK: Yeah, it’s kinda like what Michael Hartl – he would get requests for help with Ruby on Rails, and he would actually direct people to put the question on StackOverflow and send him a link for the same reason. Then a lot of people can benefit from the answer. REUVEN: Oh, that’s great. I like that. CHUCK: Anyway, I don’t know if we have much more to say on this subject. I also kind of assumed that we could go on for another hour, but I think we need to wrap up. I'm going to go ahead and go and direct us to the picks. Reuven, do you wanna start us off with picks? REUVEN: Sure thing. I've got three picks for this week. First of all there's an episode of Startups For the Rest of Us a few weeks ago about how to set up a Mastermind group. Now that I've been a part of one for at least six months now, I definitely say it’s the high point in my week; I love it; I get huge amount of inside information from it. And I thought, even though I didn’t agree with all the advice they had there, I thought it was a great start at why and how to start a Mastermind, or find one. Second one is since we’re talking about teaching, I want to mention a book from one of the professors in my program, but he’s just an amazing guy and very smart, called Rethinking Education in the Age of Technology. A lot of schools like to think that, “Oh, if we stick a lot of computers in the schools and connect them to the internet, then we are using technology in a brilliant way.” The answer is, “No, no, no, you're not really advancing education very much, but you are sounding very cool while doing it, and probably getting a lot of government money for it.” Allan Collins’ book is really quite good. And since we’re talking about mentoring, there's a great sketch from the Carol Burnett show, which those of us who grew up in the Mesozoic will remember, and it’s all about trainers and trainees and I definitely recommend it. CHUCK: Interesting. Alright, Mandy, what are your picks? MANDY: I just have one and it is for a Samsung 85-inch UltraHD Smart LED TV. It’s not the TV itself that I'm recommending, but it’s the reviews – they are absolutely hilarious. The Q&A, it says, “Will the Amazon drone deliver this?” The answer is, “Actually, I believe that Optimus Prime Deliver it for you and have Bumble Bee set it up for you.” Another review says, “I was going to fund my daughter’s wedding in Hawaii but I figured the Samsung TV would last much longer.” It’s a $30,000 TV – or no, $40,000 excuse me – and the reviews, you just get pages and pages upon funny material. Another one is, “I just cashed in the college funds and dropped the kids off at the army recruiting station. I got the TV, they got a career, I think it worked out for everyone.” CHUCK: [Laughs] MANDY: Another one says, “Take my advice and shop around, people. I bought a 12-pack of these at Costco and saved $100,000. [Laughter] MANDY: So if you want a little chuckle, go to this site, check it out – maybe add your own review. REUVEN: You know, for a company, Amazon seems to be at least have this image of being extremely humorless. And yet they let some of these products go along with funny reviews, and I have to hand it to them for that; that’s really great. CHUCK: So I guess I've got a couple of picks here. One that I'm trying out is called ZEEF, or Z-E-E-F, and basically it’s kind of a resource center for a particular subject. Not to disappoint everybody, but I've already snagged the topics of Ruby, Ruby on Rails, and Freelancing, so I going to own those pages and try to keep them up-to-date. Anyway, it’s basically kind of a list of links and people can go in and actually recommend other links to go on there and things, so I'm working on filling those in and seeing what we get. So anyway, I'm trying that out. Another one that I've been using lately is called SurveyMonkey. It’s free up to a certain point; I don’t remember what the limitations are, but I haven't read into them yet, so I guess I can look at the pricing page here and tell you. Anyway, it’s pretty nice. You can have 10 questions per survey, 100 responses per survey. Anyway, it’s pretty easy, and it works out pretty well. So that’s what I've been playing with lately and I'm probably going to put together a listener’s survey or two, just because I want to know a little bit about you, so keep an ear out for that on the next episode. Ali, what are your picks? ALI: Okay, I just have the two picks. The first one is a couple of shows late, but I thought I'd mention it anyway. It’s a book called Value-Based Fees by a guy called Alan Weiss – I don’t know how to pronounce his last name. Basically, it’s a book that goes into a lot of detail about some of the value-based consulting stuff that you guys and Brennan were talking about a couple of shows ago. Secondly, a book called the Last Days of the Inca. I have no background in history or South American history at all, but it was an extremely interesting book. It’s basically science fiction, right – super soldiers land and are completely invincible to all the Inca warriors [inaudible] it just happens they were wearing armor made out of steel instead of laser guns and what have you. It was a very interesting book, so I thought I’d recommend it. CHUCK: Alright, I don’t think we have any other items of business, so thanks for listening and we’ll catch you all next week.