Monday 21 September 2020

Programming is not for everyone

The idea that everyone  should learn to code has been gaining ground in the tech community lately. But there is one problem: programming is not new literacy.

If you periodically pay attention to the cultural scams of Silicon Valley , then you have certainly heard of the "Learn to Code" movement. Politicians, nonprofits like  Code.org , and even former New York City Mayor Michael Bloomberg are promoting what they see as a skill that will soon be needed by the entire working-age population.

Perhaps this is partly true.

But the real picture is somewhat more complicated.

We live in an ultra-competitive world in which people resort to any means to make ends meet. And it’s totally unfair to sell programming as a ticket to economic salvation for the masses.

Let's take bootcamps for programmers. The success of Silicon Valley software engineers has become a role model, into the mainstream, and today many people dream of starting a startup or becoming an engineer . HBO shows us programmers under their thirties who code at night while making millions of dollars. The American public is fascinated by characters like Elon Musk and Mark Zuckerberg , who seemingly make fortunes overnight. Programming fever has penetrated even the White House, and President Obama push  to include informatics in the general education curriculum.

And for some inexplicable reason, it's not just bootcamps and politicians who encourage people to learn to code.

A powerful chorus of voices echoes this idea from all walks of life, from Hollywood to the luminaries of science and technology. But despite this growing euphoria, I am very skeptical about all these bootcamps. Although our culture has developed a highly attractive image of Silicon Valley, and glossy bootcamp brochures promise well-paying jobs, many of these organizations are not accredited, they do not publish job statistics, and do not care about the employment of their graduates. Yes, there are many bootcamps that enter into agreements with employing companies, but many more are run by vendors of a miraculous panacea who profit from the desperation of the average American.

Don't get me wrong: I believe that programming and development skills are really important. But only in the appropriate context, and only for those people who are ready to achieve success in this matter with sweat and blood. The same can be said for many other skills. So I urge everyone to learn not to program, but to dive deeply into the subject.

If all the attention is focused on the code, then the task of choosing the “right” method for solving a problem overshadows the importance of understanding the problem itself.

Before we start working on a software solution to any problem, we must decide what it is - and whether it is a problem at all. If we allow ourselves to dwell on solving it with the help of code, regardless of whether this problem is related to programming or not, we will lose sight of reason , then we won nothing. I have a close friend from Stanford who once won the Association for Computing Machinery International Programming Championship. And he says that the most important thing that he learned during the championship is the need for a deep understanding of the problem that you are trying to solve is computer engineering a good major.

You have to ask yourself "Is there a problem?" and "Can the Feynman-Taft principle be applied   to explain this problem so that others can understand you?"

A friend of mine told me that even in elite schools, students only read an assignment with a description of the problem once, and then immediately start writing code.... The year my friend won the championship, he learned that even these elite students rush to solve complex problems using the only tool - programming. And he wrote the code only after carefully considering the task at hand. Almost all the time allotted for solving the problem, he spent thinking. And he began to write code only a few minutes before the end. 

He became a champion.

He knew that a hasty typing of the code would not solve the problem; he needed to approach the solution in a cool and collected manner.

The overly emphasis on coding ignores the plight of today's developers. 

In this industry, technology is changing rapidly.

Just a few years ago I used Objective-C, and now I write exclusively in Swift. Developers who have not written a single line in Objective-C are looking for jobs today. Swift is easier to learn, safer, uses modern development paradigms, and is much more elegant than Objective-C. It's great that new developers don't have to deal with the downsides of Objective-C, but it doesn't take into account the harsh realities of the profession.

Developers need to learn quickly, with minimal supervision, and with slightly more motivation than the rumble of the firing guillotine. Someone will say that this is only one of the costs of the profession. But if modern developers get frustrated and start to lag behind - and there are enough indications that they are - then why inspire people to get involved in all this uncertainty? What happens to the person who studied Objective-C day and night only to be horrified by the Swift announcement at WWDC 2014? Will they continue to program in what is quickly becoming a little-used language, or will they start all over again? If you are under thirty, then you are unlikely to face great difficulties. But if you need to feed your family and pay bills, then it becomes a titanic task.

In situations like this, people face all these difficulties without deep knowledge of programming or design. 

If you are learning programming , it will not be easy for you to start making money from it.

Seriously.

I spent over a year self-taught before I could become a freelancer. And the earnings were low. I failed countless interviews because I didn't have a computer programmer diploma.

There were times when I had nowhere to live and had to rely on the kindness of my friends. There were many nights when I wanted to give it all up. But I found the strength to continue.

It was - and is - perseverance, it was she who allowed me to stay in this area.

The truth is, you can't just pick up and do development, even as an intern. You will need connections, people to vouch for you, you need to maintain a GitHub account, and more. Despite the improvement in equality of opportunity, if you are an underrepresented minority, then you need to initially be twice as good as everyone else. And this is only in order to withstand the competition. 

No comments:

Post a Comment

What You Can Model with the Heat Transfer Module

Conduction, Convection, and Radiation Analyses The Heat Transfer Module can be used to study the three types of heat transfer in detail, exp...