Transcript to S1:E3 "How to teach yourself computer science"


[0:00:25.8] SY: Welcome to the CodeNewbie Podcast. Where we talk to people on their coding journey in hopes of helping you on yours. I’m your host Saron and today, we are talking about computer science fundamentals.

[music]

[0:00:39.7] SY: We all have goals and if you’re listening to the show, you probably have coding goals. It might be, I’m going to code every day for a 100 days. That’s the “100 Days of Code Challenge” by Alex Kalloway. Or I’m going to write a tech blog every week or I’m going to finish one programming book a month. We get excited. We stick with it at the beginning. And then we stop. We get caught up with family things, work things, life things and our goals fall by the wayside. So when you meet someone with a goal of learning a very technical computer science topic and then writing and illustrating a beautiful post about it every week for a year, and then she actually does it?

[0:01:17.4] Vaidehi Joshi: I’m Vaidehi Joshi. I am a staff engineer at Tilde based in Portland, Oregon.

[0:01:22.4] SY: You invite her on your podcast to share her story.

VJ: So I started it in January of 2017 and I will end it in December of 2017.

[0:01:31.3] SY: She’s written over 30 posts so far. She’s covered algorithms, data structures and her favorite topic -

VJ: On hexadecimals. Which I think are really cool!

SY: And by researching and learning and writing, she’s become --

VJ: The algorithm lady which I don’t know ...

[Laughter]

[0:1:47.5] SY: These posts are amazing! They’re fun. They’re easy-to-read. They’ve got beautiful illustrations. But not everyone appreciates her work.

[0:01:54.7] VJ: I think a lot of the negative stuff that I’ve gotten has been why should anybody care? Or, the way you wrote this reminds me that there are self-taught developers and then there are real programmers.

SY: Oh … Well then ...

[Laughter]

[0:02:07.8] SY: Today, we’re talking to Vaidehi about how she’s teaching herself computer science fundamentals and the surprising ups and downs that come with it after this.

[0:02:17.6] SY: When I first learned to code, all I wanted was to be developer, but then I actually learned to code and realized that you don’t become a developer. You become a front-end developer or a rails developer or a full staff engineer or a back-end engineer or the million other job titles that involve coding. So how do you pick? And once you get that first job, how do you turn it into a career? You can use the Dice Careers Mobile App tool. This is the tool I wish I had when I first started. You get the tech skills you either have or hope to have in the future. You type in your desired job title and Dice helps you find other job titles you might also be interested in and maybe didn’t know about.

[0:02:51.6] SY: But they take it a step further by telling you what skills these job titles require, how much they pay and, based on your profile, they tell you what skills you may want to learn so you can one day apply for those jobs. They simplify a lot of the chaos of job hunting. And it’s totally free, so check out the Dice Careers Mobile App. Go to Dice.com/codenewbie for more info. That’s Dice.com/codenewbie.

[0:03:17.4] SY: If you’re learning to code, you’re probably spending all of your time getting your app to do what it should do. So after a ton of work and time and banging your head against the wall, you finally get it to do the thing you want, but the page takes too long to load or it goes down for a second or even worse it gets attacked by some botnet. What do you do? That’s where Incapsula comes in. They sit between your servers and your users inspecting every packet, filtering and blocking and protecting you and your app. They make sure you and your awesome app are safe and reliable so you can focus on coding and they’re offering our CodeNewbie listeners a chance to try it out for one month for free. Just go to Incapsula.com/CodeNewbie. Link is in the show notes.

And our newest sponsor, Skillcrush. If you’re dreaming of a career that gives you a flexible schedule, the chance to work remotely and tons of job security, fulfillment and freedom, all with a nice big salary, you need tech skills and that’s what Skillcrush.com is for. They’re all access career blueprint is the tech industry’s most personal and supportive online learning program

[0:04:23.6] SY:You’ll see just how easy and affordable it is to get a headstart in tech. Enroll now and get 10% off your annual Blueprint subscription when you use the promo code Newbie. That’s N E W B I E. See you in class!

[0:04:36.0] SY: I’m also very ashamed of myself because I realized that I’ve been saying your name wrong in my head for a very long time. So I’m very sorry about that.

VJ [Laughter]

SY: Very sorry. You say it much better than my wrong saying of your name. So, that is -

VJ: I’ve got some years of experience. So it’s an unfair comparison.

[0:04:51.2] [Laughter]

