Introduction to Programming for Laymen
Your Goals of Learning
What programming languages and other formal languages to learn depend on what your goals are. For instance:
- General purpose program development:
- C, C++, Java
- C# (Microsoft) if primary focus is development for MS Windows
- Objective C (Apple) if primary focus is development for Apple's Mac OS X operating system, or IOS (iPhone, iPad)
- Digital forensics:
- EnCase EnScript® - EnCase (digital forensics) scripting language
- General script languages like bash, even MS-DOS command batch files, can come handy
- MS Office Applications (MS Word, MS Excel, ...): Visual Basic
(VB)
- VB is also part of some generations of MS Office on Mac OS X - Office 2011 does have, Office 2008 does NOT.
- OpenOffice - the free, open-source, alternative office suite - also include scripting capabiities.
- Statistics
- Web development: HTML, CSS, JavaScript, PHP, SQL, AJAX, XML,Python, Perl, Ruby, Ruby on Rails, ...
- And for ordering the best food and wine while visiting France - learn French.
- Special page - Characteristics of a Good Programming Language.
Top Programming Languages
There are thousands of programming languages
In general, most often used programming languages.
eWeek 2006
1. PHP
2.
C# (MS)
3. AJAX
4. JavaScript
5. Perl
6. C
7. Ruby & Ruby on Rails
8. Java
9. Python
10. VB.Net (MS)
eWeek 2010
1. Java
2. C
3. C++
4.
C# (MS)
5. JavaScript
6. Perl
7. PHP
8. Visual Basic (MS)
9. Python
10. Ruby
11. Objective-C (Apple)
...
TIOBE, Sep 2011
1. Java
2. C
3. C++
4.
C# (MS)
5. PHP
6. Objective-C (Apple)
7. Visual Basic (MS)
8. Python
9. Perl
10. JavaScript
11. Ruby
...
TIOBE, Sep 2012
1. C
2. Java
3. Objective-C (Apple)
4. C++
5.
C# (MS)
6. PHP
7. Visual Basic (MS)
8. Python
9. Perl
10. Ruby
11. JavaScript
...
TIOBE, May 2016
1. Java
2. C
3. C++
4. C# (MS)
5. Python
( Objective-C + Swift)
6. PHP
7. JavaScript
8. Ruby
9. Perl
10. Visual Basic .NET (MS)
...
14. Objective-C (Apple)
15. Swift (Apple)
...
Note that Java and JavaScript are two completely different languages (many people confuse these) - Java is a compiled language and JavaScript is an intepreted language. More on compiled and interpreted in next chapter.
- The P in LAMP - Linux, Apache, MySQL, and Perl / PHP / Python are all three relevent to learn for serious web-related programming.
- JavaScript - don't think JavaScript is becoming less relevant just because it's declining on the top-ten lists above. It remains - and certainly will continue - an important language for client-side, browser-side, programming.
- Objective C, plus also Swift since June 2014 - it's interesting to see how these languages has gained ground over the years...!
Objective-C Is Kicking Butt in the Programming World
July 12, 2012
Objective-C, the programming language that powers apps on the iPhone and iPad, is becoming one of the most used tools in the industry. In fact, it now ranks with the likes of C and Java. How did this language gain a foothold with developers? eWEEK looks for some answers here - www.eweek.com/c/a/Application-Development/ObjectiveC-Is-Kicking-Butt-in-the-Programming-World-813076/.
Swift is a newer language that Apple introduced in June 2014. Wikipedia for more.
- C# and
Visual Basic
are languages from Microsoft.
-
+Wall Street Is Bullish on IT Workers With Java, C Programming Skills
With financial services firms being challenged to deliver innovation and efficiency by new regulations and customer demands, they are looking to technology for help. Here we bring you some of the top programming languages and IT skills Wall Street is looking for.
-
C: Wall Street is looking for C language programmers. C is used to support speed of execution, supporting large quantities of data and enabling firms to do real-time simulation and modeling.
- Java:
As the most-used programming language today, Java programming expertise is also in demand on Wall Street. Java is used to support speed of execution, supporting large quantities of data and enabling firms to do real-time simulation and modeling.
- C++:
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. C++ is used on Wall Street for many of the same applications as Java and C.
- C# -
C#, developed by Microsoft, is a Java-like multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based) and component-oriented programming disciplines. C# is used on Wall Street for many of the same applications as Java, C and C++.
- PHP: PHP, one of the most popular programming languages, is a general-purpose server-side scripting language originally designed for Web development to produce dynamic Web pages. It is one of the first developed server-side scripting languages to be embedded into an HTML source document rather than calling an external file to process data. The code is interpreted by a Web server with a PHP processor module that generates the resulting Web page.
- Visual Basic for Applications:
Visual Basic for Applications (VBA) is an implementation of Microsoft's event-driven programming language Visual Basic 6 and its associated integrated development environment (IDE), which are built into most Microsoft Office applications. VBA enables building user-defined functions, automating processes and accessing Windows APIs and other low-level functionality through dynamic-link libraries (DLLs). VBA is one of many tools that might be used by quantitative analysts.
- Python:
Python is a general-purpose, interpreted high-level programming language, whose design philosophy emphasizes code readability. Its syntax is said to be clear and expressive. Python has a large and comprehensive standard library. Python supports multiple programming paradigms, primarily but not limited to object-oriented, imperative and, to a lesser extent, functional programming styles.
- JavaScript: JavaScript, the lingua franca of the Web, is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles. JavaScript was formalized in the ECMAScript language standard and is primarily used in the form of client-side JavaScript, implemented as part of a Web browser in order to give enhanced user interfaces and dynamic Websites. This enables programmatic access to computational objects within a host environment.
- Perl: Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various "backronyms" in use, such as Practical Extraction and Reporting Language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions; the latest version is Perl 6, announced in 2000 and released in 2012.
- Ruby: Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. It was also influenced by Eiffel and Lisp. Ruby was first designed and developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan. Ruby supports multiple programming paradigms, including functional, object oriented, imperative and reflective. It also has a dynamic type system and automatic memory management; it is, therefore, similar in varying respects to Smalltalk, Python, Perl, Lisp, Dylan, Pike and CLU.
- SQL: SQL, sometimes referred to as Structured Query Language, is a special-purpose programming language designed for managing data in relational database management systems (RDBMS). Originally based on relational algebra and tuple relational calculus, its scope includes data insert, query, update and delete, schema creation and modification, and data access control.
- .NET: The .NET Framework (pronounced dot net) is a software framework developed by Microsoft that runs primarily on Microsoft Windows. It includes a large library and provides language interoperability (each language can use code written in other languages) across several programming languages. Programs written for the .NET Framework execute in a software environment (as contrasted to a hardware environment), known as the Common Language Runtime (CLR), an application virtual machine that provides services such as security, memory management and exception handling. The class library and the CLR together constitute the .NET Framework.
- Oracle: The Oracle Database, commonly referred to as Oracle RDBMS or simply as Oracle, is an object-relational database management system. As one of the most popular database systems in use in enterprises today, Oracle database skills are in high demand.
- MATLAB: MATLAB is a high-level language and interactive environment for numerical computation, visualization and programming. MathWorks, maker of MATLAB, said using MATLAB, you can analyze data, develop algorithms, and create models and applications. The language, tools and built-in math functions enable you to explore multiple approaches and reach a solution faster than with spreadsheets or traditional programming languages, such as C/C++ or Java, the company said.
- R: R is an open-source programming language and software environment for statistical computing and graphics. The R language is widely used among statisticians for developing statistical software and data analysis.
http://www.eweek.com/developer/slideshows/java-c-php-15-programming-it-skills-that-are-thriving-on-wall-street.html
(eWeek 2012-10-02)
-
+11 Tech Skills Employers Want – Right Now (Dice 2012-10-08)
"Software development and quality assurance are among the most sought-after skills by employers. But several other skills hit new highs for demand, and Dice has the list...":
- Software Development - Yes, programming, the topic of this whole section...!
- Quality Assurance - an important part of any product development, delivery, including software and programming!
- Python - Yepp, a programming language
- SOAP - XML-based exchange of information between systems, google for more.
- Virtualization - great for also programming, especially when working with development for multiple different platforms
- Ruby on Rails - yepp, a programming language
- Android - the operating system from Google
- JBoss - application server for Java EE, google for more.
- Information Security - who could have guessed...? With all the malware floating around and not a day going by w/o news about new attacks. Development of more secure software is becoming an increasingly important factor for any software developer.
- MS Dynamics - ERP and CRM solutions from Microsoft
- Windows 7 - no comments
http://news.dice.com/2012/10/08/it-job-skills-in-demand/
-
- Mobile Drives Language Use (PDF), Dr Dobb's Report, Information Week, Feb 27, 2012 (PDF)
-
Historical References
- eWeek 2006: 10 Programming Languages You Should Learn Right Now, eWeek, 2006-09-15
- eWeek 2010: Application Development: Java, C, C++: Top Programming Languages for 2011 (eWeek, 2010-12-20)
- More: 12. ActionScript (Adobe), 13. Groovy (Java), 14. Go (object oriendted), 15. Scala, 16. Erland (telecom), 17. Clojure (Java), 18. F# (Microsoft, functional)
- TIOBE: TIOBE Programming Community Index - tiobe.com/index.php/content/paperinfo/tpci/
- PYPL PopularitY of Programming Language index - sites.google.com/...
- Google most popular programming languages
Trends
Updated table here September 2012. Original data collected February 2012.
TIOBE also has statistics of trends (TIOBE Programming Community Index):
More Resources
- Wikipedia
-
- Wikipedia articles on some specific languages:
Language |
Daylight |
Paradigm(s) |
Suitable For |
Ada |
1980 |
multi-paradigm (procedural, OO) |
special applications |
C |
1972 |
procedural, imperative |
general purpose |
C++ |
1983 |
multi-paradigm (procedural, object-oriented) |
general purpose |
Delphi |
1995 |
multi-paradigm (procedural, object-oriented) |
(Windows-only) |
Java |
1991 |
multi-paradigm |
general purpose |
JavaScript |
1995 |
multi-paradigm |
web (browser) |
Modula 2 |
1978 |
procedural |
general purpose |
ML |
1973 |
functional |
general purpose |
Objective-C |
1983 |
reflective, OO |
general purpose |
Pascal |
1970 |
procedural |
general purpose |
Perl |
1987 |
multi-paradigm |
scripts, web |
PHP |
1995 |
multi-paradigm |
scripts, web |
PL/SQL |
1991 |
procedural; history at dbanotes.com |
database |
Prolog |
1972 |
logic |
special applications |
Python |
1991 |
multi-paradigm |
scripts, web |
Scala |
2003 |
multi-paradigm, 'a better Java'.
10 Reasons Developers Need to Check It Out (eWeek, Apr 2012) |
where Java runs |
Swift |
2014 |
multi-paradigm (protocol-oriented, object-oriented) |
general purpose |
Turbo Pascal |
1983 |
discontinued, predecessor to Delphi |
(inactive) |
Updated
2016-06-02