Do you need a degree to slide into a job as a software developer? Many think so, but the answer may surprise you. Even with the world of technology ever expanding, it doesn’t take years of experience, a wealth of knowledge, or a photographic memory to obtain an entry-level position in technology. In fact, it’s possible to gain employment within a few short months with proper training or apprenticeship opportunities.
Check out Mentoring Developers episode 17 with Brad Arner. Brad was not always in the tech field. With a background in the financial industry as an investment banker, Brad decided one day to make the switch to software development. Now, he works in consulting and startups.
In the today’s episode, Brad shares his experiences with software development, coding, and mentorship. Software development is not reserved for the uber-smart, highly intelligent crowd. Anyone can do this. If you are willing to put in the time and effort to learn something new and exciting, software development may be the right choice for you as well. Learning to code is not as hard as you might imagine. It can be a fun, interesting, and rewarding career choice. If you’ve ever wondered what it might be like, give it a try.
Psst, learn to code. Pass it on.
Brad’s Bio:
Brad Arner is a entrepreneur and software developer who focuses on early-stage application development and business model generation. At the time of the interview, he was the VP of Engineer at Capstory, a startup based in Columbus, OH. His eclectic background has landed him in Iraq, Africa, Europe and elsewhere and afforded him many unique opportunities in project management and technology. He is passionate about beautiful products built with code and believes that creativity is what makes us human.
You can find Brad on Twitter as @bradfordarner.
Episode Highlights and Show Notes:
Arsalan: We have Brad Arner with us. Brad, tell us who Brad Arner is?
Brad: If someone asked me that at a meeting I usually say that I am an entrepreneur, software entrepreneur. I build things and I generally do that through software. In terms of job title, I am currently a VP of software engineering at a startup in Columbus Ohio called Capstory. We are recently in transition. We do real-time media collection for events. So, if you are at an event you can text and photos to a live streaming slideshow that would be positioned in the entrance hall of a tradeshow or a convention center. It’s a fun little programming challenge. We started with something a little different, but now we focus on corporate events and trade shows.
Arsalan: Are you one of the founders?
Brad: Sort of and not really. I came in two years ago. The founders had originally started with an idea similar to a private Instagram for college students. That was 3 ½ years ago. Then they decided to make a shift to change the business model to one that is revenue-generating rather than becoming a free app. The difference requires fundamentally different economics. So, I came in to rebuild the product about two years ago. So, in a way, I am kind of the honorary cofounder, if you will, given the fact that I’ve essentially built up everything that we currently have.
Arsalan: So, what kind of companies have you worked for or with?
Brad: I have a pretty eclectic background. I started programming when I was very young. It was mostly web stuff when the web was first coming out. After that, I spent a number of years in the military. In some sense, part of my programming comes from the military, which is a huge organization with a lot of bureaucracy. But, I was also in a particular niche of the military. We operated in very small teams and that was just part of my job. Since getting out of the military, I have been entirely in startups, which suits me a lot better. After I exited the military, I jumped right in and did a mix of consulting half the time and startups half the time.
Arsalan: That’s interesting to note because I’ve interviewed other people and it comes out that everyone seems to have a very unique experience. There’s no standard for a programmer or software developer.
Brad: I think it’s like anything. We all go into something thinking that we’re going to have this perfectly laid out career path, but you get into what you’re doing in so many different ways. For example, I don’t have a computer science degree, but I’ve been doing it in one facet or another for a long time. It is always interesting how life leads you and connects you to people. I think you very rarely meet people who even went to school and have that job they’re working in.
Arsalan: Has it ever been a handicap for you to get a job or get recognized in the industry because you didn’t study computer science or computer engineering?
Brad: Not at the moment, but that’s because I’m in startups. I’ve never had anybody bring it up. I’ve interviewed with large organizations, mostly just to see what it’s like. Both times that I did, I turned down offers and honestly and never even came up in the interview. Maybe if I was applying to Microsoft or something, then it might matter more. I’ve heard that Google is pretty nitpicky about degrees, but then again, it’s hard to say.
Arsalan: I think some companies have so many people to go through that they just use the degrees as a filter. I don’t know if anybody really agrees that having a computer science degree makes you any more suitable for working at companies like Google, but Google is also very research oriented. So, they might care more.
Brad: I think it’s the difference between computer science and software development. I have a good sense that we’re talking about mentors here. I have a close friend who I grew up with who is essentially my mentor. He has a computer science degree as well as a Masters of computer science degree. Even he was surprised when he got out and started working and discovered that there is this whole world of difference between computer science and software development.
Arsalan: That has been my experience as well. I spent many years in school studying computer science and computer development formally. When I got out of school, I realized that I did not need it. It has some value, but it’s sort of intangible. A lot of other people who have degrees in other areas probably bring more domain knowledge and different points of view to the table. That might be even more valuable. Eventually you can learn how to code, but it’s hard to gain deep knowledge about another domain.
Brad: Actually, for people like you and I in software development, I think that’s occasionally one weakness. I’ve done many things, but I’m still immersed in software development. I always tell friends of mine who don’t how to code that they should take it up because there are so many ideas out there and many applications that need to be built. The deeper you get into software development, the more you become niche focused. You no longer think about the programs that people use every single day. You start thinking about things like, “oh, I want to build a key value store that’s faster than Redis.” You start getting into the niche things that people in the real world won’t know what you’re talking about. There are so many applications out there in many different industries that it would be amazing to see more people who don’t have programming backgrounds get into coding so they can have a head start in understanding the business side of applications.
Arsalan: Yes, I think that’s exactly right. I want to go back and find out how you first found programming or software development. What was your first experience?
Brad: That’s hard to say. My very first experience was probably rooted in software development. Back in the early web days when Netscape had just come out and AOL was still the dominant force, I had started a street luge company at the ripe age of 16. Street luge is an extreme sport where you basically ride down a mountain on a skateboard. I had this idea that I wanted to build Street luges and I thought that it would be cool to have a webpage. So, my first real encounter was trying to solve the real-world problem of building a webpage for myself.
Arsalan: So, did you learn it? Did you find someone to show you how to build a webpage? What did you do?
Brad: Basically I started with my friend that I had mentioned earlier. He was a guy by the name of Eric Franz. We had grown up together and he had a head start of a couple of years ahead of me in software development. I think he was playing around with CSS, HTML, and JavaScript at the time. I first went to him. Then, I went to Barnes & Noble or Borders and bought an HTML book for dummies and JavaScript for dummies.
Arsalan: This is good for us to know because it tells us that you can start by accident or you can start by planning. But, once you’re hooked, you’ve got to keep going. You can keep reading books or blogs, or just talking to people or playing with it and one day you will be accomplished.
Brad: I’m a big believer in the whole 10,000 hour thing, or maybe even better. I think it was Robert Greene who wrote the book “Mastery” and he talks more about 20,000 hours. Malcolm Gladwell made popular the idea that it takes 10,000 hours to becoming an expert in something. Robert Greene talks about 20,000 hours in terms of how to go from being an expert to being a Michael Angelo. He picks out some of the key characters in history like Michelangelo. These are people who’ve reached this incredible level of expertise and who’ve become the Beethoven’s of the world.
Brad: I think I struggled with programming very early on and did not learn it very well. In college I took some programming classes and absolutely hated them and did poorly. I remember my first class going in and hearing the instructor talk about heap and cueing and all these different things. I didn’t have a clue of what he was talking about. We didn’t even sit down and type code into a text editor for the first two or three weeks. That was an eye-opening experience for me because I felt like the stuff that I had been playing around with for fun was not really programming. I don’t remember what they were teaching at the time, but it was taught horribly and it really burned me for a long time.
Arsalan: There used to be this derogatory term that people would use in the 80s and 90s called “script kiddies”. They would say you guys are the script kiddies and we are the real programmers. People used to say we are better than that because we are computer scientists. They used to say that the rudimentary HTML and JavaScript that we had back in the 90s was not real programming and that real programmers don’t do that because it was unprofessional. Things have evolved and now the highest professionals are the most accomplished programmers and the most accomplished programmers are web developers now.
Brad: Well it’s crazy now. If you would’ve told me 20 years ago that JavaScript would’ve been everywhere, I would’ve laughed at you. But, that’s just the way it is. I think there is a famous quote that said that anything that has ever been programmed will have been programmed in JavaScript. It certainly is fascinating.
Brad: When I was in the military, I was getting into it with fervor and then after getting out of the military, I was getting deeper and deeper into it. My first experience with it was similar to math. It’s also the same with language, actually. I struggled with language for years and then all of a sudden one summer I picked it up. My wife is French and so after meeting her. I just figured that I was going to go ahead and learn stuff. So, I spent a huge amount of time learning how to learn, and specifically learning how to learn languages. Then I realized that if I can learn language, I can also learn math or programming because they are just another language. The truth of the matter is that they are even easier than learning a human language. With the human languages, there are exceptions and a million different vocabulary words, but with programming the language is just logical with very few keywords. The rest of it is up to your creativity.
Arsalan: These are all skills that are interconnected. You learn one thing and then your ability to learn something else in a different domain becomes easier. One thing that is very interesting for me is that I have learned many different languages over the years. Sometimes I would have to learn a programming language that I really wasn’t all that interested in and many years later I would learn another language. I found that it was easier for me to learn the other language that I wanted to learn because some of the concepts looked very similar to the first language. So, knowledge doesn’t go to waste. And concepts from one computer language can transfer to another computer language.
Arsalan: I want to talk about your entry into this industry as a paid programmer. We mentioned that we have to learn new languages and keep up to date. That is true, but the problem is that the goalposts keep shifting. How do you keep your skills up to date and how do you get your foot in the door?
Brad: This is something that anybody starting out should keep in mind. All of us struggle with this. Even professionally paid programmers or the best programmers in the world still struggle with this. In fact, even the Dave Thomas’ of the world, one of the writers of the Quintessential Pragmatic Programming, programming Ruby, and now, most recently programming Elixir, and even he laments the exact same fact. Sometimes it seems like there is a new JavaScript front end framework coming out every week. I just invested a year and a half learning Angular 1.0 and now find out that Angular 2.0 is coming out and it’s completely different.
Arsalan: Yes, it’s a different framework, but with the same name.
Brad: On top of that, there’s React and Ember, and then Facebook decides to flip the whole front end relationship on its head with this whole phlox and relay framework thing. So, it’s a constant struggle keep up. In my opinion I think that’s one thing that should be top on people’s lists. Yet, nowadays it’s learning how to learn things really quickly.
Arsalan: We were just talking about front end technologies. That’s not all of programming. Other stacks and types of programming like embedded systems, development, or service side coding don’t change as fast as front end these days, but they do change. Every five or 10 years they’re not recognizable.
Brad: You still have Go coming out right now. I’m spending a lot of time in closure right now. You have concurrency becoming a bigger issue. I think we’re in a grand shift as well because we can communicate rather than seeing languages converge. It seems like we’re seeing languages explode. On the service side of things you have Erlang and Elixir coming out based off the actor model. It’s a different way of thinking about how you’re passing information between different processes. It seems to me that it’s everywhere. Now, you have Rust coming out. It seems like there are a lot of people who are interested in Rust from the C&C or embedded systems world. It seems to me that we are in a period when there is just way too much to learn. Even if you just took a snapshot of the way the programming world is now and learned that, that would only be good for about another two years.
Do you know how we often talk about mentorship? In fact, we always talk about mentorship on this podcast. We’ve talked about learning and teaching and resources. How do you learn some of the most fundamental concepts that you need to learn if you want to be a web developer? If you want to be a developer in 2016 and beyond, you really need to learn JavaScript and you need to know it deeply. The world is moving toward JavaScript. It’s hard to get to that knowledge. It’s hard to accumulate that knowledge. It takes years.
Derek Bailey, who was on episode three of the Mentoring Developers podcast, has a screencast bundle. It’s three hours long and contains several episodes. It covers variable scopes and context, which is a disk. It talks about JavaScript, which is a really tricky concept. It talks about objects, prototypes, truthiness, faultiness, and passing around functions and memory management. It contains a whole bunch of good stuff. He sells it for $64, but right now you have a chance to get it for free. I talked to Derek about it he agreed to let one of my listeners have it for free if they provide the best feedback, ask the best questions, or leave the best comments. So, I am sending out a big thank you to Derek Bailey for this opportunity that I am presenting to you.
To enter for a chance at this $64 bundle, all you have to do is leave your best comment, question, or even suggestion about any of the Mentoring Developers podcasts. They can be about any of the Mentoring Developers podcast episodes that you liked. You can enter by tweeting me at @mentoringdevs, emailing me at us@mentoringdevelopers.com, or you could write your comment directly on the post of the episode that you like. Comment as often as you like. The best comment wins. We may do this once every month or two depending on the volume and the quality of the comments.
Arsalan: Imagine for a moment that I am a new developer. I know what I need to do to keep my skills up to date. I need to be coding and out there networking. But, now I have a choice. There are about 100 different programming languages, paradigms or things that I should know, but keeping up with everything can take up half the day. That’s one problem. For example, what is this whole Rust thing?
Brad: Yes, I think that is a very good point. You are essentially highlighting many of the key points to essentially getting anybody into a new field. It is especially relevant for programming. It is surface knowledge level for about a million different things. So, if I’m looking back on how I would do things differently, I think I would’ve focused more time on my first language to become really good at it. This helps you learn a lot of the software programming principles without having to distract yourself with other languages. The more time you spend with it the more you realize that the fundamental concepts are basically the same. For someone starting out, I think it’s hard to imagine, but eventually it becomes easy to pick up a new language. That’s because you’re still dealing with the same core concepts. If you can master or become incredibly knowledgeable in one core language, it gives you easier access into anything else that you would want to learn in the future. That’s because you don’t have to go about learning the big concepts.
Arsalan: I agree with that point. I think this is really valuable. In terms of getting your first job, it is really to your benefit to focus on one thing. No one is going to pay you to know just the surface level of many different languages because that doesn’t help anyone.
Brad: Unfortunately, they don’t hire for a Hacker News expert.
Arsalan: That’s true, unless you work for Hacker News, then maybe. So, you need to go a little deeper so that you can be more productive because no one cares that you know the language. They only care that you can do that thing that they need you to do.
Brad: That’s it exactly. To actually be doing something of value and being productive is important. When people are starting they need to be able to produce something of actual value. So, value and productivity are the two key words here. Just knowing the names of a bunch of different languages and the information that you can get off of Tech Crunch or Hacker News doesn’t really help anybody. You actually have to be able to build things with it. To be productive, you have to be good at one thing.
Brad: I think it’s a little easier today than it was in the past. That’s because today you can learn JavaScript now as a first language. There may be pros and cons to that, but you can learn it as a first language. You can learn it on the client service side as well as everything on the front end, assuming you want to go into web development. Even if you don’t want to go into web development, there are people working on JavaScript in just about every imaginable environment that you can think of.
Brad: People are also pouring a lot of money into it as well. You have a bunch of financial firms that are backing the Node.JS Foundation. So, you know it’s not going to just up and disappear. It’s the top language according to RedMonks programming language rankings. Out of all of the various sources out there, JavaScript is here to stay. Given the fact that you can do just about anything in it now, and that there’s some really good courses in it, the average beginner should really focus on JavaScript, Python, or Ruby and work on becoming incredibly good at one of those.
Arsalan: So, how do you become incredibly good? We’ve heard of that before. Can you lay out the steps for me and the timeframe? Can you say “if you do this, and if you keep at it, you will get your first job”?
Brad: I guess the way that I look at it is to take a step back and narrow it down a bit. So, it’s all about contact with what you’re working on. What I mean is that you need to spend more time with the actual code. The big principle is if you spend a little bit of time every day with the code, whether that is JavaScript, Python, or Ruby, it will eventually sink in. It’s the same way that human languages eventually sink in if you approach them in the same manner. The goal is to start with very easy things, and then gradually work your way up. The goal is to have continuous contact with any given language and to increase the complexity of that overtime. But, you need to start very simple. The goal is to do a little bit of it every single day, even if it’s only 30 minutes or an hour each day. You are going to learn it if you do that. It might take months, but you will learn it. In some sense you will increase the complexity, but if you have the motivation, then that will happen naturally. So start very simple and don’t be afraid to stay simple.
Brad: Personally, it’s always a struggle for me to want to dive into something that’s more complex early on, but there are a couple of problems with that. First, you don’t understand it yet. So, there’s a huge amount of waste that goes into the learning process right there and it’s discouraging because you don’t understand it. Also, it’s fundamentally over your head because you can’t grasp the concepts yet. I’ve found that when I go back to the basics and very gradually build myself up, I ultimately end up learning things even faster. Doing it this way allows my motivation to stay high and for my mind to be able to better process the information that I’m learning. The key is to start with the screencasts. So, I have a couple of favorite sites. One is Plural Sight. Another is Safari Books Online. If you’re going to learn Ruby, then there is Michael Hartl’s Ruby on Rails tutorial, which will give you a great introduction to both Ruby and Ruby on Rails.
Arsalan: So, what you’re saying is that you can learn by going to screencasts. You can learn by listening to podcasts. You can read blog posts by people who are putting out good content. There are some good books for you to consume and learn. There’s a good combination of information out there for you to learn from. But, the question is how long does learning go on for? How long do they need to learn before they can get their first job?
Brad: It’s hard to say. Although, I think it’s probably earlier than most people think. I think we expect going in that you have to become a genius in order to get a job as a programmer. But, that is not true. I am not a genius and I have met many people who have started with a background in mathematics, with business degrees, history, degrees, English degrees, and more. In fact, I’ve recently spoken to a VP of engineering of a company out in San Francisco that is doing quite well at the moment and he made an interesting comment to me. He has found a correlation between people who have English degrees and who also have the ability to program and debug code really well. I’m not sure what that’s really about, but it was an interesting comment.
Brad: It’s hard to say, but I think it depends. Although, it’s probably earlier than most people expect because I think most people going into it think that you have to know everything before you can even get a job. The thing is, you are going to learn along the way. We spend most of our day hitting a bug and then trying to figure out how to fix it. So a lot of time is spent researching and trying to figure out what other people have done. It’s not like you have to be at a level where you can fix every bug by memory that every person could possibly write. That’s just not reality anymore. We have Stack Overflow and all these other things.
Arsalan: To condense it into one sentence, I think what you’re saying is, it is a constant process of learning, but you don’t have to wait until you are a certain stage within your learning before you can apply to jobs. You can start applying very early on, possibly with only a few months of learning, to see if someone is interested in taking a chance on you. In that case, since you don’t have a lot of experience, if you have something to show then you can show them what you’ve done and you may be able to gain an entry level job through that.
Arsalan: Let’s move on to something that I want to talk about very briefly. You have done different types of work and know people in different industries. How would you rate software development for someone who is curious, but feels intimidated by it?
Brad: On a scale of 1 to 10, I would personally rate it as a 10. That is my own personal feeling, so everyone else is may feel different. I think it’s an amazing job. I think it combines creativity with being a very in demand job. If most of software development people are being honest, then we are definitely the most privileged class. I don’t fear not being able to find a job and being paid well. On so many bases, I think it’s amazing. I spent two years as an investment banker and I would definitely rate software development well above that. I suggest it all the time to people. I think it’s an amazing career choice.
Arsalan: Yes, I agree with you on that, but I wanted to get your opinion on it. The next thing that I want to talk to you about is from the point of view of someone who is in the position to hire new developers. I’m sure that you are or have been in a position of needing new talent on your team. Perhaps you are looking for new or experienced developers. Some companies look for experienced developers. Some look for new developers because they can train them and avoid having to pay senior salaries, and sometimes that’s what companies are really looking for. Are these companies creating a nurturing and enabling environment for new developers to grow and prosper? Are there any mentorship or apprenticeship programs? Is there any path to success? Or, perhaps someone is hired based on their interview performance or how the company feels about them and they are then assigned to a program and just have to produce results and figure everything out along the way?
Brad: Unfortunately, it’s probably the latter more often than not, but I think it should be the former. I would think that a lot of people would say that. I am personally very interested in hiring for the exact same reason that you highlighted. We’re a startup and that means that we don’t have all of the resources or money that we would like. So, if I can find people who have a lot of motivation and a very high learning velocity, I’m eager to get them in the door. With that being said, I realized that that comes with the cost of a mentorship.
Brad: I am mentoring someone right now. She came in the door with little to no programming experience, but for me it’s been a huge gain to have her in the office. It has taken more of my time for the mentorship than I had initially envisioned. But I see it as a huge benefit because it enables me to learn things. I think that teaching and mentorship helps you to better understand some of the things that you know or some of the things that are in your head but you can’t really formulate or communicate them clearly.
Brad: Mentorship is a huge gain, but I think that it takes more time than many people want to put up with. I think as developers we are constantly trying to balance this thing where we want to both mentor someone and learn, but we also want to be left alone and code as well. It’s a difficult balance and I think that you have to be very intentional about it.
Arsalan: Yes, and you have to be motivated too.
Brad: I honestly wish there was more of it. So, in answer to your question about the path, I fear that there’s not a path, but I think that there should be. A hundred years in the past we had a model of apprenticeship, but the Industrial Revolution did away with that. We really need to get back to that, especially in programming.
Arsalan: That’s because programming is a craft. We are not factory workers. Programmers will never be replaced by robots because there’s a lot of creativity that goes along with it. So, you need to learn from a master.
Brad: I think one reason that I believe so strongly in it is because in the military that’s a huge aspect of training. I’ve seen it work really well in the military because you’re following senior people around and that’s how you really learn. I wish it were more formalized. I think there could be a lot more done to make it a more efficient apprenticeship model.
Arsalan: The companies have to budget for that. They have to know that, say 70% of the time, your time will be spent working on the code and the rest of the time will be spent helping or mentoring others. They see that as an investment in the future. They will allocate for that, or think about it, but a lot of times they don’t really think about it too much. They think that people should just be able to come up to speed on their own. I don’t agree with the idea of that being the best way, but that has been the way that it’s done.
Arsalan: Let’s say that there are five new recruits that we have to assign to projects and I have to take them away for a month to train them. Maybe I will put them through a curriculum and then after that they will be ready. That’s one approach. The other one is to let them pair with senior people. There is no formal training, they just work together. They pair up with senior developers and see how things work. Through that, they learn. Which way do you agree with?
Brad: I would agree with probably a little bit of a mixture of both. I really like the idea of pair programming. I haven’t done a lot of it, but that’s mainly because I think it saps part of my productivity. In my current environment, it doesn’t make as much sense to me. In a larger engineering organization, I think it makes a lot more sense. I would say that a little bit of both is probably the right mix. In other words, they need to spend time on your hip doing exactly what you do and watching you because part of that is figuring out what smells like a bug.
Brad: When you’re trying to track something down, you have to be able to understand what smells wrong. Part of it, you also have to observe. You have to understand things like why I am looking and why I am instantly going to this. They might be lost initially, but just seeing what thought processes I go through when I see that something is not working the way that I’m expecting it to work is helpful. Learning also needs to be active, so they need to be invested in learning for themselves as well.
Brad: You can’t teach anybody anything because they have to learn it on their own as well. So far what I have found that currently works is a mixture and intentional guidance. For example, I have weekly meetings the young woman that I am working with, and I will go in depth with a topic. Then I also track her progress and suggest a screencast for her to do. Or I tell her to go and research what CSS frameworks are or what CSS pre-compilers are. Or I direct her to go and look at a certain code on an open source project, read it, and then come back and tell me what’s going on.
Brad: I found that you need to do that actively and make it either a daily thing or every other day. It’s nearly the standup model to spend 10 minutes a day and say what you are working on today, what you should be working on tomorrow, and what you should be learning. Then, a little bit of time on the hip or a little bit of pair programming, and some more in depth things when you can just dive in and explain some of the fundamental concepts is what works.
Arsalan: Since you’ve been working with this girl and you’ve been mentoring her, I was curious to know if you’ve noticed a pattern. What does she struggle with the most?
Brad: She struggles most with going from beginning to end in a screencast. I know that may not be the answer you expected, but she tends to hop around. I know that it’s hard to just trust me and follow the screencast from beginning to end. I think it’s easy to hop to conclusions and say, oh, now I understand why they’re doing this and then go back to this other thing or hop on over to this tutorial, which is just giving me a snippet on this other thing.
Arsalan: So you’re talking about the struggles that your mentee is going through?
Brad: Yes, but it’s probably not the answer that you were expecting. I would say just consistently digging in to one thing like finishing a screencast from beginning to end. Also, being content to learn today or this week on how CSS is precompiled or how an HTTP request works and trusting me that it’s worthwhile knowledge. I think for newcomers that it’s difficult because they feel like there’s so much to cover and it is a struggle to go deep on some things and to trust guidance. But, it’s vital to stay focused on one small thing. A lot of times on my end, I’m trying to orient her to things that I feel are really universal and have been very beneficial for me to learn, but also painful for me to learn.
Brad: As with anything, mentoring is a relationship. You are constantly building. It’s probably going to be different with each person. You have to look at it almost like a parent-child relationship. How would you teach your child something? There’s also a trust factor related to it as well. The mentee needs to understand that I’m not just giving them random tasks. It might not sound like it is important, but it’s vital for them to understand a concept. The sooner you understand it, the better you are. Even small things like shell scripting falls into that category. The small things seem like they might be distracting, but the small things are part of what makes up what it means to become a really good programmer. Having trust in the mentor and focus are really important.
Arsalan: That has been my experience as well. Some people have had trouble following my guidance because it may have seemed like it was everywhere. But in our world, you have to know little bit about a lot of things. You said earlier that JavaScript is a pretty hot piece of technology. It’s a good skill to have. You can certainly get a career or get a job out of JavaScript, but that is not the complete picture. You still need to know about some build tools, a text editor, and the bash or some other kind of shell. You need a lot of different things. When you are doing some kind of software development, you still need to know the core and your tools in order to do the building and then you will need to be well-rounded. I think that some people struggle with this. With a woman mentee, there may also be this struggle and anxiety to show the world that she is just as good as her male counterparts in the industry. Maybe she is putting too much pressure on herself?
Brad: For me, it’s definitely a different experience coming from an all-male environment in the military. I’m also a pretty aggressive person as well. I’m not sure with her being in a field that is predominantly male what effect that has on her. I’m sure it does have some kind of effect on her and I think that it takes even more trust building. It probably took a bit longer for us to build a good trust relationship. It wasn’t very long, but I think overall it has been very good. I can’t say that overall the question of man versus woman has entered it too much though. With that being said, I should really ask her about that for her opinion. We’ve only spoken about it once or twice.
Arsalan: It’s hard to talk to your boss about the feeling of being intimidated. I could be intimidated because I am a minority and maybe I feel like I need to prove that I belong. So, if I go out of my way and tell people that I feel uncomfortable, they might think that I don’t belong and that would go against what I’m trying to establish. So, if you don’t mind, I would love to have her on the show at a later time to get her perspective on this and see how she’s dealing with the new job.
Brad: Yes, that would be great. That would be really interesting.
Arsalan: So, let’s move on to some of the final topics. Let’s round it off and talk about how you do your work. Some people are of different opinions, but I would like your opinion on self-promotion. Do you think it’s important for new developers to promote themselves?
Brad: Yes. I think it’s true. You do need to get out there and to not be shy about what you don’t know. There are benefits as well of putting yourself out there, making yourself a little public, and declaring what you do know. That provides a little more expectation for yourself to ensure that you know what you’re saying. That is a really good learning device in and of itself. If you can give talks, write a book or a blog, then definitely do it. Everyone has different methods.
Brad: I’m not particularly into doing short blogs or articles. But, I am currently working on writing small books on specific subjects. Rather than doing a ton of blog articles. I’m working on doing a series of short e-books, about one every six months. That is one area that I haven’t done phenomenal on and I think that hiring or even recruiting people for different projects is still a very human thing.
Brad: One way or another, you definitely need to get out there. You can contribute in many different ways. Programmers, as a class of people, are really eager to learn nearly anything. There is a young woman named Saron Yitbarek who was on Ruby Rogues podcast. She gave a talk about two years ago when she was completely new to programming. She also gave a talk at RailsConf in either 2013 or 2014 on reading code from a beginner’s perspective. So, there’s always something to contribute.
Arsalan: Have you ever been mentored yourself by someone in the industry?
Brad: Yes, definitely. My lifelong friend Eric Franz that I mentioned briefly definitely acted as a very powerful mentor.
Arsalan: How was that experience?
Brad: It was amazing. I definitely would not be where I am without his guidance. In the same way that I am trying to mentor the woman who is working with me, he mentored me and made suggestions on what to study, what tool to focus my learning on, and learning shell scripts to save time. In the practical sense, I was getting a more mature aspect of the industry. It was also like passing on the tradition of a craft. He definitely did that very well.
Arsalan: Do you listen to podcasts? Do you watch screencasts? Do you read blogs? Are there any that you would like to mention?
Brad: Yes, pretty much all of those. I would say that I definitely listen to Changelog, Ruby Rogues, as well as This Week in Startups. I probably spend most of my free time listening to audiobooks. I am always listening to audiobooks through Audible or through the local library, but I am definitely a very active listener. Between podcasts and screencasts every single day, I listen to some form of educational screencasts as a habit. I did it during lunch today. I think there are also huge benefits to watching conference talks as well. They can be across the board, but if you can fit them in, then watch them because you learn fascinating little tidbits about things that I think are really beneficial.
Arsalan: Another thing that appeals to me is to diversify. For example, if you are a Ruby developer, then perhaps watch a presentation of another language or a completely different subject. That kind of broadens your horizon a bit. You don’t have to be too specific, but at the same time, don’t be too general either.
Brad: Yes, absolutely. In some sense, a good way to diversify is with watching talks from different conferences. During the day, you can be really in-depth with working on whatever technology stack you are working on and mastering that, but it’s also fun to watch some conference talks on something that has nothing to do with that. Let’s take Java, for instance. Java gets this bad name among the hipster crowd, because everybody is addicted to Python and Ruby and other newer languages. There are some phenomenal talks out there where I’ve learned a huge amount by listening to somebody talking about VIM or somebody talking about Java. I watched one a long time ago that was on Prolog and it was a fascinating discussion.
Arsalan: What’s the best advice you can give to software shops or employers who are looking to hire new developers?
Brad: I would say to have a defined path of apprenticeship. Spend some time and think through that. Think about how you can bring new people into the field so that we can create more stuff.
Arsalan: What is the best advice you can give to new and aspiring developers?
Brad: Keep learning. Keep your motivation up, even if you have to go back and study something that’s easy just so you can feel confident about yourself. Continue to learn and build because those two things go hand-in-hand. One of the best ways to learn is to build things. Keep at it.
Arsalan: I think this has been a great interview, Brad. Is there anything that you would like to promote or is there something that you would like people to go to? Would you like to give out your contact information so that people can get in touch with you? This is your time.
Brad: Feel free to contact me at Brad@capstory.com. You can follow me on Twitter at @bradfordarner. I don’t post a lot on Twitter. I need to get better at that. I am definitely all for increasing apprenticeship systems in the world. I don’t have anything to promote, but I would love to be promoting an organization that does that. I would say to just keep learning.
Arsalan: Perhaps you could promote this podcast? The goals are similar in that we promote mentorship. I want people to care about each other and especially to care about bringing people on and nurturing them and looking at them as assets instead of liabilities.
Brad: Or, looking at them as humans and developing them like craftsmen or crafts women.
Arsalan: Absolutely. It was fun talking to you, Brad. Hopefully, we can have you on later.
Brad: Absolutely.
Important Links
- Robert Greene on “Mastery”
- Malcolm Gladwell’s “Outliers” and The 10,000 Hour Rule
- RedMonk
- Plural Sight
- Safari Books Online
- Rails Tutorial
- Stack Overflow
- Ruby Rogues
- RailsConf
- The Changelog
- This Week in Startups
Thanks for Listening!
Do you have some feedback or some advice for us or our audience? Please give us a review on iTunes, Spotify, Google Podcasts, or Stitcher and share your thoughts.
If you found this episode useful, please go ahead and share it with your friends and family. You can also listen directly and give your feedback on the website.
You can subscribe to Mentoring Developers via iTunes, Stitcher Radio, Spotify, or Google Podcasts.
Podcast: Play in new window | Download