SY: Thank you! I appreciate that. I appreciate that a lot. So we are here to talk about a special project that you’re working on called base.cs. Tell us what that is?

[0:05:04.4] VJ: It is basically a weekly series where we explore the basics of computer science every single Monday for an entire calendar year. So I started it in January of 2017 and I will end in in December of 2017, and hopefully I’m going to try to learn some computer science along the way and hopefully people who read it will stumble upon some cool new things too.

[0:05:29.6] SY: So you said I’m going to do this every single week. And then you actually did it which is the part that makes -- I mean it almost -- put aside the fact that what you write is amazing and incredibly educational and entertaining and accessible - just the fact that you actually stuck with that commitment, and you’ve been doing it is super impressive so kudos to you. What types of topics are we talking about? Give me a couple of the topics that you’ve covered?

[0:05:51.9] VJ: Everything from binary and what binary and what bits and bites are and base 16, um, and how it plays into computer science, to um sorting algorithms like all the common sorting algorithms that people talk about during interviews, I’m like why would you want to know them? And what are they good for? And some of the really cool stuff that I’ve done that a lot of people have kind of said is new for them is like algorithms that you know you hear about but you don’t necessarily know what mean.

So it’s a huge range and it’s been really fun and interesting because I didn’t really approach it with a table of contents, exactly. I was just like oh I’ll learn these things and here are other things I’ve heard about -- I don’t know anything about them -- but I have faith that if I start learning one topic at a time, I’ll start to see you know a narrative emerge and I can kind of start to connect things.

[0:06:42.4] SY: So walk me through your process. Are you picking a topic that’s kind of familiar and then writing what you know? Are you starting from nothing and doing a ton of research? Are you interviewing people? Like how, how do you create one of these posts?

VJ What I’ve been trying to do is try to pick topics that are very, very narrow and specific --

SY: Hmm.

VJ: and try to answer the question of how did I stumble upon this? Or how is it connected to something we’ve already done or explored prior? What I really want to get at is like trying to answer the questions that people expect developers to know and no one really tells you why that’s the case or why it matters? Sometimes with computer science it can feel like from one topic to another, you’re like just in the weeds --

SY: Yes.

VJ: And it’s really important you not be like ok this is cool, but actually it matters because it turns out somebody invented this sorting machine in the sixties and we use it now, but this is what it’s actually connected to. It’s connected to a whole history, and it actually has importance and value and there’s an application to it, even through you as a developer might not interact with it everyday, there’s a history there. There’s a story.

[0:07:50.5] SY: Yeah that’s what I noticed as well in your writing is is always in technical there’s you know technical things in there and you explain very well, but it still feels like it’s rooted in a context that’s outside of the immediate scope, if that makes sense? So I’ve seen you pull in history. I’ve seen you mention you know oh by the way, this thing was invented by this person, like you, you kind of bring all those things in, and for me not only does it make it just easier to read and more enjoyable, but it reminds me that computer science and these topics are not isolated ideas.

[0:08:24.3] VJ: Yeah.

SY: It’s not just about this one algorithm. It’s this algorithm and how it’s applied in this world, and always having that context is really helpful.

[0:08.31.9] VJ: Yes. Yes. Absolutely and one of the things that really bugs me when I read some technical books is it’s written by someone who’s very very very familiar and very comfortable with the topic to the point where it’s, it’s frustrating to read as a beginner because they’ll say things like they’ll say don’t worry about this part now you’ll deal with it later and I’m like “ahh, but I want it now!” or they’ll say or they’ll kind of like brush over certain things and dig deeper into things because they’re so comfortable with that world and with that territory that they trust themselves, they trust that world, but for someone who’s really really new, I don’t know that world. I’m going in completely blind. I can’t see anything and so just being told to constantly ignore whole sections or brushing over some and digging deep into another is like being taken on a roller coaster and, you know, and never really being able to enjoy the view, you know, you’re just kind of being tossed around a lot and that could be really frustrating, yup.

One of the things I’ve noticed in talking to people who have started reading the series, some of whom actually have PhDs in computer science, and I realized they were reading it and I was like oh my god, terrifying … I hope I don’t mess up!

[Laughter]

[0:09:44.4] SY: It’s like very flattering but also scary as hell, yup.

