WEBVTT 0 00:00.310 --> 00:01.080 All right guys. 1 00:01.090 --> 00:03.180 It's Angela from The App Brewery again. 2 00:03.180 --> 00:09.510 So at this stage I'm presuming that you've probably at some point in your life done a tutorial or a 3 00:09.510 --> 00:16.470 lesson somewhere else out there on the Internet and inevitably at some point you'll probably get stuck 4 00:16.530 --> 00:17.460 on a problem. 5 00:17.460 --> 00:22.890 Now I spend a lot of time thinking about how I can make the course such that you get stuck less often 6 00:23.070 --> 00:28.170 but with programming it’s almost a core part of the learning process that you do get stuck and you get 7 00:28.170 --> 00:29.540 yourself unstuck. 8 00:29.550 --> 00:34.710 So I tend to find that when I get stuck on something I try to see it as a challenge because usually 9 00:34.710 --> 00:40.800 when I solve it and when I figure it out there is a huge sense of satisfaction and there's usually some 10 00:40.800 --> 00:42.900 associated growth. 11 00:42.900 --> 00:49.530 Now having taught over 100000 students online and offline I've seen people struggle in lots of different 12 00:49.530 --> 00:50.120 ways. 13 00:50.220 --> 00:55.740 And I just wanted to summarize the steps that you can go through when you get stuck on any sort of programming 14 00:55.740 --> 01:01.090 problem and the framework that you can use to get yourself unstuck in the quickest way possible. 15 01:01.110 --> 01:07.420 Now the first step is to evaluate what is the expectation versus what is the reality. 16 01:07.440 --> 01:14.120 What did you expect your code to do or what did you expect to happen and what actually happened. 17 01:14.130 --> 01:16.310 So every time you run your code, 18 01:16.470 --> 01:22.860 think to yourself what do I expect to happen and then see what really happened and try to figure out 19 01:22.980 --> 01:24.910 what is causing the difference. 20 01:24.920 --> 01:30.870 Now while you're writing code it's inevitable that you will end up creating errors. And this can happen 21 01:30.870 --> 01:35.790 when you've made a mistake or spelled something wrong or even when you're just trying to install a piece 22 01:35.790 --> 01:42.270 of software. And those errors are usually accompanied by bits of text or the error message. And you can 23 01:42.270 --> 01:45.170 see this in your browser or in your code editor. 24 01:45.390 --> 01:50.450 And most of the time it might seem like these error messages are written by aliens because they don't 25 01:50.460 --> 01:51.820 seem to make any sense. 26 01:51.960 --> 01:59.190 But you can quite easily figure out the human meaning in English for it by just putting it into Google 27 01:59.490 --> 02:05.310 and you'll usually get lots of different answers as to what the cause might be and how you can fix the 28 02:05.310 --> 02:06.060 problem. 29 02:06.090 --> 02:11.190 And one of the web sites, if you don't already know about it, it's going to shortly become your very best 30 02:11.190 --> 02:13.900 friend, and that is stackoverflow.com. 31 02:13.950 --> 02:19.620 So I recommend searching for any errors that you come across into Google and then heading towards the 32 02:19.620 --> 02:22.530 Stack Overflow web sites that come up as a result. 33 02:22.560 --> 02:26.450 And this is exactly what real life developers do every single day. 34 02:26.610 --> 02:32.820 And in fact I've worked in teams where we will all just go to the pub and have a drink and end the day 35 02:32.910 --> 02:35.100 if Stack Overflow is no longer working. 36 02:35.100 --> 02:38.600 So it's all a part of the developer workflow. 37 02:38.610 --> 02:44.970 Now if that still doesn't help, or you’re confused by the results that you're getting back, then it's a good 38 02:44.970 --> 02:51.750 idea to re-watch some of the video up to the point when the code started breaking or it started doing 39 02:51.750 --> 02:58.200 something unexpected, because in the videos there are always step by step instructions and it's really 40 02:58.200 --> 03:04.010 important that you check to make sure that you haven't made a typo here or there or you haven't capitalized 41 03:04.010 --> 03:09.240 something that shouldn't be capitalized and just re-watch the video right before when your code broke 42 03:09.420 --> 03:11.960 in order to try and figure out what might have gone wrong. 43 03:11.970 --> 03:19.200 Now the next step is you can check your code against my code. At the end of every tutorial module, 44 03:19.200 --> 03:26.610 there is a completed project that you can download, and you can scroll through the completed code, compare 45 03:26.610 --> 03:33.450 it to your own, and see if there were any typos, any errors, any mistakes, and if it helps you can even 46 03:33.450 --> 03:39.810 copy and paste sections from the completed code into your own module just to see if that line or that 47 03:39.810 --> 03:42.530 paragraph helped to fix the issue. 48 03:42.660 --> 03:47.190 And if that still doesn't solve it then the next step is head towards the Q & A. 49 03:47.610 --> 03:55.620 So, underneath every lesson there is a Q & A section, and it's a good idea to check in the lesson when 50 03:55.620 --> 04:03.060 your app has broken to see whether if anybody else had similar issues to you. And, if you can't find anybody 51 04:03.060 --> 04:10.260 with the same issues, then ask in the Q & A. But make sure that you ask your question in the lesson 52 04:10.500 --> 04:15.810 where you're having the issue. That way it makes it much easier for other students to be able to learn 53 04:15.810 --> 04:21.450 from your mistakes and also for me to be able to quickly identify what the problem might be. 54 04:21.450 --> 04:27.630 And if you have a question about anything in the tutorial it's a good idea just to include the timestamp 55 04:27.960 --> 04:33.810 at which it occurs in the video so I can quickly watch it and figure out what you're referring to so 56 04:33.810 --> 04:35.700 that I can better answer your questions. 57 04:35.700 --> 04:41.280 Now, when you are asking questions in the Q & A, the way to get the most helpful responses and solutions 58 04:41.490 --> 04:43.480 is by following a four step approach. 59 04:43.500 --> 04:47.190 So firstly, tell us, to myself and other students, 60 04:47.190 --> 04:49.570 what did you expect to happen, then 61 04:49.620 --> 04:57.060 what actually happened, and then include a screenshot of all of your code that corresponds to this situation, 62 04:57.360 --> 05:03.010 and then include a screenshot of the debug console that includes any errors, 63 05:03.010 --> 05:05.620 if there were any errors or if your app has crashed. 64 05:05.620 --> 05:11.290 Now, to take a screenshot of part of the screen in Windows, all you have to do is hold down the Windows 65 05:11.290 --> 05:17.320 key, Shift and S, and then you'll get these little crosshairs show up and you'll be able to take a section 66 05:17.350 --> 05:23.410 of your screen as a screenshot, and, once you let go of the mouse, it will save this to your clipboard ready 67 05:23.410 --> 05:26.710 to be pasted into Paint or any other application. 68 05:27.280 --> 05:33.040 If that doesn't work for you be sure to just Google how to take a screenshot of part of the screen and 69 05:33.040 --> 05:35.660 you'll see lots of videos that can help you with this as well. 70 05:35.680 --> 05:41.380 If you're using a Mac computer, on the other hand, this shortcut is gonna save you a lot of time, and it 71 05:41.380 --> 05:47.140 might be worth noting this down in your notebook. When you use Command, Shift and 4, you get this little 72 05:47.140 --> 05:53.350 crosshair that shows up and you can start clicking and dragging the area that you want to take a screenshot 73 05:53.350 --> 06:00.760 with and it will save it automatically to your desktop, which then you can upload into the Q & A area 74 06:00.790 --> 06:01.910 for the lecture. 75 06:01.910 --> 06:09.220 So that's just a brief step by step process on what to do and how to get help when you get stuck and 76 06:09.220 --> 06:12.610 it's important to remember that everybody gets stuck sometimes. 77 06:12.610 --> 06:19.060 I've spent days trying to find a bug in my code and it turns out to be just a comma that was misplaced 78 06:19.330 --> 06:26.170 or a semicolon that was accidentally deleted, and one of the greatest joys, for me anyways, is figuring 79 06:26.170 --> 06:32.980 out these problems and fixing them. So don't worry if you do get stuck. Everybody will try to help you. 80 06:33.100 --> 06:38.470 And just remember that getting stuck and solving it is all a part of the learning journey.