Randy was famous for his last lecture after getting diagnosed with terminal cancer, which was a talk called "Really Achieving Your Childhood Dreams" that was later turned into a bestselling book.
We should think of time as money. He says that time and money are very equatable. A good strategy he gives is to give your time a value like a salary in order to appreciate it.
He splits tasks into four quadrants: due soon and not due soon, important and not important. He states that the one you should start with is important and due soon.
He says that the end goal in life is to maximize fun, which I mostly agree with.
He said to find your productive time where you schedule meetings and do mundane things. And this time is the same everyday.
There is a 4-5 minute recovery after each interruption in your work, meaning that 5 interruptions wastes a whole hour. This shows us how important it is to remove disruptions while working.
We moved to programming languages from punch cards to make writing and fixing computer instructions faster, easier, and less prone to physical damage. This tells me that programming languages are made to make human's jobs faster, as it's easier to work with understandable language than binary, which is only understood by computers. This makes the process of writing much faster than it used to be before.
Fixing a bug often required repunching an entire card, which took much longer. So programming languages make coding more efficient.
Computer programming in the punched card era - Wikipedia
Different programming tools are required for different tasks. Programming languages often have a trade-off between how easily a human can read and write the code and how fast the computer can run it. So it depends on the task and its requirements.
There are some "high-level languages" that are easily understandable by humans but not by computers, while others like machine code are more suitable for computers. Both have their advantages and disadvantages, as high-level languages are easier to debug and update, while low-level languages have more control over a computer's hardware.
Why are there so many programming languages? by Stack Overflow blog
Python is an interpreted language, so it runs slower than low-level compiled languages. This drawback doesn't affect me personally, as I'm not required to write complex programs that would take long to run.
A drawback that does affect me is that Python stops the code from running if there is even a small syntax error. Python is known for having specific requirements like indentation that make debugging more frustrating.
I would first look at other programming languages and study how they work. I would define the grammar structure, data types, and execution behaviour. I would make the syntax as close as possible to English, and I would make the rules as understandable as possible.
I would make it highlight an error but still run the rest of the program as often as possible.
I would also have all libraries included, so one doesn't have to import a library every time they need to use it.
YouTube video on making your own programming language by Computerphile
Human-computer interaction (HCI) is the study, design, and evaluation of how people use and engage with computer systems and digital technology. Some disciplines that contribute to it are: AI, accessible technology, healthcare, VR. https://en.wikipedia.org/wiki/Human%E2%80%93computer_interaction https://www.hcii.cmu.edu/research
A system being useful means that it can solve real world problems or accomplish a meaningful goal. Usable means that it is easy to use and operate regardless of whether it was needed. For example VR technology is usable but it is not useful in the sense that it is not addressing any previous issues. It is pleasant to use and is usable but its not useful.
An example would be a microwave that has unclear buttons to control the timing. For example a button with +30. Its more difficult to use than one that would let you type out the exact numbers. To improve it, make the user be able to input the time needed and have a clear start button.
They can see the things the users like and the things that make their experience inconvenient. The developers can then remove and alter the product. Asking "do you like it" does not help as the developers won't know what exactly they need to change. It's better to ask specific questions on which aspects the users like and dislike.
Allowing things like speech to text or text to speech as inputs and outputs helps elderly people, people in rural areas who aren't familiar with newer technology, and people with disabilities who are not able to type or read. https://www.w3.org/WAI/fundamentals/accessibility-intro/