VJ: Exactly. But one of the things I’ve learned from them is they’re like you’re doing something that’s very different than any computer science resource out there, you know, it really speaks to why I started this series is I literally could not find any kind of approachable, fun, not intimidating computer science resource where I was like we’re going to walk through all the things that you know you might want to know -

SY: Mm hmm

[0:10:11.6] VJ: And lIke not just throw mathematical formulas in your face. So I created that resource because I was like it doesn't exist, I guess I’m going to try to figure it out and maybe I’ll write it down along the way because ah my background is in writing so that’s like what I know how to do.

SY: Mm hmm. You’re a very good writer.

VJ: Oh thank you.

SY: So I imagine if your goal was to understand all of these topics, because you don’t have a computer science degree, so you want to learn and you know possibly fill in some gaps and all that, you could spend half the time just doing the research, learning that information for yourself and not necessarily go through the extra work of writing it, you know proofreading it, publishing it, promoting it and all that. So why that second half? Why not just kind of focus -- I mean you do have, you have a full-time job and you know a life, so why not just learn it for yourself?

[0:11:01.9] VJ: There are so many people who don’t have access to these resources, specifically in computer science who come from either disenfranchised communities or underrepresented groups um and I kind of started realizing that as I started talking to more people who do have a CS background or people who got into software through a more circuitous path and I realized that the people who were saying that I wish I had this when I was starting out or this was the resource that I could have really benefited from or I’m benefiting from now you know 15-20 years down the line are people who have historically been either pushed out from computer science as a field or who basically have been told that they are not computer science material or that they basically weren’t worthy of getting that education.

[0:11:52.3] SY: Hmm.

VJ: which I think is um completely ridiculous because as I am proving that’s not true and --

SY: Mm hmm.

VJ: It speaks to a broader conversation of is our computer science education actually doing what is meant to do, you know, not only is it not accessible to a lot of people but a lot of people have said that their CS programs didn’t even cover some of these topics, or they covered them and they didn’t really fundamentally understand them til they read what I wrote on heaps. And a really funny thing that happened to me recently was somebody on Twitter was like I would love if you had been like the lecturer of discrete mathematics at my college.

[0:12:26.9] SY: Aww.

VJ: And I was like --

SY: Aw that’s beautiful!

VJ: It was really sweet! I replied to them and I was like do you think they’ll let me lecture if I don’t know what discrete mathematics is? Like I don’t know what that actually means. I know that I’ve learned all these things, and I know that they connect to something broader and I probably do know discrete mathematics like, what I’ve learned from watching like MIT videos isn’t it? I know a lot of stuff in their intro to algorithms course and I have never ever taken a class at MIT, so.

[0:12:54.5] SY: Yeah, so tell me about that. I remember you tweeted recently about watching an MIT open course where class and realizing you knew more than you thought you would know. Tell us about that?

[0:13:05.8] VJ: I did a post a couple of weeks ago about AVL trees which are a type of binary search tree. I was watching this video from MIT and as I watched this like hour long lecture I noticed that the professor would ask questions and I would answer in my head and then a student or two would answer maybe and they wouldn’t quite have the right answer, or they would have like part of the answer and I started realizing that I knew the answer, so what I started doing just to see, just like as a fun game for myself, I just started pausing the video every single time the professor asked a question and I wrote down my answer before anybody said it. Sometimes two or three students would answer and then eventually somebody would get it right or the professor would help. Almost every single time my answers were right. That’s right. Um hmm. And I realized I have been teaching myself all of this content without anyone.

[0:14:01.9] SY: Um hmm.

VJ: Just been learning it and I very much you know deserve to be in that classroom. You know if I had been in that classroom my hand would have been up and I would have been like yes let tell you what the height of a tree is, the longest path to a note. But anyway.

[Laughter]

But like it was extremely powerful and empowering and I realized that like a lot of people don’t get to be in this classrooms. In my case like I never thought that computer science is something I wanted to do. I had a whole vision of what that field was and who belonged in it and I never in my imagination put myself in that field because I was like I don’t fit in there. That’s not. I’m not the type of person who does this type of stuff.

SY: Yup I do the same thing.

[0:14:49.0] VJ: And I’ve realized that that’s totally bogus and I do deserve to be there and that means that there’s tons of other people who think that they don’t deserve to be there and they definitely do.

So that’s what I’m really trying to do and I’m trying to open those doors up because it was really hard for me to open it -

SY: Um hmm.

VJ: So I’m hoping at least if I can do some of the work it’ll be a little bit easier for whoever decides to venture into computer science on their own later on.

