Owl code - Learning what matters

Owl Code is a platform for students in India to learn what really matters for their knowledge and their interesting careers. You can get started too by signing up for free here at owlcode.org.

Here let us know why everyone should learn how to code in this generation. And why coding is not neccessary for everyone.

One of the most fascinating debates I have been observing with key intent on the Internet, is the question: should everyone know how to code? Should programming be placed on the same pedestal as reading and writing when it comes to essential skills? Will it become so essential that you cannot get any opportunities without an intuitive idea of coding?

The Internet has widely debated this topic and there is extensive arguments on both sides. Rather than simply shoving my opinion down your throat, I propose to provide the most compelling arguments each side has to offer on this issue, and then it is up to you, the reader to decide your opinion based on what I offer. Having said that, let’s get started!

Why everyone should learn to code?

Technology is everywhere:

Companies across the world are moving to a digitized format of running their businesses. Already over 90 percent of jobs that humans used to do in the past has been taken over by computers. Technology has aggravated the shift of people from the farms to the urban sector, precipitating the fast paced transition of nation states towards a developed economy with emphasis on tertiary sector activities. As an example, only 0.1% of the workforce is involved in the railroad industry today, as opposed to 3 percent seventy years ago, yet it moves nearly three times the amount of freight around the country compared to the last century. So it is clear that a person who is more tech-savvy has an edge over his or her competition in the market.

Learn to solve problems

“Everybody in this country should learn how to program a computer… because it teaches you how to think.” — Steve Jobs

Programmers don’t just solve problems just by looking at the question posed to them. They look at the problem, break it into manageable chunks of sub-problems, solve them (sometimes recursively these sub-problems need to be broken down) and then integrate all this into one functional solution.

This is in general, how we approach problems. Even if it seems overwhelming at first, we make it as simple as possible to ensure we can solve each part of it and then find the overall solution. A Forbes article provides a different perspective on this issue:

If you’ve always thought of yourself as more of the artist type — right-brained, creative — then coding can help you gain balance. Prior to teaching himself code, Leong navigated life based on feelings and gut instinct alone: “When questioned on the logic of my decisions, I struggled to articulate them in comprehensible steps.” Logic, problem solving, and organization are some of the cornerstones of programming, and practicing with code helps you exercise that “left” side of the brain. According to Leong, “Learning to code has not only helped me process the rationale behind my own thinking, but has increased my ability to create more well-thought-out decisions through organizing my thoughts and intentions.”

Flexibility and Independence

Sometimes it’s frustrating for some of us to be in a situation where we have no control over what we can do and have to depend on others for help. We can’t do anything about our broken leg, as that’s the expertise of doctors and surgeons. We have to call the plumber for each and every time there is a fault in our pipes and stuff. We also feel helpless when we have to ask others to build our websites….wait!

With the large set of resources available freely and not-so-freely on the web, you can take control of the last task in your hands! A basic knowledge of web pages, how to add content via HTML, styling it with CSS and introducing interactivity with JavaScript, sends you on a path of self-sufficiency. You can design it as per your wishes and take control of that aspect of your career or business, and also cut the cost of hiring programmers to do the job you could do.

Coding also gives you the chance to work from home as a freelancer, in case jobs are hard to come by:

When you’re marketable, you have leverage. You’re freer to take risks. And you’re more able to bounce back when things go wrong. Countee always dreamed of having her own business, so once she learned how to build websites with Ruby on Rails, she got started as a freelancer (while keeping her full-time job). “That meant that when I experienced a layoff, I didn’t have to immediately run to the next open position,” she explains. “I had the option of continuing with my freelance work.”

The more variety of people that know coding, the more ingenious solutions can be made

As of now, many of the programmers come from a scientific background, with vigorous training in math, physics and chemistry. As such, many of the solutions designed by programmers have strong biases towards the former two. But imagine if liberal arts students combined their know-how with ability to code programs??

“I believe that learning how to code is like learning a super power in today’s world,” says Countee. In a world where good software, apps, and websites matter, it’s powerful to be able to create those things yourself. She notes that this power can be especially valuable for liberal arts majors: “The future should not only be built by computer scientists and engineers. There needs to be significant input from the painters, writers, political thinkers and social scientists that study and respond to our culture.” Coding allows you to build your own platform and give yourself a voice.

Learn the art of persistence

This snip from an article explains it best:

Programmers have to think logically about a problem. Once you start learning how to code, you stop giving up on other difficult situations in your day-to-day life as well. You start trying over and over again. You become patient because you know there is always a solution. It just needs some more effort, just like it happens when you create a program, runs it, and debug it several times to reach the perfect solution.

