We are almost at the end of the reset phase. This week’s topics were the most interesting until now but at the same time I faced one of the things I feared the most until now.
Test Driven Development
Think about what you want to do. Have I ever thought about what I want to do when I code? I really don’t know, when I start coding usually is because there is something I want to do or learn so I already have an idea in my mind. When it comes to college work there is a pattern we have to follow to solve the problem. The difference is when you are coding for learning you can test different patterns but for college work there may be times when you don’t have enough time to test another approach because of a deadline. Now I’ll try to take notes of anything I do to know if I really know what I want to do.
I have heard about unit testing before and got interested about it but I didn’t go further into it. To be honest it wasn’t what I thought, for me it was taking a piece of code and testing it with many inputs manually, but the point of unit testing is to test the code fast so doing manually is not an option, instead automated tools are used for this purpose. We want to isolate a piece of code so we know if there are dependencies or not, find bugs. The testing frameworks are large so I want to learn how to write my own testing tool so I can understand better how to choose one.
The future of programming
‘Technology advances further than humanity’ this makes sense as he speaks but at the same time it contradicts itself because all those new technologies were made by humans, anyway the premise is if we think what we know what we are doing then we won’t want to know anything else.
There are 4 main point in this topic:
coding -> direct manipulation of data
procedures -> goals and constraints
text dump -> spatial representations
sequential -> concurrent
And a quote I like is “Programing using goals — What you want it to do, no setting up a set of instruction”
When I was taking my A.I. course I thought I was going to do something like an artificial brain or something like that, as I was taking the course I learned it wasn’t like that we it was actually the basics, the fist part was knowing what are the basics of data science. What does a data scientist need to know? Math, Computer Science and Context. We started learning about Linear Regression, this is a problem where we use the latest three. We need the Context to be able to know what we want to know with the data, we need math to know how we want to use the data, and Computer Science to give form to the data. But we are talking about Machine learning, How do we learn? Through experience, everyday we experience new things and learn from that. In machine learning we train it with pieces of the data so we can have a prediction, in my case, for the linear regression.
In the end we didn’t do anything complex I’ve meet new people here whose seems to know a lot about data science so I hope we can talk about it later.
Aiming to the moon. This is my new challenge, when I started college I was full of hope and dreams. I thought it would be like movies, where there’s a lot of science contests where you could see fantastic projects but reality can be harsh. Like I have been saying in my previous post, we spend more time thinking about passing a test than dreaming, literally. We don’t take risks because that could mean failing and we were afraid of failing. But I think this is the perfect opportunity to take that risk. I have been changing my mindset step by step, but to go to the moon we still need a lot of fuel.
A topic I didn’t expect to see here, at least not to soon, I’m not complaining though.
Theoretical physics is one of my favorite topics because I like how humanity can come with ideas about things we can’t see, from things beyond the solar system to the things smaller than an atom. In school we were told atoms are the smallest unit that can form an element, at that time I couldn’t think of anything smaller, but then I heard about quarks and smallest things. Actually I want to share a link with the Universe Scale (beware of motion sickness) so maybe you can have an idea of how big we really are.
Back to the topic, after finding this scale I learned about the Schrodinger’s cat, that’s probably everyone’s first contact with quantum physics. I got more and more interested in theoretical physics, but only as a hobby. There’s a lot I want to talk about this topic so I hope I can make sense.
When we talk about quantum physics we’re mainly talking about probability, unlike Classical mechanics, there’s no certainly about what’s happening, this means; if there are many outputs that can happen, it will happen at the same time. What does this mean? For example, let’s talk about the Schrodinger’s cat; if you put a cat in a closed box alongside a radioactive particle that can active a toxic device at any time there’s no way to tell if the cat is dead or alive, this was interpreted as the cat is dead, alive or both, dead and alive, at the same time, also called superposition. You can only know if the cat is dead or alive when you open the box, this will force the state of the cat, this is known as the observer effect. With this we now have a classic interpretation of Schrodinger’s cat but there’s more, like I said, quantum mechanic is about probability, that means the odds of finding the cat live dead or alive is 50–50… not exactly, there’s infinite ways to find the state of the cat, like I show in the next figure:
If we take the x-axis as alive and y-axis as dead, then we probability of finding the cat’s state is given by the modulus of those values, this also works for complex numbers, in this scenario we can take our graph to next level, a Bloch sphere, which is more accurate actually. This is not the absolute truth but an interpretation so we can understand.
The reason I’m talking about all this is because we want to understand how quantum computers work, at least in a nutshell. Computers work with 1s and 0s, so taking the Schrodinger’s cat premise we can understand that a bit can be 1, 0 or both at the same time.
What does this implies? We could think about the application for quantum computers like, communication or encryption. Personally I still don’t know much about Quantum computers application, at the beginning my thought was “Fastest computers” but Quantum computers are not replacement for our computers, for the the development of algorithms that can make those qubits to make any sense for us is necessary.
The unit test topic is still a bit hard to understand but that’s because I’ve not tested it yet, but with the basics I think I’m able to identify the piece of codes to be tested.
Moonshot thinking gives me chills, after watching Inside Google X and seeing how they take an idea that can have a global impact that almost feels unreal and get that exited makes want to try things that may seems out of my reach.
This week’s topic were interesting, specially the one about quantum computers and wouldn’t mind learning more about Quantum entanglement, which is also interesting because I’ve heard it can be a great step into new forms of communications but at the same time seems to be something impossible because of superposition.
See you next time!