In today's episode I respond to a listener question that came in from Dhruv, who asks, "What should a beginner like me work on?" Aside from being a better coder, where should you expand your knowledge?
If you have a question that you'd like me to explore you can write to me via Twitter @developertea or through the Developer Tea contact form. Don't forget to leave a review on iTunes. If you love the show let me know and if you think there's an area we need to improve tell me that too.
Harvest is your time tracking tool built for understanding where your time is going. You can start a timer right from issues in JIRA or GitHub without searching for your timesheet, and turn that right around into a sharable invoice.
Enjoy your tea.
Transcript (Generated by OpenAI Whisper)
Hey everyone and welcome to Developer Tea. My name is Jonathan Cutrell and today I'm going to be answering a listener question from Druve. Druve wrote in and asked about everything, but code. Druve asks, what should a beginner like me work on other than learning to be a better coder? Should I work on documentation or testing or should I only stress writing good code for now? How did you go about it when you were a beginner? First of all Druve, thank you for writing in. I really appreciate each and every question that I receive on the Developer Tea website that's developertea.com, which by the way, that's where show notes for this episode and every other episode can be found. So what should you work on other than good code? And certainly good code is not the only thing you should be focusing on because it takes much more than good code to make a great programmer. We've been talking a little bit about what good code is recently on Developer Tea and we're going to continue talking about it so that we know what it means when we say good code, for example, clarity and following things like the solid principle, but there is far more to being a good programmer than just simply writing good code. Before we dive in, I do want to say that to write good code, I think testing is an essential part of that process. So don't skip out on testing. You certainly need to know how to test your code well in order to write good code in the first place. So you can't focus on testing without focusing on coding and you can't focus on coding without focusing on testing. So I'm going to lump testing into that category of coding. This is perhaps a controversial opinion, but I would also say that good documentation is necessary for your code to be good. Now, the reason that that might be controversial is because a lot of us like to think that good code documents itself, but the reality is that there is a lot to be said for good documentation as well. So I'm not going to talk about documentation or testing actually, Drew, I'm actually going to talk to you about some other skills that I think are absolutely essential for a programmer to be a great programmer. Now, frame the way that you're going to think about this idea. I want you to think about a great singer, a great vocalist. Does she only need the ability to sing well in order to be a great musical artist? Well, you may say yes to some degree that is true, but if that person only sings in the shower or if she only performs in a setting with her friends or maybe at a karaoke bar, it's very unlikely that she's ever going to be considered a great singer. And the main reason for that is because she needs a platform. She needs the proper place in order to practice her skills and in order to get to that place, she needs to build relationships around her. Not only that, but she also needs the ability to perform on demand, which means that she needs to be able to perform immediately at the drop of a hat. She needs to have the comfortability with her skill set to practice that skill set at any given point in time. This requires that she's healthy. This requires that she's rested. So there's all of these different parts and pieces that go into this person being a great musical performer. The same is true for programmers to be a great programmer or really to be a great anything. There is a lot more to it than the core skill. Now, I'm going to take a quick minutes for a sponsor break, but then I'm going to come back and you give you guys just a few, certainly not all, but a few of the things that you should be focusing on beyond being a great coder. There's extra things that support your ability to perform at the right time, at any given time in the right place. Thanks so much to today's sponsor, Harvest. Any good programmer knows that you need to know where your time is going in order to spend it well. Do you know how much time you're spending on every feature or tweak or bug fix for a client? Well, Harvest is a time tracking tool that will help you get a handle on that. It's built for understanding where your time is going and for developers, it takes the pain out of time tracking because you can start a timer directly from your issues in Trello or GitHub or Gira. You don't have to search for your time sheet. There's an official Chrome browser extension that will drop the timer directly into Trello or whatever you use. Not only will you understand how much time you're spending on client work, but you'll be able to turn your billable hours into an invoice from Harvest directly in just a few minutes. Harvest, of course, integrates with PayPal and Stripe, which makes it easy for you to get paid. Harvest, normally, they have a 30-day free trial at Githarvest.com, but after your trial, if you enter the code T-Time, that's TEA, TI, ME, you can save 50% off your first month. Go to Githarvest.com and use the code T-Time to save 50% off your first month. Thanks again to Harvest. I've been answering listener Drew's question today about what other things he needs to be focusing on other than simply learning how to code become a great coder. I'm going to give you guys a list of these things. But first, Drew also asked how I started out as a beginner. I'm going to give you guys a quick background story on me. I started out as a musician, actually. I wanted to, this is actually why I gave you guys the analogy to the singer. I play a few instruments, and I really consider going into music as a career. I learned how to play music, and I wanted a way of sharing my music online. I started to learn a little bit about web design and about photography in order to create an online portfolio. I got really interested in the web design process. So I started self-teaching web design when I was pursuing a music degree. I decided to change my degree to communications advertising. At the time, I thought I was going to become a web designer, not just a front end developer, but actually a designer spending most of my time in Photoshop. So long story short, I created my own portfolio. Because I used enough front end knowledge to create that portfolio, I went into my first internship interview. They told me that I was going to be a front end developer. That's how I became a front end developer. I went into my first internship interview, and somebody told me that that position fit me well. So perhaps the most interesting or important part of that story, as it relates to Drew's question about doing things other than code, is that my intention in this entire process was to learn code as a tool in order to accomplish other things. Instead of focusing on the code, I was actually just wanting to use that code in order to promote a platform in order to promote my musical talents or my musician profile, if you want to call it that. So that's my very first tip for you all, is to always keep your mind on the why, not just the what. In other words, why is it that you are creating this particular site, or this particular application, or algorithm? What is the purpose that that piece of code is trying to accomplish? This very simple question of why is often ignored, and it's the cause for a lot of pain for developers. The idea of over-engineering, if you don't understand the why of a given context, then you have a propensity, potentially a propensity to over-engineer the product that you're making, because you may have solved the why far before you feel like it is complete. The why will help you understand what the minimum viable product actually is. The why will also help you determine how to spend your time. What are the things that are most important for you to spend your time on? Sometimes the answer to why is I don't know. Sometimes the answer to why is because I'm very interested in this thing. Sometimes the answer to why is because it's fun. But never lose sight of the question why. That question will help guide what you do every single day, and ask that question for yourself, not just for your employer, but also for yourself. Why am I at this company? What is it that I'm doing in my life? Why am I choosing to be working for this company with the time that I have? As you ask this question over and over, remember that there are very few wrong answers. Even the answer I don't know is a valid answer to the question why. And the reason for that is because the answer may not always be apparent. Sometimes we have to explore to uncover the answer to the why. But if you never ask the question why, then you don't ever really put time into things intentionally. Instead, you're just kind of floating along and doing things accidentally because, well, you don't know because you've never asked yourself why am I doing this? Why am I choosing to spend my time in this particular way? Now, I have not read the book, but there is a book by a guy named Simon Sinek. He actually got very popular because of a TED talk that he did called Start with Why. So if you're interested in this concept of Start with Why and asking that question over and over in your life, you may want to check out the book. Again, I have not read it, so I can't recommend it necessarily, but it has been recommended by quite a few smart people. Obviously, it's a it's a high selling book and the TED talk is good. I really enjoyed the TED talk. So good check that out at the very least. We'll include a link to that in the show notes, of course. So I'm going to run through the rest of these relatively quickly because I think that first one is really the most important one that's starting with why and asking yourself why over and over. But there are a few more things that I think are important to focus on. The first one is is also very important, perhaps this second most important thing. And that is that relationships and learning how people think are the most common ways to advance your career. Having a relationship with someone is most often the way that you become hired or promoted. And the reasons for this are relatively clear. Most decisions are made not only based on the objective reasoning around a person's credentials or perhaps their skill set, but also the subject of reasoning around how well they deal with people. And if you know how to deal with people, then you're always going to have a leg up on your competition. So take some time to learn about how people think, how people work, how to make good relationships. There's a obviously canonical book at this point called How to Win Friends and Influence People. I'm certain that I've mentioned it on the show before, but if I haven't, check the show notes links. If I could summarize the book in one sentence, it would be very simply start caring about what other people care about as much or more than what you care about and start acting on behalf of other people. And this has to be genuine. You can't act on someone's behalf just to get them on your side. People can actually detect when you are faking it. So act on somebody else's behalf. Start caring about what other people care about. Show genuine interest in what they are doing. These are the easy ways to build relationships with the people around you, including people like your boss, including people like your co-workers. There's obviously a lot of information about relationships and relationship building and career building as it relates to relationships. So I'm not going to list all of the books and the podcasts and all of the other resources that are available for you. But just know that this idea of building relationships is incredibly important to your career and your advancement as well as your general happiness. Relationships are a kind of a building block of being a happy, healthy, successful person. Regardless of your profession, whether you're a programmer or not, relationships are always important. And they're important enough to invest some time in. They are important enough to invest time in. So if you have a couple of friends that you haven't hung out with in a while, it's probably worthwhile to hang out with those friends. It's probably worthwhile to do something extra for the people around you for those relationships in your life. So we've been talking about some pretty soft skills up until this point. I'm going to flip the switch on you. The next thing that you should focus on beyond just writing good code is math, just basic math, algebra and trigonometry. If you really want to get into it, maybe a little bit of calculus, but algebra and trigonometry, these things are going to come in handy all the time, even in basic programming, algebra and trigonometry. These things are constantly used in just about every kind of layout situation for UI. Good math skills are necessary for basic finance. All of the things that you're going to encounter that have anything to do with solving for a given variable are going to relate to algebra. So spend some time if you don't have strong math skills, spend some time learning math. I would recommend the Khan Academy courses for this. If it wasn't for Khan Academy, I most likely would not have come out of calculus with an A. So thank you, Khan Academy. A link to the specific math classes will be in the show notes as well. So spend some time, learn some math. Just do a couple of quick math problems that are really basic. I recently refreshed myself on some trigonometry. This kind of stuff comes in handy without you even realizing that it's going to come in handy. You knowing how to solve these kinds of problems that is a skill that you will use over and over and over and will never become useless. The next area that I think you should be focusing on is learning how to write very well. Now, I'm not talking about code. I'm talking about using language in an effective manner and a very easy way to do this. A very common way of practicing this is to write a 100 word blog post two or three times a week, even if you did it one time a week. This practices the skill of writing of communicating through the written word. This is another skill that will never become useless to you, investing time and being able to write well. It all comes through practice. It takes practice over and over and over, writing over and over and over. There are countless venues where this comes into play, whether you're writing an email to your boss asking him for a raise or perhaps you're writing a pitch to a potential client. Maybe you're writing to a colleague or a mentor and you want to explain a problem that you have that you like to fix. Being able to write well is an essential skill, especially in today's age where most of our communication happens through a written form or a typed form if you want to call it that, but through a form that is not face to face. A lot of our communication happens online in an email or on a website. So having the skill of presenting words in the written form is going to pay you back over and over and over. If you need a little bit of inspiration to start a blog, go and listen to the episode where I interviewed Jon Sommez. It's a Developer Tea episode and Jon and I talk about the importance of a brand, of a personal brand for developers. Go and check that out and hopefully you'll come out of the other side of that wanting to start a blog for yourself. That is a great way to learn how to write better. Lastly, you need to learn how to rest and how to recuperate. If we go back to our example of the singer who is always ready to sing at the drop of a hat, that person is only able to do that if they rest well. Now, if they are constantly singing and perhaps screaming their lungs out, then their voice is going to be shot all the time. They're never going to be able to actually sing well because they're too tired. Their voice is worn out. So take time and don't burn yourself out. If you burn yourself out over and over, then you're not going to be healthy. You're not going to know how to rest and you won't be able to perform at your best. Everyone needs rest. Take some time. Stop listening to this podcast and go and take a walk. It is so important that you learn how to rest. Get good sleep. All of the things that you already know, all of the basic common knowledge about resting. Don't try to hack your way around rest. Go ahead and take the time that is necessary for you to rest and recuperate. This resting is also absolutely necessary for the learning process as well. Your brain recategorizes information and puts it into long-term storage when you are resting, especially when you are sleeping. So make sure you're making time for rest. Drew, thank you so much for writing in. If you other listeners of Developer Teahave any questions for me, please send them in to Developer Tea at gmail.com. You can always fill out the form on developertea.com. And I will receive an email directly in my inbox. I read every single question and every single comment that I receive. And speaking of comments, I would very much appreciate if you are enjoying the show a review in iTunes. This is the easiest way to help Developer Teabecome more successful and to reach a bigger audience of developers just like you. Of course, once again, a link to leave a review in iTunes will be in the show notes on developertea.com. And those show notes are also available in pretty much any application that you listen to podcasts in. If you don't want to miss out on future episodes of Developer Tea, make sure you subscribe in whatever podcasting app that you do use. We're available on Stitcher. We have an RSS feed and of course on iTunes. Last but not least, I want to give a quick shout out once again to the brand new podcasting network that I started with the guys from Design Details. It's called spec.fm. Go and check it out spec.fm, exactly like it sounds. There are going to be other podcasts joining the network very soon. So you want to keep your eye out for that. Now go and check out Design Details as well, especially if you're interested in design. And those guys go and they go and interview the people who create the products that they love the most. You can find both of the shows. You can listen to them directly on spec.fm. So you can go there and completely skip developertea.com if you want. You can listen to Design Details and Developer Tea on spec.fm. Thanks again for listening to today's episode of DeveloperT. And thank you to Harvest. If you are like me and you have a difficult time tracking your time, Harvest makes that just a little bit easier. You can click a little timer from your Trello board or from your GitHub issue. Harvest knows how to track that issue and gives you a detailed report. It integrates with all your payment systems. Go check it out getharvest.com and make sure you use the coupon T-Time for 50% off your first month. Thanks again to Harvest. And thank you for listening to today's episode. And until next time, enjoy your tea.