BEST PROGRAMMING LANGUAGE
So this can be a never ending discussion and this can never be properly explained because all the languages have different uses and all the languages have some purpose different from even the languages almost the same as them.
By that, let me try to clear stuff up for many beginners or even the people who have mastered some language. The one thing to keep in mind is that you need to keep an eye on all the languages but only master one! Never try to achieve success in all the languages around you and then brag, because then you're just a skid. Learn what you really feel fits you. It need not be easy, but be fully understandable by you.
How is programming related to hacking??
Hacking is all about programming! The one that tells you that hacking does not need mastering any particular language is a big liar and doesn't know hacking as a whole. Hacking is a wide term and it depends in which field of hacking you go. Some learn JavaScript while others don't need it. It really depends if you're interested in network security, cryptography, bug detection etc...
But whatever you choose, you need to know what goes on in the core of the whole process, only then you'll be able to break it apart. If you don't know what a battery is & what does it do, how will you put it in the toy car?
What is a preferred Language?
The most asked question is which language to start off with & what to do next. Nowadays, every kid knows HTML basics..If you don't, why are you even here? Go learn it first!
So if you're into hacking, at-least learn some web-basics, because after all most of the things in hacking is directly or indirectly related to internet or some network maybe it PAN, LAN, MAN, WAN..
So to get straight, first learn XHTML (HTML+XML). Html will give you an idea of how webpages get displayed and XML has a LOT of functions not only in HTML but also in other languages. But these 2 are not the only thing to learn! Just after you do this, you need to (or must!) get an idea how desktop applications work. Like I said before,"Get to know whatever is around you, but master only one". The language to master depends on which field of hacking you prefer.
Which field of hacking is best/better?
Because I assume you're still learning and not into some big security firm, application security should be your thing. Why? Because nowadays network security is too much emphasized and there are many hackers doing the same thing. Not only hackers, but also kids are doing the same thing. You can start off now and master network security, but then it takes more time and because you are still finding answers, application security is easier and fun. It's fun because you can be both hacker, tester and developer!
List of Easy Languages(may not be useful for you!)
This is just a few languages that allow different areas of software to be explored, in different ways. For a larger list of languages check out wikipedia's alphabetical list of programming languages
= Web Sites =
Basic static text websites can be created with a combo of these two languages and some graphics.
XHTML
Type: Markup Language
Geared for: Websites
Difficulty: Very Easy
Compatibility: Works with modern browsers (Firefox, Chrome, Safari, Explorer)
Documentation: No lack of documentation. I find that the w3school tutorials cover just about everything, so it is unlikely you will need a book.
Links: www.w3schools.com
Notes: All you need is a good text editor. However there are also more complex programs like Dreamweaver to help simplify the creation of XHTML pages.
CSS
Type: Style Sheets
Geared for: Websites
Difficulty: Easy
Compatibility: Works with modern browsers (Firefox, Chrome, Safari, Explorer)
Documentation:Lots of great on-line tutorials. You might find buying a book helpful as it will explain more about design.
Links: www.w3schools.com
Notes: All you need is a good text editor. However there are also more complex programs like Dreamweaver to help simplify the creation of CSS files.
XHTML
Type: Markup Language
Geared for: Websites
Difficulty: Very Easy
Compatibility: Works with modern browsers (Firefox, Chrome, Safari, Explorer)
Documentation: No lack of documentation. I find that the w3school tutorials cover just about everything, so it is unlikely you will need a book.
Links: www.w3schools.com
Notes: All you need is a good text editor. However there are also more complex programs like Dreamweaver to help simplify the creation of XHTML pages.
CSS
Type: Style Sheets
Geared for: Websites
Difficulty: Easy
Compatibility: Works with modern browsers (Firefox, Chrome, Safari, Explorer)
Documentation:Lots of great on-line tutorials. You might find buying a book helpful as it will explain more about design.
Links: www.w3schools.com
Notes: All you need is a good text editor. However there are also more complex programs like Dreamweaver to help simplify the creation of CSS files.
= Web Applications =
Web applications add interactivity to a website such as pop up boxes, log-in forms, shout boxes, games, and more.
JavaScript
Type: Interpreted / scripting
Geared for: Web Applications
Difficulty: Easy - Mild
Compatibility: Works with modern browsers (Firefox, Chrome, Safari, Explorer)
Documentation: Great on-line tutorials, but you may find a book helpful.
Links: www.w3schools.com
Notes: This gives web designers a scripting language to embed in there web pages. Can create pop up boxes, validate XHTML forms, and more. Code is executed by the browser.
PHP
Type: Interpreted / scripting
Geared for: Web Applications
Difficulty: Mild
Compatibility: Code is ran on server
Documentation: Good on-line tutorials, may want a book for more complete learning process.
Links: www.w3schools.com
Notes: Because code is executed on the server the user can not view the source code, this adds a level of protection and security for things like login forms and online transactions.
SQL
Type: Structured Query Language
Level: Very High
Geared for: Databases
Difficulty: Mild - Hard
Compatibility: Used with many major database management systems (MySQL, PostgreSQL, Access, Oracle, SQLite, and more )
Documentation: Great documentation, many books, and on-line tutorials.
Links: www.w3schools.com
Notes: SQL is a standard language for accessing databases. There are many different versions of the SQL language. However, to be compliant, they all support at least the major commands (such as SELECT, UPDATE, DELETE, INSERT, WHERE) in a similar manner.
Type: Byte Compiled
Level: High
Geared for: .NET or Mono platforms
Difficulty: Mild
Compatibility: .NET on Windows, or Mono on Windows, Linux, & Mac
Documentation: .NET is well supported by Microsoft and there are many books available. Mono conforms to most of .NET standards.
Links: http://msdn.microsoft.com/en-us/vbasic/default.aspx
http://www.mono-project.com/VisualBasic.NET_support
Notes: VisualBasic.NET is a different language in the sense of syntax and code blocks. Reserved words such as Dim ... As, or Begin ... End are used instead of symbols like in C style languages. For this is the reason this language ended up on the list.
C#
Type: Byte Compiled
Level: High
Geared for: .NET or Mono platforms
Difficulty: Mild
Compatibility: .NET on Windows, or Mono on Windows, Linux, & Mac
Documentation: No lack of documentation to speak of.
Links:http://msdn.microsoft.com/en-us/vcsharp/aa336809.aspx
http://www.microsoft.com/express/vcsharp/
http://mono-project.com/Main_Page
Notes: Great new language developed by Microsoft. Often compared with Java, though it is my opinion that C# is superior for windows development. Also works well with the Mono platform for linux.
C / C++
Type: Compiled
Level: Middle
Geared for: Desktop applications.
Difficulty: Hard
Compatibility: There are compilers for all platforms.
Documentation: Tons!! Books, on-line, people, just tons!
Links: http://www.cplusplus.com/doc/tutorial/
http://www.cprogramming.com/
Notes: It is now an older language, but still very useful when you need to squeeze a lot of power into a program.
Type: Byte Compiled
Level: High
Geared for: Portability
Difficulty: Mild - Hard
Compatibility: Cross platform
Documentation: Well documented
Links: http://java.sun.com/docs/books/tutorial/
Notes: Good for teaching object oriented programming. Many library's, making development of complex programs more easy.
Python / Jython / IronPython
Type: Interpreted / Byte Compiled
Level: Very High
Geared for: Everything, and RAD (Rapid, Application, Development)
Difficulty: Easy
Compatibility: Cross platform
Documentation: Very well documented
Links: http://www.python.org
http://www.jython.org/
http://ironpython.net/
Notes: Fantastic language for beginners! The Python interpreter is written in C. The byte code is specific to the python platform. Jython compiles to Java byte code and runs on the Java Virtual Machine. IronPython compiles to CIL (common intermediate language) for .NET or Mono platforms.
Type: Byte Compiled
Level: Very High
Geared for: 3D images, animation, and interactions.
Difficulty: Mild
Compatibility: Java platform
Documentation: Well documented
Links: http://processing.org/
Notes: A fun and interesting language to do 3D work.
Actionscript
Type: interpreted
Level: Very High
Geared for: 2d Flash animations and Flex 3D
Difficulty: Mild
Compatibility: Works were ever flash or flex is compatible.
Documentation: Normal
Links: http://www.actionscript.org
Side notes: This is a popular language for this specific task.
Assembly
Type: Assembled
Level: Low
Geared for: Special niches when needed
Difficulty: Very Hard
Compatibility: Each processor architecture has Its own version.
Documentation: Normal
Links: http://webster.cs.ucr.edu/
Side notes: If you learn assembly for one architecture, than it isn't too difficult to code on different ones. You just have to learn a new instruction set.
----------------- CONCLUSION -----------
Lastly, I want to add that whatever you learn, you need to have a good interest from the beginning. It should not be a one night job! It should not be like people after some action movie(they want to do the same stuff the hero does). If you're one of those people, you're wasting your time in programming...
JavaScript
Type: Interpreted / scripting
Geared for: Web Applications
Difficulty: Easy - Mild
Compatibility: Works with modern browsers (Firefox, Chrome, Safari, Explorer)
Documentation: Great on-line tutorials, but you may find a book helpful.
Links: www.w3schools.com
Notes: This gives web designers a scripting language to embed in there web pages. Can create pop up boxes, validate XHTML forms, and more. Code is executed by the browser.
PHP
Type: Interpreted / scripting
Geared for: Web Applications
Difficulty: Mild
Compatibility: Code is ran on server
Documentation: Good on-line tutorials, may want a book for more complete learning process.
Links: www.w3schools.com
Notes: Because code is executed on the server the user can not view the source code, this adds a level of protection and security for things like login forms and online transactions.
= Databases =
Databases allow you to store tons of information in a logical way. In software development you can use them to keep track of websites members, scores in a game, employee on a pay roll, and more.SQL
Type: Structured Query Language
Level: Very High
Geared for: Databases
Difficulty: Mild - Hard
Compatibility: Used with many major database management systems (MySQL, PostgreSQL, Access, Oracle, SQLite, and more )
Documentation: Great documentation, many books, and on-line tutorials.
Links: www.w3schools.com
Notes: SQL is a standard language for accessing databases. There are many different versions of the SQL language. However, to be compliant, they all support at least the major commands (such as SELECT, UPDATE, DELETE, INSERT, WHERE) in a similar manner.
= Desktop Applications =
VB.netType: Byte Compiled
Level: High
Geared for: .NET or Mono platforms
Difficulty: Mild
Compatibility: .NET on Windows, or Mono on Windows, Linux, & Mac
Documentation: .NET is well supported by Microsoft and there are many books available. Mono conforms to most of .NET standards.
Links: http://msdn.microsoft.com/en-us/vbasic/default.aspx
http://www.mono-project.com/VisualBasic.NET_support
Notes: VisualBasic.NET is a different language in the sense of syntax and code blocks. Reserved words such as Dim ... As, or Begin ... End are used instead of symbols like in C style languages. For this is the reason this language ended up on the list.
C#
Type: Byte Compiled
Level: High
Geared for: .NET or Mono platforms
Difficulty: Mild
Compatibility: .NET on Windows, or Mono on Windows, Linux, & Mac
Documentation: No lack of documentation to speak of.
Links:http://msdn.microsoft.com/en-us/vcsharp/aa336809.aspx
http://www.microsoft.com/express/vcsharp/
http://mono-project.com/Main_Page
Notes: Great new language developed by Microsoft. Often compared with Java, though it is my opinion that C# is superior for windows development. Also works well with the Mono platform for linux.
C / C++
Type: Compiled
Level: Middle
Geared for: Desktop applications.
Difficulty: Hard
Compatibility: There are compilers for all platforms.
Documentation: Tons!! Books, on-line, people, just tons!
Links: http://www.cplusplus.com/doc/tutorial/
http://www.cprogramming.com/
Notes: It is now an older language, but still very useful when you need to squeeze a lot of power into a program.
= Mixed (Desktop, Web Applications, Mobile Phones) =
JavaType: Byte Compiled
Level: High
Geared for: Portability
Difficulty: Mild - Hard
Compatibility: Cross platform
Documentation: Well documented
Links: http://java.sun.com/docs/books/tutorial/
Notes: Good for teaching object oriented programming. Many library's, making development of complex programs more easy.
Python / Jython / IronPython
Type: Interpreted / Byte Compiled
Level: Very High
Geared for: Everything, and RAD (Rapid, Application, Development)
Difficulty: Easy
Compatibility: Cross platform
Documentation: Very well documented
Links: http://www.python.org
http://www.jython.org/
http://ironpython.net/
Notes: Fantastic language for beginners! The Python interpreter is written in C. The byte code is specific to the python platform. Jython compiles to Java byte code and runs on the Java Virtual Machine. IronPython compiles to CIL (common intermediate language) for .NET or Mono platforms.
= 3D Graphics or flash games =
ProcessingType: Byte Compiled
Level: Very High
Geared for: 3D images, animation, and interactions.
Difficulty: Mild
Compatibility: Java platform
Documentation: Well documented
Links: http://processing.org/
Notes: A fun and interesting language to do 3D work.
Actionscript
Type: interpreted
Level: Very High
Geared for: 2d Flash animations and Flex 3D
Difficulty: Mild
Compatibility: Works were ever flash or flex is compatible.
Documentation: Normal
Links: http://www.actionscript.org
Side notes: This is a popular language for this specific task.
= Embedded Systems =
Washing machines, tv's, watches, toasters, you name it!Assembly
Type: Assembled
Level: Low
Geared for: Special niches when needed
Difficulty: Very Hard
Compatibility: Each processor architecture has Its own version.
Documentation: Normal
Links: http://webster.cs.ucr.edu/
Side notes: If you learn assembly for one architecture, than it isn't too difficult to code on different ones. You just have to learn a new instruction set.
----------------- CONCLUSION -----------
Lastly, I want to add that whatever you learn, you need to have a good interest from the beginning. It should not be a one night job! It should not be like people after some action movie(they want to do the same stuff the hero does). If you're one of those people, you're wasting your time in programming...
Please Share and keep stopping by
bye!
No comments :
Post a Comment