Many big tech companies still expect new hires to have a knowledge of the fundamentals of programming, despite coding jobs increasingly being platform-based. So how important is theory, really?
The question of how important programming theory is to real-world software development is a divisive one within the developer community, and you don’t have to go far to find people arguing on both sides.
Many large tech companies still base their hiring decisions on a candidate’s understanding of the fundamentals of programming, much to the chagrin of developers who have learned to code but don’t have a computer science degree, where much of this is taught.
Online coding courses and so-called bootcamps have exploded in popularity in recent years among those looking for a fast lane in software development. These crash courses typically focus on a specific programming language or platform, which students will learn to use over the course of several weeks.
Although they can be a practical choice for someone looking for a mid-life career change, or for someone who has neither the time nor the money to take a computer science degree from two to four years, online courses rarely leave students with an understanding of programming fundamentals. It can be a nasty surprise when it shows up in the interview process.
“If a person has spent their career learning programming by doing – what we could say is the way most people learn to program these days, including me – these theoretical questions can be extremely difficult to answer. respond, giving the impression that these processes are inefficient and even unfair to a certain extent, ”says Bruno Rocha, iOS developer and editor for the SwiftRocks programming blog.
Rocha recently written on the subject the fundamentals of programming and their importance to a successful career in software development.
SEE: The best and worst programming languages to learn (TechRepublic Premium)
He points out that while mainstream tech companies have continued to see programming as a generic concept, newer companies have more practical and focused platform needs, which is exactly the type of work that style courses do. bootcamp are designed to fill.
“In short, the interview process for these companies is considerably different from the average, the former being more theory-driven and the latter more practical concepts.”
Much of the anger with tech companies that demand an understanding of computer science stems from the fact that it is widely seen as unnecessary for the types of tasks a coder will actually have to do in the course of their job.
The brief explanation is that theoretical knowledge is unnecessary for most jobs these days, says Rocha. “While they provide a big boost to your programming ability, it is safe to say that from a career needs perspective, it is not necessary to master programming generically if their job is to code for a specific platform, like the web or iOS. “
Of course, the importance of this knowledge also depends on where or for whom a budding developer wants to work.
A common misconception is that the work done by software giants is the same as that of an average tech company, but that’s not true, says Rocha. “Even though the work may be technically the same, these companies have significantly different needs and goals, and I think it’s very important to consider and understand these differences when setting your career goals.” , he adds.
Tom Crick, professor of digital education and politics at Swansea University, says people are becoming increasingly skeptical of tech giants.
, which is not necessarily an accurate way to determine a candidate’s basic skills.
“It’s pretty attritional,” says Crick. “Some people like it as a badge of honor. But in fact, I think if we talk about this transition from a software engineering graduate to their first job, what are the expectations regarding their skills, knowledge and understanding? , and what could they actually demonstrate? “
Crick believes college programs have a role to play in better preparing graduate developers for employment, noting that most large companies expect a candidate to have “a good degree from a good college.”
In that case, current software engineering programs might need a revamp, with Crick noting that many UK universities have simply changed their computer science degree to accommodate more software-oriented programs.
“The software engineering program has developed as ‘let’s adjust the computer science degree and add a little more software-like stuff’,” he says.
SEE: C ++ Programming Language: How It Came The Basis Of Everything And What’s Next (Free PDF) (TechRepublic)
“You actually start to see, especially with the demand for people to program in a range of different industries… the kind of knowledge and expertise goes all the way, you need programming skills, you need need some sort of formal type of theoretical knowledge, but you also need to be able to understand what this means for designing software for user-centered design, and how it can be used in a variety of ways. from different contexts. “
When it comes to practical versus theoretical knowledge, Crick says it’s not one or the other – neither compare to the other in terms of the experience they offer. , and each has its individual merits.
However, Crick also believes that just like any technical discipline, mastering software engineering requires theoretical knowledge – knowledge that developers won’t get in a heavy online course. “I get quite frustrated when people say that you just need to be able to program and you don’t have to do all that theory stuff, because the theoretical stuff is also very important in understanding what mistakes have been made. committed in software for years and years, ”he says.
“There is a pragmatism around [the fact that] you can’t be an expert after going through an eight week or three month program. It’s just the reality; it’s just impossible. “