Thoughts computer science outreach campaigns
I have a few thoughts on those computer science outreach campaigns.
I think those campaigns to get general public in programming are perhaps a bit unhealthy. First of all, I think while outreach programs are good, I think the difficulty of programming is understated and the importance of programming is overstated.
Let me first explain why I think the difficulty of programming is understated. If you are reading this, you are probably based in a society with knowledge-based economy. In a knowledge-based economy, each individual take on increasingly specialised role that require years of education and on-the-job training. I believe it is therefore not so important for everyone to know programming, because you can always find someone else who can do a better job than you. And if those “coding camps” are so great, then why are there 3-year undergraduate computer science degree? I think programming is a very specialised career. It is difficult.
Note that I am not denying that there are talented individuals that manage to learn all the programming skills without formal computer science education, however they are rare. I think it is an illusion that these people are common. I think the illusion is caused by the fact that programming has low entry barrier, computers are cheap, and a large number of people can try out their programming skills. This is probably why seemingly a lot of people manage to make successful careers in computing industry without being formally educated in computer science. I believe as a relative percentage, it is probably not that big.
Now, let's discuss why the importance of programming is overstated. This is mainly because most of the time it is far better to get an expert who is good at programming to write your program. Amateurs rarely write good code. Code written amateurs tend not to get used in important places. Most of the programs you want to use have been written. If they have not been written, if there is enough need, you can probably convince someone who knows what they are doing to write it for you. This is why I think one does not actually need to know how to program.
I wonder how effective those outreach programs are. For people who want to learn programming, they are probably already seeking out information on the Internet. If you don't actively seek out programming yourself, and if you rely on those outreach programme to spoon-fed you with knowledge, you are probably never going to be good at it. For those who are actually interested in programming, they probably don't need those outreach programs anyway, for vast majority of things are available on the Internet.
Finally, I am not the first one who came up with this idea, it seems people on the Internet have arrived independently at my idea previously already:
https://knowyourmeme.com/memes/learn-to-code
In conclusion, I hope whoever is reading this does not feel the pressure to “learn to code”, because it is difficult, and it is perhaps unnecessary.