Week 3: Fancy Topics

Alejandro Cámara
7 min readApr 27, 2021

The reading material

Test Driven Development

Unit test

Unit test is usually the lowest level of testing that can be done to a software projects. But what’s a unit? well, OOP defines a unit as a single class, so unit test should involve it as a whole. Functional Programming defines units as functions. But the reality is that a unit is not something statically defined, a unit depends on the context and the situation, so it should be defined according to the developers working on the system.

JUnit was one of the first framework that allowed the creation of unit tests. Much of the jargon used in this framework trascended to other areas of testing like TDD and XP. Once JUnit popularity rose, every programming language ported it, with its own tweaks, this family of Unit testing frameworks is called XUnit.

Classist VS Mockist

The editor wars

I didn’t know this war existed but apparently, it’s a thing. One of the parties involved in that two-sided war is Vim. Vim is an editor born in 1976 and has a particular philosophy, the editor tries to remove the need to use the mouse and directional keyboard and favor mnemonic commands through the use of the keyboard in order to increase the developer’s productivity (it makes use of alphanumeric keys almost exclusively).

The editor is comprised of 5 modes:

  • Normal: for moving around a file and making edits
  • Insert: for inserting text
  • Replace: for replacing text
  • Visual: for selecting blocks of text
  • Command line: for running a command
Image from: https://medium.com/@huynguyn_68371/chapter-3-modes-in-vim-f98fcbe3a2f2

The video material

The Future of programming

Inventing on principle

I think that the main point of this talk is related to the “Autopilot Britain” reading, we are usually taught (or not taught) to affront the world in a certain way, and we usually choose the most comfortable path, the one where we accept the world as it is, and try to play by its rules the best we can. But this way of living has its downsides, obviously. We are far from living in a perfect society where everything is as it should be, and we will never live in a world like that, that’s why living like this is something dangerous, I think, you may choose the predefined ways of living that people before you had laid, and face little hardship, but this is not something that will improve the environment you live in.

Take, for example, Charles-Michel de l’Épée, the Father of the deaf. He was a noble frenchman living in a way that only few people at the time could. Born in royalty, he had no necessity to change the world, nonetheless, he did it. He recognized a problem in the world he was living in, the society’s view towards the deaf community. People used to believe that someone who was born deaf was actually mentally impaired, and incapable of language, but Charles, by observing to two deaf children communicating with their hands, reached a different conclusion. He dedicated his life, money and resources to build schools, help the deaf and overall social awareness towards that minority. He changed the world even through he didn’t need to. That’s the conclusion Bret wants us to realize, that we can take a similar approach to our lives, he doesn’t want to force us to choose to improve something wrong in society but he wants us to realize that we have the choice and that the world is shaped by that kind of people.

Machine Learning

Moonshot thinking

I think moonshot thinking can be explained with something a world changing invention, like the telegraph, for example. Before the telegraph’s invention no one had thought (that I know of) that communication problems could be solved by an electrical device that could transmit code from one place to another, and yet, in this world we live in, we can not imagine living without long distance communication and all its derivatives. Samuel Morse went for a moonshot when we thought to himself “how can we help reduce the communication time gap?” and deviced something that i bet many thought as crazy. So that’s it, thats moonshot thinking, solving a problem by thinking something out of the ordinary, but not so crazy as to be unachievable.

The best presentation of your life

The thing that amazed me more about this video is that it’s in spanish :P, just kidding. Side note: The guy’s laugh is very contagious.

So, the objective of Enric is to transmit the knowledge about how to make a meaningful presentation. He splits his talk into 2 basic premises a good presentation should have:

Make people think

  • Transmit the importance of the subject to the audience
  • The subject should add something new and useful to the audience
  • Less is more, simplify concepts
  • Ways to tell a story: there are 2 ways to tell a story, the inductive and the deductive way. In the inductive way you explain details throughout the presentation until you have the whole picture at the end. In the deductive way, you first start by explaining a general image of the whole concept and then start detailing it.
  • Group similar information
  • Group your concepts in structures, like diagramas, maps, charts, etc,.
  • Make people associate the concepts you’re giving them with something familiar.
  • 3D Strategy (3S in english, I think): Say what you want to say | Say it | Say that you just said it

The second part is to make people feel

  • Make your audience participate | Choose your participants in the audience | Congratulate that participation
  • Use evocative language, less numbers and text and more images and physical objects
  • Manage the rythm of people’s feelings during the presentation (emphasis, silences and clicks)
  • Emit your own emotions

What got you here won’t get you there

With this one I am really wondering who curates all this? It’s amazing material and I don’t think I would have been exposed to it if it wouldn’t be for the academy. Also, Marshall has an amazing laugh, like Enric, in the video about how to do presentations :P. So, Marshall shares some advice for people who possess certain traits, traits present in STEM communities, like software engineering, where we let our ego get in the way of our personal progress, we shut down constructive criticism aimed towards us. I think we tend to forget that we should not only focus on our personal progress, but make progress as team members, not only in work environments but also familiar ones. We should strive to make those around us get better not by changing them but by improving our own ways to interact with them.

I recognized that I used to take feedback in a not so smooth way, I used to get angry to the ones that made the feedback. I remember one time, when I zealously kept a project hidden from everyone until evaluation time, I didn’t want anyone to criticized it, so I didn’t receive any critics, but neither did I receive any feedback. I remember how bad I felt when the evaluation was over and the project performed poorly. It performed poorly because of certain aspects in the project that were wrong, and if I had shown the project to my partners they would’ve spotted the errors, I had no doubt, since then I always try to look for feedback about things that I do before presenting them to an evaluation. Feedback is not important for success, it’s essential.

I really liked the three points he gave at then end, about the themes/advices old people in their deathbeds bring up:

  • Be happy now
  • Help people
  • Go for it (Do what you think is right)

Quantum Computers and Concepts

Properties of quantum particles

  • Superposition

A particle can be several things at the same time until an observant is added.

  • Entanglement

This is the first property I discovered about quantum particles and it was thanks to a sci-fi show called The Expanse, SPOILERS ALERT. In the universe of The Expanse there was a civilization before the human one that acted like a hive mind, and all its members could communicate across all the universe instantly, this was done via quantum entanglement. SPOILERS END. So quantum entanglement is the bonding of two particles that mimic each other’s behavior, even when separated.

  • Tunneling
  • Qubits

The bit analogue of quantum computers. Unlike conventional bits, this can store both states, a 0 and a 1, at the same time.

  • Double Slit Experiment

It’s an experiment which I think was the birth of this branch of physics, it’s what made scientist realize that conventional mechanics could not explain the behavior they were experiencing. In this experiment, they shot electrons through a metallic plate with two slits on it, expecting the electrons to be projected as two slits in the screen behind the metallic plate, what they saw instead is that the electron made a pattern that could only be the product of a wave. From this point things start to become fuzzy form me, the thing that impresses me the most is the fact that this behavior is not repeated when it’s being watched or measured, meaning that the observer plays a part in the behavior of the particles, something that seems like science fiction. In general it’s an interesting topic that, like AI, is cool when you see it from a bird eye view, but as you go deeper you start to find weirder and harder to understand stuff.

--

--