What Programming Language Should a Beginner Learn in 2016?
It’s not news that STEM talents are in great demand and are paid well. Online postings for software jobs across the U.S. grew 31% from 2007 to 2012 – nearly 3x faster than overall job postings. The US Bureau of Labor Statistics estimates software developer jobs to continue to grow at 22% from 2012~2022, with a median pay of $95,510 for software app developers as of May 2014.
If you’re looking to learn how to code, the sheer number of programming languages may be overwhelming – what language should you indeed learn? This article hopes to give you some pointers by comparing the salary, popularity, and prospective future associated with different programming languages.
Here’s a Fun Quiz to help you decide the best programming language you should learn in 2016
An over view of Programming Languages
Before we go into comparing programming languages, let’s first take a look at the languages we’re going to be covering.
Dynamic Languages
Dynamic languages are generally thought of as easier for total beginners to learn because they’re flexible and fun. You can quickly build an app from scratch with less lines of code, and there is no hard rule on how to write things to behave in the way you want them to.
As dynamic languages are usually very high level languages, you’d spend less time trying to get the details right and more time learning programming concepts, which is another reason dynamically typed languages are popular with beginners who are motivated by being able to build things and see results quickly.
JavaScript
Not to be confused with Java, JavaScript is a primarily client-side scripting language used for front-end development. JavaScript is compatible across all browsers and is used to create interactive web apps, often through libraries such as jQuery and front-end frameworks such as AngularJS, Ember.js, React, and more.
JavaScript can now also be used as a server-side language through the Node.js platform, and while Node.js is relatively new, the community is gaining a lot of momentum. You can also build hybrid mobile apps with JavaScript through using frameworks such as phonegap, while Facebook’s React Native aims to allow you to build native mobile apps with JavaScript.
However, JavaScript is also known to be a difficult language as it is untyped and thus is difficult to debug. There are statically typed versions such as Microsoft’s TypeScript or the JSX that React uses.
Ruby
Developed to make developers have fun and be productive at the same time, Ruby was made popular by the Ruby on Rails framework, a full-stack web framework optimized for programming happiness. As Ruby reads like English and Rails has tools that make common development tasks easier “out-of-the-box”, many would recommend learning Ruby as your first programming language.
Ruby is mostly used for backend development, and popular sites such as Airbnb, Shopify, Bloomberg, Hulu, Slideshare, and more have been built with Ruby on Rails.
Python
Python is another highly recommended language for beginners, and is the most popular introductory language at Top U.S. Universities. Developers have used Python to build desktop apps and web apps alike, and it has great tools for data mining. In addition, Python is particularly popular with the academic community for scientific computing, data analysis, and bioinformatics.
Google, Dropbox, Pinterest, Instagram, Reddit, BitTorrent, Civilization IV, and more have been built with Python.
PHP
PHP is a server-side scripting language and is usually considered beginner-friendly because it’s easier to conceptualize what the PHP code will do, so it’s not difficult to pick up. Most websites have been built with PHP because the language is heavily specialized for the web.
Facebook, Wikipedia, Yahoo!, Tumblr, WordPress, and more have been built with PHP.
Statically Typed Languages
Apps built with statically typed languages are known to be more scalable, stable, and maintainable. Static languages are usually more strict with catching errors through type checking, and it takes more code to build a prototype. Game engines, mobile apps, and enterprise-level backends are usually built with statically typed languages.
Java
As a general-purpose language, Java is used to build Android apps, desktop apps, and games. Java is also commonly used as a server-side language for enterprise-level backend development – 90 percent of Fortune 500 companies use Java.
Furthermore, Hadoop is a popular Java-based framework used for storing and processing big data, and is implemented by enterprises such as Yahoo, Facebook, and Amazon Web Services.
C
C is often used to program system software and is the lingua franca of Operating Systems.
C has influenced almost all programming languages we’ll be examining in this article, especially Objective-C and C++. So, if you know C well, you’d probably have less difficulty picking up other popular languages. Since C takes more complex code to perform simple tasks, beginners may find it tough to keep themselves motivated if they choose it as their first language. However, knowledge of C will definitely help you as a programmer.
Objective-C / Swift {for iOS development}
Objective-C is a layer built on the C language, making it static, but it can also be used for dynamic typing. Apple’s Swift is a static language designed to be compatible with Objective-C, but its static-typing makes it more resilient to errors.
Inspired by Python, Swift aims to be easy for coding newbies to pick up, and has been designed to fix some of the issues of Objective-C.
C++
C++ is a powerful language based on C. It is designed for programming systems software, but has also been used to build games/game engines, desktop apps, mobile apps, and web apps. C++ is powerful and fast, so even Facebook has developed several high performance and high reliability components with it.
Many pieces of software have been built with C++, including Adobe Systems, Amazon, Paypal, Chrome, and more. Much like C, C++ is generally considered harder for beginners to learn on their own, so if you decide to learn C++ as your first language, feel free to look for a mentor via Meetups or find a C++ Codementor.
C#
C# (“C Sharp”) is developed to be used for
Microsoft’s .NET framework, which runs primarily on Microsoft Windows.
C# is used for web development, game development, and general Microsoft development. Although Microsoft was not known for being cross-platform compatible in the past, Xamarin has been working on an open-source project called Mono, which aims to port C# to other platforms and bring better development tools to Linux developers. Recently you can also use C# to build native mobile apps for iOS and Android through Xamarin.
Other
SQL
SQL (“Sequel”), or Structured Query Language, is a query language used to communicate with databases. Although SQL cannot be used to build apps, it is used to manage the data in apps that use relational database manage systems (RDMS).
You Might Also Want to Read: Become a Developer with these 20+ Resources
Job Opportunities
So, now you know a bit about programming languages and perhaps a bit about their perceived difficulty. However, not all languages have the same demand or salary. If your goal in learning how to program is job opportunity and you aren’t going to be dissuaded by how hard people say a language is going to be, here are some pointers to help you figure out what language you should learn.
Based on the salaries estimations from
indeed.com’s analysis of job ads, we can pretty much divide programming languages into nine tiers:
Based on this result, it appears as though Swift will rake you in the most money, while Java, Ruby, Python, C++, and C are also decent choices. In addition, if salary is your concern, then it seems as though JavaScript, C#, SQL, and PHP aren’t ideal choices… or are they?
Average salary can be affected by many things such as demand (how many job postings there are), supply (how many developers know the language) and experience (a junior developer would naturally earn less than a senior developer), so it’s a good idea to take a deeper look at these elements before jumping to any conclusions.
Job Trends
How likely are you going to get a job based on the programming language you know? Here’s a quick look at job trends from indeed.com:
Based on this result, it appears as though Swift will rake you in the most money, while Java, Ruby, Python, C++, and C are also decent choices. In addition, if salary is your concern, then it seems as though JavaScript, C#, SQL, and PHP aren’t ideal choices… or are they?
Average salary can be affected by many things such as demand (how many job postings there are), supply (how many developers know the language) and experience (a junior developer would naturally earn less than a senior developer), so it’s a good idea to take a deeper look at these elements before jumping to any conclusions.
Job likely are you going to get a job based on the programming language you know? Here’s a quick look at job trends from indeed.com:
We can see from here that C, SQL, Java, and JavaScript are often mentioned in job postings, while C#, C++, and Python are also handy languages to know.
However, if your goal is to work at a startup, then perhaps the job trends from indeed.com is not a good indicator. Angel list is pretty much the go-to place for startup job postings, so we’ll take a look at the demand for programming skills based on the software developer ads in Angel listing.
Again, JavaScript turns out to be the most demanded skill, but startups seem to favor Python and Ruby (on Rails) more than Java, C, C++, or C#.
The Developer Supply Market
Let’s take a look at what mentors on Code mentor are skilled at:
Of course, this is by no means an accurate depiction of the actual market, but it should give you a good idea of the situation. As you can see, Objective-C experts are mighty scarce, yet the mobile app business has been booming for some time now. With scarce supply of good Objective-C developers, their compensation would naturally be higher.
PHP, on the other hand, seems to have a healthy amount of supply in the workforce, which means employers would have more choice and thus more bargaining power in terms of salary, but we’ve seen it isn’t as demanded as Java, SQL, or JavaScript. Therefore, PHP developers earn less.
JavaScript is more of a special case. Despite having the most supply, it is not at the bottom of the salary tier, and we’ll take a look at JavaScript later in this article.
Salary Range
Now that you have an idea of what the demand and supply for each language is, let’s take a look at the potential salary you could earn based on salary information from job ads. The data is based on data from gooroo.io, in which salary is usually derived as the average value of the salary range offered by individual job ads.
Here you can see that developers who know Ruby, C++, or Java appear to have higher starting salaries. Python and Ruby seem to have the highest potential salaries, as this means good Ruby/Python developers are scarce and in high demand. JavaScript seems to have experienced a large drop in potential salary, as it reached as high as 188,168 USD as of April 2015, but now it’s at roughly $124k. Nonetheless, JavaScript remains a special case, which will be explained below.
Special Case: JavaScript Frameworks
Just merely comparing the JavaScript language against other programming languages is an inaccurate outlook of how much you can earn if you know JavaScript.
As mentioned in the overview of programming languages, JavaScript is a huge category. Many frameworks have been developed to facilitate front-end website development, so if you just know JavaScript and jQuery, you’d probably earn less than other JavaScript developers who know a JavaScript framework.
Let’s take look at the average salary for different JavaScript framework developers in the US (arguably React & Backbone are libraries, not frameworks, and Nodejs is more of an environment):
Now the average salaries don’t look that bad. React, in particular, has a very nice future outlook. Of course, this is just for you to get an idea, and the indeed.com estimates differ slightly, averaging above 105,000 USD. You’d have to know JavaScript to learn these technologies, which makes JavaScript a rather profitable skill.
Let’s also look at the demand for developers of these frameworks:
Node.js for backend development, so if just speaking of front-end frameworks, you can see AngularJS appears to be a clear winner with rocketing demand. Thus, if you want to get into front-end JavaScript development, you might want to learn AngularJS.
React, on the other hand, is a fairly new technology, and it has been gaining momentum at a speed that rivals AngularJS’s early stages. It’s possibly still in the stage of gaining momentum and may potentially become more widely demanded, as it is in general more performant than AngularJS and thus will provide a better user experience.
Programming Resources
If you know a little about the developer world, then you probably know it’s really important and helpful to have support from other developers, especially if you plan to learn on your own.
Being a part of a supportive community will definitely make your future development life easier.
StackOverflow
StackOverflow is the largest developer community used by developers around the world to help and get help from other programmers, so we’ll naturally be examining how large/popular a programming language is as well as how helpful the community for those languages are.
Language Popularity
Based on the tag followers on StackOverflow, we can see the overall popularity of a language right now:
We already know from examining job trends that Java and JavaScript developers are in highest demand, so it’s no surprise they also have the most tag followers. JavaScript is now the most used tag in StackOverflow, superseding Java.
SQL, Ruby, and Swift have the least followers, though this is a likely because Ruby is almost strictly used for web development, while Swift is a relatively new language.
StackOverflow Answer Rate
StackOverflow has an unspoken rule where you have to phrase your question “correctly”, or people won’t bother answering you. With that in mind, let’s take a look at how likely your question would be answered for each language:
Based on the information above, although fewer StackOverflow users follow C, SQL, and C++, over 60% of related questions get answered. Those in the know would probably argue that C and C++ are advanced languages, which means the users asking the questions are likely more experienced with programming and know how to phrase their questions better. SQL, on the other hand, is not used to build things.
What’s worth taking note of is how supportive Python and Ruby developers are on StackOverflow. Beginners are known to have trouble asking their questions correctly, and as mentioned earlier, Python and Ruby are the most recommended language for beginners. Yet, despite this and despite being relatively popular languages, They both have almost 60% answer rate within 30 days. (Python’s #1 answerer, Martijn Pieters, is also a Codementor.)
On the other hand, PHP, while being quite a widely-followed language, has one of the worst answer rates. This means a lot of people are asking about PHP, but not many are getting their questions answered.
GitHub
Once you get into development, you’ll eventually learn that it’s best to use an existing solution for your own projects if possible. You’d typically get this from open-sourced projects, and GitHub is the way to go for these things. Users can star projects they like, and the more stars a project has, the more useful it is likely going to be.
Thus, from examining data from GitHub, we can also determine the relative ease in developing projects using different types of languages. We can also have an idea of how fast a language is innovating new technologies. Without further ado, here is a simple chart to see the distribution of popular GitHub projects:
Clearly, JavaScript has the most shiny new tools, even if you don’t consider all the style-guides, learning resources, and tutorials. JavaScript is known for being an extremely fast-moving language with a high churn rate for frameworks and new technologies to the point where developers may find it difficult to keep up with JavaScript’s constant innovations. In addition, other than the Node.js platform, JavaScript is mostly used for front-end development, so it’s not directly “competing” with other backend languages such as Ruby, Python, Java, and PHP. With that in mind, it is not surprising that JavaScript would have such a large gap between other programming languages.
Ruby and Objective-C, on the other hand, also have a lot of tools and resources for development. Interestingly, we’ve seen in the StackOverflow comparison that both languages aren’t as widely popular as languages such as Java, but developers have generally found the open source projects more useful. This is especially true for Objective-C if you examine the total projects written in each language:
In a additional, most open source projects written in C/C++ aren’t for C/C++ development itself—they’re just tools written to help development in general (for example, the most commonly used Python interpreter is CPython, which is written in C). As mentioned earlier in the introduction to programming languages, C/C++ are mostly used for developing systems applications, so it makes sense that the open source projects on GitHub are system tools. Nonetheless, you can learn a lot from open source projects.
Finally, PHP is lagging behind in terms of resources available despite being a widely-used language. As for C#, Microsoft has been on a quest to open-source a lot of their services, so it will likely increase its presence on GitHub in the future.
The Future of Each Programming Language
How relevant will a programming language be in the future? First of all, the future of a language will largely depend on the growth of its community, as fresh blood/adoption rate is what keeps a language popular and ensures that it will continue to have resources. Thus, let’s take a look at what languages people are most interested in learning:
Looks like Python, JavaScript, C#, and Swift have received the most growth in interest. Based on current known trends, we can draw the following conclusions:
JavaScript
JavaScript is, without a doubt, just going to become increasingly popular, especially now that it can be used for backend development and can even potentially build native mobile apps (through React Native). JavaScript continues to get more tools and updates at a fairly fast pace, so you can expect it to remain extremely important in the future to come.
Ruby
Startups love Ruby on Rails. Many famous websites such as Airbnb, Twitch, Hulu, etc. are built with Rails, which means they’re going to need Ruby developers. In addition, since developers have fun using Rails and it is fairly easy to pick up, Rails will continue to be popular with coding newbies.
That said, the rise of Node.js will definitely have an impact on the popularity of Ruby on Rails—
Node.js has already overtaken Rails on Github. While this isn’t any absolute sign that Node.js will overtake Rails, we should note that a few years back Rails also overtook Python’s biggest web framework Django for backend development, and Rails had more stars than Django.
Moreover, a new trend for “isomorphic” apps will likely affect Rails adoption, as the practice is said to improve web app performance. Isomorphic apps pretty much need to run on the Node.js platform – which is in JavaScript, the same language used front-end. The appeal of only having to be well-versed in only one language (JavaScript) may also shift some potential new blood away from learning Ruby. Google’s Go is also another backend alternative that is getting some attention.
However, since Rails continues to get frequent updates, it will still remain relevant for a while, especially since it has a loyal community with tons of useful tools to help make development easier. Thus, despite a decline in popularity, Ruby will still be sticking around.
Python
Python is popular with academic researchers and data scientists, and as mentioned before, many schools choose to introduce beginners to coding through Python. This means Python will continue to grow steadily and remain relevant. While Python won’t be evolving as fast or seeing the same explosive growth in popularity and demand as JavaScript, it will continue strong, especially with data scientists in such high demand.
PHP
The trends for backend development has been shifting away from PHP for some years now, but
80% of websites on the web are still built with PHP—it was a language designed for the web, after all.
Nonetheless, if you google what programming language beginners should learn, you’d find that developers generally don’t recommend learning PHP. In fact, many developers apparently hate it.
The PHP community is trying to shake off its bad reputation with new guidelines on how to code PHP the Right Way and with developing new tools, but in general the future of PHP seems rather stagnant as of 2015 (at least in the US). Hopefully PHP7 will revitalize the community, though it is known to be quite fragmented.
Java
Android has been a big boost in keeping Java the most popular programming language, and most enterprises also love Java for its relative stability and scalability.
With the rise of Spark (which uses the Scala language) and Cassandra (which supports other languages) as frameworks to manage big data, it’s hard to say how long Hadoop will continue to reign as the most popular for big data management, but given how large enterprises behave when it comes to change, Hadoop won’t be going away. The same can be said of the Java programming language in general, as Java has excellent tools for backend development and is much more established for enterprise development.
Thus, Java will continue strong as one of the most relevant programming languages in the next few years.
Objective-C/Swift
Since Apple released Swift and Objective-C only works for Apple products, one cannot expect Objective-C to stick around in the future. Swift, on the other hand, will of course be relevant for the years to come as long as you keep using Apple products.
However, this doesn’t mean you shouldn’t learn Objective-C in 2016, since most open-source projects for iOS development are still written in Objective-C. Generally, using something you don’t understand is not a good idea, and it’s not that difficult for you to learn Objective-C if you know Swift or vice versa.
C
C is quite low-level compared to other programming languages, but since it’s the OS
lingua franca it will be sticking around, since many development tools are written in C and Linux is also written in C.
SQL
SQL is almost universally understood by database administrators. For a while, SQL seemed to be losing relevance with the rise of NoSQL services such as MongoDB and Redis, with non-SQL using Big Data computing platforms such as Hadoop, Spark, and Cassandra. Many people were howling about how SQL was dying.
Apparently not any more. As a result, even NoSQL had to reposition itself as “Not Only SQL).
With the rise of big data and the difficulty of managing it, SQL is hotter than ever (as you already know from the job trends). Google has also recently updated its BigQuery service so it can now ingest up to 100,000 rows per second per table, and BigQuery uses SQL. Spark also has the Spark SQL Module since version 1.3.
All in all, SQL is relevant again because it’s needed to manage (not store) big data. Thus, not only is SQL everywhere, but it’s safe to say SQL will continue to be relevant for a while now.
C++
Still considered the most powerful in terms of performance and capabilities (even against Rust), C++ will likely continue to be relevant in certain areas such as things that need high performance (e.g. game engines). A major revision of the current standard (C++14) is expected to be released in 2017, so it’s still an evolving language.
In the future, Rust may potentially replace C++ in some areas of systems programming, as Rust aims to be able to produce less-vulnerable software than C++ does. Read more about how Rust compares to other languages here. It is also
a good time to learn Rust now if you’re an advanced developer.
C#
Being limited to Microsoft platforms and being closed-sourced did not work in C#’s favor in the past, but Mono mostly fixed those issues (though Mono has performance issues, recent updates have improved them).
Developers who’ve worked with C# seem to love the C# programming language, so it has a strong community. Not to mention, C# is the primary language for Unity 3D, a rather popular game engine that could also work on iOS, Linux, etc. The rise of Unity3D as the de facto indie game engine has solidified C#’s future, and Unity3D can also be used to develop Virtual Reality apps. Since VR is a big thing, C# is sure to have a pretty bright future.
On a side note, C# is also more popular for enterprise development in countries other than the US, such as the UK. Obviously Microsoft will keep C# alive for a while and keep it relevant for the .NET platform, and it has been aggressively open-sourcing its products and making it more accessible so developers can adopt it.
Conclusion
What language should a coding beginner learn? Clearly, if you wish to get into web development, you’d inevitably have to learn JavaScript, whether you like it or not. If you want to do backend web development, you must learn some form of SQL.
Furthermore, if you want to mine websites for data or if you’re interested in being a data scientist, then Python is a good language to learn. If you want to work for an enterprise, then Java is the way to go. If you’re actually not that interested in building things and you’re more interested in job opportunities, then perhaps SQL is a nice place to start out with (especially if you like math).
Altogether, what programming language you should learn in 2016 will ultimately depend on what you want to do.
Featured
Recent Posts
Monday, 10 October 2016
What Programming Language Should a Beginner Learn in 2016?
It’s not news that STEM talents are in great demand and are paid well. Online postings for software jobs across the U.S. grew 31% from 2007 to 2012 – nearly 3x faster than overall job postings. The US Bureau of Labor Statistics estimates software developer jobs to continue to grow at 22% from 2012~2022, with a median pay of $95,510 for software app developers as of May 2014.
If you’re looking to learn how to code, the sheer number of programming languages may be overwhelming – what language should you indeed learn? This article hopes to give you some pointers by comparing the salary, popularity, and prospective future associated with different programming languages.
Here’s a Fun Quiz to help you decide the best programming language you should learn in 2016
An over view of Programming Languages
Before we go into comparing programming languages, let’s first take a look at the languages we’re going to be covering.
Dynamic Languages
Dynamic languages are generally thought of as easier for total beginners to learn because they’re flexible and fun. You can quickly build an app from scratch with less lines of code, and there is no hard rule on how to write things to behave in the way you want them to.
As dynamic languages are usually very high level languages, you’d spend less time trying to get the details right and more time learning programming concepts, which is another reason dynamically typed languages are popular with beginners who are motivated by being able to build things and see results quickly.
JavaScript
Not to be confused with Java, JavaScript is a primarily client-side scripting language used for front-end development. JavaScript is compatible across all browsers and is used to create interactive web apps, often through libraries such as jQuery and front-end frameworks such as AngularJS, Ember.js, React, and more.
JavaScript can now also be used as a server-side language through the Node.js platform, and while Node.js is relatively new, the community is gaining a lot of momentum. You can also build hybrid mobile apps with JavaScript through using frameworks such as phonegap, while Facebook’s React Native aims to allow you to build native mobile apps with JavaScript.
However, JavaScript is also known to be a difficult language as it is untyped and thus is difficult to debug. There are statically typed versions such as Microsoft’s TypeScript or the JSX that React uses.
Ruby
Developed to make developers have fun and be productive at the same time, Ruby was made popular by the Ruby on Rails framework, a full-stack web framework optimized for programming happiness. As Ruby reads like English and Rails has tools that make common development tasks easier “out-of-the-box”, many would recommend learning Ruby as your first programming language.
Ruby is mostly used for backend development, and popular sites such as Airbnb, Shopify, Bloomberg, Hulu, Slideshare, and more have been built with Ruby on Rails.
Python
Python is another highly recommended language for beginners, and is the most popular introductory language at Top U.S. Universities. Developers have used Python to build desktop apps and web apps alike, and it has great tools for data mining. In addition, Python is particularly popular with the academic community for scientific computing, data analysis, and bioinformatics.
Google, Dropbox, Pinterest, Instagram, Reddit, BitTorrent, Civilization IV, and more have been built with Python.
PHP
PHP is a server-side scripting language and is usually considered beginner-friendly because it’s easier to conceptualize what the PHP code will do, so it’s not difficult to pick up. Most websites have been built with PHP because the language is heavily specialized for the web.
Facebook, Wikipedia, Yahoo!, Tumblr, WordPress, and more have been built with PHP.
Statically Typed Languages
Apps built with statically typed languages are known to be more scalable, stable, and maintainable. Static languages are usually more strict with catching errors through type checking, and it takes more code to build a prototype. Game engines, mobile apps, and enterprise-level backends are usually built with statically typed languages.
Java
As a general-purpose language, Java is used to build Android apps, desktop apps, and games. Java is also commonly used as a server-side language for enterprise-level backend development – 90 percent of Fortune 500 companies use Java.
Furthermore, Hadoop is a popular Java-based framework used for storing and processing big data, and is implemented by enterprises such as Yahoo, Facebook, and Amazon Web Services.
C
C is often used to program system software and is the lingua franca of Operating Systems.
C has influenced almost all programming languages we’ll be examining in this article, especially Objective-C and C++. So, if you know C well, you’d probably have less difficulty picking up other popular languages. Since C takes more complex code to perform simple tasks, beginners may find it tough to keep themselves motivated if they choose it as their first language. However, knowledge of C will definitely help you as a programmer.
Objective-C / Swift {for iOS development}
Objective-C is a layer built on the C language, making it static, but it can also be used for dynamic typing. Apple’s Swift is a static language designed to be compatible with Objective-C, but its static-typing makes it more resilient to errors.
Inspired by Python, Swift aims to be easy for coding newbies to pick up, and has been designed to fix some of the issues of Objective-C.
C++
C++ is a powerful language based on C. It is designed for programming systems software, but has also been used to build games/game engines, desktop apps, mobile apps, and web apps. C++ is powerful and fast, so even Facebook has developed several high performance and high reliability components with it.
Many pieces of software have been built with C++, including Adobe Systems, Amazon, Paypal, Chrome, and more. Much like C, C++ is generally considered harder for beginners to learn on their own, so if you decide to learn C++ as your first language, feel free to look for a mentor via Meetups or find a C++ Codementor.
C#
C# (“C Sharp”) is developed to be used for
Microsoft’s .NET framework, which runs primarily on Microsoft Windows.
C# is used for web development, game development, and general Microsoft development. Although Microsoft was not known for being cross-platform compatible in the past, Xamarin has been working on an open-source project called Mono, which aims to port C# to other platforms and bring better development tools to Linux developers. Recently you can also use C# to build native mobile apps for iOS and Android through Xamarin.
Other
SQL
SQL (“Sequel”), or Structured Query Language, is a query language used to communicate with databases. Although SQL cannot be used to build apps, it is used to manage the data in apps that use relational database manage systems (RDMS).
You Might Also Want to Read: Become a Developer with these 20+ Resources
Job Opportunities
So, now you know a bit about programming languages and perhaps a bit about their perceived difficulty. However, not all languages have the same demand or salary. If your goal in learning how to program is job opportunity and you aren’t going to be dissuaded by how hard people say a language is going to be, here are some pointers to help you figure out what language you should learn.
Based on the salaries estimations from
indeed.com’s analysis of job ads, we can pretty much divide programming languages into nine tiers:
Based on this result, it appears as though Swift will rake you in the most money, while Java, Ruby, Python, C++, and C are also decent choices. In addition, if salary is your concern, then it seems as though JavaScript, C#, SQL, and PHP aren’t ideal choices… or are they?
Average salary can be affected by many things such as demand (how many job postings there are), supply (how many developers know the language) and experience (a junior developer would naturally earn less than a senior developer), so it’s a good idea to take a deeper look at these elements before jumping to any conclusions.
Job Trends
How likely are you going to get a job based on the programming language you know? Here’s a quick look at job trends from indeed.com:
Based on this result, it appears as though Swift will rake you in the most money, while Java, Ruby, Python, C++, and C are also decent choices. In addition, if salary is your concern, then it seems as though JavaScript, C#, SQL, and PHP aren’t ideal choices… or are they?
Average salary can be affected by many things such as demand (how many job postings there are), supply (how many developers know the language) and experience (a junior developer would naturally earn less than a senior developer), so it’s a good idea to take a deeper look at these elements before jumping to any conclusions.
Job likely are you going to get a job based on the programming language you know? Here’s a quick look at job trends from indeed.com:
We can see from here that C, SQL, Java, and JavaScript are often mentioned in job postings, while C#, C++, and Python are also handy languages to know.
However, if your goal is to work at a startup, then perhaps the job trends from indeed.com is not a good indicator. Angel list is pretty much the go-to place for startup job postings, so we’ll take a look at the demand for programming skills based on the software developer ads in Angel listing.
Again, JavaScript turns out to be the most demanded skill, but startups seem to favor Python and Ruby (on Rails) more than Java, C, C++, or C#.
The Developer Supply Market
Let’s take a look at what mentors on Code mentor are skilled at:
Of course, this is by no means an accurate depiction of the actual market, but it should give you a good idea of the situation. As you can see, Objective-C experts are mighty scarce, yet the mobile app business has been booming for some time now. With scarce supply of good Objective-C developers, their compensation would naturally be higher.
PHP, on the other hand, seems to have a healthy amount of supply in the workforce, which means employers would have more choice and thus more bargaining power in terms of salary, but we’ve seen it isn’t as demanded as Java, SQL, or JavaScript. Therefore, PHP developers earn less.
JavaScript is more of a special case. Despite having the most supply, it is not at the bottom of the salary tier, and we’ll take a look at JavaScript later in this article.
Salary Range
Now that you have an idea of what the demand and supply for each language is, let’s take a look at the potential salary you could earn based on salary information from job ads. The data is based on data from gooroo.io, in which salary is usually derived as the average value of the salary range offered by individual job ads.
Here you can see that developers who know Ruby, C++, or Java appear to have higher starting salaries. Python and Ruby seem to have the highest potential salaries, as this means good Ruby/Python developers are scarce and in high demand. JavaScript seems to have experienced a large drop in potential salary, as it reached as high as 188,168 USD as of April 2015, but now it’s at roughly $124k. Nonetheless, JavaScript remains a special case, which will be explained below.
Special Case: JavaScript Frameworks
Just merely comparing the JavaScript language against other programming languages is an inaccurate outlook of how much you can earn if you know JavaScript.
As mentioned in the overview of programming languages, JavaScript is a huge category. Many frameworks have been developed to facilitate front-end website development, so if you just know JavaScript and jQuery, you’d probably earn less than other JavaScript developers who know a JavaScript framework.
Let’s take look at the average salary for different JavaScript framework developers in the US (arguably React & Backbone are libraries, not frameworks, and Nodejs is more of an environment):
Now the average salaries don’t look that bad. React, in particular, has a very nice future outlook. Of course, this is just for you to get an idea, and the indeed.com estimates differ slightly, averaging above 105,000 USD. You’d have to know JavaScript to learn these technologies, which makes JavaScript a rather profitable skill.
Let’s also look at the demand for developers of these frameworks:
Node.js for backend development, so if just speaking of front-end frameworks, you can see AngularJS appears to be a clear winner with rocketing demand. Thus, if you want to get into front-end JavaScript development, you might want to learn AngularJS.
React, on the other hand, is a fairly new technology, and it has been gaining momentum at a speed that rivals AngularJS’s early stages. It’s possibly still in the stage of gaining momentum and may potentially become more widely demanded, as it is in general more performant than AngularJS and thus will provide a better user experience.
Programming Resources
If you know a little about the developer world, then you probably know it’s really important and helpful to have support from other developers, especially if you plan to learn on your own.
Being a part of a supportive community will definitely make your future development life easier.
StackOverflow
StackOverflow is the largest developer community used by developers around the world to help and get help from other programmers, so we’ll naturally be examining how large/popular a programming language is as well as how helpful the community for those languages are.
Language Popularity
Based on the tag followers on StackOverflow, we can see the overall popularity of a language right now:
We already know from examining job trends that Java and JavaScript developers are in highest demand, so it’s no surprise they also have the most tag followers. JavaScript is now the most used tag in StackOverflow, superseding Java.
SQL, Ruby, and Swift have the least followers, though this is a likely because Ruby is almost strictly used for web development, while Swift is a relatively new language.
StackOverflow Answer Rate
StackOverflow has an unspoken rule where you have to phrase your question “correctly”, or people won’t bother answering you. With that in mind, let’s take a look at how likely your question would be answered for each language:
Based on the information above, although fewer StackOverflow users follow C, SQL, and C++, over 60% of related questions get answered. Those in the know would probably argue that C and C++ are advanced languages, which means the users asking the questions are likely more experienced with programming and know how to phrase their questions better. SQL, on the other hand, is not used to build things.
What’s worth taking note of is how supportive Python and Ruby developers are on StackOverflow. Beginners are known to have trouble asking their questions correctly, and as mentioned earlier, Python and Ruby are the most recommended language for beginners. Yet, despite this and despite being relatively popular languages, They both have almost 60% answer rate within 30 days. (Python’s #1 answerer, Martijn Pieters, is also a Codementor.)
On the other hand, PHP, while being quite a widely-followed language, has one of the worst answer rates. This means a lot of people are asking about PHP, but not many are getting their questions answered.
GitHub
Once you get into development, you’ll eventually learn that it’s best to use an existing solution for your own projects if possible. You’d typically get this from open-sourced projects, and GitHub is the way to go for these things. Users can star projects they like, and the more stars a project has, the more useful it is likely going to be.
Thus, from examining data from GitHub, we can also determine the relative ease in developing projects using different types of languages. We can also have an idea of how fast a language is innovating new technologies. Without further ado, here is a simple chart to see the distribution of popular GitHub projects:
Clearly, JavaScript has the most shiny new tools, even if you don’t consider all the style-guides, learning resources, and tutorials. JavaScript is known for being an extremely fast-moving language with a high churn rate for frameworks and new technologies to the point where developers may find it difficult to keep up with JavaScript’s constant innovations. In addition, other than the Node.js platform, JavaScript is mostly used for front-end development, so it’s not directly “competing” with other backend languages such as Ruby, Python, Java, and PHP. With that in mind, it is not surprising that JavaScript would have such a large gap between other programming languages.
Ruby and Objective-C, on the other hand, also have a lot of tools and resources for development. Interestingly, we’ve seen in the StackOverflow comparison that both languages aren’t as widely popular as languages such as Java, but developers have generally found the open source projects more useful. This is especially true for Objective-C if you examine the total projects written in each language:
In a additional, most open source projects written in C/C++ aren’t for C/C++ development itself—they’re just tools written to help development in general (for example, the most commonly used Python interpreter is CPython, which is written in C). As mentioned earlier in the introduction to programming languages, C/C++ are mostly used for developing systems applications, so it makes sense that the open source projects on GitHub are system tools. Nonetheless, you can learn a lot from open source projects.
Finally, PHP is lagging behind in terms of resources available despite being a widely-used language. As for C#, Microsoft has been on a quest to open-source a lot of their services, so it will likely increase its presence on GitHub in the future.
The Future of Each Programming Language
How relevant will a programming language be in the future? First of all, the future of a language will largely depend on the growth of its community, as fresh blood/adoption rate is what keeps a language popular and ensures that it will continue to have resources. Thus, let’s take a look at what languages people are most interested in learning:
Looks like Python, JavaScript, C#, and Swift have received the most growth in interest. Based on current known trends, we can draw the following conclusions:
JavaScript
JavaScript is, without a doubt, just going to become increasingly popular, especially now that it can be used for backend development and can even potentially build native mobile apps (through React Native). JavaScript continues to get more tools and updates at a fairly fast pace, so you can expect it to remain extremely important in the future to come.
Ruby
Startups love Ruby on Rails. Many famous websites such as Airbnb, Twitch, Hulu, etc. are built with Rails, which means they’re going to need Ruby developers. In addition, since developers have fun using Rails and it is fairly easy to pick up, Rails will continue to be popular with coding newbies.
That said, the rise of Node.js will definitely have an impact on the popularity of Ruby on Rails—
Node.js has already overtaken Rails on Github. While this isn’t any absolute sign that Node.js will overtake Rails, we should note that a few years back Rails also overtook Python’s biggest web framework Django for backend development, and Rails had more stars than Django.
Moreover, a new trend for “isomorphic” apps will likely affect Rails adoption, as the practice is said to improve web app performance. Isomorphic apps pretty much need to run on the Node.js platform – which is in JavaScript, the same language used front-end. The appeal of only having to be well-versed in only one language (JavaScript) may also shift some potential new blood away from learning Ruby. Google’s Go is also another backend alternative that is getting some attention.
However, since Rails continues to get frequent updates, it will still remain relevant for a while, especially since it has a loyal community with tons of useful tools to help make development easier. Thus, despite a decline in popularity, Ruby will still be sticking around.
Python
Python is popular with academic researchers and data scientists, and as mentioned before, many schools choose to introduce beginners to coding through Python. This means Python will continue to grow steadily and remain relevant. While Python won’t be evolving as fast or seeing the same explosive growth in popularity and demand as JavaScript, it will continue strong, especially with data scientists in such high demand.
PHP
The trends for backend development has been shifting away from PHP for some years now, but
80% of websites on the web are still built with PHP—it was a language designed for the web, after all.
Nonetheless, if you google what programming language beginners should learn, you’d find that developers generally don’t recommend learning PHP. In fact, many developers apparently hate it.
The PHP community is trying to shake off its bad reputation with new guidelines on how to code PHP the Right Way and with developing new tools, but in general the future of PHP seems rather stagnant as of 2015 (at least in the US). Hopefully PHP7 will revitalize the community, though it is known to be quite fragmented.
Java
Android has been a big boost in keeping Java the most popular programming language, and most enterprises also love Java for its relative stability and scalability.
With the rise of Spark (which uses the Scala language) and Cassandra (which supports other languages) as frameworks to manage big data, it’s hard to say how long Hadoop will continue to reign as the most popular for big data management, but given how large enterprises behave when it comes to change, Hadoop won’t be going away. The same can be said of the Java programming language in general, as Java has excellent tools for backend development and is much more established for enterprise development.
Thus, Java will continue strong as one of the most relevant programming languages in the next few years.
Objective-C/Swift
Since Apple released Swift and Objective-C only works for Apple products, one cannot expect Objective-C to stick around in the future. Swift, on the other hand, will of course be relevant for the years to come as long as you keep using Apple products.
However, this doesn’t mean you shouldn’t learn Objective-C in 2016, since most open-source projects for iOS development are still written in Objective-C. Generally, using something you don’t understand is not a good idea, and it’s not that difficult for you to learn Objective-C if you know Swift or vice versa.
C
C is quite low-level compared to other programming languages, but since it’s the OS
lingua franca it will be sticking around, since many development tools are written in C and Linux is also written in C.
SQL
SQL is almost universally understood by database administrators. For a while, SQL seemed to be losing relevance with the rise of NoSQL services such as MongoDB and Redis, with non-SQL using Big Data computing platforms such as Hadoop, Spark, and Cassandra. Many people were howling about how SQL was dying.
Apparently not any more. As a result, even NoSQL had to reposition itself as “Not Only SQL).
With the rise of big data and the difficulty of managing it, SQL is hotter than ever (as you already know from the job trends). Google has also recently updated its BigQuery service so it can now ingest up to 100,000 rows per second per table, and BigQuery uses SQL. Spark also has the Spark SQL Module since version 1.3.
All in all, SQL is relevant again because it’s needed to manage (not store) big data. Thus, not only is SQL everywhere, but it’s safe to say SQL will continue to be relevant for a while now.
C++
Still considered the most powerful in terms of performance and capabilities (even against Rust), C++ will likely continue to be relevant in certain areas such as things that need high performance (e.g. game engines). A major revision of the current standard (C++14) is expected to be released in 2017, so it’s still an evolving language.
In the future, Rust may potentially replace C++ in some areas of systems programming, as Rust aims to be able to produce less-vulnerable software than C++ does. Read more about how Rust compares to other languages here. It is also
a good time to learn Rust now if you’re an advanced developer.
C#
Being limited to Microsoft platforms and being closed-sourced did not work in C#’s favor in the past, but Mono mostly fixed those issues (though Mono has performance issues, recent updates have improved them).
Developers who’ve worked with C# seem to love the C# programming language, so it has a strong community. Not to mention, C# is the primary language for Unity 3D, a rather popular game engine that could also work on iOS, Linux, etc. The rise of Unity3D as the de facto indie game engine has solidified C#’s future, and Unity3D can also be used to develop Virtual Reality apps. Since VR is a big thing, C# is sure to have a pretty bright future.
On a side note, C# is also more popular for enterprise development in countries other than the US, such as the UK. Obviously Microsoft will keep C# alive for a while and keep it relevant for the .NET platform, and it has been aggressively open-sourcing its products and making it more accessible so developers can adopt it.
Conclusion
What language should a coding beginner learn? Clearly, if you wish to get into web development, you’d inevitably have to learn JavaScript, whether you like it or not. If you want to do backend web development, you must learn some form of SQL.
Furthermore, if you want to mine websites for data or if you’re interested in being a data scientist, then Python is a good language to learn. If you want to work for an enterprise, then Java is the way to go. If you’re actually not that interested in building things and you’re more interested in job opportunities, then perhaps SQL is a nice place to start out with (especially if you like math).
Altogether, what programming language you should learn in 2016 will ultimately depend on what you want to do.
Saturday, 8 October 2016
How
to Learn a Programming Language
If you have an interest in creating computer programs, mobile apps, websites, games or any other piece of software, you'll need to learn how to program. Programs are created through the use of a programming language. This language allows the program to function with the machine it is running on, be it a computer, a mobile phone, or any other piece of hardware
Part One of 6:
Choosing a Language
1. Determine your area of interest. You can
start learning with any programming language (though some are definitely
"easier" than others), so you'll want to start by asking yourself
what it is you want to accomplish by learning a programming language. This will
help you determine what type of programming you should pursue, and provide you
a good starting point.
[1] • If
you want to get into web development, you'll have a whole different set of
languages that you'll need to learn as opposed to developing computer programs.
Mobile app developing requires a different skillset than machine programming.
All of these decisions will influence your direction.
2.
Consider
starting with a "simpler" language. Regardless of your decision, you
may want to consider starting with one of the high-level, simpler languages.
These languages are especially useful for beginners, as they teach basic
concepts and thought processes that can apply to virtually any language.[1]
•
They are two most popular languages in this category are Python and Ruby. These
are both object-oriented web application languages that use a very readable
syntax.
•
"Object-oriented" means that the language is built around the
concepts of "objects", or
collections of data, and their manipulation. This is a concept that is used in
many advanced programming languages such as C++, Java, Objective-C, and PHP.
3 Read
through some basic tutorials for a variety of languages. If you're still not
sure which language you should start learning, read through some tutorials for
a few different languages. If one language makes a bit more sense than the
others, try it out for a bit to see if it clicks. There are countless tutorials
for every programming available online, including many on wikiHow:
•
Python - A great starter language that is also quite powerful when you get
familiar with it. Used for many web applications and a number of games.
•
Java - Used in countless types of programs, from games to web applications to
ATM software.
•
HTML - An essential starting place for any web developer. Having a handle on
HTML is vital before moving on to any other sort of web development.
•
C - One of the older languages, C is still a powerful tool, and is the basis
for the more modern C++, C#, and Objective-C.
Starting small
Part Two of 6:
Part Two of 6:
1.
Learn
the core concepts of the language. While the parts of this step that apply will
vary depending on the language you choose, all programming languages have fundamental
concepts that are essential to building useful programs. Learning and mastering
these concepts early will make it easier to solve problems and create powerful
and efficient code. Below are just some of the core concepts found in many
different languages:
•
Variables - A variable is a way to store and refer to changing pieces of data.
Variables can be manipulated, and often have defined types such as
"integers", "characters", and others, which determine the
type of data that can be stored. When coding, variables typically have names
that make them somewhat identifiable to a human reader. This makes it easier to
understand how the variable interacts with the rest of the code.
•
Conditional Statements - A conditional statement is an action that is performed
based on whether the statement is true or not. The most common form of a
conditional statement is the "If-Then" statement. If the statement is
true (e.g. x = 5) then one thing happens. If the statement is false (e.g. x !=
5), then something else happens.
•
Functions or Subroutines - The actual name for this concept may be called
something different depending on the language. It could also be
"Procedure", a "Method", or a "Callable Unit".
This is essentially a smaller program within a larger program. A function can
be "called" by the program multiple times, allowing the programmer to
efficiently create complex programs.
•
Data input - This is a broad concept that is used in nearly every language. it
involves handling a user's input as well as storing that data. How that data is
gathered depend on the type of program and the inputs available to the user
(keyboard, file, etc.). This is closely linked to Output, which is how the
result is returned to the user, be it displayed on the screen or delivered in a
file.
2.
Install
any necessary software. Many programming languages require compilers, which are
programs designed to translate the code into a language that the machine can
understand. Other languages, such as Python, use an interpreter which can
execute the programs instantly without compiling.
•
Some languages have IDEs (Integrated Development Environment) which usually
contain a code editor, a compiler and/or interpreter, and a debugger. This
allows the programmer to perform any necessary function in one place. IDEs may
also contain visual representations of object hierarchies and directories.
•
There are a variety of code editors available online. These programs offer
different ways of highlighting syntax and provide other developer-friendly
tools.
Part Three of 6:
Creating Your First Program
1. Focus on one concept at a time. One of the first programs
taught for any language is the "Hello World" program. This is a very
simple program that displays the text "Hello, World" (or some
variation), on the screen. This program teaches first-time programmers the
syntax to create a basic, functioning program, as well as how to handle
displaying output. By changing the text, you can learn how basic data is
handled by the program. Below are some wikiHow guides on creating a "Hello
World" program in various languages:
Hello World in Python
Hello World in Ruby
• Hello World in C
• Hello World in PHP
• Hello World in C#
• Hello World in Java
2. Learn through deconstruction of online examples. There are
thousands of code examples online for virtually every programming languages.
Use these examples to examine how various aspects of the language work and how
different parts interact. Take bits and pieces from various examples to create
your on programs.
3. Examine the syntax. The syntax is the way the language is
written so that the compiler or interpreter can understand it. Each language
has a unique syntax, though some elements may be shared across multiple
languages. Learning the syntax is essential for learning how to program in the
language, and is often what people think of when they think about computer
programming. In reality, it is simply the foundation upon which more advanced
concepts are built.
4. Experiment with changes. Make changes to your example
programs and then test the result. By experimenting, you can learn what works
and what doesn't much quicker than by reading a book or guide. Don't be afraid
to break your program; learning to fix errors is a major part of any
development process, and new things almost never work right the first time.[2]
4. Start practicing debugging. When you're programming,
you're invariably going to come across bugs. These are errors in the program,
and can manifest virtually anywhere. Bugs can be harmless quirks in the
program, or they can be major errors that keep the program from compiling or
running. Hunting down and fixing these errors is a major process in the
software development cycle, so get used to doing this early.
• As you experiment with changing
basic programs, you're going to come across things that don't work. Figuring
out how to take a different approach is one of the most valuable skills you can
have as a programmer.
6. Comment all of your code. Nearly all programming languages
have a "comment" function that allows you to include text that is not
processed by the interpreter or compiler. This allows you to leave short, but
clear, human-language explanations of what the code does. This will not only
help you remember what your code does in a large program, it is an essential
practice in a collaborative environment, as it allows others to understand what
your code is doing.
Part Four of 6:
Practicing Regularly
1. Code daily. Mastering a programming language takes time
above all else. Even a simpler language like Python, which may only take a day
or two to understand the basic syntax, takes lots of time to become truly
proficient at. Like any other skill, practice is the key to becoming more
proficient. Try to spend at least some time each day coding, even if it's only
for an hour between work and dinner 😋
2. Set goals for your programs. By setting
attainable but challenging goals, you
will be able to start solving problems and coming up with solutions. Try to
think of a basic application, such as a calculator, and develop a way to make
it. Use the syntax and concepts you've been learning and apply them to
practical uses.
3. Talk with others and read other programs. There are lots
of programming communities dedicated to specific languages or disciplines.
Finding and participating in a community can do wonders for your learning. You
will gain access to a variety of samples and tools that can aid you in your
learning process. Reading other programmers' code can inspire you and help you
grasp concepts that you haven't mastered yet.[3]
• Check out programming forums and
online communities for your language of choice. Make sure to participate and
not just constantly ask questions. These communities are usually viewed as a
place of collaboration and discussion and not simply Q&A. Feel free to ask
for help, but be prepared to show your work and be open to trying different
approaches.
• Once you have some experience under
your belt, consider attending a hack-a-thon or programming jam. these are
events where individuals or teams compete against the clock to develop a
functional program, usually based around a specific theme. These events can be
a lot of fun and are a great way to meet other programmers.
4. Challenge yourself to keep it fun. Try to do things that
you don't know how to do yet. Research ways to accomplish the task (or a
similar one), and then try to implement that in your own program. Try to avoid
being content with a program that "basically" works; do everything
you can to make sure every aspect works flawlessly.
Part Five of 6:
Expanding Your Knowledge
1. Take a few training courses. Many universities, community
colleges, and community centers offer programming classes and workshops that
you can attend without having to enroll in the school. These can be great for
new programmers, as you can get hands-on help from an experienced programmer,
as well as network with other local programmers.
2. Buy or borrow a book. There are thousands of instructional
books available for every conceivable programming language. While your
knowledge should not come strictly from a book, they make great references and
often contain a lot of good examples.
3. Study math and logic. Most programming involves basic
arithmetic, but you may want to study more advanced concepts. This is
especially important if you are developing complex simulations or other
algorithm-heavy programs. For most day-to-day programming, you don't need much
advanced math. Studying logic, especially computer logic, can help you
understand how best to approach complex problem solving for more advanced
programs.
4. Never stop programming. There is a popular theory that
becoming an expert takes at least 10,000 hours of practice. While this is up
for debate, the general principle remains true: mastery takes time and
dedication. Don't expect to know everything overnight, but if you stay focused
and continue to learn, you may very well end up an expert in your field.[4]
5. Learn another programming language. While you can
certainly get by with mastering one language, many programmers help their
chances of success in the field by learning multiple languages. Their second or
third languages are usually complementary to their first one, allowing them to
develop more complex and interesting programs. Once you have a good grasp on
your first program, it may be time to start learning a new one.
• You will likely find that learning
your second language goes much quicker than the first. Many core concepts of
programming carry over across languages, especially if the languages are
closely related.
Part Six of 6:
Applying Your Skills
1. Enroll in a four year program. While not strictly
necessary, a four year program at a college or university can expose you to a
variety of different languages, as well as help you network with professionals
and other students. This method certainly isn't for everyone, and plenty of
successful programmers never attended a four-year institution.
2. Create a portfolio. As you create programs and expand your
knowledge, make sure that all of your best work is saved in a portfolio. You
can show this portfolio to recruiters and interviewers as an example of the
work you do. Make sure to include any work done on your own time, and ensure
that you are allowed to include any work done with another company.
3. Do some freelance work. There is a very large freelance
market for programmers, especially mobile app developers. Take on a few small
freelance jobs to get a feel for how commercial programming works. Oftentimes
you can use the freelance jobs to help build your portfolio and point to
published work.
4. Develop your own freeware or commercial programs. You
don't have to work for a company to make money programming. If you have the
skills, you can develop software yourself and release it for purchase, either
through your own website or through another marketplace. be prepared to be able
to provide support for any software you release for commercial sale, as
customers will expect their purchase to work.
• Freeware is a popular way to
distribute small programs and utilities. The developer doesn't receive any
money, but it's a great way to build name recognition and make yourself visible
in the community.
Tips
• If you are interested in game
programming, investigate Python, C++, and Java. Of the three, C++ is probably
the best performer, Python by far the easiest to learn, and Java best able to
run on Windows, Mac OS, and Linux without change.
• Learn about Free software. Study
the source code of the programs available at the Free software directory. Why
re-invent the wheel when you can make it better? Just make sure you understand
what you're programming.
• For most people, programming
something that interests them or that they can use is more interesting than
textbook examples. Use a search engine to find out about projects that interest
you.
• When you learn something new, it is
often helpful to implement it yourself and then tweak the design, predicting
the results, to make sure you understand the concept.
• Make use of up-to-date application
programming interfaces and official reference materials available from the
software publisher.
• References are there to help you.
Don't be ashamed if you don't remember everything by heart; that comes with
time. The important thing is knowing where to find reference material.
• For practical, try to teach others.
It will not only make you more competent but let you think more deeply from
different perspectives.
Posted By 24repoters.com
Thursday, 6 October 2016

