Beginner programmers today are faced with an overwhelming selection of programming languages to choose from. The selection of a user’s first programming language requires some prior knowledge or experience with programming to begin with and often has an impact on the rest of their programming journey [1].
Programming languages tend to be hard for beginners to learn due to their rigid syntax and rules [2]. They also evolve rapidly, causing many to become obsolete [3]. This means there is a daunting decision that an individual needs to make when they want to start coding: what programming language do I choose to learn first?
This is no trivial decision – recently, many higher-level educational institutions have been reevaluating which programming languages to teach their students in their intro classes [4], showing just how much they value this decision. But not everyone has access to these institutions – in fact, many younger generations have a more “DIY” attitude to learning programming [5], and thus need quality online information to choose a first programming language. This topic is heavily debated as people have different opinions about which programming languages have the best overall features, user experience, and learnability [3].
There are also many individualized variables that are important to factor in: How old are they? Do they have experience with basic CS concepts or not [6]? What purpose are they learning programming for, and will the language teach them skills that are useful for that objective [7]? For instance, students who started with graphical programming languages had higher grades than those who started with textual programming languages when exposed to programming in or before early adolescence [8].
One thing that is universally agreed upon is that a person’s choice of the first programming language will profoundly impact their future experience with programming and the level they take it to [1]. As such, we deliberately brainstormed several programming language categories and representatives from these categories to include in our project tailored for the beginner.
The programming categories we considered in this project are:
General Programming
Web Design
Functional / Mathematical
Low-level / Performant
The programming languages we considered in this project are:
Python
C/C++
HTML + CSS
Javascript
Java
MATLAB
R
Go