so i am new to pretty much all of this, i currently work in a call center for a dealer management software company, i do not want to stay in a call center and am very interested in cyber security and have been studying for CompTIA SY0-501. My question is, is there a specific language(s) that i should be studying with an end goal being an ethical hacker or systems analyst (have not locked on to one or the other since i am still very new to the industry as a whole).
Hey, @jgeek2013. I’ve started learning cyber security as a subject for about 3 months now and from my very limited experience, I can say general purpose programming languages like Python can be a good place to start since they have a plethora of tools available to them. But, that’s just the tip of the iceberg. Learning more about the target systems and what language they are implemented on would be ideal if I understand this correctly. So, I say take the first step and start learning with python and then explore the world of cyber security a bit and then understand and learn more about what you should learn next.
Text me on Discord. I should be able to provide you with some starter material.
Here’s the link to the codecademy discord server: https://discord.gg/bmAnPmnZ
and you can find me here as Dharma [FB chapter leader].
Hey @jgeek2013! Thanks for asking this.
An all-round cybersecurity expert ideally knows a little of every language. However, there are specific languages to prioritize depending on different areas of expertise.
But before we get into the niches, every cybersecurity student must become comfortable with the command line whether that’s in the form of Powershell in Windows or terminal in Mac/Linux. You should also learn bash (or shell) scripting These are a must! These commands and scripts allow you to work under the hood of whatever OS you are working in. We actually have a “Learn the Command Line” course on Codecademy - look it up!
In general, Python is a powerful, readable language to use in security work because it can integrate many security tools like Wireshark and Metasploit, as Python libraries. Python scripts can help you automate and search through files and ports easily, especially during malware analysis.
We call Python a high-level language because it abstracts away the direct communication with parts of the computer. C and C++, on the other hand, are low-level languages that directly access RAM and system processes. Advanced, more precise malware is often written in C/C++, so they are important to become familiar with to keep up with hackers.
You can learn PHP for a similar reason - majority of the web is powered by PHP, and there are often DDoS (Denial of Service) attacks that target PHP vulnerabilities.
SQL (Structured Query Language) is used to access and maintain data stored in databases. SQL injection attacks exploit SQL code vulnerabilities to store or modify data. It’s important to be familiar with it for database security.
We’re actually in the middle of creating an introductory cybersecurity course, with more concrete skill-based curriculum to come!
Awesome post thank you!
This is a great response. I’ve seen other article about similar subject that I am unsure how that can be helping codecademy at all.
Around when is the course likely to come out?
Wow can’t wait for the course! Any ideas when it will be ready
I used to work in cybersecurity as an ethical hacker.
While it certainly doesn’t hurt to learn other languages, the most important one to learn in that field is x86 Assembly. Malware most often runs on Windows PCs (although there are certainly ones that run on mac and Linux now), and because of that, you absolutely should understand x86 Assembly because you’re going to see it a lot.
This tool is very relevant in the field and I’d suggest starting to learn it now, since it has a steep learning curve: https://www.hex-rays.com/products/ida/
It’s nowhere near as important, but it might be beneficial to learn C as well. You’ll learn more about the stack and heap that way, which can be also important to know.
And not languages, but if you’re not already familiar with how to read binary and hexadecimal numbers, that’s very important too.
Can’t wait for the cybersecurity course!
How important is maths skills in learning cryptography?
This was awesome and very accurate. I work as a Cyber Security Professional currently focusing on vulnerability management. Trying to assist various application and system admins with vulnerability remediation efforts with no skills or knowledge in any of the languages you mentioned would be really tough. I mean, you need to be able to contribute to the conversation a little right?
@css0013926210: you should know simple operators (addition, modulo etc.) and a bitwise math (and , or, not, xor etc). Some set theory may be helpful.
I am undertaking a cybersec diploma course, we learn:
- Python for Scripting and Automation
- C# and Front End Technologies (for Secure Software, in our case ASP .NET Razor Pages, as well as exploit development)
- Bash and/or Zsh for using the command line
- Microsoft SQL for understanding SQL injections (though any dialect should be fine)
- C++ (not really that necessary for Data Structures and Algorithms, but useful for binary exploitation etc.)
To help you in the search for a language to start, the ideal is to learn Python to automate tasks and you could even complement it with Machine Learning, the other big step is to go for a language like C++, Java or even Go and I have seen that it is being used a lot, I recommend this video which talks about whether it is important to learn to program and what kind of language to focus, greetings!!!
Translated with www.DeepL.com/Translator (free version)
The course has been soft-launched: https://www.codecademy.com/learn/introduction-to-cybersecurity
Ah nice! I’ll definitely want to check it out to supplement my course work.
Thanks. A wealth of great information. I knew all of those languages were important, but not sure exactly why (except HTML). Now I know! A long list to get thru, but fortunately I heard once you know one, it’s easy to learn the rest.