If you're serious about becoming a developer, you should consider getting an internship. Today I'll give you three tips on choosing an internship. Along with three tips on getting the most out of that internship, and discuss the importance of code reviews.
Today's episode is sponsored by Raygun.io. Raygun automatically detects and diagnoses errors and crashes in your software applications and notifies you of issues that are affecting your end users. Raygun supports all major web and mobile programming languages, you can get started FREE today.
Transcript (Generated by OpenAI Whisper)
Hey everyone and welcome to Developer Tea my name is Jonathan Cutrell and today I'm going to be giving you some suggestions for getting the most out of an internship. If you're serious about becoming a developer as your trade, as your life's vocation, then at some point you should probably consider getting an internship. This is similar to an apprenticeship and basically what an internship is is a bridge between the process of learning and the process of production. So we often go to school and focus solely on learning for a significant portion of our lives and then suddenly we are thrown into the workforce and we're kind of expected to learn on the job. And an internship allows you to learn on the job before your only requirement is production. Typically an internship is lower pay but it also gives you more space to mess up. It gives you more space to write code slowly and to ask far more questions than you would as a junior level developer or especially as a senior level developer. An internship gives you the opportunity to make mistakes without seeing a lot of negative ramifications. So in that way it provides you the ability to take the things that you have been learning and actually put them in real projects put them in for example if you're going to have an internship at an agency you'd put it into a client project put your work into a real paying, paying project. So what is a good internship? We've talked about what an internship is by definition but how do you find an internship that is worth actually taking? Well first I'm going to give you three tips for how to choose an internship and then I'm going to give you three more tips for how to get the most out of that internship. Being an intern is not about doing the work that no one else wants to do. It's about transitioning from the academic theoretical world into the practical application world. So when you're choosing an internship you should choose one that is focused on providing you with the space you need to learn how to smoothly transition from theory to practice. In other words if you are trying to enter an internship that is expecting you to produce at the level that a junior level developer is producing that probably isn't a very good internship. They aren't going to provide you with the information and the space to learn what you need to learn to transition out of theory and into the practical world. Secondly you should choose an internship where you will be in contact with people who already know some of the things that you want to learn. The idea here is that as an apprentice you will be gaining knowledge and wisdom from people that you are learning from from the people who are kind of overseeing your apprenticeship or your internship. So being around the right people is going to be essential to that learning process. Third, I recommend choosing an internship that pays you per hour. And the reason for this is simple. I believe that work is something that should be compensated. And if you are working as an intern for me at my company, I certainly won't compensate you at the same level that I compensate a senior developer. But that doesn't mean that what you are doing isn't also providing value to me. Furthermore, the best internships are those where you are working with someone who is willing to invest in you. If a company is willing to invest money into your internship, they are also going to be more likely willing to invest time to help you transition from the academic theoretical world to the practicing production world. I'm going to take a quick sponsor break. And then I'm going to come back and give you three tips for how to get the most out of the internship. Now that you have chosen the internship that you want to go and participate in, these next three tips are going to help you get the most out of that internship. Today's episode is sponsored by Reagan. If you're wanting to detect and diagnose errors and crashes in your software applications and even find problems that you didn't know existed to improve your software, I highly recommend trying out Reagan.io. Reagan is one of the very first gyms I add to my gym file. I'm pretty much every new Rails project I create. But it's not just limited to Rails projects. Reagan works with all major web and mobile programming languages and platforms. And you can set it up with a few lines of code and there's a free 30 day trial. An essential tool for every software developer Reagan covers mobile and web development and is used by some of the world's largest brands and software development companies. It really does only take a few moments to get started and find errors you didn't even know were present in your code. Reagan works with things like Slack to make sure your team gets updates when and where they are already working. Catching errors early means improving the overall quality of your software and keeping your users happy. And there's a free trial so no excuses. Go sign up today at Reagan.io. King about how to choose the right internship. Now I'm going to give you three tips for how to get the most out of your internship. The first one is ask for code reviews. This might already be something that the place you are doing an internship at already does. You might not have to ask for them. But asking for code reviews, first of all, shows your interest in becoming a better programmer and that communicates to whoever you are learning from that you are interested in getting some of the knowledge that they have and learning from it and actually implementing their knowledge in your code. So ask for code reviews. These are proven to work. I'll include a link in the show notes to a blog by Jeff Atwood. He talks about how code review is actually proven to make your code better. So that is the first tip. Ask for code reviews. The second tip is ask to iterate and refactor the code that you are writing. In other words, don't just move on from the code when it has solved the minimum problem or it has fixed a particular bug. Instead ask to reiterate over that code, especially if you found something in the code review that would point to a potential refactoring opportunity. Ask to iterate over that code and refactor it to make it better. This is a fundamental part of being a good programmer, being able to iterate on your code and being able to refactor it using whatever patterns that you've, whether it's a gang of four pattern or maybe you just need to clean up some syntax or variable naming or even just style problems with your code. Ask to iterate and refactor. And the reason for this is because you are going to need to do this on the job. Make programmers become great by refactoring not because they can write great code from the outset, but instead because they know how to refactor their code to be great later. So make sure you're asking to refactor and iterate. Finally, ask a lot of questions. Ask a lot of questions. And this is true for all programmers, not just interns. Ask a lot of questions. Why do you need to ask a lot of questions? Well, because curiosity is a fundamental skill for developers as well. If you are asking questions, it's very likely that you are not learning as much as you could be learning. And that is the point of an internship. Once again, the point of an internship is to learn from the people that you are around during that internship. It is like an apprenticeship. You have somebody who is teaching you in the ways of producing as a developer. So ask a lot of questions. And whether or not you're asking those questions directly, or if you are simply being curious by standing and watching over someone's shoulder, you should be asking questions about how to do things in this field. And that seems obvious, but the truth of the matter is this takes some energy and it takes some effort. You have to tell yourself that it is okay to ask questions. Sometimes it is okay to admit that you don't know how to do something. For example, we easily take for granted that people know how to use Git. And if you come to work at Whiteboard, we kind of assume that you know how to use Git. This isn't true for everyone though. And it's quite often because we use Git every single day, that is where a lot of problems occur, especially if whoever that person is is not familiar with Git. So if you don't know how to use something, go ahead and ask. Even if it seems like you should already know how to use it, or even if it seems like you should already know an acronym that somebody is using in the office, for example, if you don't know it, ask. It's the best way to learn and it is a completely normal part of the process of being an apprentice or being an intern. Thank you so much for listening to this episode of Developer Tea. Remember to choose an internship that is focused on providing you with the space you need to learn, how to smoothly transition from theory to practice. Focus on finding an internship that has people at the place that you are interning, that you want to be around and that you want to learn from, and choose an internship that pays you per hour. And once you've chosen your internship, ask for code reviews, ask to iterate and refactor the code that you're writing. And finally, ask a lot of questions, constantly be curious. Thank you so much again for listening to Developer Tea. I hope that you've enjoyed this episode and I hope that if you are looking for an internship that this kind of gives you a framework for looking for that internship and some ideas of how to approach that process. And if you're currently an intern, I hope that this episode has given you an idea of how you should approach your internship on a day-to-day basis. Thank you for listening. You can always reach out and ask questions at at Developer Teaon Twitter or you can email me at Developer Tea at gmail.com. Of course, as always, notes for this episode can be found at developertea.com. Thanks so much for listening and until next time, enjoy your tea.