• iTunes
  • Stitcher
  • facebook
  • twitter
  • Home
  • About
  • All Podcast Episodes
Mentoring Developers

Mentoring Developers

Helping software developers thrive

Archives for June 2016

Episode 38 – How much money can you make after going to a code school?

June 28, 2016 By arsalan Leave a Comment

https://media.blubrry.com/mentoringdevelopers/p/content.blubrry.com/mentoringdevelopers/MD-episode38-gregorio-rojas.mp3

Podcast: Play in new window | Download

Subscribe: Apple Podcasts | Google Podcasts | Spotify | RSS | More

There has been a lot of hype concerning training at home to become a software developer. Regardless of whether you are entering the workforce and looking for a way into the tech industry or whether you want to change careers to something else, there’s always a way to get into software development. But, code schools have been gaining ground in popularity and success stories. So, what is the real truth behind them and are they worth your time to pursue?

Our guest for episode 38 is Gregorio Rojas and he is an instructor and founder of the Sabio Learn to Code boot camp. Gregorio began his career in the sports management industry but soon decided that a change was needed. Now, he is here to give us all the juicy details of his story and how you can quickly become a software developer and achieve success in the tech industry.  Are you ready to turn your dreams of coding into reality—no computer science degree needed? Listen in to episode 38 for more details.

Gregorio Rojas’ Bio:

Gregorio Rojas has been in the software development field across a variety of industries since 1999. Previously, he was the CTO and co-founder of an online real estate listings site, MySocalListings. He was also a Director of Development at SFW, a SAAS enterprise software startup and most recently, lead developer for the Monetization team at MySpace.

Episode Highlights and Show Notes:

Arsalan: Hi everyone. Today we have a very special guest, Gregorio Rojas. He is an instructor and a founder at a code camp. So, he is someone that we haven’t had before. We haven’t had a code camp instructor or founder before. So I’m really excited to have him here. How are you, Gregorio?

Gregorio: I am doing great. How are you?

Arsalan: I am doing fantastic and so excited to have you on. I want you to tell us your story and walk us down your path of becoming a software developer from being a computer illiterate, as you described yourself, and going from your first job within a year and a half to becoming a senior developer with a healthy salary. There were some bumps and hurdles that you encountered. So I want you to tell us how it was when you got your first job. How are you feeling? I don’t want you to go into any details, but describe your emotional state throughout this process.

Gregorio: Before I get into it, thank you for having me on. I really look forward to it. So thank you for that. Through Boston University for sports medicine and I was an athletic trainer so that was a very personal job. I wasn’t just working with people, I was also touching people. For me to transition into a world where I was mostly typing was a little weird. But, I knew there was a lot of opportunity in tech. I happen to find myself surrounded by a bunch of people who were getting into tech and it sounded like that was something that I should be doing. Through a series of different events and talking to people, I got the confidence to try it.

Gregorio: What I thought was going to be a software developer job turned out to be a junior job. To give you some context, I think I was making around $27,000 for my first job. But, it ended up being more of a QA job, but not the exciting QA job, software engineer, tester job, or automation QA. It was not that exciting. I knew that’s not what I wanted to do. I knew that’s not why I had really don’t my career and five years of education to come and do QA at that level. That was frustrating, but I was able to continue doing my own home study to ensure that I equipped myself with employable skills.

Gregorio: I built something that actually had the domain bostonapartments.com. I built a little apartment listing application because apartments in Boston were huge. I will not mention the fact that I let that domain name expire. It’s heartbreaking that I let that happen, but I did. It allowed me to get into a company that was a dev shop, where all they did was build product for other folks. I got into another company where I was managing the IKEA North American and Canadian sites in which the code and the content that powered those sites was essentially through a content management system.

Gregorio: At that time, content management systems were the thing. We didn’t have WordPress we didn’t have websites like that. So, it was very strange for me because I had no idea what a content management system was. That was my second job and three or four months into my career.

Gregorio: Fast-Forward and I went from working for that company in Boston and took a hop over to El Segundo in California right before the Dot Com bubble burst. When it did, I ended up having to leave that company and walked into a fantastic job that a new colleague of mine set me up with an El Segundo where we were doing online e-commerce.

Gregorio: That was the job that was at the 18th month mark were all of a sudden I was getting paid $82,000, which was more than the top level athletic trainers were getting paid at the time. So that was really rewarding and kind of shocking. I was explaining this to someone the other day and looking back at it, it really was disorienting during that first year and a half. I totally had the case of imposter syndrome where I was head down in the Cove and was really earning whatever these folks were giving me and I really considered it an opportunity. Yet, I was waiting for someone to come in and tell me that I wasn’t cutting it, and for the real work to start, the hard part.

Gregorio: I was waiting for someone to out me and tell me that I really didn’t belong, but that time never came. I was left wondering even back then why there weren’t more people doing this because it wasn’t that hard. It’s different, but it isn’t that hard. I continued along and it wasn’t until about 3 ½ years ago that my wife and I decided to start Sabio.

Arsalan: Fantastic story. You went from one success to another and you were expecting really difficult times because you didn’t have computer science degree and you kind of didn’t know what you are doing. You started QA $27,000 a year. Very quickly you rose to over $82,000 per year. So, were going to talk some more about some of the details later in the show, but first I want to talk about your introduction to software development. Why did you choose to into that? You said that you were interested in it, but you had a degree and you had a plan and you went to college for something else. What was the trigger for you to want give all that up?

Gregorio: It was really necessity. It’s really embarrassing, but I was in my fifth year of athletic training and in athletic training the way they bring you up and educate you is hands on. From your freshman year on your in the clinic and in the training room and you are working with athletes. It’s very hands-on and kind of like an apprenticeship. It was fun and awesome. I got to go see some great games. I was and still am a big fan of sports. I just don’t have the time right now to spend as much time on sports as I would like. I was a typical young man growing up in New England. I was doing really well and having a lot of fun, but I realized while I was at Boston College that this was not what I wanted to do for the rest of my life. The quality of life in the amount of time that I would have to spend away from family, this would not have cut it.

