There is more to an effective hacker than just technical skill. One must have a few virtues in order to succeed in engagements. These virtues are learned through experience and making mistakes. You will gradually get better from every machine you hack; you will always learn something. Here are 5 Lessons You'll Learn as a Hacker.
Finding and exploiting vulnerabilities in applications and machines takes time. You're going to try things that do not work nor accomplish what you need. Fortunately, you aren't wasting any time by doing this. Experiment with what you have and see what you can do. You won't be and don't have to be the most elite hacker in your first months or even yearsl The learning process takes time and continues as long as you are interested in hacking.
I can also not stress this enough; enumerate, enumerate, enumerate! If you can't crack a VM, keep learning about your target host and assess what will work and what will not. Challenges are meant to be solved and your solution might be right under your nose if you keep patience and try to find enjoyment in the process. If you hate the process, you should probably be doing something else with your life.
Never Stop Learning
There is no definite end to your learning path. You should continue to amass more and more knowledge and keep reading if you don't want to fade into irrelevance. The reason us hackers are always one step ahead is because we keep learning and figuring out new ways to do things while the people we hack learn from us hacking them. Vulnerabilities get patched and techniques become less and less effective, you need to stay sharp and innovate.
There are millions of resources online that can help you continue to grow. Keep pushing your limits in the challenges you take on and don't stop until you get it done. If you already know x86 Assembly, why not do a challenge that involves ARM Assembly. If you're used to hacking PHP sites, why not try some Node.js and Django apps? Keep pushing, that's what hacking is all about.
Don't get Discouraged
A lot of newcomers rush into CTFs and get discouraged very quickly when they can't immediately find something to exploit. If you can't figure out a way in, read some articles, books and chat with friends. There really is no way around it, you need to continue to grow in this ever-evolving world of computer security. Take time to understand what something doesn't work, your answer will follow shortly after.
Hacking in the modern world can be difficult and you need to keep patience. If you don't know how to go about something, you are not a failure, you just need to keep learning and practicing. If you're having an existential crisis over a CTF, take a break and revisit where you left off with a clear head and hopefully some more information.
Attitude is no substitute for competence
There are so many young hackers who have such a bad attitude and treat other people like shit. These kind of people will try to prove they're better than you and will mock you for how you learned things and what you learned so far. More often than not, these people are insecure of their own skills and replace working projects with ego. Don't be like this, it isn't healthy for anyone. You need to walk the walk.
Trolls and assholes will always exist, the best way to approach them is not to and block them. The best defence against cyber-bullying and trolling is the magical block button. Don't play the victim, be a man. Keep growing and you will eventually acquire and surpass any skillset these people claim to have.
Don't be shy
If you complete or are in the process of completing a project, do not hesitate to share it with others. No one is going to steal your code or ideas if you've made a nice Discord, Slack or IRC server your internet home. If you're scared of people stealing your code, get a lawyer, this is open-source culture here. Most people in hacking related servers are there to help you, share their work and look for people to work with. Get involved and participate in projects.
Also, don't feel as though you have to do everything yourself. You don't have anything to prove by doing this. If someone is willing to help, allow them and learn to coordinate with others. This is a win for all people involved; you get your project done, you don't have to do all the work and all collaboraters including yourself worked on something cool.
I want everyone who reads my posts about hacking to succeed and have some fun while learning. We hack because it's fun and challenging. To evolve as a hacker, you have to learn from your mistakes and not repeat them. I wish you safe travels and happy hacking.