JavaScript; is a lightweight, interpreted programming language. It is designed for creating network-centric applications. It is complimentary to and integrated with Java. JavaScript is very easy to implement because it is integrated with HTML. It is open and cross-platform.
Audience
This tutorial has been prepared for JavaScript beginners to help them understand the basic functionality of JavaScript to build dynamic web pages and web applications .
Prerequisites
For this tutorial, it is assumed that the reader have a prior knowledge of HTML coding. It would help if the reader had some prior exposure to object-oriented programming concepts and a general idea on creating online applications.
Execute JavaScript online for most of the examples given in this tutorial you will find Try it option, so just make use of this option to execute your JavaScript programs at the spot and enjoy your learning.
Try following example using Try it option available at the top right corner of the below sample code box −

What is JavaScript ?
Javascript is a dynamic computer programming language. It is lightweight and most commonly used as a part of web pages, whose implementations allow client-side script to interact with the user and make dynamic pages. It is an interpreted programming language with object-oriented capabilities.
JavaScript was first known as LiveScript,but Netscape changed its name to JavaScript, possibly because of the excitement being generated by Java. JavaScript made its first appearance in Netscape 2.0 in 1995 with the name LiveScript. The general-purpose core of the language has been embedded in Netscape, Internet Explorer, and other web browsers.
TheECMA
-262 Specification defined a standard version of the core JavaScript language.
JavaScript is a lightweight, interpreted programming language.
Designed for creating network-centric applications.
Complementary to and integrated with Java.Complementary to and integrated with HTML.
Open and cross-platformClient-side JavaScriptClient-side JavaScript is the most common form of the language. The script should be included in or referenced by an HTML document for the code to be interpreted by the browser.
It means that a web page need not be a static HTML, but can include programs that interact with the user,control the browser, and dynamically create HTML content.
The JavaScript client-side mechanism provides many advantages over traditional CGI server-side scripts. For example, you might use JavaScript to check if the user has entered a valid e-mail address in a form field.
The JavaScript code is executed when the user submits the form, and only if all the entries are valid, they would be submitted to the WebServer.
JavaScript can be used to trap user-initiated events such as button clicks, link navigation, and other actions that the user initiates explicitly or implicitly.
Advantages of JavaScript
The merits of using JavaScript are −Less server interaction− You can validate user input before sending the page off to the server. This saves server traffic,which means less load on your server.
Immediate feedback to the visitors− They don't have to wait for a page reload to see if they have forgotten to enter something.
Increased interactivity
− You can create interfaces that react when the user hovers over them with a mouse or activates them via the keyboard.
Richer interfaces
− You can use JavaScript to include such items as drag-and-drop components and sliders to give a Rich Interface to your site visitors.
Limitations of JavaScript
We cannot treat JavaScript as a full-fledged programming language.
It lacks the following important features −Client-side JavaScript does not allow the reading or writing of files. This has been kept for security reason.
JavaScript cannot be used for networking applications because there is no such support available.
JavaScript doesn't have any multi threading or multiprocessor capabilities.
Once again, JavaScript is a lightweight, interpreted programming language that allows you to build interactivity into otherwise static HTML pages.
JavaScript Development
Tools One of major strengths of JavaScript is that it does not require expensive development tools. You can start with a simple text editor such as Notepad. Since it is an interpreted language inside the context of a web browser, you don't even need to buy a compiler .
To make our life simpler, various vendors have come up with very nice JavaScript editing tools. Some of them are listed here −
Microsoft Front Page
− Microsoft has developed a popular HTML editor called Front Page. Front Page also provides web developers with a number of JavaScript tools to assist in the creation of interactive websites.
Macromedia Dreamweaver MX−
Macromedia Dreamweaver MX is a very popular HTML and JavaScript editor in the professional web development crowd. It provides several handy pre built JavaScript components, integrates well with databases, and conforms to new standards such as XHTML and XML.
Macromedia Home Site 5−
home site 5 is a well-liked HTML and JavaScript editor from Macromedia that can be used to manage personal websites effectively.
Where is JavaScript Today ?
The ECMA Script Edition 5 standard will be the first update to be released in over four years. JavaScript 2.0 conforms to Edition 5 of the ECMA Script standard, and the difference between the two is extremely minor.
The specification for JavaScript 2.0 can be found on the following site: http://www.ecmascript.org/ Today, Netscape's JavaScript and Microsoft's JScript conform to the ECMA Script standard, although both the languages still support the features that are not a part of the standard.
Posted By Ahmad Abdullahi Adamu
Sunday, 2 October 2016
![]() |
| SATAN A.K.A DEVIL |
Satan
is real, Satan Is devil, he exist now, then and later, (Quote by Nasiru A
Ahmad)
The
devil goes by many names — Satan, the Prince of Darkness, Beelzebub and Lucifer
to name a few — but besides this list of aliases, what do people really know
about the brute? That is, how did the story of Satan originate?
Many
ancient religions have scriptures detailing the struggle between good and evil.
For instance, in the Zoroastrian religion, one of the world's earliest, the
supreme deity, Ormazd, created two entities: the chaotic and destructive spirit
Ahriman and his beneficent twin brother, Spenta Mainyu, said Abner Weiss, a
psychologist and the rabbi at the Westwood Village Synagogue in Los Angeles.
"The
ancient world struggled with the coexistence of good and evil," Weiss told
Live Science. "They hypothesized a kind of demonic, divine force that was
responsible for evil, arising out of the notion that a good god could not be
responsible for bad things."
However,
Satan was not a prominent figure in Judaism. In Hebrew scripture, a demon-like
figure appears only in the Book of Job. In that book, an "adversary"
or "tempter" asks God whether the prosperous man Job would continue
to praise God after losing everything. God takes up the challenge, and strips
Job of his wealth and family, leaving the man wondering why such a horrible
fate befell him.
But
in this story, God wields more power than this adversary; as such, this evil
tempter challenges God, who then takes away Job's fortune, Weiss said.
"[Judaism]
found the notion of God having to share authority as limiting the omnipotence
and even the omniscience of God," Weiss said. "And therefore, Satan
was never personified as a source of evil that was equally powerful."
But
Satan did become a part of certain Jewish sects beginning around the time of
the Common Era, when Jesus was born, Weiss noted. Moreover, Judaism's mystical
teachings, called the Kabbalah, mention a light side and a dark side, but the
dark side is never given equal power to the light, Weiss said.
Christianity's devil
Any
Sunday school student can tell you that Satan is a fallen angel, but this fall
actually isn't described in the New Testament,
or the Christian bible, said Jerry Walls, a professor of philosophy at Houston
Baptist University and author of "Heaven, Hell and Purgatory: Rethinking
the Things That Matter Most" (Brazos Press, 2015).
However,
Satan suddenly appears in the gospels as the tempter of Jesus, with nary an
introduction of how the evil presence got there. So, Christian theologians have
come to this conclusion: If God
created the universe, and everything God creates is good, then Satan
must have been something good that went bad, Walls said.
"The
only thing that can go bad by itself is a free being," Walls said.
"Since there was evil before human beings came on the scene, the inference
is [Satan] must
have been a fallen angel."
There
are other references to Satan in the Bible, depending on different
interpretations. The Hebrew Bible has two passages about people who aren't
respectful toward God. In these passages, Isaiah 4 and Ezekiel 28, human rulers
make outrageous boasts, and some Christians interpret these actions as
expressions of Satan, Walls said.
Moreover,
the gospel of Paul in the New Testament refers to the snake from the Garden of
Eden as Satan, though the snake isn't described that way in Genesis, Walls
said. In this sense, the snake and Satan can be seen as tempters that try to
get people to disobey God, but aren't always successful, Walls said. [Spooky! Top
10 Unexplained Phenomena]
"The
first Adam fell to the temptation of Satan," Walls said. "Christ is
described as the second Adam, who successfully resisted temptation."
Satan as "the enemy"
Satan
can also emerge as the enemy — the "other," or an "outside"
group.
"I
thought of Satan as a kind of a joke, kind of a throwaway character," said
Elaine Pagels, a professor of religion at Princeton University and author of
"The Origin of Satan" (Random House, 1995). "In the Book of Job,
he's practically a device to explain what happened to Job."
The
Hasids, a Jewish sect whose name translates into "The Holy Ones,"
were the first group in Judeo-Christian
history to seriously discuss Satan, she said. The Hasids lived just
before the Common Era and didn't like how the Romans and some of their Jewish
collaborators ruled their country, Pagels said.
So,
the Hasids withdrew from Jewish society and began preaching about the end of
times, when God would destroy all of the evil people, "which meant all of
the Romans and all of the Jews who cooperated with them," Pagels said.
The
Hasids took a radical position: They said that they were following God, while
their enemies had turned to the dark side,
possibly without even knowing it. "So now, it's the 'Sons of God' against
the 'Sons of Darkness,'" Pagels said. "It's a split Jewish
group."
At
this point of her research, Pagels had an epiphany, she said: The concept of
Satan emerges when communities split. Radical groups want a clean break between
themselves and their enemies, and so they describe their enemies as Satan, as
devils who will one day face God's wrath.
"I
realized that when people talk about Satan — like if somebody says, 'Satan is
trying to take over this country' — they're not thinking of some supernatural
battle up there in the sky," Pagels said. "They can give
you names and addresses. They know whom they're talking about."
For
instance, extremists might say, "America is the Great Satan." That's
because "when people talk about Satan, they're talking about people,
too," Pagels said.
The
Hasids likely had a big influence on early Christianity, because Jesus and John
the Baptist preached similar ideas to those of the Hasids. That is, they said
that the end of the world was coming and that God wouldn't tolerate evil
people, Pagels said. This meant the Romans and the people working with them,
she said. [Supernatural
Powers? Tales of 10 Historical Predictions]
Turning
an enemy into Satan is useful, she added. It suggests that "our opponents
are not just people we disagree with — they're bad. You can't negotiate with
them. You can't do anything with them, because they're essentially evil."
Satan
(Devil) In Islam
According
to Wikipedia Satan In Islam, the Devil is known as Iblīs (Arabic:
إبليس,
plural: ابالسة
abālisah),
Shayṭān (Arabic:
شيطان,
plural: شياطين
shayāṭīn) or Shaitan. He is a Jinn who refused to
kneel before Adam.
The primary characteristic
of the Devil is hubris.[1]
His primary activity is to incite humans and jinn to commit evil through deception,
which is referred to as "whispering into the hearts".[2]
The Quran
mentions that Satans are the assistants of those who disbelieve in God:
"We have made the evil ones friends to those without faith."