Gregorio: I was really bummed out about it, but a couple of things happen. A couple of my athletes were getting ready to graduate and were talking about making $70,000 right out of college. At the time I was getting paid $11,000. I don’t know if they call that a salary or stipend, but that’s what I was making and it was one of the best positions in the country at the time for someone right out of college in athletic training. For an athletic trainer to get up into the $70,000 range, you would have to be working at really high level athletics like the NFL or the NBA and those types of jobs. People don’t leave. They worked there until they die.

Gregorio: Instead of waiting for that I had my athletes talking to me about software. I asked myself whether that was something that I should consider. That alone wasn’t enough. I was taking a Master’s program geared toward my sports medicine career. One of the professors was talking to us about one of her projects and gave us a choice between three types of projects and one of them had to do with HTML. I remembered that the athletes were talking to me about coding and HTML is about coding so that’s what I chose.

Gregorio: I struggled with probably the ugliest HTML page that you have seen for two weeks. At the end of my project, I presented the HTML page. The highlight of the page was this little Tweety bird that I put at the bottom of the page that you had to scroll down to. So at the end of my presentation I scroll down to show the Tweety Bird that was flapping. Now, I had no idea how this thing was flapping because it wouldn’t flap when I was looking at it outside of the browser. Yet, it would flap while it was in the browser. Everyone gave me credit for making it flat, but honestly I just took it and told them that it took me a really long time to get it to do that. But it felt good. Scrolling down and seeing that Tweety Bird flap and how amazed everyone was at it. So I thought that maybe I could do this.

Gregorio: So those two things combined gave me the confidence to let it go and make it happen. Within a month or two, I quit and started busing tables, parking cars, or whatever I needed to do so that I could take some night classes. The night classes at that time did not include any nighttime learning to code classes. There is an adult Ed program at Northwestern University. I don’t remember the name of the program, but it had the most technical courses on it. Those courses alone were not enough. I had to do a whole lot of work beyond that, because it was not a CS program by any means. It was more like learning about technology. But those courses gave me what I needed in order to get into my first job.

Important Links

  • Sabio
  • Twitter: @wesabio

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. 

https://media.blubrry.com/mentoringdevelopers/content.blubrry.com/mentoringdevelopers/MD-episode38-gregorio-rojas.mp3

Episode 37 – Charles Max Wood on getting ahead as a developer

June 21, 2016 By arsalan Leave a Comment

https://media.blubrry.com/mentoringdevelopers/p/content.blubrry.com/mentoringdevelopers/MD-episode37-charles-max-wood.mp3

Podcast: Play in new window | Download

Subscribe: Apple Podcasts | Google Podcasts | Spotify | RSS | More

For many, there is a misconception about becoming a software developer. The title is often associated with someone sitting in a tiny cubicle at a large corporation, but that is not always the case. In fact, there are many different ways that you can work as a software developer and not all of them involve large corporations. Creativity in technological career options is a bounty of opportunities. All you need is to simply approach the door of your choice with an open mind and determination to succeed.

Charles Max Wood entered the field of technology at the age of 26. He has worked as a developer in different situations and now works freelance. Since becoming a freelance developer, Charles hasn’t looked back. He runs several podcasts, is writing a book and a course, and much more. Charles comes to us in this episode to share his knowledge on some of the lesser known career possibilities that technology offers today. So, click on over to episode 37 and listen in to Arsalan Ahmed and Charles Max Wood as we delve right in.

Charles Max Wood’s Bio:

Charles has been playing with various forms of programming since he was 13 but didn’t find his passion for it until he was introduced to Ruby at age 26. After a year of trying to balance his passion for programming with his career as Director of Support for Mozy, he left his management position for a career in programming.

Charles is passionate about helping others make technology work for them. He is a software consultant and leads his own team of freelance programmers. He’s been programming in Ruby and Ruby on Rails for 7 years and has built several websites including Twitter Clones and other social networks, payment systems, shopping carts, and blogs. He has also customized with Spree, Redmine, Discourse, and Instructure’s Canvas.

Charles’ ambitions in life are to be a dedicated husband and father to his wife, Heather, and his three children, to meet as many people as possible who share the same passions as he does, and to write a novel.

Episode Highlights and Show Notes:

Arsalan: Hi, Everyone. Today I have a very special guest. Charles Max Wood, how are you?

Charles: I’m doing great. How are you?

Arsalan: It’s so good to have you. I’ve been listening to you on your podcasts, and you are an avid podcaster. I can say that because you have a lot of podcasts.

Charles: Yes, I’ve been doing it for almost 10 years.

Arsalan: Yes, and you are definitely somebody who I can look up to as someone who is successful in a lot of the things I want to do. The focus of my podcast is a little different from your podcasts, but I think we’re all in the same space.

Arsalan: So, you were telling me an interesting thing that happened when you were getting your first job. Can you tell us a little about that?

Charles: It’s kind of funny. I’m going to drop back just a little bit because I think it’s important to note that I think the people who listen to my podcast that I put on think that I’ve been programming forever. I’ve been programming professionally for about 10 years, as long as I’ve been podcasting. But, they don’t realize that we all got our start in the same way that they do. So, I just want to put that out there because sometimes things just work out differently than what you’d expect.

Charles: My first programming job I had been programming at the job previous to that. We had built a system for the tech support engineers to use in order to answer emails and keep track of phone requests and things like that. It provided a dashboard, a knowledge base, and things like that. So, I had been thinking that I wanted to go into programming, but I didn’t have the confidence to just go out and apply for programming jobs.

Charles: So, what wound up happening was I went and applied to a bunch of QA jobs because the last position that I held at that company was a QA position. Then I just applied on a fluke to a programming job. I went in for an interview and sat down with the general manager for about 20 minutes. He asked me a bunch of questions and did some interview stuff. Then we got on the phone with one of their programmers. At the time, the company was really focused around Java and .Net. They did a little bit of Flash and Flex, and they had one project on Ruby on Rails, which is what I was familiar with.

Charles: So, they got me on the phone with their one other Ruby programmer. We chatted for a few minutes and he started asking me questions. We talked about patterns and I described to him what I had done. He asked me a few other computer science questions, some of which I knew the answers to and some of which I didn’t. But, what I didn’t realize was that this was a consultancy and consultancies want people they can bill out at top dollar. So, what they were looking for from me was somebody they could bill out to do Ruby on Rails projects at a very high rate. So, it was a long shot for me to get the job.