[0:15:04.3] SY: So one of the big topics that keeps coming up in our community is how valuable a computer science degree actually is and as someone who doesn’t have a computer science degree, but watched you know a video and realized holy crap I taught myself a lot of this stuff, has your experience with Bay CS, has it changed how you value that degree?

[0:15:27.1] VJ: I don’t know that I’ll ever really be able to answer that question or that anybody will in a really fair way because I think the only way to really know is go try to be a developer without a computer science degree --

[laughter]

And then do a parallel experiment --

SY: Right

[15:50.1] VJ: You’re a developer with a computer science degree. But I will say this: you don’t need to know a lot of this stuff to be productive. In fact you probably wouldn’t really need to know any of it to be successful as a web developer, mobile developer, what have you? To be employable, to be promoted. I don’t actually think it is necessary and I just say that from personal experience and from watching other people that I’ve seen level up to more senior engineer positions who don’t have a CS degree. But what I think is really interesting is the content and a lot of the information that you learn in those programs um at some point like whether it’s working within the confines of a framework or maybe a systems programming language, at some point you will run into some of it if you progress long enough down the path. I kind of ran into it organically when I started working at Tilde because a lot of a lot of stuff that we do at Skylight is either connected to free data structure or we use a lot of rust and rust is a very low-level language so a lot of that stuff does come up, you could very well not know it and then learn it um and teach yourself when you hit that roadblock.

[0:16:52.7] SY: So how has learning this information, how has it affected your work as a developer?

VJ: Oh that’s a really good question. Um ok I’ve definitely started getting the reputation as like the algorithm lady. [laughter] Which I don’t know -- it’s all I’ve ever wanted to be. It’s completely - AL - Yeah I mean. It’s been nice because a lot of people have realized that I’m interested in that kind of stuff, so it’s been nice to have a lot of cool problems ushered my way cause they’re like oh you like low-level stuff, yeah, you like this. You like this hard problem. That’s kind of nice side effect, but I think it’s made me, it’s made me really fall in love with programming in a whole different way. For example, when I learned about what hexadecimals actually are and when I realized that the hex codes that I used for CSS which I often complain about -

[0:17:52.7] Laughter

VJ: When I realized that that was actually like getting compiled down into binary and how your computer actually does that and how it gets transpiled into that and when I realized that these were abstractions and I was like Oh my gosh every single time I write CSS I’m actually like typing in a hex code and that’s getting turned into binary and I used to complain about CSS and now I feel like an immense about of respect for it because like just all of these things that I interact with every day, like just working in a browser or a simple command line program, it’s actually not that simple. It’s all magic.

SY: Hmm …

[0:18:30.2] VJ: And I’ve fallen in love with programming in a totally different way because I kind of pulled back the curtain on a lot of things that I took for granted and it’s again those abstractions right where you you don’t ever worry about them until one day you realize that it isn’t actually magic that there was something there the whole time and it’s kind of like when you see snow for the first time it’s just kind of takes your breath away. That’s what doing this project has done for me. And that’s why I think a lot of people with CS degrees also sometimes write to me and tell me I learned this, but I never realized that it was actually connected to this other thing, and I use that-

SY: Hmmmm

[0:19:08.3] VJ: And you know I’ve been doing this for 20 years.

SY: Oh that’s cool!

[0:19:09.9] VJ: And that’s amazing that after 20 years you can still rediscover the joy of the amazing industry that we get to work in.

[0:19:19.4] SY: How has it helped your confidence. You know you mentioned earlier that you used to never see yourself as someone who would do computer science or be an engineer. You just had this idea of what a computer science person looked like and you didn’t necessarily fit that image. Has that changed as you’ve written more posts?

[0:19:37.0] VJ: Yeah. I realized that I can, I can teach myself anything if I have enough grit and motivation to do it. I still am waiting to do the hardest topic, I’ve been saving that for the last week. If I can get through that, then I’ll really really feel like I can do anything because some of the topics that I’ve been saving seem like impossible mountains to try to climb, but it, you know, it’s like little baby steps um and eventually you get there is what I keep telling myself.

[Laughter]

Um but yeah it’s been incredibly empowering to talk to people who have PhDs in computer science and hear from them that you know some of this content blows other CS resources out of the water -

[0:2019.7] SY: Wow.

