Does everyone really need programming?
Back in 1981, Soviet scientist Andrey Ershov – one of the pioneers in programming – presented a report titled “Programming, the Second Literacy” at the IFIP 3rd World Conference on Computers in Education in Lausanne, Switzerland. In his speech, he compared the spread of book-printing to the development of technology, coming to a conclusion that if the development and spread of book-printing led to increase in literacy, the spread of computers will result in more people being skilled in programming.
The report’s title had quickly become a slogan, and soon programming and computer science were taught to schoolchildren under its banner.
Nearly 25 years later, a study by specialists from Carnegie Mellon University predicted that by 2012, 55 million out of 99 million employed citizens in the USA will be using digital spreadsheets and databases, which is programming at its most basic. Analysts noted: many people are involved with programming without even knowing it, for instance, by using macros in spreadsheets or SQL queries in databases.
But how successfully can these non-programmers use these basic skills in their day-to-day work? Practice shows that only few of those we can assume to be familiar with basic technology can actually apply their skills. For example, Brian Dorn, then a Master’s student at Georgia Tech, decided to see whether professional graphic designers can write a basic computer program and asked them to read and modify a segment of code.
The designers had begun to look for information on the web, but often ended up looking for the wrong things: some searched for Java tips even though the project used JavaScript. The experiment is described in the article “Should Everybody Learn to Code?” which was published in Communications journal in 2011. The author’s conclusion is that this state of affairs might have to do with a lack of basic understanding of computer and software structures.
In the recent years, the demand for programming courses has been growing steadily. According to the educational marketplace Courseburg, the demand for programming education has increased by 50% in 2017. Russian users are most interested in courses on Java, PHP, JavaScript and Python. As of now, the most common search queries are for “programming courses for newcomers”, “programming courses for schoolchildren”, “Python courses”, and “JavaScript courses”; courses on web development and design are also popular. The demand for Java and PHP courses, meanwhile, has lost steam.
Learning programming from square one
Today, many specialists – from designers and journalists to economists and entrepreneurs – are learning programming. Leo Grand, a homeless man from New York City, learned to code in four months and launched his own app. Many, including professional programmers, begin their training on their own using books and free online courses.
This was the conclusion drawn by researchers from HackerRank in their 2018 Developer Skills Report. The study is based on a survey of 39,400 developers from 17 countries. It has shown that a majority – 73.7% – of programmers are self-taught. The UK has the largest (10.7%) share of programmers who began honing their coding skills at the ages of 5-10. In Russia, that number is 7%. Still, there are quite a few “late bloomers” who only wrote their first lines of code after they turned 26. This, however, did not seem to impede their careers, with 36% of them being currently employed as lead and senior programmers.
One of the most popular sources of new knowledge among the respondents was the website Stack Overflow, a popular community where developers share tips and help each other out with programming questions. This is the most popular source of info among developers in all age groups. The second favorite depends on their age – programmers under 35 prefer YouTube, while those over 35 choose to use books.
Reasons to learn
It’s of utmost importance that you decide why you’re going to learn programming, says Ivan Loginov, assistant at ITMO’s Department of Informatics and Applied Mathematics.
“There’s a reason why it takes a great deal of time to teach someone a trade. A learner has to be immersed in the process the same way as if it were a full-time job. So if you’re looking to change your field of work, you need to realize that it’ll take a lot of effort – planning your education, finding materials, online courses, applying to a university,” – he explains.
On the other hand, if you just want to learn a skill to expand your abilities, you need a different approach.
“Let’s say that one of the types of work this person will have to do is local process automation,” – continues Ivan Loginov, – “For example, the creation of documents in office suites like Microsoft Office can be somewhat automatized using VBScript. If you learn how to use it, you can carry out a number of tasks much more efficiently, like fill out forms using data from other sources. And you won’t even need to get a professional programmer to do it, which might be costly or unreasonable.”
In this kind of situation, you don’t need professional training – self-education will do just fine, as will remote lessons and talking to specialists in online communities. It’s better to start with high-level languages that already have a massive community of experts.
“If we’re talking about programming as a way to boost one’s skillset, it’s better to start with high-level programming languages with sizeable communities, like Python, JavaScript, Java, or C#: the choice depends on what sorts of tasks you’re going to be working with. These are all popular languages, well-documented and adapted for all platforms. And there’s a chance that they may already have the functionality required for tasks in your specific subject area. In that case, you’ll just need to learn the language and study the manuals and cases to see how to achieve the right results,” – says Loginov – “A large community is they key factor here. You need it so that a solution to some task doesn’t leave the newcomer at a dead end.”
He notes that this approach makes the education process much quicker, but one should keep in mind that it doesn’t make the user a professional developer – although it lays a foundation for that.
Future prospects
In the future, understanding of basics of programming and knowing how to use technology will become a requirement for many non-technical occupations, says Andrey Sebrant, Product Marketing Director at Yandex. Programmers, in the meantime, will need to enrich their skillset with other knowledge, including communication skills.
Even today, those who choose to have a career in programming shouldn’t do that just because it’s “trendy”, says senior developer at Yandex Nikolai Filchenko. Today, getting into programming takes time: one needs to study constantly and keep an eye on the latest technology.
“If you really like programming, where you learn programming languages and algorithms is not as important as whether you’re ready to spend lots of time on it. The field changes at a fast pace, and if a programmer fails to keep up with all these changes, they will soon find themselves on the periphery,” – says the developer.