Transcript for:
Cómo mejorar tus habilidades de programación

how do you practice programming so that you actually get good this video is going to give you a detailed guide on exactly what you need to focus on and resources you can use to improve your programming skills quickly it's great to follow along with courses or tutorials online but a lot of people get stuck in what I like to call tutorial hell that's because they don't know what to focus on and how to effectively practice and this video is going to help you escape that horrible place so with that said let's get into it let's begin with a few different goals that you should keep in mind when you are practicing your programming skills now the first thing you'll want to focus on is really mastering the synta tacts of a language once you get that down you're going to want to develop a bit of pattern recognition which means you've seen a lot of basic problems and you immediately know the way in which you should go about solving them after that you really want to focus on understanding the various tools you have available to you to solve different problems and then you're going to move into more advanced problem solving techniques so again syntax pattern recognition the tools that you have available to you and then really how to solve problems and the different approaches you can use to do that I'm going to talk about all of these more in depth in this video but those are the four different Milestones you're going to have and keep those in mind when you're practicing your programming skills if you get good at all of those different things you're quickly going to see your programming skills improve and you'll be able to solve a lot more complicated problems than you can right now with that said let's dive into syntax and talk about how to master that and what resources you can use to practice so when I talk about syntax what I'm really referring to here is getting really comfortable with the way in which you write code in a language so you don't need to constantly look up some of the more basic features a lot of beginners really struggle because they find it difficult to memorize the syntax of a language and they constantly need to go and look up how to use a for Loop or an if statement or a variable or whatever the feature may be now it's fine to go and reference resources but you want to get to a point where you do have these basic concepts memorized or at least you can use them very quick Qui L and you just need to do a really fast search to figure out what you need once you get to that point you'll see that it's a lot easier to move and solve more advanced problems and to progress as a programmer but if you never get to that stage you're constantly going to be stuck searching things looking them up and you're going to find it really difficult to advance so with that in mind how do you master the syntax of a language and how do you start memorizing those more basic concepts things like for Loops while Loops if statements variables Etc that you really just have them in the back of your head and you don't need to keep referencing material well the answer here is to really just put a ton of volume into your practice especially when you're just starting out now I understand it's really overwhelming to go and start solving problems immediately when you're just learning how to code so what I recommend is you start with the smallest problems you possibly can and you do things like multiple choice questions where the syntax is shown to you and you're selecting what the correct syntax is this way you don't need to memorize everything and be able to write it completely on your own but you can start to get really familiar with what certain code looks like and what the correct way of writing something is now that's right when you're starting out you want to be doing all kinds of multiple choice questions checking for understanding and making sure that again you get really comfortable reading code and seeing it and then you want to start moving into really really basic problems what I mean by basic problems is things that might take you a minute to solve or two minutes to solve where you're not writing tens or hundreds of lines of code maybe you're writing three lines of code or four lines of code again you want to start really really basic and work your way up now you may be asking yourself where do I get these type of problems how do I find them well there is all kinds of resources online and I'm going to share with you a few free ones here that are really really good that have these various types of exercises so on my list here I have free code Camp Le code code academy hacker Rank and Geeks for geeks now there's all kinds of other resources online and if you go through a really good course A lot of times they'll have these type of questions for example my course with course careers has multiple choice questions for pretty much every single lesson but regard list on these sites that I listed you'll get all types of different exercises at varying different difficulties now if you're looking at something like hacker rank or leak code there'll be a lot of really Advanced problems what I recommend is just stick with the easy or super easy problems that they have listed there these are good exercises when you're just getting started out and usually they only require a few lines of code to solve the problem and they also have an official solution so if you are stuck you can go reference and see exactly what they did to solve it and the type of syntax that they used now just as a note here when you do start to get better at programming what you're really going to realize is that each programming language is really just a tool that helps you to solve problems and within each language we have Frameworks libraries modules apis you name it which you can utilize to make some kind of project or again solve an overall problem now a really notable tool that you can take advantage of is Finance by providing Fair access to financial markets via modern apis for everyone not just the big players on Wall Street whether you're looking for stocks indices options Forex or crypto Market data polygon.com trading routines back testing data science apps or fully featured Financial displays they provide restful and websocket apis as well as entire sdks for popular programming languages like python go and JavaScript so that you can Access Financial Market data easily now the best part of polygon is that it doesn't use a middleman and it's actually connected directly to the exchanges this means you can rely on it for the most accurate and upto-date information polygon is completely democratizing access to this valuable financial data and allowing all of us to access it like we never could before you can get started for free from the link below and they provide great easy to follow along with tutorials and code samples to get you going and when you're ready to upgrade your plan you can use the code Tech with Tim 20 for 20% off any individual paid subscriptions so now that you've mastered the syntax it's time to start developing that pattern recognition and the only way to do that is by working on a ton of different problems now it's great to go through tutorials and to watch other people code you can learn a lot of valuable information but you need to spend most of your time practicing especially at this stage in attempting different problems and actually writing code the only way to learn and the only way to get good is to have your hand on the keyboard and to have that for hundreds upon hundreds of hours that's how anyone who's good at programming gets good is by actually writing code so I want to place a really strong emphasis on finding as many practice problems as you possibly can starting with the super easy basic ones and then slowly working your way up what's going to end up happening when you do hundreds upon hundreds of problems is you're going to start to get really familiar with the types of problems you're given and immediately have an idea of how to solve them this will mean that a problem that maybe took you 20 or 30 minutes to solve when you were just starting out you can do in 2 or 3 minutes because you already have a really clear idea of the type of solution to implement you still need to think you may still need to plan out the solution but you already know that you're immediately going to go with a for Loop and this is the type of way that you should write it once you develop that skill you'll start to get a lot more confident as a programmer and again you can move and work on more advanced projects and problems now how do you actually develop this skill as I said you need to do a ton of different problems and you can get those problems from the sites that I listed above another tip you can use is to utilize chat GPT to ask you specific problems and areas that you want to work on now I recommend focusing on functions storage and looping looping is probably the most important skill here because almost everything you do in programming involves some kind of iterations and it's a skill that a lot of people struggle with but then understanding how to separate your code into functions how to return values how to pass values to functions and then data storage what data structures should you use how do you access data how do you store it if you can get those main Concepts down you're going to have a really strong foundation and start to get good very quickly so once we're really comfortable writing code we know all the basics we've solved some easy and medium problems and they're becoming a lot simpler for us what we want to start doing is moving into more advanced features in a language and understanding all of the tools available to us to solve various problems now this is going to differ depending on the language that you're working in but if we take python for for example this is where you would want to start learning about something like objectoriented programming maybe you're going to learn about decorators generators more advanced features and all of the different tools you have at your disposal to solve various problems I'm going to walk you through how to learn these more advanced topics because it will be a little bit more challenging than some of the more basic concepts where it's more defined on how to practice them and how to actually Implement them so what I always like to do when I'm trying to learn a more advanced topic is start by just understanding a bit about it now this this will be me going to YouTube and watching maybe a 15minute tutorial or something from a credible expert where I can get a decent understanding of what this topic is or what the feature is but I know I'm not going to fully understand it yet I want to just understand a bit I want to get a little bit information on it and that'll give me enough guidance that I can then go and work on something more concrete and implement it on my own now what I'll typically do after I watch more of a theoretical video is I'll try to immediately wrap this into some kind of project I really like project based learning and this is typically how I do it or how I used to do it when I was just starting out I would find a really good project on YouTube that's taught by someone who's walking through it step by step rather than watching them code out the entire project I would pause the video at various points and try to solve small parts of the project on my own whether I fail or succeed at solving that I'm then going to watch the instructor go through and attempt it and I'm going to compare my solution to theirs this way I'm not just looking at what they're doing and copying it in my editor I'm thinking critically they're giving me a bit of help and tips on how to solve it but I am doing it by myself and then immediately getting feedback on that and seeing how I could do it differently compared to them you learn a lot this way and going through a project on YouTube maybe it's 45 minutes long it might take you one or two hours to actually get through that because you're pausing attempting going through it's kind of a whole day thing at least for me when I would work on those projects and gives me a bunch of small problems to practice that will eventually build this larger project after you do a few of those you'll start to really get a sense of how to build larger scale projects how to implement more of these Advanced features and then what you can start doing is looking at projects Maybe on YouTube or on any kind of site attempting them completely by yourself and then again referencing what someone who's more experienced has done eventually you'll get to the point where you just want to try your own projects where it's not actually something defined and that's where we'll move into the next section overall in this section though what you're really focusing on is being able to take a more abstract concept something that's theoretical and then bring that into a project it can be really difficult to do that when you're just starting out that's why I like to look at some kind of theory and then find some kind of project that fits that difficulty level that implements a feature like that that way I'm able to learn the theory implement it see how someone else is implemented it get that feedback and correct myself and then keep going and keep getting more and more in advance until I'm really comfortable with those new Advanced features another thing you can do here if you're willing to search through a few different code bases is actually go and read open source repositories if you want you can go look at open source python repository JavaScript whatever the language is just read through some of the code and see how people have done things and even though it'll be pretty complicated you'll be able to learn a lot just by reading other people's code so overall that's how I would practice these more advanced features again I know it's easier said than done but I'm trying to give you some ideas on ways that you can make things more challenging for yourself rather than just watching through something like a tutorial project you want to actually do it and make sure you're constantly thinking and and challenging yourself so now we reached the point where most likely you understand the syntax you know how to solve basic problems and you even understand some of the more advanced features and the tools that are available to you what you really need to get good at next is just figuring things out getting really good at problem solving and building the confidence to know that no matter what problem you're presented with you can solve it it's just a matter of how and how long it's going to take you the best programmers in the world are not necessarily just experts in a specific framework or language they're people that are really good at figuring things out they have that perseverance they know how to problem solve and they know how to break down a really daunting task into smaller subtasks they can tackle one at a time that's what you need to get good at here understanding how to take a big problem split it into smaller problems and then going out of your way to use the resources available to you to solve each of those problems figuring something out that you've never done before building a project that seemed impossible those are the type of Milestones you need to reach to really get good as a developer so how do you start mastering this skill well really the only thing that's important is that you work on something on your own and you struggle through working on it it's important that you have bugs that take you days to solve you have problems that seem impossible but eventually you persevere and you solve them the moments when I've learned the most and built my most confidence as a programmer is when I've had some challenge that seemed so incredibly difficult that I had no idea how to solve or some bug that took me hours or days to get through and eventually I found the solution those are the moments that you need to really get good as a programmer so how do you find those moments well I recommend starting by trying to clone existing applications that you've used before could be simple ones could be complicated ones doesn't matter pick something that you use every single day and see if you can build exactly that or something that's a small version of that that way you at least have all of the requirements you know what it should look like you know how it should work what it should feel like and you can try to figure out those small problems in terms of how to actually build the project once you've done that I recommend trying to build something completely from scratch that you've never seen or done before pick some kind of problem you have in your everyday life or something that would just be interesting to you or that you want to show to your friends or maybe other people you know would use this way you can now start by actually defining what it is you want to build you can create a full step plan say these are the various features I have this is how I want it to function which is another skill you should have as a programmer and then you can go and build the entire project you're going to struggle through this it's going to be really difficult there's going to be a lot of things you didn't consider and you're going to have to change the way you code things and go back and recode that's all part of the process you need to struggle it needs to be really difficult and it needs to take you a lot longer than you expected to solve these various problems really all that you need to do to be a really good programmer is persevere and figure things out and the only way you can get good at doing that is just by constantly doing it it's going to be really challenging at the beginning but as you do this more and more and more and more you're going to start to develop that skill which again you can only learn from doing I wish I could give you more practical advice but you need to do as many projects as many problems and have as many challenges as possible to really get good I can say firsthand the only reason I got good at programming is just because I did it so much I struggled with it it was so difficult it took me so long to build even the most basic things but then I started to develop that confidence and just get better and better and better you need to put the volume in you need to put the work in and this is the section where you do do that until you really really get good so with that said I'm going to wrap up the video here if you enjoyed leave a like subscribe to the channel and I will see you in the next one [Music]