Hello everyone. I'm Declan McClintock, and today I'm talking about how to get better at what you do. The first thing I want to talk about is what to do when running into a problem. The obvious first step is to try and solve the problem yourself. You should do this until you get stuck. Sometimes, realizing when you're stuck is the difficult part of the step. Once you have realized you're stuck though, you have some avenues for help. The first place to look for help is actually just you again. But you need to verbalize your problem so you can explain your problem to a duck. This is the idea behind rubber duck debugging where a programmer will talk to a duck about their code and in talking through their code out loud, they realize what is wrong with it. The same principle applies to other problems. The second step is to talk through your problem out loud with yourself. If talking about your problem out loud does not bring you to a solution, your next step is searching through non-person resources for an answer. At least in the realm of programming problems, which is primarily what I deal with, this is the step where I find solutions the most. There are lots of posts online covering common programming problems and I'm sure the same is true for common problems in other fields. But if a problem is less common, it may be difficult to find anything about it in a book or online. The next thing you should do is ask a friend or a co-worker that you think might have solved the problem before. The reason I suggest asking other people after trying rubber duck debugging and trying to find explanations online is because doing those steps first helps in learning, at least in my own experience. A friend might know the answer to your problem, but even if they walk you through how to get to the answer, you are less likely to remember the process than if you had found and gone through the process on your own. Another reason to ask a friend here and not earlier, is that some people might become frustrated if they know the problem is common and is easy to find a solution to in those non-human resources. If you have asked your friends and they do not know anything, then you should seek out someone who is a professional in the field relevant to your problem. This step applies well to people in college who have professionals around giving their time to answer questions and help with students' problems. But even if you don't have these connections already, it certainly doesn't hurt to try reaching out. I found that people in general are very generous with their time and even if they don't take the time to walk you through an answer, they will usually take the time to point you towards somewhere helpful. But what if you have gotten to this point and have tried talking out the problem to yourself, looking it up online, asking your friends, and asking professionals, but you still can't solve the problem? What do you do now? Do you cry? Maybe for a little bit, but no. You go back to solving the problem yourself. You could be dealing with a novel problem that no one else has figured out yet, which can be exciting. Reaching this point in problem-solving is really where you get to apply yourself and your own knowledge to the fullest. That was a quick rundown of how to deal with the problem. My next piece of advice is an obvious one and one most people in any field will tell you. The more you do something, the better you will be at it. One of the best ways to get better at what you do is to just do a lot of it. Practice makes perfect is the cliche but I think practice approaches perfection is very apt. The better you get at what you do, the more your idea of perfection is going to change, the higher the bar is going to be. But when you look back, you'll see you have improved a great deal. Beyond just doing a lot, I think it is generally a good idea to diversify what you're doing, at least within your field. The reason I suggest doing this is because it broadens your knowledge and provides you with a better base to build on for future knowledge. Using programming as an example, if you write both character controllers and inventory systems, you will have a perspective that allows you to see how the two are similar or might interact. The more diverse problems you solve, the better you become at dealing with all problems. One particularly good way to get better at something is to teach it. The reason for this is that in making teaching materials, preparing your thoughts, and expressing those thoughts, you get to go over, expand on and question what you already know. A particularly good test is finding someone who knows nothing or has very little knowledge about what you do and trying to bring them up to your level of understanding. This forces you to go back to the basics and start there since the other person should have no knowledge base to put your more advanced knowledge on. It also puts into perspective just how much you do know which you might be surprised by. This next suggestion probably sounds obvious, but it's very useful. Surrounding yourself with encouragement and constructive criticism is great because encouragement will motivate you and constructive criticism will give you a direction to go in. You want people around you who are going to encourage you in what you are trying to do. That said, you can't really control who is around you or what people say. What I try to do is put weight towards enough criticism to help me approve and towards enough encouragement to make me want to. Also, I try to ignore purely negative feedback, which is feedback that doesn't seem to have a clear reason or way to improve given. An example of this would be someone saying this program is bad, without expanding on why it is bad even when asked to give a reason. Usually though, people giving you feedback, want to tell you what they think and how you might improve. Which leads me to my next point, which is pronoia. Pronoia is the opposite of paranoia. It's useful to assume everyone is out to help you. Because typically people are willing to help and at least for me, I tend to falsely assume people don't want to answer my questions. Getting myself to assume people want to help me has stopped me from getting stuck because I'm scared of asking questions. After having many students, I know this is a common issue, so have a little pronoia, most people will want to help you. This next bit of advice, I think is particularly important and gets overlooked, especially in today's culture. You need to be taking care of yourself. Taking care of yourself sets you up for success by eliminating things that might get in the way. Make sure you are eating. No one performs well on a task while they are hungry, except maybe speed eating. Make sure you get enough sleep. Your brain functions much better with the appropriate amount of sleep. Make sure you are exercising and taking care of your physical health. Interestingly, exercise is also good for your brain. Make sure you're taking care of your mental health as well. Your brain controls your actions and behavior, so it is very important that you take care of it. Relatedly, you should make sure you take time to have fun. You shouldn't slack off. But a happy you is more capable than an unhappy you. Next, keep tabs on your own progress. Keep a journal of what you are doing each day. Be mindful about what you choose to do and try to recognize why you do certain things. The more you do this, the easier it becomes to make yourself make progress. It is easier to avoid distractions when you realize you are distracted. In a way, you need to be your own manager. Be sure to take time to do review of your notes and work. I myself slack a little on this one, but it is still useful to do and a good habit if you can get into it. Take time every day to go back over your notes from class or anywhere, this will help you remember the topics in them. You should do the same for your work on projects. The only review of your work should not be the postmortem. You can be critical of your work during the project as well, doing this will allow you to improve much faster. My next piece of advice is to observe others. Watching other people work can give you insights. Ask them why they do things a certain way so you can understand their workflow. Then listen to many voices in pool their experience together to help you improve. You can also analyze the work of others to benefit your own learning. If you take the time to pick a part a good game, or one similar to what you want to make. You will raise important questions such as, why is something done this way and not this way? Is there a better way to do it? If this works in this game, will it work in ours? How can we reproduce the same systems? How can we reproduce the same feel? Doing this for several games gives you more information to work with. I should note also that you should observe bad games for what not to do. If you are an artist, I'd recommend observing other artists work and their styles. Programmers should be looking through code if possible. Since most code isn't widely available, the best thing is to try and reproduce a game systems on your own to get an idea of how it is done. UI Designers should be looking at many games UIs and navigating them as well to know how they flow and Level Designers should be picking apart levels. Now I want to talk about having a growth mindset versus a performance mindset and when to use each. A performance mindset is when your entire focus is on performing your best on a given task. This is at the expense of thinking about how you could improve. You should be employing this mindset during things like finals, tests and quizzes. It can be detrimental to stay in this mindset during a long project. It keeps you from looking for new approaches to a problem and it's slows the advancement of your understanding. A growth mindset, however, is when you are focused more on learning and improving your skills. You're typically in this mindset when you are listening to a lecture or watching tutorials. During a long project, you should be in this mindset probably more than half of the time. You are of course going to need to go between the two. I think that early on in a project, you should be in a growth mindset. Near due dates, especially the final one, you should be in a performance mindset. Then after big milestones, you should be in a growth mindset. This will let you learn more and perform better on these long projects. You should also try to be mindful of which state you're in at any time as it will affect your decision-making. That's all the advice I have for getting better at what you do. Hopefully, you can find some ways to apply this advice as you continue learning.