Why everyone should not learn to code:

It’s not the same as reading or writing

Coding is not for everyone. Let’s face it. People actively avoid programming classes in high school because they don’t feel adept at being a proficient coder. So you may say that is a matter of confidence. But coding isn’t exactly like reading or writing as in that it is a basic universal skill that one needs to have. Sure, having an ability to program solutions will help you stand out in the job market (as mentioned above), but that is not the same as a basic skill or even a prerequisite. So it isn’t worth imposing coding classes on those who do not seek to do so. We have seen already how many budding talents in other fields do not fulfill their potential by getting into the STEM (Science, Technology, Engineering and Mathematics) fields under peer, parental or societal pressure. We don’t want to discourage potentially talented coders by imposing it on those who do not wish to do so.

This ‘Everyone should code’ is a propaganda by politicians and tech companies and they dishonestly sell the profession as a must need

Tech companies want to save money. But they need good programmers to design their solutions. But as the market is such that there are few good talented people that fit their profile, the companies have to fork a significant salary to ensure that these core talents work for their company. Understandably, they aren’t that happy they have to see their money get burnt out.

Politicians see these high paid jobs and sell this utopian dream to people that if you go ahead and learn coding, you will end up in this highly paid job and that is the dream of the middle class. Of course, let’s ignore the fact that these jobs are hard to come by and it requires a good level of experience and ability, but why stop them from spreading their propoganda?

Let me refer to a couple of articles(TechRepublic and TechCrunch)who can articulate this far better than I ever could:

If you regularly pay attention to the cultural shenanigans of Silicon Valley, you’ve no doubt heard of the “Learn to Code” movement. Politicians, nonprofit organizations like Code.org and even former Mayor Michael Bloomberg of New York City have evangelized what they view as a necessary skill for tomorrow’s workforce. There may be some truth to that, especially since the United States’ need for engineers shows no sign of slowing down. But the picture is more complicated. We live in an ultra-competitive world, with people turning to all sorts of methods to make ends meet. Selling coding as a ticket to economic salvation for the masses is dishonest. Take coding bootcamps. Since the mainstream learned of the success of Silicon Valley software engineers, everyone wants to own a startup or become an engineer. HBO’s Silicon Valley paints a picture of late twenty-somethings spending their nights coding and smoking weed, all whilst making millions of dollars. The American public is amazed by figures like Elon Musk and Mark Zuckerberg, who make millions seemingly overnight. Coding fever has even reached the steps of the White House, with President Obama pushing for legislation to include computer science in every public-school curriculum.

— — -

Focusing on coding inflates the importance of finding the “right” method to solve a problem rather than the importance of understanding the problem.

— -

The problem with this line of reductionist thinking(everyone should code)is that it collapses the world into “Haves” (coders) and “Have-nots” (non-coders), without taking into consideration the varied value that differently talented people bring to the world.

— —

Developers are expected to learn fast, with little guidance and little more incentive than the faint rattling of the pink-slip guillotine. One could argue that this is simply one of the costs of the trade. But if current developers are frustrated or falling behind — and there is evidence that shows this is the case — why encourage individuals to enter such an uncertain realm? What happens to the person who spent night and day studying Objective-C only to be horrified by the Swift announcement at WWDC 2014? Do they keep coding in what is quickly becoming the language of lesser choice, or do they start again? If you’re a young twenty-something, this may pose little difficulty, but if you’re taking care of a family — with bills to pay and mouths to feed — the task becomes Herculean.

(This means that software development is an uncertain and fast moving world and does not work well for those who take their time to grasp concepts and ideas).

(Due to the extensiveness of these couple of points, other arguments I have read have the same core principle as the above mentioned).

My take on this:

After having gone through both sides of the issue, you can feel free to agree with either side, or have a more balanced view of things. Ultimately, your opinion is something which is based of your beliefs and values, so some of these arguments may or may not have convinced you. But at least you have heard the two sides out before you stick to believe in. This is something which is missing in this world, sadly: objective information covering all sides of the story, from which one can make a decision.

For what it’s worth, I feel that coding is something that people should be aware of, but not something that should be imposed upon people. I appreciate that coding is introduced at a basic level in schools, and it is more than just Microsoft Office, which was what I was taught in the lower classes. Surely that has been replaced with a basic idea of programming, with Scratch being one of the examples of how children are introduced to problem solving. But we cannot make this mandatory, as it is not for everyone. Give a chance for everyone to code, but they should have the choice to continue or not, or we risk creating a generation of under confident people who cannot fulfill their talents because they could not learn to code.