View on GitHub

Shashank Barthwal

Security Researcher and a passionate Programmer

Do you wanna become a hacker?

If your answer to the above question is “YES”, I will advice you to think again! Don’t make a quick decision just because the word “Hacking” sounds cool. It is much more different than what is generally shown in Movies.

Is security field for you ?

See, if you are interested in Computer Science and programming, it is good! Go with it! Whether this field is for you or not depends on your will to work. If you wanna live a normal college life consisting of fun , trips , study , friends , hanging than this field might be difficult for you.


Because unlike normal computer science student, who don’t have to be an ace in more than one thing , here , you are expected to learn as much as possible about different topics. What does that mean?

Let’s say a guy is interested in web designing, he needs to learn stuff like HTML , CSS , Javascript etc. Similarly, if a guy is interested in android, he needs to learn Java, kotlin etc. If a guy is interested in database management, he needs to learn stuff like DBMS, SQL etc.

BUT(here comes the thing)

If a guy wants to be a hacker, he must have knowledge of all these things to some extent. However that is not important! It clearly shows that a hacker needs to learn everything. No computer science concept seems useless to him.

Ok, let’s suppose a guy is good in programming and has been selected in a good company. His work will be to write part of a project. He will be able to do that because he has got required skills. He will be able to work on every project the company will give to him.

But, in Cyber Security , learning stage never ends, never! You have to stay competitive all the time as new technologies like new wifi encryption technology will keep on coming.

If you think you can survive in such a less-fun life, Welcome to Cyber Security!

Prerequisites to get started:

The path of learning hacking is not that straight forward. You must know some things before you can grab a hacking tutorial book. So, the requisites are:

  1. Knowledge of networking

  2. Good command in Linux operating system

  3. Knowledge of programming(not necessary for beginners)

  4. Knowledge of assembly language(not necessary but highly recommended)

Why do you need to learn networking?

Let’s say you wanna list the open ports of an IP address so that you can send ping requests to find whether the host is alive or not. In short, let’s say you wanna hack someone’s PC using his/her IP address.

But wait, you don’t know what an open port , IP address , ping , request ,host is! All these terms are used in Networking. So, if you don’t know how the internet / networking technologies work, you will not be able to learn hacking(If you don’t know what a door and door lock is, you can’t even imagine about breaking the lock).

Why do you need to learn Linux operating system and commands?

If you will research about linux operating system on the internet, you will find that it is the king of all the operating systems. It is so flexible and powerful that you can’t imagine right now. Linux operating systems are widely used in hacking. So, in order to learn hacking, you must have a good command in linux operating systems and some basics commands(if you wanna use computer, you must know how to use keyboard and mouse and how to do things).

Why do you need to learn programming?

Programming is not mandatory in the beginning but it is recommended to learn as you gonna hit it in future. So it is not a bad idea to learn programming before stepping in. I will explain what programming you should learn as a beginner shortly. But for now, you need to understand why the programming is necessary in the field of cyber security. In future, you will write your own hacking scripts and codes to break into things(that’s what a real hacker does).

Why do you need to learn Assembly language?

One of the very good steps to give beginners an outlook about hacking is “teaching them reverse engineering”. With assembly language, you will be able to understand what low-level thing is actually happening behind the scenes of your written program in high level language. Also, you will be able to look at memory of a program components and you will be able to manipulate them. Basically, you will be able to see how a program works from the inside.

How to get started?

Here comes the most asked question! Let me tell you something about me. I am one of those silly guys who wasted almost one year searching stuff like “how to learn hacking” , “what books to read to learn hacking”, “Best hacking tutorial free download” etc.

But now, I know the right path! And I don’t want anyone around me to face the same. So, I am writing this article.

If you are getting panic that you have to learn so many things , then don’t worry. I can recommend you some good sources which will make your journey harder but less painful.


It is a website where you can get quality level cyber security education for free. This community strongly believes that education must be free, so they provide all the courses for free. You can learn networking , linux, hacking, advance hacking from here. It is the standalone learning source for beginners. I will recommend you the courses you have to do from here to start out learning hacking:

  1. CompTIA Network plus course - This course will give you the basic/necessary knowledge of networking you must have to learn hacking.

  2. CompTIA Linux plus course - This course will teach you basics of linux OS and commands required for hacking.

  3. CompTIA Security plus course - This course will introduce you with the world of cyber security concepts which you should know before starting out.

Also, I recommend you to buy the books of these courses from amazon because text material is always better and more detailed than the video tutorials.

Hacking: The art of exploitation

This is probably the best book in the world to start learning hacking for beginners. It has only one prerequisite- Basic knowledge of C language. This book will teach you assembly , debugging, shellcodes, memory corruption , basic networking, network programming, penetration testing and other hacking related stuff. This book will give you the idea about how the hacking actually looks like. I am currently reading this book and trust me, this book is amazing.

The Basics of Hacking and Penetration Testing

This is one of the very famous books to start out learning hacking. It introduces readers to the term “Penetration Testing” and provides brief details about famous tools used in Ethical Hacking. So, it is another famous source to start out.

CCNA- Complete Study Guide:

This book is mainly designed for the CCNA(Cisco Certified Network Associate) aspirants. But this book is very good in explaining networking concepts. However it demands a prior knowledge of very very basic networking concepts. I am learning networking through this book only.

The Linux Command Line- A complete introduction

This book is divided in various chapters each of nearly 15 pages. And every 15 pages teaches you many important features and commands of linux. I strongly recommend this book to everyone who wanna learn linux.

Wait! How about some video tutorials?

Video tutorials are not that good. They never provide full details about a topic. Just make a habit of reading books. If you badly want video tutorials, I already suggested those in the above links(CompTIA courses) . If you are not able to understand some concept, just search it on youtube and will get more learning resources.

Important note about learning resources:

I am no expert in anything but as per my experience, It is always a better idea to be an independent learner. Let’s say you wanna learn about “structures in C programming”, instead of looking for some famous book as your primary learning resource, you should see that book as one of the many learning resources. The best thing you can do in this case is: Open the google and search “structures in C” and then read about it from all the links and articles out there. This will give you a better view from different angles. There is really a reason people say this:

If you don't know the art of Googling, you can never learn hacking

There was one of my facebook friends, I used to ask him more than 40 question/doubts a day(Yes, you read that right) about Binary exploitation. He was very helpful. Then one day I was asking my doubts to him, he said:

He suggested/advised me to be an independent learner. His reply gave me shivers and laid a question mark on my hacking-learning journey!

I gave it a try, I learned a single topic from many resources and I was able to find things which were not given in any book. I saw the same thing from different angles. Yes, the way was effective and better! Now, I don’t rely on any book, rather I prefer the internet!

Searching a book in internet is like asking a Maths teacher if he knows anyone who can teach him/her Maths.

What programming languages to learn?

Not talking much, I will just advice you to learn python as your first programming languages because it is too easy to learn and you won’t get too much frustrated learning it. After that, you can switch to C/C++ language. A hacker should have an idea of many languages but mastering all of them is not important.

Learned basic networking and linux! Now what?

Great! Now you can grab any of the beginner level learning resource to learn hacking. I bet you will be able to understand every technological word mentioned in the book. It’s time for you to become a great hacker :-)

Article by:

Shashank Barthwal

(Tech enthusiast, noob in everything)