Charles: When I was answering all these questions, I was like “Well, I don’t know. Or, no, I don’t know that.” And he was consistently coaching me. In fact, that part of the interview probably lasted about an hour. An interesting side note to that was that he was actually missing his daughter’s 8th b birthday party to do the interview. But, he was coaching me and helping me learn this stuff. At the end of the call they told me they’d call me back and let me know what they decided. I was like “Okay, well, I’m not getting this job.”

Charles: I got the phone call from them and from another company looking to hire me for a QA job at the same time and both offering me the same salary. I wanted to be a programmer. So, I took the programmer job. I think it’s interesting to note for other people that my resume literally had zero jobs, positions, or responsibilities that showed that I had done significant development in any way. My responsibilities when I was writing all that code before was to basically manage the tech support team. So, I was in management and all my job duties listed were management duties.

Charles: When I was doing QA, were actually told not to write test scripts for the code. So, what we ended up doing was writing basic procedures that someone would have to do by hand in order to do QA. So, my resume did not show any programming experience except for one line where it said that I had built the system that we used for the tech support team and it was fascinating that worked out. I worked for them for a year and then they ran out of clients that did Ruby on Rails and they laid me off. But, I think it’s fascinating and telling that I could go win without anything on my resume, have a conversation with these folks, talk about a side project. I’d worked on, and get a job at a consultancy doing Ruby on Rails.

Arsalan: Yes, that is fascinating. I wonder if it has something to do with the fact that you were at the right time in the right place. Ruby on Rails was really hot and there was a lot of demand and not a lot of supply. You just couldn’t find a lot of Ruby on Rails developers. Today I think that would be something that would be hard to pull off.

Charles: Possibly. I’m actually writing a book on this and putting together a course on it. I have an email course you can get on how to get noticed to get a job at getacoderjob.com, which is where I’m going to sell the book at. You can get noticed. That’s the primary problem that I think a lot of people have at this point. There are a lot of people who contact me saying that they need Ruby on Rails folks. Then, it doesn’t take long before they’re saying that they want senior Ruby on Rails folks, but the reality is that they just need people to get stuff done for them, and if you can demonstrate that you can get stuff done for them, they’ll hire you.

Charles: So, I would challenge you on the premise that it’s harder to do now. It may be harder, but it’s still possible.

Arsalan: Yes, I think that in the Ruby on Rails world, a senior developer would be someone who’s done it for about a year or two. That would be considered pretty senior. I’ve seen some job ads where the title is that they need a senior Ruby on Rails developer who has two years’ experience.

Charles: That’s interesting. Generally, the numbers that I hear thrown out for seniors are 4 to 5 years, mid-level are 2 to 3 years, and below two years is still Junior. Basically, what it really comes down to is what you can do for the company. There are some people who get in and six months later they really get it. It’s because they work hard and that’s all they do. In six months. They can contribute to a team in the same way that someone who’s been doing it for 2 to 3 years can. Then there are other folks who year in and year out. They get to a sort of proficiency on Ruby on Rails or any other technology for that matter, where they can do the job and not get fired and they just kind of stay there. So, they are repeating year one in your two for 10 to 15 years.

Charles: So, I think the problem that a lot of these companies are having isn’t that there needing to find people who’ve been doing this for a long enough. The problem is that they get so many resumes for so many people, or they don’t have a good way to identify the people that they’re getting to come to them or identify the people they could attract to come work for them. So, what winds up happening is that the shuffle through the resumes until they either give up or hire someone.

Arsalan: Yes. I think that you have some really good points. There are a lot of people in our audience who don’t know a lot about you. We know that you are a developer and you’re writing a book, but tell us a little about yourself and who is Charles Max Wood?

Charles: I grew up here in Utah, in Utah Valley, if you’re familiar with Utah. I grew up in Orem, which is a city just north of Provo. I went to Brigham Young University and got a degree in computer engineering. I met my wife while I was going to BYU. We’ve been married for 11 years and we have five kids. I serve in LDS mission in Italy, so I speak fluent Italian. After I came back and went to BYU, I got a job at Mozy, which was my first job. I was doing tech support until it became apparent that two people weren’t able to do all the work. I wound up building the team there. I also started the QA effort there because it turned out that 80% of our requests were related to the same problem. So, if I could put a test in place to prove that problem than it could save us a whole lot of time and effort. After I’d been there a time I moved from director of support to QA in a bid to get into their development department. That didn’t work out.

Charles: I wound up working for Solution Stream. That was my first real developer job. I worked there for a year and then they laid me off as I said. I then went to work for another company that did the generation for colleges and worked there for a year. I then went to another company out here called Public Engines. If you go to crime reports.com, all the crime data that goes there gets Geocoded by a code that I wrote for them. I work for them for about six or seven months before they made a hiring decision to bring on a director of marketing who made some pretty poor decisions and the company ended up starting to lose money as opposed to making money. So, the board came in and fired all the C-level employees and told all the executives to lay people off. I was pretty disheartened because most of the jobs that I had I either love them and got laid off or I hated them and they didn’t want me to leave. So I decided to go freelance.

Charles: When I went freelance, I had to make a deal with my wife that once the money in the bank ran out, I would take a job. After a while, it became apparent that I could make it freelancing. So, I stayed freelance. About eight months after I went freelance, I started a podcast called Ruby Rogues.

Charles: In the meantime, during all those other jobs, I had various other podcasts. The one that most people would be able to find is Teach Me to Code. There were a screencast and podcast series on that. We started Ruby Rogues in May 2011, and then JavaScript Jabber and Freelancer Show in January 2012. We started iPhreaks in 2013. Then, we started Adventures in Angular during the summer of 2014. Those are all the shows that I do right now.

Charles: I’m actually working on pulling together a series of podcasts that I’m probably going to coin as The New Programmers Podcast or something like that. I don’t know that’s going to be an indefinite podcast, though, or if it’s just going to be a series that I put up until I get all the information out and then I stop. That’s where I’m at now.

Charles: I’m also working on the book and the course that goes along with it. I’m also working on a series of remote conferences for programmers. They allow you to attend the conference online for two or three days. You get for talks each day and is held during the middle of the day US time. Those have gone really well.

