Lessons before I turn 20s
May 25, 2024
I wanted to make a video about this, but it turns out I'm super busy these days. and ended up posting the scrap video I made and just publishing this twitter(x) thread
I’m turning 20 the next week. Here is some lessons I think I learned in my teens, I may change my mind about some in the future.
1. Your family must be no.1 priority in your life
2. You must have one thing that your life goes around, (Religion, goal, category of people)
3. People are not good at understanding themselves
3. Being Busy can prevent you from doing stupid things, and at the same time from doing good things, make sure to balance
4. Sleep early and Wake-up early
5. Don’t create competitions that don’t exist, be realistic
6. You can explore life in your teens and 20s and be a generalist but set a limit for that and try to specialize and focus on one thing
7. Routine is the small steps you take towards every big goal you set for yourself.
8. A good level of understanding yourself is knowing what you are not good at.
9. If you’re a junior and you think you are smarter than old outdated seniors, think twice, they have experience
10. Someone may find your presence warm and lovely without you knowing, so always be kind.
11. If people do like you and you don’t know why, try to know why, and keep practicing this thing for the rest of your life
12. Memories are the warmest feeling in this world, and the time you’re remembering it will always be happy time. (I guess)
13. Happiness is something that you pursue indirectly
14. Pray to Allah for giving you a clear mind, and practice exercise, eliminate distractions and you will have a super flow state.
15. Our beliefs are changing overtime and we probably notice that late
16. If you ever felt happy for no reason try to ask yourself why? Write it down and read it when you have detected why makes you happy.
17. Being optimistic about something and putting massive emotions into it, doesn’t mean it will succeed. Reality is just independent of your thoughts
19. sad, or in pain? This will always come back at some point, you gotta use the time you have when you’re at your best.
20. You may hurt people without knowing that you did, so you need to make sure to always apologize and ask people about how you behave
21. Chasing one thing will make the other things run away, like chasing a job but your health is in danger.
22. You can be good at anything including research and engineering without a university, but the university is still important
23. We are not alike, in the way we receive new information and knowledge, some know how to extract every possible information of it while others don’t
24. Mainstream titles like “entrepreneurship” can wait, and people who have been seeking it since the early stages of their career or uni want only the money, but they don’t have the needed skills and capacity to be the one
25. You may be good at using one of the technologies that use scientific methods, and still, you should always be humble to that un-updated professor who spends his life-solving equations and teaching math that you see as useless. You just didn’t realize the importance of it yet and its impact.
26. Avoid blaming your family members or cousins they may be the only people on the earth who naturally wish you good.
27. Life can be extremely difficult if you lose one of your parents or both. But never impossible to achieve happiness
28. Life is an iterative process, your fathers teach you, and you teach your kids. You will be the guy who explains materials to students and they will do the same when they master it.
Basic Maths and Machine Learning
March 14, 2024
Math and machine learning!
How much math do I need to start beginner-friendly projects and competitions in machine learning?
that's the scariest question for everyone who wants to join the era of machine learning, and here I will mention what type of math and depth you need to understand before working with machine learning. Before we start, here is some point.
1. this is from my experience, and I tried to minimize it as much as possible
2. We are going to talk about the needed math skills to start! not to be professional
3. we are talking about machine intelligence, so if you're going to major in data science and analysis software, probably this is not the best article to read! You can just study basic descriptive statistics, and you're just fine.
so the first thing you will probably ask yourself is, Am I required to solve these handy complex probabilities of math by hand? And this is what I call being mathematically precise: when you're able to do math using pen and paper or a whiteboard, but we don't usually do that, If you're into research or interested in a certain problem like optimization, you may use your math writing skills, but most of the time, machine learning is about numerical computations (which require intuition—understanding math more than being smart in solving equations and formulas) and experimenting with different numbers (we call it hyper-parameter tuning).
And since machine learning is an applied science, it assumes that you understand math. And more importantly, it assumes that you know what these functions represent, what we mean by vectors, and how to decompose them. So intuition is really important in this field; we use it in every line of code, and gaining that intuition from math can be simple, just like knowing that division is making pieces out of a whole. You don't need to know all the possible ways of doing fractional operations; you know what division is and why we use it. There is no need for division operations and bizarre characters now. and that's why all machine learning courses, especially those in math, are not focusing on making you a super-intelligent human by solving derivates by hand. but they teach you to use them in computations to solve problems and optimize.
So you mean I don't need to write using a pen and paper?
Don't rush things. I know you may be happy after I tell you this exciting news, but soon or later you will need the pen and paper strategy. If you're a person who loves math, I encourage you to play with both intuition and math practice. And if you're allergic to math, you can stick with the intuition.
As a start, you will need:
Indeed.Since things will get crazy as soon as you get in-depth, you may even need to understand some topology and manifolds. Indeed, machine learning applications are everywhere, including math, but at the moment, don't bother yourself with the application; just focus on what type of math you need to know to start, and I mentioned that. Here, I'm going to be specific even more, because some will have the idea: You want me to study the whole calculus? or know every single thing in linear algebra? Not really. Since we want the minimum skills and entry-level skills, I will shorten the list for you.
There is no AI without data; what is the data? Well, these data may be images, but what the heck is a computer able to read images? spoiler alert! it doesn't, the images are converted into arrays, AKA matrices, which are the heroes of our linear algebra story! they go all the way from input it into another array called the model (the model is layer of neurones- this is a complex model but you should know that we represent the neural networks in a form of matrices and vectors, and the The computation within a neural network often involves multiplying matrices together), so I'm not going to go into technical details but to deal with any data, and understand the mechanism behind some of the modeling procedures you need to have a basic understanding of
1. Vectors and Vector spaces
2. Matrix and Matrix operations
3. Linear transformation
4. Eign-values and Eigen-vectors
You can start knowing the first two, but I think it’s essential to look at the whole list
Now let’s talk about calculus.
no world can describe how powerful, essential, and beautiful this subject is forget about what you learned in school, or don’t it might be helpful, but open your eyes to look into calculus differently. So why do we use calculus?
Imagine that we want to find the lowest cost of your daily commute to the university. You will need to minimize the cost of transportation and the cost of time! Think closely; we are searching for a point where we need it to be at its lowest, and that’s called local minima or optimization in calculus. Let’s list the
1. Differentiation (derivative)
2. Rules of Differentiation (Chain Rule: the most important with higher frequency, Product Rule, Quotient Rule)
3. Optimization (minima and maxima)
4. Partial Differentiation and Gradients
Those are the eyes you will use to see that data and understand its nature. You better spend extra time here, so why do we need both the statistics and probability? Well, mathematically, they form a sub-field of math. Imagine that you want to build a solution based on the data you have, which is the case in 100% of cases. You will need to understand it, and that's where the descriptive statistic comes in. Of course, you don't want a picture of a camel on your cats and dogs dataset. How do you detect the outlier? (camel images) using statistics.
It's not only about exploring but there is even more like hypothesis testing pdfs, etc.
Great news: you only need to study the
1. Descriptive statistics
2.Sampling Distributions
3. Linear Regression
to start, it's simple: you will study concepts like the mean, mode, and median for the central limit theorem and then the standard deviation and variance as part of measures of dispersion, while of course understanding the beautiful visualization of distributions
The most important part is to get your hands dirty and try your first ever algorithm called linear regression, or you can start with binary classification in logistic regression. And as long as you go in-depth, you will need more and more on statistics
I will talk about the probability later on, inshallah
How Helping People Can Boost your Learning
February 12, 2024
there was a period of my life when I used to help people, and I took it so seriously that even if I didn't know the answer from the first look at the problem they presented (I'm talking about helping with coding), I would see the possibility of solving this problem within a short time and then deliver the answer to whoever asked for it.
and I remember this one problem presented by my colleagues at the University of Khartoum, Leena, and Asrar
they were assigned to work with some hard-coding problems using Python but never using a built-in function, which at the time. I found it pretty hard, especially after diving into the world of applied science and machine learning, where you just code everything using defined methods and built-in functions.
I took the challenge myself, that I will help them in this project
and their program was something like that.
Menu 1:
Options: Insert new numbers or exit.
If Insert New Numbers is chosen, prompt for two binary numbers.
If exit is chosen, terminate the program.
Menu 2:
Options: one's complement, two's complement, addition, and subtraction.
Perform the chosen operation on the binary numbers from Menu 1.
Return to Menu 1 after completing the operation.
The program ensures valid binary input and handles errors gracefully.
and you have to define addition, subtraction, multiplication, and even division.
it's simply a hard-coding problem.
so I took time to understand the problem and solve it. I was surprised that Leena and Asrar came back, telling me that you should never use a built-in function. and that's where it turns out to be a bit challenging. once again, I told myself I was going to take this challenge and fix whatever they said, and indeed, it was a good refresher for my basic Python problem-solving, which you start immediately forgetting about after dealing with libraries.
While helping them with this small university project, I didn't not only refreshed my Python skills, but at the moment, it grabbed my attention to build apps using the functional programming method! and indeed, that happened!
When we work on a machine learning project, we usually deal with libraries, and we just want to train our data. in most cases, as academics, the project stops after evaluating the model.
and when you test your model using a new instance, you will pass a bunch of numbers stored in an array (these numbers are the feature or input values), and they usually correspond to a value. so it's just playing with numbers. but you should be aware of what they represent and that's called encoding it's the process of transforming strings, images, and any datatype into numbers. (you can search about encoding and why it is used in machine learning.)
but there was a time when I worked with a machine-learning model. and I needed that model to be used. so I can't let the user input the number! I want him or her to input the city that he or she lives in. and that's usually something you don't do as a machine learning practitioner.
but I had to do it. although I was aware it was possible somehow, I didn't know how because I was a prisoner of a certain programming paradigm.
then I know what tools are, and then my mind just rings with the idea of functions!
and converting the data into its original form. and that's the same thing in the Leena and Asrar projects. they used functions and type conversions to build that calculator.
so I built my functions and mapped my output. it was a lovely coding experience, and I can tell. I learned a lot from that project. and the things I made! were just this binary calculator project on a larger scale.