VJ: I’m just like ok if I can do this without any degree, without any background in math or science at like a high level, then not only can I do anything, but we all can. If we can ignore the voices that tell us that we can’t and like help make it easier for others along the way. It’s been huge for my confidence that way because it’s hard to be something that you don’t see.

[0:20:44.7] SY: It really is. I don’t know how much people really appreciate that, but yeah, it’s umm.

[0:20:48.3] VJ: Yeah, it’s just a, it’s really difficult because you’re just like, there’s always this pressure where you think that if I mess it up or if I get something wrong then everybody’s going to think that people like me get these things wrong and we’re just like you know reiterating the stereotype which is kind of scary for technical things because you’re like oh no, I really hope I don’t get this wrong, like let me double check, let me talk to somebody else and be like look at this definition, is that actually correct? It can be a lot of pressure, but -

[0:21:17.2] SY: Hm hmm.

VJ: That’s probably not actually going to go away cause every single new thing you try to do, there’s going to be pressure in that.

[0:21:23.8] SY: Yeah it’s like the old things stop being scary cause you, you’ve already defeated them, but that doesn’t stop the new things from being scary so …

[0:21:28.3] VJ: Totally.

[0:21:30.2] SY: Well coming up Vaidehi talks about the people who don’t like her blog posts and how she deals with the trolls.

VJ: I have like one troll who goes through all my YouTube videos and like repeatedly leaves comments about how I’m a failed writer even though I’ve written hundreds of thousands of words over the past three years.

[0:21:45.7] SY: She also shares advice on how you can start learning computer science fundamentals, after this.

[0:21:50.9] SY: So you’re feeling trapped. You’ve got a dead-end job. You want to get out, do better, make more money, but you don’t know where to start. That’s exactly why Skillcrush was created. Skillcrush is designed for total tech beginners to learn digital skills and launch better, higher-paying and fulfilling careers, and that career comes with real mobility so you’ll never feel trapped in a dead-end job again. Their all-access career blueprint program provides premium tech classes, one-on-one mentoring and a thriving student community to support your journey from tech newbie to digital pro. They’re offering 10 percent off your annual blueprint subscription to CodeNewbie listeners, just use the promo code Newbie, that’s N E W B I E. See you in class!

[0:22:31.6] SY: Getting a job is one thing. Building a career is another. With DICE you can do both. They’ve been helping tech professionals advance their careers for over 20 years, which means they have a ton of data and tools to help you navigate yours. Looking for a job right now? They’ve got thousands of positions available from top companies like AT&T, DreamWorks, Adobe, IBM, and Dell. Wondering what’s next in your career, use their career pathing tool to find new roles based on your profile and see how much more money you can make. Not sure if you’re getting paid what you’re worth, use the Dice salary predictor to see real numbers on what your skills are worth. Don’t just look for a job, manage your career with Dice. For more info go to Dice.com/codenewbie. And finally we have Incapsula. Building your website is a ton of work and pushing it live and showing it off is an awesome feeling. But when you’re done, you’re not really done. You’ve got to make sure it stays up and it stays safe. Incapsula can help. They protect more than four million websites every day. From individual bloggers and personal apps all the way up to Fortune 500 companies. They work to keep your site up so you can focus on coding. And as a CodeNewbie Podcast listener, you can try them out for a whole month for free. Just got to Incapsula.com/codenewbie. That’s INCAPSULA.com/CODENEWBIE. Link is in the show notes.

[music]

[0:23:53.0] SY: So you mentioned a lot of the really positive you’ve gotten, which are amazing, having people really not just appreciate your work in general but say specifically I had a hard time with this topic and now I don’t. Now I understand it because of you is so so incredible, but you’ve also gotten a lot of negative feedback for this work. Tell us about that.

[0:24:31.9] VJ: A lot of the negative feedback I think tends to be rooted in wanting to either disprove what I’m trying to do or discredit it, which I think is very surprising because I mean there must be a deeper sense of anxiety over what will happen if non CS people start learning CS. It’s like are we going to take away your magic powers or something? I don’t know like that’s exactly how this works.

[0:24:44.9] SY: As soon as you reach your 100th post, so your magic powers are now gone.

VJ: Yeah, but yeah to answer your question, I think a lot of the negative stuff that I’ve gotten has been um this content is too basic, why should anybody care? Or, the way you wrote this reminds me that there are self taught developers and then there are real programs.

