My FeedDiscussionsHeadless CMS
New
Sign in
Log inSign up
Learn more about Hashnode Headless CMSHashnode Headless CMS
Collaborate seamlessly with Hashnode Headless CMS for Enterprise.
Upgrade ✨Learn more

Post hidden from Hashnode

Posts can be hidden from Hashnode network for various reasons. Contact the moderators for more details.

Should everyone learn to code?

Deactivated User's photo
Deactivated User
·Jul 26, 2020·

6 min read

Short answer - NO

Long answer:

Programming is not easy

I know what you're going to say: "Burhan, we live in the digital age. There are plenty of online courses and tutorials available on the internet. Surely, some of them are simple enough for beginners". And I am gonna say - "Watching a tutorial and writing code is not all there is to programming".

I watched a C / Java tutorial on YouTube and understood everything they said. You were saying?

This is a common misconception that I have seen people hold. Learning a programming language is not the same as learning programming. Sure, it's a major part of it, but programming is also about thinking algorithmically. What I am trying to say here is that it requires skill and practice to be able to break down a complex problem into smaller subproblems that you can then convert the solution of into code. I have been programming for the past 6 years and it still takes me hours on a good day to come up with a solution that will solve the problem at hand and do it well.

I learned Java and then Android and made a calculator app. Have I proved you wrong yet?

Well, partly. I'd like to congratulate on this feat (no sarcasm here). Having the courage to start something you suck at is not an easy task BUT, tell me, is a calculator app the most advanced thing in the world? Is making a social media app the same as building a calculator? Building a complex app requires you to learn not just one but a whole collection of skills. Learning how to make a frontend that is pleasing to the eyes, a backend that can handle a large volume of requests, a system architecture that is scalable and having the skill to actually deploy the project to the internet. Let me give you a list of skills - UI design, UX design, frontend, backend, system design, DevOps. This is 2 or 3 teams worth of skills.

I am out of conversation queues

I promise this is not a rant. Programming is more than just being able to write code. You need to learn algorithms, data structures and most important of all - the wisdom to know which one to apply where. I can give you a long list of stuff you need to know if you want to work as a Software Development Engineer. There are companies out there that coach you on passing the coding round for SDE jobs. And when there are so many people out there who know how to code, problem-solving becomes an easy to estimate (but not a good) indicator of your skill level. If you are a frontend developer, you don't need any of this (most of the times) but it's still a criterion you will be judged upon.

What we know is a drop, What we don't know is an ocean - Isaac Newton

Programming is like that. What you know is a drop, what you don't know is an ocean . I have been doing web development for 2 years and mobile development for 5. If at this point, you ask me - would you call yourself an expert? I'll say no. It's not that I know too less or I am incompetent. The problem is that there is so much to learn and it changes so rapidly that it is difficult to keep up. I learned Java in junior college and started developing Android apps. I did it for another two years and was at the point where I could call myself an intermediate level Android developer and then Google decided that they did not like Java anymore and introduced Kotlin (I KNOW RIGHT!). So now you had to learn 2 slightly different programming languages (still need to be able to work on existing code bases that used Java) and double the number of libraries that you normally would.

Are you Sheldon from The Big Bang Theory?

You don't need his genius to be good at code, but you do need better social skills than Ross from FRIENDS. If you are socially awkward at talking to people or giving a presentation, well guess what, it's going to be difficult. You will be talking A LOT. While you don't need to be the Barack Obama of speeches, you need to be able to communicate to your co-workers or your team especially when you are in a management position. Programming is stressful and exhausting, you need to have good emotional intelligence and understand when someone needs a break. It takes time to build synergy with people you are working with and it's not always easy.

I've got the sitting-itis

Doing programming as a job requires you sitting at the computer for most of your workday (duh!). Health problems due to sitting for long hours are not uncommon. They are not limited to obesity either. Common problems are neck pain, eye pain and brain damage (from working with legacy code, and maybe PHP and/or Angular)

My wrists ache from typing this article itself. You can prevent health issues with a few good investments like a good chair, ergonomic mice and good viewing angles for your screen. If you are not someone who can stare at a screen for the majority of your day, this ain't for you bud.

But I gotta startup and stuff

So you got a company huh? Tell me then, would you ship code written by you if you were making the new Facebook? No right? You would probably build an MVP using a no-code site builder like WordPress, then present your idea to an investor and hire competent persons to build the product. Like I previously said, being able to write code is not the same as being able to write competent (scalable) code. It takes years of practice and if you're going to be in a position where you won't have to write it, don't waste your time learning it. You'd be better off learning about entrepreneurship itself.

So what's the point of this then?

There are plenty of tools out there that'll help you get started with a basic website. If all you want to make is a landing page for your business, don't invest time in learning markup and scripting. Invest in a good no-code tool like WordPress or Bootstrap Studio where you will be focusing on the UI itself and not how to build it