Charles: So, at the end of June is Ruby Remote Conf. In the middle of July is Newbies Remote Conf. So if you’re new programmer, were pulling together a bunch of experts to come and talk to you about the stuff you need to know in order to be a programmer. I’ll also be doing a talk there about how to get noticed, which is going to be most of the stuff that you can get from the email course that you can get at getacoderjob.com, but there’s going to be other stuff in there too. So that’s been my code journey through all this. I’ve done some other programming here and there, but for the most part, I do the podcasts and the remote conferences, and then I write code when I get a chance.

Arsalan: Wow that is a lot of stuff. I think that if you’re following along in listening to this, you don’t have to remember all that. We’ll have all that in the show notes. So you have started to produce content for new developers. I’m curious about what you think the issues are that new developers have that you are trying to address, especially in your podcast? What are you going to do in that?

Charles: So, this is something that I realized late last year. I decided that I was going to talk to podcast listeners for 15 minutes each just to kind of get to know what their issues were. What problems do you have? What are you struggling with? Who are you? What kind of dreams do you have? I talked to advance people to. In fact, if listeners that the show want to, you could go to Ruby rogues.com/15 minutes. It will take you to Calendly in the take you directly to my calendar and we can chat.

Charles: So, I talked to a whole bunch of people and I found that probably 40 to 50% of the people that I was talking to were new programmers or were looking to get into programming. So as I talk to them. I got a really good feel for what some of the issues are. Some of them are just what technology should I learn. This is something that they struggle with and they don’t know which one to go after.

Charles: Another problem that they get into is should I do, a boot camp or should I do online learning like code school, or should I just do YouTube University which is basically to go browse YouTube and find videos about whatever it is I want to learn. Or, should I go ahead and read a book. There are all these options. Video are courses on Udemy. Where do I go? What do I do? How do I learn this stuff?

Charles: I’ve had a few people asked me if they should go to conferences. I’ve had a few people asked me how they can find a job. That’s a pretty common one for anyone who’s out of the boot camp or has been fiddling around with it for a while. It’s like “I want to do this professionally. What do I do?” Those three or four questions are probably the most common ones.

Arsalan: That’s good. I think some of those questions we try to address in our discussion panels. I would love for you if you have some time, to come on one of the discussion panels so that we can talk about it. I’d like to pair senior mentors and senior developers with junior developers, new developers, and aspiring developers, and ideally have been together in one discussion. Or, if not, I like to have someone who’s in design, someone who’s in UX, someone who is in development with a different perspective and come together to discuss the topic.

Arsalan: I want to know about your encounters with programming. Were you always a programmer? Were you a child prodigy programmer or did you discover it later?

Charles: When I was in junior high, I bought a TI 85 calculator. I thumbed through the programming guide that they had in there, but it was really basic. So I kind of got some of it there – four loops, but not a whole lot that was really in-depth programming. I’ve year after that, I was part of the Math Counts team at the school. It was a year-long program, but Math Counts was only two or three months. So we would do whatever after the contest.

Charles: One of the things that we did was make designs through graphical programming with Pascal. That was real simple stuff. It was all mathematically based and not too involved. When I was in high school, I took an electronics class, and if you took electronics during the first three years, then during your last year you would spend time programming against an 80 or 85 processor. That consisted of actually putting in by setting the pins on the 80 or 85 with the assembly codes. So, we basically just turned LEDs on and off by setting the values and the registers, which is more computer science than just learning how a computer works.

Charles: When I went to college, I wound up getting a job in the IT department managing servers. So, I did some bash they are. I initially started out as an electrical engineering major. I had to take a couple of programming classes, so I did some Java, C++, and C., I changed my major computer engineering, which really pushed me more into C and VLSI, which is the language that you use to specify how a chip should be designed. So I did a lot of chip design stuff and then I graduated, and then got that job Mozy. I was also an intern writing patent applications for a little while and decided I didn’t want to be a lawyer.

Arsalan: That’s interesting that you talked about hardware description language. I think you said VLSI. Two languages that I’m very familiar with that are very login are VHDL.

Charles: Oh, VHDL. That’s what it was.

Arsalan: Yes, and I wrote some log that was a little bit nicer, but I have to say that it was a pain.

Charles: Yes. It’s about as quirky as C and it is an ugly syntax.

Arsalan: But, you’re developing concurrent hardware, right? So, it’s hard for it to be very high level. I think you need to be at the low level. I think I worked on a programmable timer chip as a senior project, but I have to say that in the high-level language like JavaScript. It’s fun, but you have to play with it. It’s harmless too because you can’t really mess up that badly. But a lower level language like a hardware description, C, or C++, you can really mess up in you could spend days chasing your tail and not be able to figure out what happened because debugging stories are not that good.

Arsalan: If you are a new developer or you want to be a developer and you’re thinking of a fun little programming language, you should probably stick with a higher level language like a Ruby, Python, or JavaScript and just learn programming that way. Then, after that, you could learn the hard-core stuff. But, if you are mathematical, who likes things that are very precise, and then I think it would be fine to start with C/C++.

Charles: Yes, the only issue that I have with saying to start with C/C++ is that the syntax is much less forgiving. If you’re into math and you go with Python, or something like it, those languages are a little higher-level and easier to pick up, because the syntax doesn’t get in your way as much. Once you figure out the concepts behind programming, especially the iterative or the procedural programming then you could start to work your way down to C/C++ or something like that if you really need something that’s precise and very fast.

Arsalan: Right. Okay, let me ask you a question about your college education. When you were in high school you liked programming. At that point did you think that that was what you wanted to do as a career?

Charles: I didn’t even think that I wanted to do it. What I was in college, to be honest. I took some programming classes, and they have you work on some very specific problems, but it all felt like it was toy stuff and like none of it mattered.

Charles: With the electrical engineering and chip design stuff. I felt like if I could design a festive chip I could make a difference. If I can reach into these industries and make things just marginally better, then I make a difference. I didn’t see that power and programming when I was in college.

Charles: Once I graduated and worked on that one project, building that system for those tech support engineers to make us more efficient. So we could better serve our customers. That’s when it really started to dawn on me that I was making a small impact here. If I can build or reach more people then I really can make a difference. It really came down to the kind of impact I could make and I realized that software could get me there easier than hardware.