[0:25:07.3] SY: Ooh. Well then!

VJ: Yeah and I’m supposed to give a talk next month at Windy City Rails. I’m giving a talk on hexadecimals, which I personally think are really cool. It’s still one of my favorite posts that I’ve ever written just because it was like when I fell in love with hexes and I was like oh my god CS is amazing. But I’m giving a talk on that and somebody who I guess has gone to a lot of conferences and who has a CS background decided that it was like too basic and kind of unworthy to be a talk and I remember they tweeted and they were just like isn’t this like week 1 computer science stuff? I would assume that anybody who comes to this conference knows this, like, conferences aren’t really for this basic content, so I think there’s a lot of either push back that what I’m doing is too simple and like why are you doing it because all the real deserving programmers in our industry already know it, or it’s just like the fact that I don’t know, I’m trying to learn things that people spend four years getting a degree in. There’s just generally anxiety from a certain group of people where the idea of making CS accessible I think subconsciously freaks them out.

[0:26:20.6] SY: So I actually have that tweet open and the guy wrote I’m not trying to poop on anyone, but this is worthy of a conference talk? This is week 1 Freshman computer science stuff. And when I saw that, I don’t, I don’t know how to explain to you the rage that I felt. I was so angry on your behalf. First of all I just thought it was so funny that there’s apparently some high caliber for conference talks as if most conference talks that you see at tech conferences aren’t just you know bad. But that’s just the truth, like most conference talks are not that great. So just the fact that there’s like this you know high bar that a conference talk needs to meet which is just like a funny idea to me. But the fact that this person assumed that everyone has a computer science degree - and especially considering that it’s a Rails conference, you know Rails is supposed to, Ruby in general is supposed to be known as the really friendly language that anybody can learn. It’s you know really nice and kind and human readable, so there’s, it naturally attracts a lot of people who don’t have a computer science background, so there’s a lot of things about that tweet that just didn’t make sense, but the fact that he felt strongly enough to call you out on it just made me so angry. But your response was the nicest thing ever! You said I know you think they’re unworthy of a talk, but I hope you’ll come out The Windy Cindy Rails and give them a chance. They’re good hexes, Dave. How do you - how do you do that?! I read that, I was like what? I was so angry and you took it so well. How did you do that?

[0:27:52.4] VJ: I’ve gotten really lucky that a lot of people came out and defended, not just me, but also the content on my behalf which I was like oh, cool go ahead. That speaks volumes. I don’t actually have to say anything.

[0:27:58.4] VJ: But honestly like I don’t really want to be upset with them because I’ve had a lot of people who have either left comments or just like I have like one troll who goes through all my Utube videos and like repeatedly leaves comments about how I’m a failed writer even though I’ve written hundreds of thousands of words over the past three years.

[0:28:18.2] SY: It seems like a really bad use of time, just in general.

[0:28:21.4] VJ: I’m like ok you can think that. You can just not read my stuff.

SY: Right. Exactly. And that’s the part that blows my mind. It’s like you don’t have to follow her. You don’t have to read her work. You can remove her from your life and pretend that people like her don’t exist. Like you have the power to do that. There’s no reason for you to keep up with you know with her work and decide to keep being angry about it. There’s just no, there’s not reason for that.

[0:28:46.1] VJ: Yeah. It takes extra work to do that which is amazing to me. But that’s how you want to spend your time but sure. It’s your time. Go ahead.

SY: Right!

VJ But the way that I choose to spend my time is I would rather just try to get people on board with what I’m trying to do and try to convince them that this is actually a really good thing for all of us which is why I genuinely hope that Dave, if he’s listening to this, and I’m sure he’s not, he doesn’t really strike me as the type of person that would be into this podcast.

[Laughter]

[0:29:14.7] SY: I feel like this Podcast is like his worst nightmare.

VJ: Honestly though it’s not even, it’s like every Dave out there, everybody who thinks that maybe this content’s like beneath them or like too basic or there’s not reason that it should be a conference talk, I really actually genuinely want them to see what I do because I think that even they’d have a chance to learn something interesting because looking at something through a beginner’s eyes is truly unique, like even if you have you know 25 years of experience writing code, you might benefit from seeing something through the perspective of somebody who hasn’t been looking at it for 25 years. But yes, to answer your earlier question I think honestly with every single person who has negative feedback or criticism or trolls me, I just really hope that they’ll just give it a chance and read one of the posts because I really think that if they gave it a chance, they’d be on the same page because we’re all doing the same thing everyday theoretically. We’re all writing code. We’re all interacting with all of these things and I really don’t want to push them away and be like my way is the way to do it you know I think all of us can gain something from looking at you know the history of our industry and the history of computer science and pulling back the curtains and seeing what we’re actually working with and the rich you know diverse set of tools and the people who made them that we get to use.

