Listener Question: Dhruv Asks, "What should a beginner like me work on?"
Published 8/7/2015
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.
Shout out to our new network, Spec.FM and affiliate podcast, Design Details. If you what to learn more about the design and development community, definitely check that out.
Additional Resources Mentioned
- Ted Talk, Start with Why by Simon Sinek and his book
- How to win friends and influence people: book
- Khan Academy
- John Sonmez Interview
Special thanks to today's sponsor: Harvest
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.
Try it out free for 30 days at getharvest.com. After your trial, enter code TEATIME at checkout to save 50% off your first month.
Thanks for listening, and until next time,
Enjoy your tea.
Transcript (Generated by OpenAI Whisper)
Hey everyone and welcome to Developer Team. My name is Jonathan Cottrell and today I'm going to be answering a listener question from Dhruv. Dhruv wrote in and asked about everything but code. Dhruv 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 Dhruv, thank you for writing in. I really appreciate each and every question that I receive on the Developer Team website. That's developerteam.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 you're going to be asking me a lot of questions about code. So I'm going to be asking you a lot of questions about code. So I'm going to be asking you a lot of questions about code. So I'm going to be asking you a lot of questions about code. So I'm going to be asking you a lot of questions 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 T 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 saying good code. 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 in. So I'm going to lump testing in. 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. I'm going to talk about testing. I'm going to talk about testing. 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 to 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 a platform. And in order to get to that place, she needs a platform. And in order to get to that place, she needs a platform. And in order to get to that place, she needs a 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 the process of performing on demand. And I'm going to Now, 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 minute for a sponsor break, but then I'm going to come back and 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. Those 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. You can start a timer directly from your issues in Trello or GitHub or Jira. You don't have to search for your time sheet. There's an official Chrome browser extension that'll 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. And Harvest, of course, integrates with PayPal and Stripe. Normally, they have a 30-day free trial at getharvest.com. But after your trial, if you enter the code T-TIME, that's T-E-A-T-I-M-E, you can save 50% off your first month. So go to getharvest.com and use the code T-TIME to save 50% off your first month. Thanks again to Harvest. I've been answering listener Dhruv's question today about what other things he needs to be focusing on. And I think that's a great question. So I'm going to go ahead and answer that. Other than simply learning how to code, become a great coder. And I'm going to give you guys a list of these things. But first, Dhruv also asked how I started out as a beginner. And I'm going to give you guys kind of 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 considered going into music. And I think that's a great question. And I think that's a great question. And so I learned how to play music and I wanted a way of sharing my music online. And so I started to learn a little bit about web design and about photography in order to create an online portfolio. And I got really interested in the web design process. And so I started self-teaching web design when I was pursuing a music degree. And 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. And because I used enough front-end knowledge to create that portfolio, I went into my first internship interview and they told me that I was going to be a front-end developer. And I said, well, I'm going to be a front-end developer. And 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 the code as a tool in order to accomplish other things. And so I was able 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 is? And I think that's a lot of 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 is it that you're making? The 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 doing this? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? Why am I choosing to spend my time in this particular way? 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 in being able to write well, it all comes through practice. It takes practice over and over and over, writing over and over and over. And 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'd 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. And so having the skill of presenting a message to your boss is a key to success. 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 John Sonmez. It's a Developer Tea episode, and John 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. And that is a great way to learn how to write. 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. They're not going to be able to 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, all of the 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. Dhruv, thank you so much for writing in. If you, other listeners of Developer Tea, have any questions for me, please send them in to developertea 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 this show, a review in iTunes. This is the easiest way to help Developer Tea become 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, if you want to listen to more of our podcasts, you can do that 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. Those guys, they go and interview the people who create the products, and they're going to be the ones that are going to be the ones that are going to be the 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 Developer Tea, 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 a 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 teatime for 50% off your first month. Thanks again to Harvest, and thank you for listening to today's episode. Until next time, enjoy your tea. Bye.