Arsalan: I’m thinking about the time when you are trying to get into college and choosing your major. You graduated with the computer engineering degree, but you really weren’t into programming much at that time. You didn’t know that’s what you wanted to do. Computer engineering is not the same as computer science, it’s not software heavy, but there is a software component to that. So why did you choose that major?

Charles: I’m trying to remember why I switch from electrical engineering to computer engineering. They were both within the same department. So, there were really only a few classes that were different. I think what did it for me was that I just looked at the class lists and just decided that some of the computer engineering classes looked like more fun.

Arsalan: So now you’ve graduated with the computer engineering degree, but you think that you had programming chops at the time. So you started working in QA and you worked on this app that you were able to do on the side for the company. Using this technology you convince the company to hire you to do Rails development. From that point on, you worry rails developer, but I wonder if, after all these years of working as a professional developer, do you ever look back into your computer engineering education, and say “wow, that was amazing. That really helped me.” Or, do you think that was a waste of time?

Charles: I’ve had this debate with myself many times. There are a lot of things that I learned as part of my degree that I feel that really did contribute to the way that I work and think. The specifics of how computers work is not something that I use day to day. I can look at something when it’s not performing well and it’s probably putting pressure here. When something swaps the disc I know exactly what’s going on because that was part of my education.

Charles: I think mostly it was just discipline and thought processes as opposed to a particular subject that I picked up while I was there that really impacts me. I remember several people that I know who didn’t have a formal education, discovering things like state machines, which is like first or second-year stuff for an electrical engineering major, because that’s effectively how you manage the flow in electrical systems. So, I remember seeing them having their minds blown in for me it was something that I had done so many times on so many homework assignments that it was second nature to me. But at the same time, I can’t really point to anything that I really learned there that I can say definitely impacted me in the way that I work now as opposed to the overall discipline and things like that.

Charles: Now, was it a waste of time? I don’t believe it was. I don’t believe that this is the way that everybody should be getting into programming, but for me, it was a very constructive way to figure a lot of things out through my life at that time and also just to get acquainted with a lot of different technologies.

Arsalan: So, when you became a professional software developer and you got your Ruby on Rails job, I noticed that immediately afterward you started a podcast. That podcast is very popular right now. But, it in order to start a podcast via host and get the right guests and put yourself out there, you need a lot of confidence. But you had very little experience at that time. So, how did you get that confidence? Were you always so outgoing?

Charles: No, not necessarily. It was during my first programming job that I started podcasting. That podcast isn’t running anymore. Ruby Rogues is the longest running one that I have now and JavaScript Jabber is the most popular one.

Charles: What happened was I was working QA at Mozy’s and I was within a few months of leaving. I was working with another QA engineer and he would be sitting at his desk and cracking up. I finally turned around and asked him what he was laughing at. He said that it was podcast he was listening to.

Charles: He had an iPod when the iPods were pretty new. That was back when you had to download the podcast from iTunes and sync them over to your iPod. I didn’t have an iPod, but he suggested that I play them in iTunes. So I installed iTunes on the box that I was using to do my testing and started listening to podcasts. I got to listening to one called Rails Envy by Greg Pollack.

 

Important Links

  • PluralSight
  • Ruby Tapas
  • Elixir Sips
  • Lynda
  • Get a Coder Job
  • Mozy
  • Solution Stream
  • Crime Reports (Public Engines)
  • Ruby Rogues
  • Teach Me to Code

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. 

https://media.blubrry.com/mentoringdevelopers/content.blubrry.com/mentoringdevelopers/MD-episode37-charles-max-wood.mp3

Episode 36 – How to pick a programming language to learn for new developers – Part 2

June 7, 2016 By arsalan Leave a Comment

https://media.blubrry.com/mentoringdevelopers/p/content.blubrry.com/mentoringdevelopers/MD-episode36-panel-programming_languages-part2.mp3

Podcast: Play in new window | Download

Subscribe: Apple Podcasts | Google Podcasts | Spotify | RSS | More

When you are new to software development, there is always the challenge of determining which of the many software or framework programs you should learn first. Everyone has a different perspective. Some say you should learn what they learned. Some say there are specific programs that all beginners should start with. And, still, others suggest that the program you start with is irrelevant, as long as you start somewhere. So, how do you wade through the plethora of programs and information out there to find one to begin with that makes sense to you? Or should you randomly choose one and begin?

Episode 36 is part 2 of choosing the right program to learn. Listen in to our panel of experts, Reuven Lerner, David Molina, and David Gatti while they discuss the ins and outs of how to make the decision that’s right for you and ultimately begin your journey into the world of technology and software programming.

David Molina’s Bio:

Dave Molina is the founder of Operation Code, an organization that helps army veterans become coders. Dave came on the show to discuss coding boot camps, the military, software education, and what it’s like to become a civilian technologist after spending years in the army.

 

Reuven Lerner’s Bio:

Reuven created one of the first 100 Web sites in the world just after graduating from MIT’s computer science department. Today, Reuven spends most of his time training programmers at companies such as Apple, Autodesk, Cisco, EMC, HP, SANDisk, and VMWare in four open-source technologies: Python, PostgreSQL, Git, and Ruby. Reuven teaches in Israel, China, Europe, and North America, as well as online.

His monthly column in Linux Journal has appeared monthly since early 1996. His latest ebook, “Practice Makes Python,” is aimed at Python programmers who want to improve their fluency in the language.  Two new ebooks, about Regular Expressions and technical training, should be ready in the coming months.

Reuven curates DailyTechVideo.com (offering a new conference talk about programming each day), and is a permanent panelist on the Freelancers Show, a weekly podcast for independent consultants. He also edits MandarinWeekly.com, a weekly collection of links and resources for anyone learning Chinese.

Reuven has a Bachelor’s degree in Computer Science and Engineering from MIT, and a Ph.D. from the Learning Sciences program at Northwestern University, where he created and studied collaborative online learning communities as the developer of the Modeling Commons.

Reuven lives in Modi’in, Israel with his wife and three children.
Please say hi to Reuven on Twitter.

 

David Gatti’s Bio:

David Gatti began his career in IT as a Systems Administrator. He learned how to code in PHP out of boredom, and made some simple internal tools to help him while managing the company network. He later became a blogger and wrote about mobile technologies before the iPhone came into existence and PDAs had cellular modems. David also wrote the CMS for the website itself when WordPress was first starting. Then, he began working as a web developer for a company that did simple Facebook games.

After his initial experience, David ported a Windows Mobile app to Android 2.3. He then became a Brand Manager for a mobile game company and a Marketing Director for another company and at that company – he transitioned to Developer Relations Manager and worked for two companies with this title. It was a job that he fell in love with.

But, while hunting for his next opportunity, he struggled to find the right company. Out of frustration he created Simpe.li (simply) so he could keep doing what he does best – Development Relations Management done right.

Episode Highlights and Show Notes:

Arsalan: Hi everyone. Today I’m bringing you part two of our discussion panel. The discussion is about choosing the right programming language. If you are a new or aspiring software developer, one of the challenges that you face is where do you focus your energy? So, today we are going to discuss this with our panelists, Reuven Lerner and David Molina. Can you guys introduce yourselves?

Reuven: I’m Reuven Lerner. I’ve been a developer for 20 some odd years now. I mostly do technical training now for high-tech companies. The languages that I most often use now are Python, Ruby, some JavaScript, and SQL.

David M: Hi everyone. Dave Molina, here. I am self-taught. I started here a few years ago with Ruby and building on Rails, and that ultimately led to building the bilingual hire app, and later the Operationcode.org, which is an open source project that helps military veterans learn to code. I mostly stick with Ruby, but being the Jack of all trades. I can hack in Jekyll and middleman. I play around with Google locally. I’ve fired up Ember before. I don’t have a strong suite in any of the languages, but I can help navigate and get through it.

Arsalan: Do both of you actively code these days?

Reuven: I would say yes. But, in my case, in the last few years, I moved more and more into technical training. So, first of all, I do coding during my training classes. I’ll do live coding and of people asked me questions, I’ll often write a program for that. I do a lot of coding to experiment for stuff for research things. Actual software development projects, I tend to stay more on the sidelines with my clients, and they tend to be more private things. If I need to solve a problem, all right software for it and I’ve got some things cooking. But, client-based software work or company based software work, that has pretty much become an old thing over the last few years for me.

David M: I still do. In fact, before I came on here. I was helping my wife with her website, which is a Jekyll website and I was playing around with markdown, but there was some JavaScript that was being pulled in from another form. So, there was some hacking. With Operation Code, I’m one of the authors. Everything runs through me or the other member of the core team. It’s mostly HTML and CSS. But, it’s a lot of fun and I do it almost daily.

Arsalan: Okay, let me throw this question out there. Is this a good topic for discussion, because that’s contentious? I could say about programming languages, who cares just learn whatever you’re doing. Just look at the problem to guide you and learn that language or maybe you don’t need a language, maybe you need a framework. Where do you guys stand on that?

Reuven: Look, I think you’re going to have some very strong opinions, and you’re going to hear some people say you should choose a language and you should choose my language while others say just get started. I think I’m somewhere in the middle where I would say that it doesn’t matter and just get started with something, but there are certain languages that will get you thinking in the right way or would just be an easier on-ramp to the world of programming than others.

David M: I would say start being useful to yourself and those around you. When I was in the Army, we were in a CMS platform called .Net Nuke to run our.mil. So, I had to learn quickly, not just HTML because I already knew that, but also the framework. How to navigate it. How to add new forms. How to build new categories. Those were simple things to do and it was a simple manual that you read. You receive training on it, and they did some screen sharing with you, but otherwise, you got right in on it.

David M: Once I exited, I wanted to build up the bilingual hire app. When looking at the different programming languages, what it really came down to what was the most seamlessness? I had been messing around with PHP and MySQL, and I really didn’t get anywhere. I dragged it on for the longest time in addition to iOS. When I ran into Rails, it just clicked. So, I guess what I’m trying to say is, whatever the problem is that you’re trying to solve, find the tool that will help you solve it and if you’re butting your head with something, you might want to step away from it and see if there’s another tool. If I had to look at it before, I wouldn’t have spent a year learning PHP in my SQL because I had already come from WordPress. I would’ve just skipped it over.

David M: After sticking with One Month Rails, I just stuck with it. From there, I kept learning and building on it until I got better and better at it. I would say stick with whatever the problem is that you’re trying to solve it don’t spend too much trying to get the universe to fit you.

Arsalan: I think that there are two different considerations. One is that you are doing a job right now and somebody is paying you to do work for them, maybe some programming. Now, a programming language is being used. If you’re in a.net job you’re probably using something like C sharp or VB.net. That’s pretty much guaranteed. From your point of view, you’re learning and you could go ahead and learn the advanced features that you’re required to learn anyway. Or you could say that this is great, and you’re learning all this here, but this is all one-dimensional. Maybe you need something that is multi-functional. So, one thing is directly related to your job performance while the other is more of a personal interest. Where do you see these things?

David M: I would say this. Ultimately, at the end of the day, we all want to do this. This is the craft that we’ve chosen. In my instance, we built our application around Ruby on Rails. Everyone that is coming along on it also has to figure it out and learn it. We build docs around it. That’s my job. I’m in it, and that’s her application. Now, in the future, somebody might ask why we didn’t do it in Middleman or Jekyll and just build on top of it. And you can show proof that it’s going to save X dollars and your time and it’s going to be more user-friendly. Then make that recommendation and lead, and pitch it to your employer. But ultimately, it’s got to sell itself and the boss has to say “Yes, I get it. So let’s do it.”

Reuven: Yes, I remember very well. When I was in college, we were brainwashed into thinking that LISP was the best programming language ever, which by the way it is.

Arsalan: It’s great.

Reuven: Oh, it is, and then you get out into the real world and realize there aren’t that many jobs for LISP programmers. Nowadays you could argue that there are some for Clojure, but back then, forget it. So, there I was at my first job at HP and I started suggesting that we use this technology or that technology and I can only imagine myself now in my manager’s shoes because he was like “yes, that’s very nice, but no. We have invested a lot of money into people using C++. We will be using C++.”