[0:30:39.4] SY: Yup.

VJ: But it takes a lot of practice to take all that criticism and remind yourself that for every one person who hates your work there are 99 people who are getting some sort of benefit from it and that’s the reason I’m doing it. I’m doing it so that someone else in the future doesn’t have to like cry while they’re learning about rate extremes like I did because nobody should have to do that.

[Laughter]

[31:05.6] SY: Only one person cries, and then the rest of us benefit from it. Thank you for your sacrifice. Appreciate it.

[Laughter]

[31:13.5] SY: So what advice do you have for people who want to learn this stuff on their own. You know they keep hearing about this computer science degree and they read some of your articles and think ooh like I really want to get into this. Like I want to be at her level and I want to have a really profound understanding of it. What advice do you have for those folks?

[0:31:31.4] VJ: My advice would be to go a little bit off the happy path of whatever it is that you’re working on. Try to find things that interest you in the technologies that you use. Maybe look at the source code of reactor with Ember or with JavaScript and just kind try to see what abstraction they’re using. That’s a really good way of just seeing how they model things. That’s one approach. For some people that works really well. And I’ve done that on occasion. I think the best way, honestly, is to try to take one topic that you are really intimidated by and break it down into its pieces. What you’ll find, I think, is that it’s really actually like 19 different pieces and then you’ll feel overwhelmed, and then you just pick one and then you focus on understanding that.

So the way that I started was I didn’t know what binary was and I didn’t know what a bit and a byte really meant, so I just took one piece of that question at the time and I kind of tackled that. And interestingly the way that i started Bay CS was I was interviewing at a company probably a year and a half ago and they asked me an interview question that had to do with something called Conway’s Game of Life.

[0:32:46.5] SY: Mm hmm.

VJ: And they asked me to code it in a language I didn’t know and I probably spent like half the interview being like what is Conway’s Game of Life? I don’t even know, but for them the fact that you asked me to do this in PHP we won’t even get around to that.

[Laughter]

But I went home and I Googled Conway’s Game of Life and I found out that this is like a computer science problem and that there are actually algorithms for solving them and I still haven’t really gotten around to understanding that. I’ll probably get around to it in November or December, but then I went and started reading about algorithms and then I saw that there are various types of graph traversal algorithms and I was like I don’t know what a graph is exactly. Ok, well so let’s go down that rabbit hole and then I find out that grafts are types of trees and trees are implemented through often different types of data structures like linkless and linkless are a way of storing memory and memory’s in bits and bytes. So I was like ok this is 25 different things, how do you like not get overwhelmed and I was like I’m just going to pick one thing. What is the simplest of this that I can bring it down and understand? And then I just kind of pieced it together and that’s kind of like what I’m doing. I’m constructing this entire curriculum based on the little things that I always wanted to understand, but I’m just going to try to like take it one step at a time as I get to that final goal.

[0:34.06.1] SY: Yeah I think that one of the most important things that I did in my own learning in kind of adjusting to the computer science coding world is to just adjust my expectations of how small, small is. Because my idea of small was just, and still is not ever small enough, you know I did get into it and I thought oh this is manageable. I’ll finish this in a couple of hours. Oh crap. This has three other pieces that I didn’t even think about and now I have to do each thing. Oh crap one piece it needs all this other research and it just kind of goes you know it goes along like that for a while, so I think for me I totally agree just having a different mindset and saying no you know this thing that feels very doable is probably going to have a lot of other pieces and that’s ok. It’s ok to have to break it down into even smaller bits.

Vaidehi: Yeah and that’s something I still do with Bay CS now where I’ll want to write about a topic and then I’ll spend a couple of days reading about it in the evening and I get to like Friday and I’m like ok I have to publish this by Monday and then I realize I haven’t even covered half the topic which is defined to me that this is actually two topics.

[0:35:12.4] SY: Hmmm.

VJ: And then I break it up into two pieces.

SY: Yeah.

VJ: Because if it’s not going to be easy to digest for me, then it’s going to be overwhelming for anybody who’s reading it right?

