Why I Desperately Needed to Learn to Code
influencehacks.com
influencehacks.com
In an age where many people spend 40+ hours per week in front of a computer screen, even a small marginal increase in a computer user's productivity could save them hundreds of hours a year. As a result, it seems like a completely reasonable investment of a non-technical person's time and energy to learn enough about programming to enable them to scrap together a program that allows them to accomplish simple tasks more efficiently.
Would a professional programmer be able to write better code more quickly? Of course. But would a person with zero programming knowledge even recognize when a particular task they are spending hundreds of hours each year manually performing could easily be automated? Probably not.
I guess the bottom line to the whole discussion started by Jeff is: Not everyone should become a coder, not everyone can become a (good) coder, and not everyone wants to become a coder. But if you really feel like learning to code is the only way not to get left behind in this rapidly changing world (vs just doing it becomes everybody thinks it's cool nowadays), go for it!
If you are building a serious business, eventually you will need to hand over the real development work, to real developers. This allows you time to do what you're good at.
This is the show where everything is made up and the points don't matter.
If you have the internal drive to be a programmer- great, be one. If the idea repulses you, then do something else.
I don't really think there is all that much peer pressure for everyone to be a programmer.
In the past, however, there was. Back In The Day, "computer literacy" meant programming because computers often came with little more than a basic interpreter out of the box. This is no longer the case.
I think all these tools that let "non-programmers" learn to code are great-- because there's a lot of "non-programmers" who could benefit from it. For instance, ops people aren't necessarily "programmers" but they can use scripts to automate tasks that would be mundane and repetitive otherwise.
If an assistant wants to learn a macro language so that they can better operate spreadsheets-- wonderful.
I worked thru one of the online programming classes with a non-programming co-founder and I think she found it pretty valuable. She's not writing code now, but her understanding of what's going on with the product is much better.
I think its silly to pretend like everyone has the same level of programming skill (which was a hard lesson for me to learn, because it always seemed so easy for me, and I figured t would be for other people.) But its also silly to poo-poo on "non-programmers" wanting to learn some programming.
These tools are great. And this drama seems, well, also silly.
I'm a programmer. I would think any article saying "Everyone should learn marketing!" is silly, but I'd also think that "nobody should learn marketing except marketers" is also silly. I spend a lot of time thinking about marketing and learning everything I can-- because its something we need.
Or if the idea repulses you, think about why it is and change the world by changing how programming is done.
The way people are taught mathematics is mostly useless. It's a bunch of equation and calculation that people are doing by hand. Nobody is trying to identify problems, break them down, make hypothesis, and so on. With programming, we could take the usefulness of mathematics to a whole new level by breaking the bottleneck of calculation.
In the end, we may be able to produce even more mathematicians, engineers, and scientists at an earlier age, because they learn the skillset needed to be in those profession.
perhaps all sciences?
There's kind of a reason why at some point we teach certain elements of programming by hand too.
Maybe I'm reducing your question but I think it's important to note the intrinsic value of teaching by hand vs. always incorporating automation by programming.
So what? Programmers deal with lot of complexity all the time.
This is not necessarily true. Sure, after you are first shown the problem you then trudge through multiple calculations and variations of the problem, but the purpose of this isn't to grind it out and memorize it, but to reinforce the process and underlying parts to solving the problem.
All you have to do is recognize the problem and apply the calculation to derive an answer. The calculation will also be particularly tedious. Does that sounds like "reinforcing the process" to you? It's all busywork that can be done by machines.
There's kind of a reason why at some point we teach certain elements of programming by hand too.
I was never taught that way, or rather, I taught myself. I learn a few basic concepts and apply it to projects. I also learn how to use tools like debuggers that help make me figure out things a lot easier.
Maybe I'm reducing your question but I think it's important to note the intrinsic value of teaching by hand vs. always incorporating automation by programming.
There's a big difference between teaching some mathematical concept by hand and forcing students to calculate by hand everytime they confront a problem. They should be able to program a solution to the problem and then move on to the next problem.
That's because I learn to program. If people learn to program, they'll be more "mathematical/logical" too. I am "brilliant" through hard work and curiosity, not because I have high IQ.
Just because you find the calculations tedious does not mean that most people don't benefit from them.
I meant we humans suck at calculation. We are not like computers that can follow steps perfectly. Even when we know the steps, we often get the answer wrong due to our mistakes in following the steps.
From what I recall, most people forget a concept that they are exposed to once and only once.
What make you think it doesn't apply to me or to the rest of people on hacker news?
I recall some episodes of five minutes wasted by research mathematicians because they were unable to quickly multiply some 2x2 matrices in their heads.
Being able to perform the low-level skills like arithmetic very rapidly in your head helps tremendously when it comes to narrowing down hypotheses. You can often reject a hypothesis quickly if you are fast enough at doing some computations in your head.
So yes, more teaching of how to identify problems and break them down is a good idea. But you also need to be rock-solid in those elementary but fundamental skills, and you don't get there without a lot of practice.