WHAT IS PROGRAMMING LANGUAGES?
Programming languages are formal languages used to communicate instructions to a computer. They are used to write software, which is a set of instructions that a computer can understand and execute. A programming language consists of a set of rules, syntax, and semantics that are used to write computer programs.
There are many programming languages, each with its own strengths and weaknesses, and each designed for different purposes. Some programming languages are general-purpose, meaning they can be used for a wide range of applications, while others are designed for specific tasks or platforms. Examples of popular programming languages include C++, Java, Python, JavaScript, Ruby, and Swift.
Programmers use programming languages to write code, which is a set of instructions that tells a computer what to do. Code can range from simple instructions to complex algorithms, and it can be written for a variety of applications, including web development, mobile app development, game development, scientific computing, and more.
TYPES OF PROGRAMMING LANGUAGES
Programming languages can be devided into one or more of the following types :
- 1. Procedural Programming Languages : These languages follow a set of steps or procedures to execute a program. Examples include C, Fortran, Pascal, BASIC and COBOL.
- 2. Object-Oriented Programming Languages : These languages are based on the concept of objects, which have attributes and methods. Examples include Java, Python, C++, and Ruby.
- 3. Functional Programming Languages : These languages treat computation as the evaluation of mathematical functions and avoid changing state and mutable data. Examples include Haskell, Lisp, and ML.
- 4. Scripting Languages : These languages are interpreted rather than compiled and are designed to automate tasks or perform simple tasks. Examples include Bash, Python, PHP, and Perl.
- 5. Markup Languages : These languages are used to define and format text, data, and other content for display on the web. Examples include HTML, XML, and JSON.
- 6. Query Languages : These languages are used to retrieve and manipulate data stored in databases. Examples include SQL, XQuery, and SPARQL.
- 7. Domain-Specific Languages : These languages are designed for specific tasks or industries and have a limited scope of use. Examples include MATLAB, R, and VHDL.
- 8. Low-Level Languages : These languages interact directly with the hardware and are used to write operating systems, device drivers, and other system-level software. Examples include Assembly language and machine language.
These are just a few examples of the many types of programming languages in use today.
WHY SHOULD YOU LEARN HOW TO PROGRAM?
- ● You can automate many tasks which usually take lots of time to complete.
- ● To understand others program and exploits and it will also help you in custom exploitation.
- ● Most importently, it prevents you from becoming a script kiddies.
PROGRAMMING LANGUAGES YOU SHOULD LEARN
Wikipedia claims there are approximately 700 programming languages, while others say that number is closer to 9000! The truth is, there've been countless programming languages created throughout history. ( List of programming languages - Wikipedia)
But here i will mention only those programming languages that will help you to becoming a good hacker.
[some of these are not technically a programming language. They are markup, style sheet, and database management languages that are included in the list for those who may consider them as a programming language.]
ASSEMBLY
In computer programming, assembly language, often abbreviated asm, is any low-level programming language in which there is a very strong correspondence between the instructions in the language and the architecture's machine code instructions.
- ● The Art of Assembly Language Programming
- ● x86-64 Assembly Language Programming with Ubuntu (PDF)
- ● Assembly Language for Beginners (PDF)
- ● How To Learn To Code Assembly Today
- ● MIPS Assembly Programming Simplified (YouTube)
- ● x86 Assembly Language and Shellcoding on Linux (Pentester Academy)
BASH
Bash is a Unix shell and command language written by Brian Fox for the GNU Project as a free software replacement for the Bourne shell. Bash is a command processor that typically runs in a text window where the user types commands that cause actions.
BATCH FILE
A batch file is a script file in DOS, OS/2 and Microsoft Windows. It consists of a series of commands to be executed by the command-line interpreter, stored in a plain text file.
C PROGRAMMING
C is a general-purpose, procedural computer programming language supporting structured programming, lexical variable scope, and recursion, with a static type system. By design, C provides constructs that map efficiently to typical machine instructions.
- ● C Programming Tutorial (YouTube)
- ● A to Z of C
- ● C - Geeks for Geeks
- ● learn-c.org
- ● C Programming (w3schools.in)
C++
C++ is a general-purpose programming language created by Bjarne Stroustrup as an extension of the C programming language, or "C with Classes".
- ● C++ Tutorial
- ● Learn Cpp
- ● C++ Language Tutorial (PDF)
- ● Buckys C++ Programming Tutorials (YouTube)
- ● C++ Tutorial
- ● C++ For Programmers (Free Course)
GO LANGUAGE
Go is a statically typed, compiled programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson. Go is syntactically similar to C, but with memory safety, garbage collection, structural typing, and CSP-style concurrency.
- ● Go Bootcamp (Book)
- ● Go Language Programming Practical Basics Tutorial (YouTube)
- ● Golang Tutorial - Learn the Go Programming Language (YouTube)
- ● Go by Example
- ● Build Web Application with Golang
- ● A Tour of Go
HTML
Hypertext Markup Language is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScript.
JAVA
Java is a class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible.
JAVA SCRIPT
JavaScript, often abbreviated as JS, is a programming language that conforms to the ECMAScript specification. JavaScript is high-level, often just-in-time compiled, and multi-paradigm. It has curly-bracket syntax, dynamic typing, prototype-based object-orientation, and first-class functions.
- ● JavaScript Tutorial
- ● Introduction to JavaScript (FreeCodeCamp)
- ● JavaScript Tutorial for Beginners
- ● Foundations of Programming in JavaScript (YouTube)
- ● A Modern JavaScript Tutorial
PERL
Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was officially changed to Raku in October 2019.
- ● Learn Perl in about 2 hours 30 minutes
- ● Perl Tutorial (Geeks For Geeks)
- ● Perl Tutorial Hub
- ● Fundamentals of Perl Programming
- ● Perl for Newbies
PHP
PHP is a general-purpose scripting language especially suited to web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1994. The PHP reference implementation is now produced by The PHP Group.
- ● PHP Tutorial
- ● Getting Started with PHP
- ● PHP Tutorials by TheNewBoston (YouTube)
- ● PHP Programming Tutorials (YouTube)
- ● PHP The Right Way
POWERSHELL
PowerShell is a task automation and configuration management framework from Microsoft, consisting of a command-line shell and the associated scripting language.
PYTHON
Python is an interpreted, high-level and general-purpose programming language. Python's design philosophy emphasizes code readability with its notable use of significant whitespace.
- ● Official Python Tutorial
- ● Python Tutorial
- ● Google's Python Class
- ● Full Python Programming Course (YouTube)
- ● Python Programming Language (GeeksforGeeks)
- ● Python Tutorial for Beginners (YouTube)
- ● A Byte of Python
- ● Python for Everybody (PDF)
- ● Python Tutorial - Learn Python Programming
R LANGUAGE
R is a programming language and free software environment for statistical computing and graphics supported by the R Foundation for Statistical Computing. The R language is widely used among statisticians and data miners for developing statistical software and data analysis.
RUBY
Ruby is an interpreted, high-level, general-purpose programming language. It was designed and developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan. Ruby is dynamically typed and uses garbage collection.
RUST
Rust is a multi-paradigm programming language designed for performance and safety, especially safe concurrency. Rust is syntactically similar to C++, but can guarantee memory safety by using a borrow checker to validate references.
SQL
SQL is a domain-specific language used in programming and designed for managing data held in a relational database management system, or for stream processing in a relational data stream management system.
- ● SQL Tutorial
- ● SQL - Full Course for Beginners (YouTube)
- ● SQLBolt
- ● MySQL Crash Course (YouTube)
- ● SqLite Tutorials
- ● SQL Server Tutorial for Beginners (YouTube)
- ● SQL Server Tutorial
VISUAL BASIC
Visual Basic is a third-generation event-driven programming language from Microsoft known for its Component Object Model programming model first released in 1991 and declared legacy during 2008. Microsoft intended Visual Basic to be relatively easy to learn and use.
- ● Visual Basic (VB) Tutorial
- ● Visual Basic Tutorial by TheNewBoston (YouTube)
- ● Visual Basic Tutorial by Derek Banas (YouTube)
VBSCRIPT
VBScript is an Active Scripting language developed by Microsoft that is modeled on Visual Basic. It allows Microsoft Windows system administrators to generate powerful tools for managing computers with error handling, subroutines, and other advanced programming constructs.
ESOTERIC PROGRAMMING LANGUAGES
An esoteric programming language (sometimes shortened to esolang) is a programming language designed to test the boundaries of computer programming language design, as a proof of concept, as software art, as a hacking interface to another language (particularly functional programming or procedural programming languages), or as a joke. The use of esoteric distinguishes these languages from programming languages that working developers use to write software. Usually, an esolang's creators do not intend the language to be used for mainstream programming, although some esoteric features, such as visuospatial syntax, have inspired practical applications in the arts. Such languages are often popular among hackers and hobbyists.
These languages are mostly used in CTF Challenges. there is no need to learn them completely just understand that whenever you look at a code or script you can identify what programming language it is. so here i would like to mention some Esolangs.
ARNOLDC
Programming language based on the one-liners of Arnold Schwarzenegger.
BEFUNGE
Befunge is a stack-based, reflective, esoteric programming language. It differs from conventional languages in that programs are arranged on a two-dimensional grid. "Arrow" instructions direct the control flow to the left, right, up or down, and loops are constructed by sending the control flow in a cycle.
BRAINFUCK
Brainfuck is an esoteric programming language created in 1993 by Urban Müller. Notable for its extreme minimalism, the language consists of only eight simple commands and an instruction pointer. While it is fully Turing complete, it is not intended for practical use, but to challenge and amuse programmers.
CHEF
Chef is a programming language in which programs look like recipes.
COW
The COW programming language is an esoteric programming language created by Sean Heber in 2003. It is a Brainfuck variant designed humorously with Bovinae in mind. COW has twelve instructions (four more than Brainfuck) and is Turing-complete. Most instructions are moos, only the capitalization varies: mOo, moO, mOO, Moo, and so on. MMM, OOO, oom and OOM are the exceptions. All other character combinations are ignored and treated as comments.
INTERCAL
INTERCAL (full name is Compiler Language With No Pronounceable Acronym, so short name is rather random) is one of the oldest esoteric programming languages. It was developed in 1972 as a parody on other languages that existed at that time; modern esoteric languages beat it in weirdness, but some aspects of it, like character output, are beyond compare. Its reference manual is a work of art on itself (unlike modern languages, which concentrate on meaning of commands, not on literal description), with special names for nearly every common thing. One of the features INTERCAL is famous for is its PLEASE modifier: it serves no other purpose than to make programmer polite, but not too polite.
JSFUCK
JSFuck is an esoteric programming style of JavaScript, where code is written using only six characters: [, ], (, ), !, and +. Unlike Brainfuck, which requires its own compiler or interpreter, JSFuck is valid JavaScript code, meaning JSFuck programs can be run in any web browser or engine that interprets JavaScript.
LOLCODE
LOLCODE is an esoteric programming language inspired by lolspeak, the language expressed in examples of the lolcat Internet meme. The language was created in 2007 by Adam Lindsay, researcher at the Computing Department of Lancaster University. The language is not clearly defined in terms of operator priorities and correct syntax, but several functioning interpreters and compilers exist. One interpretation of the language has been proven Turing-complete.
MALBOLGE
Malbolge (the 8th circle of Hell) was designed to be the most difficult and esoteric programming language. Among other features, code is self-modifying by design and the effect of an instruction depends on its address in memory.
MODISCRIPT
ModiScript is an esoteric programming language that entirely consists of quotes from Indian Prime Minister Narendra Modi's speeches. The language follows many of his ideologies such as the "No import rule", in which importation of code is not allowed, consistent with his "Make in India" campaign.
PIKALANG
Pikalang is a programming language based on the BrainFuck language but whose operators are substituted by the cries of the Pokemon Pikachu.
SHAKESPEARE
The Shakespeare Programming Language (SPL) is an esoteric programming language designed by Jon Åslund and Karl Hasselström. Like the Chef programming language, it is designed to make programs appear to be something other than programs - in this case, Shakespearean plays.
UNLAMBDA
Unlambda, designed by David Madore in 1999, is a minimal functional esoteric programming language based on combinatory logic. Notably, it was the first functional Turing tarpit.
WHITESPACE
Whitespace uses only whitespace characters (space, tab, and return), ignoring all other characters, which can therefore be used for comments. This is the reverse of many traditional languages, which do not distinguish between different whitespace characters, treating tab and space the same. It also allows Whitespace programs to be hidden in the source code of programs in languages like C.