SY: Mm hmm.

VJ: So you want to make it like approachable but also segmented enough where you’re focused and clear on what it is you’re trying to cover and what you’re trying to tackle that day.

SY: Yeah, absolutely. So next let’s do some fill in the blanks. Are you ready?

[0:35:35.0] VJ Yeah.

SY: Number 1 worst advice I’ve ever received is:

VJ: Someone once told me that I was good at doing like X and so I should probably always just stick to doing X because I was good at it which is terrible advice because it turns out that I was also really good at doing Y and I was intimidated by doing Y and I never tried it and I’m really glad I never listened to that person because I would have like never tried to do the other thing. And like I say X and Y because this has happened to me in multiple different scenarios where someone is like you’re good at this. This is like right up your alley, right? Like this is the task for you. And now I’ve learned that if somebody starts saying that it means you can be good at other things too, so go find the thing that you’re like afraid of and get really good at that too.

SY: What were some of the things that people said you were already good at and don’t need to try and explain why.

[0:36:25.5] VJ: I worked at a company once where I would do all like the Rails stuff because I love Rails and I’ve done a decent amount of technical writing on Rails looking at Rails conferences, so they were like oh well Rails is like up your alley, right? You probably don’t want to do the front and angular framework. And then I was like no I do! I mean I’m afraid, but I do.

[Laughter]

Saron: There might be tears, but I’m still going to do it.

[0:36:49.2] VJ: Yeah. Exactly. I was like I don’t want to be pigeon holed to just doing Rails like I love RAILS but that doesn’t mean I’m not capable of doing something else.

SY: Um hmm yup.

[0:36:58.0] VJ: That’s one example and I’ve also had that like where somebody was like oh you’re really good at doing the backend stuff, you probably don’t want to do CSS and I’m like honestly I really need to learn how to center stuff on web pages, so --

SY: Don’t we all.

VJ: So I do want do it. So let me try!

[0:37:17.2] SY: Number two, my first coding project was about?

[0:37.19.0] VJ: It was called Next Step and it was a project that I built in two days with my really good friend Sam when we were both at a coding boot camp called Flatiron school where we both learned to program. And we basically wanted to find out where all the graduates of this program ended up so we were like ok let’s just go on LinkedIn and see everybody from Flatiron School and then we’ll just like scrape LinkedIn, but it turns out LinkedIn doesn’t let you do that because they don’t like it when you hit their API and hit their data, so we totally made a fake account and then you use webdriver and we were like we’re just going to like hit LinkedIn API and find out. We were doing things that were slightly sketchy.

Saron: It sounds really sketchy.

VJ: I know it was some really problematic CSS that I wrote. It was really fun and we built it in like two days and yeah it was a good first project.

[0:38:11.6] SY: That‘s really cool. Number three one thing I wish I knew when I first started to code is?

VJ: No matter how much you learn and no matter how many technologies you get really good at, you are invariably going to get stuck at some point, so the best skill that you can invest in, especially early on in your career, is learning how to get unstuck and being ok with it and like figuring out how to get unstuck either on your own or leveraging whatever resources you have because that’s an investment that you’ll keep learning for every single language, every single technology, every company and industry that you end up working in.

0:38:53.2 SY: Well thank you so much for being on the show. You want to say goodbye?

VJ: Yeah it’s been really fun and thank you so much for having me on. It’s been rad.

SY: Cool. Bye.

VJ: Bye everyone!

[0:39:04.0] SY: And that’s the end of our third episode of Season I, but it’s not the end of our time with Vaidehi. You might remember that a long time ago, we were working on a new Podcast called Code Bytes. Well we’re finally doing it. We’re working with Vaidehi to bring her codes to life or at least to audio. It’s coming to a Podcast player near you in November of this year, so stay tuned for our first episode. Tweet me @CodeNewbies with an S or send me an email hello@codenewbie.org

Also if you’re in D.C. or Philly check out our CodeNewbie groups. They’ve got community coding sessions and awesome events each month. So if you’re looking for real, life human coding interaction look us up on Meetup.com.

For more info on the Podcast check out www.codenewbie.org/podcast. And join us for our weekly Twitter chat. We’ve got our Wednesday chats at 9 p.m. Eastern time and our weekly coding check in every Sunday at 2 p.m. Eastern Standard Time. Thanks for listening. See you next week.