Skip to main content

How To Learn Programming For A Cybersecurity Career

This is the first step I took in learning. I had to learn coding and my amazing Googling skills thought me this. Programming is not necessary for InfoSec, but knowing how to program definitely helps and makes your job easier.


Let me make this simple:

From what I have learned, you only need to know these:
  • C/C++/Java
  • Python
  • JavaScript and PHP  
  • Bash Scripting 
Now let me explain.

You need to learn any one of  C/C++/Java. Why?


These languages teach you the "basics" of programming.

C is pretty much used to build every OS.  It is an early language that will teach you the fundamentals of programming.

C++ is big brother of C. It will teach you what you didn't learn in C.

Java is a more modern version and is the most used fundamental programming language. It is easier to learn than the other two.
If you learn learn C/C++ first and then move to Java it will be quite easy. But, if you learn Java first and then want to move to C/C++ it will be very hard.

I personally learnt C++ and I had a lot of fun doing it. It made learning other programming languages very easy.
 
Also see: Differences between C, C++ and Java

Books:
The C Programming Language
C++, The Complete Reference
C, The complete guide
Object Oriented Programming with C++
Java, The Compete Reference(10)
Java, The Complete Reference(9)

 



PYTHON


Now this is the language that I love.

This is the easiest language to learn.

But that does not mean it isn't powerful. It is one of the most powerful languages. You can basically use it to go anything. A lot of tools have been written in Python. Python is also widely used when performing crypto-analysis and malware-analysis.

Learning Python was awesome. It is so simple and easy. I took no more than a month. But, this is also because I knew how to program in C++.

Books:
Learn Python The Hard Way
Python for Beginners
Automate The Boring Stuff with Python
Python Crash Course


See: Python Website



JavaScript and PHP

Simple, JavaScript is the most used implementation language and PHP is the most used Server-side scripting language. It will be extremely helpful to you.

These languages are very useful if you want to learn about web-apps and the web in general.

Books:
Learning PHP, MySQL & JavaScript with jQuery, CSS & HTML5
JavaScript, The Complete Reference
JavaScript, The Good Parts
PHP, The Complete Reference

See: JavaScript Website and PHP Website


BASH

It is a great scripting language. To become a CyberSecurity expert, you need to be able to Linux comfortably and BASH helps you in doing that.

I’d suggest people who are unfamiliar with Linux to learn some of the language as it would not only help with automating menial tasks, but also most likely will introduce you to new commands.

Books:
Bash Pocket Reference: Help for Power Users and Sys Admins
Mastering Linux Shell Scripting,: A practical guide to Linux command-line, Bash scripting, and Shell programming
Shell Scripting: How to Automate Command Line Tasks Using Bash Scripting and Shell Programming

See: What is a Bash Script?

 



CONCLUSION:

These languages are not necessary but will help you a lot

It is better to know these languages because you never know if it will help you. 

Also it does increase your knowledge in the subject. 


Thanks for reading!

AZID 

Comments

Most Viewed Content:

Best Reddit Subreddits for Cybersecurity and Hacking!

Reddit is a very useful website for discussions about everything. For cybersecurity and hacking too, it has useful subreddits, in which, you will learn a lot of things you previously had no knowledge of. So, I have compiled a list of security related subreddits. 1. Active and Most helpful subreddits: /r/netsec /r/AskNetsec /r/netsecstudents These three are pretty much it. They have very active communities and are very helpful. I, personally use  /r/netsecstudents a lot because I'm still in the process of learning and that subreddit(if you look properly) will tell you how to make a career in every security field. 2. Security Certification Subreddits: r/CompTIA (for Security+) r/ccna (for CCNA and CCNA Security, also r/ccnp for CCNP) r/CEH (for CEH) r/cissp (Certified Information Systems Security Professional) r/oscp (Offensive Security Certified Professional) Really helpful if you're doing any of these Certs. 3. Other

OverTheWire Bandit: Level 0-14

Bandit Levels Levels 0-14 Levels 14-25 Levels 25-33 Please use Ctrl+F to find your desired Level. Level 0 Bandit Level 0 Level Goal The goal of this level is for you to log into the game using SSH. The host to which you need to connect is bandit.labs.overthewire.org, on port 2220. The username is bandit0 and the password is bandit0. Once logged in, go to the Level 1 page to find out how to beat Level 1. Commands you may need to solve this level 2/31 ssh kali@kali:~$ ssh bandit0@172.9.9.176 -p 2220 password: bandit0 Level 0 -> Level 1 Level Goal The password for the next level is stored in a file called readme located in the home directory. Use this password to log into bandit1 using SSH. Whenever you find a password for a level, use SSH (on port 2220) to log into that level and continue the game. Commands you may need to solve this level ls, cd, cat, file, du, find Password for next level: boJ9jbbUNNfktd78OOpsqOltutMc3MY1 Level 1 -> Level 2 Level Goal The password for the next le

OverTheWire Bandit: Level 14-25

Please Ctrl+F to find your desired level. Levels Levels 0-14 Levels 14-25 Levels 25-33 Level 14 -> Level 15 Level Goal 11/31 The password for the next level can be retrieved by submitting the password of the current level to port 30000 on localhost. bandit14@bandit:~$ cat /etc/bandit_pass/bandit14 4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e This is the current level password. Now, to find the password of the next level. bandit14@bandit:~$ telnet localhost 30000 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e Correct! BfMYroe26WYalil77FoDi9qh59eK5xNr Connection closed by foreign host. The password for the next level is BfMYroe26WYalil77FoDi9qh59eK5xNr We can ssh bandit15@localhost Level 15 -> Level 16 Level Goal The password for the next level can be retrieved by submitting the password of the current level to port 30001 on localhost using SSL encryption. Helpful note: Getting “HEARTBEATING” and “Read R BLOCK”? Use -ign_eof and r