There's been a lot of chatter about the need for developers recently, including the strong job prospects and the utility of developers in almost every industry. But for those interested in getting started, knowing the best first programming language to choose can be daunting.
Making the Decision
Many beginners first look at the popularity of a language; the index from TIOBE gives an overview of the popularity of 100 different programming languages, and can be a good place to start. But while popularity can indicate how easy it can be to get a job developing in that language, it's only part of the story. Factors like ease of use, beginner-friendliness and community size are also important.
Ease of Use
Similar to a language's ease of use is how beginner-friendly it is. Is it designed to be learned quickly? Is it easy to get a basic understanding of what a piece of code is doing without learning the vocabulary and syntax first? Programming languages with syntax and vocabulary similar to English tend to be very beginner-friendly for English-speakers.
Learning a programming language that's easy to use means spending less time troubleshooting problems, less time struggling with syntax and more time focusing on designing the program itself. A number of factors can contribute to a language's difficulty, including complex vocabulary and syntax or poor documentation.
How large and active is the language's community? This is tied to popularity; the more popular a programming language, the larger and more active its community tends to be. A large, active community is a good place for a novice developer to ask questions and find answers.
A quick glance at the TIOBE index gives an idea of Java's popularity, and the IEEE Spectrum confirms that Java is a popular language among developers. In addition, PayScale reports the median salary for a Java developer as $70,772, slightly higher than median salaries for many other programming languages. Java is also used by a large number of well-known companies, reports Gabriela Motroc of JAXenter, including Twitter, Square, Amazon, Google, Netflix and eBay. Many Android apps are written in Java too.
“It has become common knowledge that the majority of Fortune 500 companies use Java,” writes Motroc. “But Java is not only about popularity—it's about power and speed.”
Not only is Java popular, it also is powerful and continues to evolve. As features continue to be added to the language, it becomes increasingly powerful.
Some of that power means that Java is a little complex, but it gives learners tools that can be translated to other languages.
“Java is a slightly complex programming language for the beginners,” says Kavita Iyer of TechWorm. Despite this, it can be an excellent first programming language because “it has a fundamental set of core concepts that will help you as you move to other languages and technologies.”
Java also has the advantage of a large and thriving community. In Stack Overflow's 2016 Developer Survey, Java is the third-largest community on the popular developer website. This means that junior developers interested in learning Java have a large knowledge base to draw upon when they need help.
C# / .NET
C#, like Java, is also highly ranked and highly regarded. TIOBE and the IEEE Spectrum rate it at No. 4 and No. 6, respectively, in terms of popularity in 2016, very close to Java's No. 1 and No. 2. PayScale reports the median salary for a C# developer as $66,244, also very close to that of a Java developer. C#, though, has a significant advantage as a first programming language: Microsoft support.
C# was originally created to support Microsoft's .NET framework. While this initially meant that C# was restricted to use on Microsoft platforms, that has changed. Microsoft's .NET Core allows for development on Windows, Linux and macOS, while Xamarin provides an open source solution for Android and iOS development. Microsoft's use of C#, as well as its use by companies like Starbucks and LEGO, means that C# will likely continue to receive support for a long time.
Also contributing to this need for C# developers is the fact that C# is the preferred programming language of many video game developers who work with Unity. As of 2016, 34 percent of top mobile games run in Unity, and it's quickly becoming a go-to game engine for mobile and indie game developers. At present, there are more than 5 million registered Unity developers in the video game industry, an industry that is expected to grow to $128 billion by 2017, according to Gartner. Even Blizzard Entertainment's Hearthstone, a game with 50 million active players, runs in Unity.
Beyond its popularity, C# is also designed to be easy to learn as a first programming language. Its grammar and syntax are closer to English than those of many programming languages, and “C# abstracts away (i.e. handles for you) most of the complex details of the machine (computer) so you can focus on programming instead of worrying about the little details many consider both tedious and difficult,” says Codementor. Stack Overflow's 2016 Developer Survey also lists C# as its fourth-largest community, just behind Java.
It's worth mentioning HTML despite the fact that it's a markup language and not a programming language. Ben Romy of Infospace explains the difference: “[HTML] encapsulates, or ‘marks up' data within HTML tags, which define the data and describe its purpose on the webpage. The web browser then reads the HTML, which tells it things like which parts are headings, which parts are paragraphs, which parts are links, etc. The HTML describes the data to the browser, and the browser then displays the data accordingly.”
Romy continues, “HTML contains no programming logic. It doesn't have common conditional statements such as If/Else. It can't evaluate expressions or do any math. It doesn't handle events or carry out tasks. You can't declare variables and you can't write functions. It doesn't modify or manipulate data in any way.”
So why mention it? Because there are some very good reasons to learn HTML in addition to other languages.
First, while HTML doesn't involve programming, it does involve coding. Coding in HTML can help develop good habits, such as keeping an eye out for errors and using comments, which help developers be better, more effective employees. Many of Hongkiat's good programming habits can be developed while learning HTML. HTML is also considerably easier to learn than most programming languages, and a wealth of information and documentation about the language exists.
A second good reason to learn HTML applies primarily to those interested in developing for the web: The internet runs on HTML. Web browsers read HTML, so even programming languages designed to work with the web — like C# and Java — output HTML code that a browser can read. Having a foundation of knowledge for HTML code can help developers better understand the relationship between code compiler and browser, giving them tools to troubleshoot problems more effectively.
Where to Learn Your First Programming Language
Regardless of whether you choose to learn Java or C#/.NET, The Software Guild's coding bootcamp can help. The Software Guild offers a 12-week full-time program or a nine-month online program as a part-time option, so you can learn your first programming language with the help of skilled instructors at a pace that works for your life. Upon completion, you'll be prepared for junior developer positions in either Java or C#/.NET.
Why wait to start your programming career? Apply to the coding bootcamp today!