Reuven: That was very frustrating for me because I was really interested in using other languages. At the time I had started using Perl quite a bit. This was back in 1992. So, I worked on my Perl on nights and weekends. Then an opportunity at work came up where we needed a staff directory. They distributed the staff directory to everyone in text format and I decided that I would make it available to everyone via a command line program that they could just run and parse through it. I wrote it and put it in Perl and people were really happy. So did I influence the product or the overall group or the direction of the entire company? Not on your life, but I did find a way of learning things myself, advancing my knowledge, and solving real-world problems.

Arsalan: so, here’s the problem. When I’m a new developer, I’m new and I’m not so confident. I don’t know what language to pick. I don’t know what I should be doing with myself. That’s the problem for a new developer. So, you guys have done different things. Based on your experience, do you think that Python is a good language for new people?

Reuven: I have been telling people for years that if you’re an adult and you want to learn programming learn Python and then learn other languages. Part of the reason for the language’s popularity is because it is consistent. They are big on those surprises. The syntax is not surprising. What you see is what you get. Part of the reason why it’s so much fun to program in Ruby is because the language has so much magic in it, especially if you’re using something like Rails. So, you can try something and it’s like “wow that worked exactly like I would have expected.” But, it works how you would expect it after you’ve worked with it for a while.

Reuven: Python is almost like executable pseudocode and yet it handles a lot of the paradigms that you want. It’s object oriented and it has functional stuff in there, and it has a huge community and tons of resources. So, I think that Python is a great language to start programming it. That said, I was sort of disappointed when I found that MIT, the place where I went to school, changed away from LISP to teach Python as the first language. The thing is, if you’re teaching and a university environment, you want to get people thinking in certain ways. There are certain kinds of thought that Python doesn’t express as well as LISP would.

Arsalan: Are you saying their primary language as a course or class that they use Python for that?

Reuven: It’s now used by about 80% of American universities. That’s the most recent number that I’ve seen as the intro programming course. So I’m typically working with people who generally program in C, C++, C sharp, and Java. They are like “what is this toy language and why am I being forced to learn it?” So, I tried to explain to them that it’s not a toy language even though it looks like it. Secondly, it’s not going away. So, you can now and will in the future be able to get great jobs using Python.

Reuven: So it has the sweet spot of being easy to learn, having a large community, and a good future. That’s rare in a language. JavaScript is kind of all that except for being easy to learn. It’s gotten better with ES6, but it’s still frustrating for many people to learn because it has so many idiosyncrasies. Ruby, which I love, you really have to be able to understand the modular project model to be able to work in it well. That’s a steep learning curve for many people that I found.

Arsalan: Yes, I found Ruby to be a very mind bending, twisty kind of language. The more in-depth I try to learn it and the more I try to understand how Ruby is built behind the scenes, I would pick up a book and read a couple of pages and then sit back and let it settle in. It’s never been like this and other programming languages for me. It has always been fun, but Ruby has been pretty intense. Now, a lot of people who work in Ruby on Rails don’t get to that complexity because they are doing the simple Rails on API. Rails makes Ruby look easy, but Ruby is pretty complicated deep down, and you can get it wrong.

Arsalan: So, let’s get back to Python. I don’t know very much about the Python ecosystem. Give us a little bit of an overview of where you can find a job in Python and what types of things you can do with Python. I know that you can do pretty much everything with Python, but what is it known for?

Reuven: My background is doing web development. So, I was convinced that everyone that comes to my training programs in Python would be web developers or aspiring web developers because that’s what I do and clearly that’s what everyone else does. There’s certainly plenty of frameworks, the most popular being Django and Flask are doing web development and Python.

Reuven: But, it turns out, that a small minority of the people who come to my training are actually using Python for web development. A huge number of them are doing it for test automation. So, these big companies like Cisco and Apple and HP who hired me to come in and do training, the people who are coming to the training aren’t software developers, but are doing testing. There setting up to ensure that they can automatically test all the new stuff that their company is doing. Another group of people that is growing in number is data scientists. Python is probably the number one or number two language behind R. It’s almost like a fight or a death match between R and Python for which language will be more popular among data scientists. So if you do analysis, machine learning, or all of that other stuff, Python has a huge amount of stuff going on.

Reuven: There’s also a fourth area to some degree, which is system administrators who want to level up from doing UNIX shell script and do things that are more sophisticated or lean on libraries that do more for them. Or, they want their code to be organized in some coherent way. So all those kinds are very popular for Python and then there are all these weird little niches that I’m totally unfamiliar with. Just a few days ago, someone emailed me and said that they were using Python for Blender, the 3-D visualization system uses Python as a plug-in language. Who knew?

Arsalan: What do you think, David?

David M: I have to get going here, but I’d be happy to answer any final question.

Arsalan: Do you have any final thoughts on this topic?

David M: I can’t say that I been in the industry as long as Reuven, in terms of training and the specific language. I have attended some Python training classes here in Portland to the Portland Code Guild, which is what they specialize in. I really didn’t gravitate to it, to be honest with you. I don’t know if it was the community of the language. I gravitated more towards Ruby, mostly because most of my friends and family who have encouraged me to stay in software and keep building on it are in Ruby. Mexicanos are mostly loyal to each other and aren’t going to switch from Coke to Pepsi or that kind of thing.

David M: I have been very fortunate to get scholarships to RailsConf, Tuskegee Ruby, Ruby on Rails, and a number of different ones around the Ruby community. I think that I just gravitate to it more, but I agree a little bit with what Reuven is saying about how once you’ve mastered one, jump to another one and then I think it becomes easier. I started with Ruby on Rails. Once I mastered that, I zeroed in on how I could improve it. When I found out that you could improve your speed by using a static site generator page to do the exact same thing, then you could use Jekyll or Middleman or something else. Then, it becomes easier to do that because you’re already familiar with the basics. So, you get the technical mastery.

David M: You have to start somewhere. By siding with the one that gives you the path of least resistance for your learning and the one that is easiest for you to pick up, that’s the one you pick up, and that’s the one you run with. From there you can always jump to others.

Arsalan: Nice. I know that you have to go, but thanks for your input and will continue this discussion.

David M: Absolutely. Reuven cheers from Portland.

Reuven: What a pleasure talking with you again, Dave.

David M: Thank you, Sir. We’ll be in touch.

Arsalan: All right, Reuven. Now, it’s just you and me.

