On Coding

The recent movement to get more people coding has been gaining in profile in the UK over the last 5 years. Boot camps and code schools are popping up everywhere even for young kids as a summer camp activity. One of the early issues has been finding a supply of teachers capable of training the kids. The reality can often be the teaching happens the other way round. All these approaches tend towards pedagogy because of a natural tendency to concentrate on measurable teaching outcomes. The focus is typically on learning one language usually Python. It is important in a world increasingly being built around technology to understand the nature of code but it is also important to recognise that learning the basics of coding is just one small part of building software in the real world. Ultimately you can’t build a iPhone in Python and all the laudable efforts to evangelise coding don’t provide a real perspective on what it’s like to work with software every day in a typical professional context. That reality can often be very different indeed from coding up a fun game. This Hacker News post on Oracle’s database platform C code provides a glimpse into the Kafka-esque nightmare of maintaining long-term legacy codebases:

Code should be viewed as one amongst a number of tools including logic and skeptical thinking that we can use to express ourselves and understand the world around us. Seymour Papert in his classic book Mindstorms introduced the concept of MicroWorlds as aids in computational understanding. Kano’s Harry Potter Coding Kit provides such a MicroWorld in which to explore basic computing concepts including composition, loops and computing logic in a fun and engaging way within a consistent virtual world. Perhaps in 15-20 years time, the developers of tomorrow will look back upon their journey into coding and find that it all began with some magic:

“As far as kids are concerned, all they’re doing is following instructions so their cool little wand thing can make colorful fireworks or float feathers. With a bit of perseverance, kids will learn all about variables, logic, loops, and the cause and effect of their actions. And, ultimately, that’s what is cool about the Harry Potter Coding Kit — users can enjoy coding without even knowing what coding really is.”

Artificial Intelligence

No, there’s not going to be an AI winter, because it drives your cellphone. In the old AI winters, AI wasn’t actually part of your everyday life. Now it is.

Hinton and Hassabis are both somewhat downbeat on the near-term prospect of AGI. But AI doesn’t have to be superintelligent to dramatically impact lives. 80% of US jobs are in Services. In 2018 the robots started taking coming for them.

Startups and Products

Today, we stand at a technological, political and environmental inflection point. Two decades of rapid technology growth and innovation has generated enormous physical and digital clutter. The steep demand on the planet’s resources mirrors the demand on our time and attention, which leads to our meta theme this year: the search for value and relevance.

FirstRound also reviewed the 2019 landscape going into 2019 from a more direct and pragmatic startup-oriented perspective by surveying founders. Here’s their take on technological unemployment:

Engineering Leadership

Let the engineering team solve technical problems — instead concentrate your efforts on building and developing the team, providing them with strategic technical direction and removing any roadblocks that prevent them from succeeding.

Don’t be afraid to get involved when the team asks for your leadership — for example during an operational issue or to resolve low level chores that the team are too busy to complete — but whatever your engineering background you should be resisting the temptation to jump in with major codebase contributions that you can’t effectively support in the future.

Software Quality

The story goes like this: there’s a new platform we want to install some technology into. A fearless and talented developer dives in and by Friday she has a deceptively slick looking proof of concept of the main workflow. There’re some obviously rough edges, so, sure, why not keep going until the demo is like butter. By this time the engineer’s started an expanding list of //TODOs that are really more critical than they are nice-to-have.

Without stopping, a few weeks later, this prototype is being talked about like it’s customer-ready software. Pretty soon marketing and customer success are being spun up to trumpet about this achievement to your customer base, and before you know it this research product has paying customers, problems, and is going to need love and support for years.

Given the power of modern version control systems and the increasingly-common practices of forking, merging, and cherry-picking, tests have become more important than ever to guard against unintentional changes, especially changes leading to a regression of a known catastrophic bug. The apparent removal of a regression test during a cherry pick or a merge should set off alarm bells, even more so if the test was included in the same change as the fix, as the fix could become undone as well.

Being able to effectively communicate vision and mission to your team requires an exhaustive understanding of their impact on the company as a whole. The simple act of writing these ideas down will help you reach this high level of understanding faster and make it easier to present them to the team. If your arguments aren’t laid out in a way that makes it easy for the team to digest and execute on, you’ll be forced to spend more time following up individually in the future.

Culture and Society

The cavalier attitude displayed by Facebook to personal privacy has almost lost the power to shock. Even so, this Gizmodo special on how Facebook schemed to turn on PYMK (People You May Know) functionality to “drink your milkshake” is flabbergasting:

In Minnesota, protesting workers (many of them of Somali origin) are marching on an Amazon FC angered by what they see as inhumane working conditions: