Clear networking concepts, learn some programming language, familiar with command line in windows and terminal in Linux and MAC.
learn UNIX operating system. learn HTML and base scripting. Learn more then one operating system and learn to operate them. SQL is required for SQL injection so learn it. Assembly language is required for reverse engineering. If you are trying to get a job in this field communication skills are really important.
Keep patience and try to do hand on experiment on each concept of hacking. Beginners try to learn everything in less time so they mesh up everything and there learning ends there and they quit this field.