Reuven: So, now I can just win the argument by Fiat. That’s fantastic.

Arsalan: I think that there are lots of programming languages. Some people like Python. Some people like Ruby. Some people like Java because a lot of colleges back in the day used to teach Java as their first programming language. It could be C/C++. Actually, it could be any programming language. You’re not going to learn a programming language that will hurt your programming gene or your programming ability. It all adds up.

Reuven: I think that there’s an advantage if your first language is a dynamic one rather than a statically compiled one. It’s almost like “why are you learning to program?” If the point of programming is to just turn out big programs that you can then use at work, that may well be a better choice to do a statically compiled language.

Reuven: But, if your goal is to understand how to program language works and think like a programmer, then I think a dynamic language allows you to flow faster. It allows you to avoid much of the overhead that’s associated with the statically compiled language. It also allows you to focus in on what it means to program, what it means to develop code, what it means to worry about variable skill and functions, and what it means to program in object style versus function style. I think that’s easier and that sort of language.

Reuven: I totally agree with you when you mentioned that you then want to learn other languages. It’s not what should be your only language, but what should be your first language.

Arsalan: Yes, a programmer’s life is more like a journey. You always have to start somewhere and you don’t know where you need to go because you don’t know what you’re getting into. So, once you start working in a programming language, and in a programming environment, it includes your tools, your development environment, and perhaps your operating system. You’ll figure out what to work with and what works better for you.

Arsalan: It’s not just a personal thing, either. Perhaps you like to work with a Mac, but maybe you have this great job that uses .NET and you have to use Windows and learn to like it. You may carry over some of the things that you learn from another programming environment and programming language. Over time, you may see features migrating over from one programming language to another. So, it’s not clear where you need to be in the next 5 to 10 years. So whatever you can start with, you should just go ahead and do it.

Arsalan: I want to introduce David Gatti, who just joined us. It was great to learn about the Python ecosystem. I’ve been in the industry for a long time, but my impression with Python was that it was this very niche language that is very useful for a certain segment of the population. I didn’t know that it was widely popular. A lot of the tools and software that we use are plug-in systems or their extensibility mechanisms use Python. I think sublime text also uses Python.

Reuven: Yes, you’re right. I forgot about that.

Arsalan: So, that’s incredible. I never really put all this together and made this mental model of this amazing global programming language. Do you get this impression that its popularity and usage is growing a lot?

Reuven: It is hard to exaggerate the popularity growth that I’ve seen over the last few years. I see this as someone who does training. Companies are interested in teaching their programmer so that the companies will be more effective and efficient. Five or six years ago I was doing a Python class every month, two months, or three months. Now, I am solidly booked for 4 to 6 months in advance.

Reuven: If I could clone myself two or three times, I would still probably be able to fill up and it’s not just because I do a lot of training and in good at it, it’s because there’s insane demand. Individuals and companies are growing and adopting Python. Many companies are dumping proprietary language in favor of Python. It’s funny because I got into the whole training thing because I wanted to get off of Ruby training, and the demand just wasn’t there, at least in Israel.

David G: Can I ask one question?

Arsalan: Hi, David.

David G: Hey, hello guys. I wanted to know if you knew why people choose Python over other languages.

Reuven: Interesting question. I’d say that I have some good guesses and part of it is increasing returns. More generates more. So I think that a lot of people end up using it because their friends are using it. You see that with a lot of students as well.

David G: So, it’s evolved because of word-of-mouth?

Reuven: Yes, but you also have all these universities were students are learning Python as their first language. When they graduate, some of them decide they want to start a company or do some consulting and use their knowledge of the language that they’ve already learned.

David G: So, why do schools choose Python? Is it because that’s what they started with and they’re sticking with it? Or is it because it’s better in some things? Is it easy to learn or what’s the deal with it?

Reuven: I think a lot of the theory is that they wanted something that was easy to learn. They wanted something that the students could pick up quickly and then focus on the ideas of computer science and the ideas of computer programming, not the language specific issues that you would get with another language.

David G: So, how would you compare Python with JavaScript? Are they similar? Is one easier than the other?

Reuven: I think Python is easier to learn because the syntax is more consistent. JavaScript executes way faster. JavaScript has a huge advantage that it is everywhere in the world and in everyone’s browser. So, that magic feeling you get when you’re developing, of being able to see the results right away if you’re developing in JavaScript, you cannot get in Python as much because it’s not as immediate.

David G: Right, that’s the thing that makes me wonder what the deal is because, on one side, it seems like JavaScript is the language to learn, but then I see way more Python developers.

 

Important Links

  • Operation Code
  • One Month Rails

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. 

https://media.blubrry.com/mentoringdevelopers/content.blubrry.com/mentoringdevelopers/MD-episode36-panel-programming_languages-part2.mp3
Subscribe To Mentoring Developers Podcast
Subscribe via Stitcher

We Be Tweeterin’

What do employees actually want from their employers? For the best advice, check out a short video on how to keep your employees motivated? The link is down below👇 youtu.be/XftmqjoKejE pic.twitter.com/1LgOxyJEfX

About 2 days ago from Mentoring Developers's Twitter · reply · retweet · favorite

Have you ever thought about joining a software development community? Not sure? Click on the link below👇 youtu.be/L7r1q72Lti0 pic.twitter.com/xRB6K5DmaH

Last week from Mentoring Developers's Twitter · reply · retweet · favorite

What skills combination can make you a valuable employee as a budding software developer? David breaks it down for us in this short video. Click on the link below👇 youtu.be/LDngNkn2Lqo

About 2 weeks ago from Mentoring Developers's Twitter · reply · retweet · favorite

Do you know what are API and AJAX? David Ihnen breaks it down for us in a short video. Click on the link below👇 youtu.be/pcjeONtzMD8 pic.twitter.com/6tXPfTTohl

About 3 weeks ago from Mentoring Developers's Twitter · reply · retweet · favorite

Are you worried about your software development career? Apprentices Kasey and Divya talk to Arsalan about their software development career and give advice to new software developers. Click the link below youtube.com/watch?v=D7wEgF…

About a month ago from Mentoring Developers's Twitter · reply · retweet · favorite

Follow @mentoringdevs

Search

Copyright © 2022 · Mentoring Developers