It’s a good idea to challenge yourself every now and then. To do something outside of your comfort zone. Doing this will push the bounds of what you know and will lead you into the unknown. This is when you are going to start developing new skills while fine-tuning your current skills.
How To Challenge Yourself
Select an interesting project that is outside of your comfort zone. For example, if you’ve never worked with multithreading before, then choose a project that includes multithreading. The idea here is to choose a project that you are very interested in, something that you want to do. But also something that forces you to learn a new skill.
The project should be small in scope. Remember, you can always expand on it later. If you have an idea that is a massive project see if you can scale it down. For example, if you want to create the ultimate Facebook software. First, see if you can create just a friend adder.
To get the ideas rolling take a minute and think: what would be fun to work on? If you could have any software what would it be? What would make you feel like a 1337 c0d3r? It sounds silly but don’t rule this one out.
Once you have selected your project the next step is to plan your project. I could write an entire blog post about this but for now, let’s keep it simple.
Write out what the software should do, keeping in mind that we are only trying to add core functionality at this point. Don’t try to go overboard on the features here. Instead, keep a separate list for “nice to have” or “add later” features. These “nice to have” features can be added after you complete the initial project.
Does our Facebook friend adder need a fancy GUI? Probably not. But if you are trying to learn about GUI’s then you may want to make this a priority.
Now you just need to work on your project in a logical order. Follow your plan on how the software should work and what features it should have. Until…
Until you get stuck. This is the part where we get to start learning. Follow these steps:
Learn about the topic. You can do this in many ways. For example, you can take a course, or watch Youtube videos. You can read about the topic on Ubot forums. You may even find articles, books, and more depending on what the topic is. For example, you can find lots of information about databases on the web. Most of this knowledge can be applied to Ubot using a few simple commands & functions. However, if you want to master multithreading then having more Ubot specific knowledge will be a big advantage. This is a topic we cover in detail in the Advanced Course.
Create NEW test projects that are small in scope. The point is to focus only on the new topic you have learned. What these bots do isn’t important. The important thing is that you are now using the knowledge you have learned. Practice will not only help you remember but it will also help you understand. When practicing be sure to think not only about what you are doing but why you are doing it.
Don’t move on until you “get it.” It’s not enough to just memorize code snippets. You should understand the what and the why of the code. What are you doing, and why are you doing it? This understanding is key to developing new skills while sharpening your old ones. For example, you may find that by learning about multithreading you better understand variables. Once you are comfortable with this topic (and you don’t have to refer back to the tutorials anymore) then you can go back to your main project and implement the new code.
The idea here is to learn something new, and practice it a few times BEFORE using it in your project.
One last thing I want to mention: don’t try to learn too many new things at once. Don’t try to learn multithreading, GUI, databases, and ExBrowser. Pick one or two new things per challenge (depending on the scope of the topic).
So to recap:
- Select an interesting project that is outside of your comfort zone
- Plan your project
- Start attacking the work bit by bit
- When you get stuck go learn about the new topic
- Don’t try to learn too much at once
So what challenges are you going to take on? Leave your comments below!