Posts

Showing posts from April, 2024

The Imitation Game, Part IV

Image
The Imitation Game, Part IV  Sorry, I can't stop. There's just always more. I might do 5 minutes of Linear Algebra here and there to perk me up throughout the day. To spike my interest and keep my attention. I need to carve out my little niche.  I just love AI and I love AI learning. I love AI so, so, so much. Matrix Operations "Like with vectors, there are fundamental operations we can perform on matrices that enable the linear transformations needed for algebra."  "We can again multiply entire matrices by a scalar value, as well as add or subtract matrices with equal shapes." "A new and important operation we can now perform is matrix multiplication.  "Matrix multiplication works by computing the dot product between each row of the first matrix and each column of the second matrix." "An important rule about matrix multiplication is that the shapes of the two matrices AB must be such that the number of columns in A is equal to the number...

The Mockingjay, Part V

Image
The Mockingjay, Part V It's been too long since I did a Mockingjay post, so here, have another one. Function Arguments Function Arguments: A Recap Three main types of function arguments (three most common): Positional arguments Keyword arguments Default arguments Positional arguments: Keyword arguments: Notice that in these, the order does not matter in which you use them. Default arguments Here we assign default values to the arguments. THAT MEANS THAT EVEN IF WE USE NO ARGUMENTS WHEN CALLING OUR FUNCTION - THE FUNCTION STILL GETS CALLED - AND OUR DEFAULT VALUES STILL GET DEFAULTED TO.  It says here in the Codecademy course: "While these are the most common argument types, in this lesson, we will explore what happens when we want to make our function arguments MORE FLEXIBLE by TAKING A VARYING NUMBER OF ARGUMENTS." Variable Number of Arguments: *args The print() function - the very first function that we learned in Python !!! - can take an unlimited number of arguments. ...

A quick post on linear algebra: moar linear algebra

Image
A quick post on linear algebra: moar linear algebra Here I am again, learning some more of this. I started a book and watched a video. I guess that I could read the book on the bus. And on the train to London when I go. Matrices A matrix is a quantity with m rows and n columns of data. "We can combine multiple vectors into a matrix where each column of that matrix is one of the vectors". THE MATRIX - AGAIN "WE CAN ALSO THINK OF VECTORS AS SINGLE-COLUMN MATRICES IN THEIR OWN RIGHT." WE CAN ALSO THINK OF VECTORS AS SINGLE-COLUMN MATRICES IN THEIR OWN RIGHT. WE CAN ALSO THINK OF VECTORS AS SINGLE COLUMN MATRICES IN THEIR OWN RIGHT. MATRICES ARE HELPFUL BECAUSE THEY ALLOW US TO PERFORM OPERATIONS ON LARGE AMOUNTS OF DATA, SUCH AS REPRESENTING ENTIRE SYSTEMS OF EQUATIONS IN A SINGLE MATRIX QUANTITY. MATRICES ARE HELPFUL BECAUSE THEY ALLOW US TO PERFORM OPERATIONS ON LARGE AMOUNTS OF DATA, SUCH AS REPRESENTING ENTIRE SYSTEMS OF EQUATIONS IN A SINGLE MATRIX QUANTITY. ...

The Imitation Game, part III

Image
The Imitation Game, part III I'm still listening to the soundtrack. Still living my best life... A photo from the Imitation Game movie. What does Python classify as mutable? "A mutable object refers to various containers in Python that are intended to be changed." "A list for example has append and remove operations that change the elements of the list." "Sets and dictionaries are also two other mutable objects in Python AS THEY CAN BE CHANGED ON THE FLY".  "Some objects in Python are not mutable, and THEREFORE ARE OKAY TO BE USED AS DEFAULT ARGUMENTS". From the official documentation " Default parameter values are evaluated from left to right when a function definition is executed. This means that the expression is evaluated once, when the function is defined, and that the same "pre-computed" value is used for each call."  What on earth does this mean? I don't understand it!!! One thing I learned during my AI in rene...

The Imitation Game, part II

Image
The Imitation Game, part II I want to be like Alan Turing. I want to be like Ada Lovelace. I want to be like Margaret Elaine Hamilton. I can't even hide it anymore. I want to be like them. It's not about glory or successes.  It's just about living tech every single day. It's just about living in the quiet dream every single day. It's just about living the dream every single day. Everything else will follow... It's time to learn some Python 3. Intermediate Python I can't believe I am sitting here writing "Intermediate". It feels like only yesterday since I started coding. Mutable Default Arguments What is a mutable? A mutable refers to VARIOUS CONTAINERS IN PYTHON THAT ARE INTENDED TO BE CHANGED. A list for example "has append and remove operations" that CHANGE THE ELEMENTS OF THE LIST. Sets and dictionaries "are also two other mutable objects in Python" as "THEY CAN BE CHANGED ON THE FLY". It might be more helpful to n...

What I've Learned So Far This Week

Image
What I've Learned So Far This Week Everything so far this week has been CRAZY - oh my goodness. I've learned so so much. I wanted to reflect a few things I've learned from key players What I've Learned From My Mentor - Tech is not magical (Even when it is ✨) I had a wonderful first session with my mentor. I learned a lot of things from him. We ran a lot of scripts together. But the biggest thing I learned from him is that tech is never magic. There's always something going on under the surface that makes sense. What I've Learned From My Senior AI Developer - Accessing a new codebase It's probably not worth reading over a whole codebase as it might get too overwhelming straight away It is first useful to look at any documentation that exists It is first helpful TO GET A HIGH LEVEL OVERVIEW OF ANY OF THE KEY COMPONENTS/STRUCTURE Then, "you can try and understand the specific part of the codebase you want to contribute to in greater detail". How to un...

I have a dream, Part II

Image
I have a dream, Part II I have a dream and it is to one day be a staff engineer one day. I have a dream and it is to one day be on a call and to be demoing products to the customers. I have a dream and it is to always be a technical person. I have a dream and it is to be a technical person, always. I have a dream and it is to remain an IC, no matter what. I have a dream and it is to code, code, code. I have a dream and it is to one day build a beautiful codebase like my senior engineer's that I saw today. I have a dream and it is just to complete my intermediate Python 3 course. I have a dream and it is just to complete Codecademy's SQL course. There is also a pretty nice looking course called "Design Databases With PostgreSQL, I might ask my lead engineer if that is relevant. I have a dream and it is maybe just to do these two SQL and Databases courses. I HAVE A DREAM AND IT IS TO DO CODECADEMY'S DJANGO COURSE. I have a dream and it is to do Codecademy's Django sk...

I HAVE A DREAM

Image
I HAVE A DREAM I HAVE A DREAM, AND I'M NOT GOING TO BE AFRAID TO SAY IT, AND I'M NOT GOING TO BE ASHAMED TO SAY IT ANYMORE. I HAVE A DREAM AND I AM NOT AFRAID TO SAy IT. I have a dream and it's to have a beautiful AI/ML codebase like one of my Senior Engineers did. I HAVE A DREAM AND IT IS TO BE USEFUL ON A TEAM AND CONTRIBUTING TO SOMETHING. I have a dream and it is to be demoing a product that I have built on a call to a customer. I have a dream and it is to be a Senior Engineer. I have a dream and it is to be a Staff Engineer. I have a dream and it is to be making a huge impact in my first week in a team like I have seen my fellow Senior Engineer who started on his first day with me at my workplace. I have a dream and it starts by doing what my lead has told me - upskilling in Python, SQL and Django. It starts by upskilling in Python, SQL and Django. It starts by upskilling in Python, SQL and Django. I have a dream and it starts by UPSKILLING IN PYTHON, SQL AND DJANGO I ...

Don't worry, linear algebra can seem daunting at first, but it's not as complicated as it may seem

Image
Don't worry, linear algebra can seem daunting at first, but it's not as complicated as it may seem "Don't worry, linear algebra can seem daunting at first, but it's not as complicated as it may seem". Thanks for that one CHAT GPT "Vectors of the same dimension (having the same number of components) can be added or subtracted" BUT WHYYY Chat GPT has been explaining to me how to multiply and double vectors ARRRRRGH How to double them and add them I mean ARRRRRGH I got this one right though, thanks So that's awesome Save for a tiny bit of arithmetic... What's this? What's next please? What's next? Oh no... Oh no... Oh no  No please ARRRRRGH "Vector Dot Products" AN IMPORTANT VECTOR OPERATION IN LINEAR ALGEBRA IS THE "DOT PRODUCT" A DOT PRODUCT TAKES TWO EQUAL DIMENSION VECTORS  AND RETURNS A SINGLE SCALAR VALUE BY SUMMING THE PRODUCTS OF THE VECTORS' CORRESPONDING COMPONENTS THIS CAN BE WRITTEN OUT FORMULAICALLY A...

How To Find The Magnitude of a Velocity Vector

Image
How To Find The Magnitude of a Velocity Vector How to find the total speed or MAGNITUDE of a velocity vector. Today I started my AI journey. Maybe I started it August 6th 2022 when I started my software engineering journey. Today I finally caved and admitted to myself that I was LEARNING AI. So I started a free Linear Algebra course on Codecademy - ARRRRGH - regretting it already. But the journey of a thousand miles begins at your feet. Late at night in a work office when I should've gone home. Asking ChatGPT for help on understanding Codecademy's instructions. Asking AI to help me with learning to write AI. Seems legit. So how DO you find the MAGNITUDE of a VELOCITY VECTOR? HOW TO FIND THE MAGNITUDE OF A VELOCITY VECTOR The formula is THE SQUARE ROOT of THE SUM of EACH OF THE VECTORS SQUARED. This can be represented as such: So the sum of v = (3, 2, 4) would be the square root of 3 squared plus 2 squared plus 4 squared so 9 + 4 + 16 = 29 The square root of 29 is... approximate...

How To Approach A New Codebase

Image
How To Approach A New Codebase I haven't done this in a while. So how do I do this please? The very first step is to break it down. Hold on a minute. Let me write this down properly. Steps 1. Break it down Chat GPT says to "Don't try and understand everything at once.  Break down the codebase into smaller, manageable parts. Focus on understanding one module, class or function at a time. 2. FOCUS ON PATTERNS PATTERNS PATTERNS YES YES YES PLEASE I LOVE PATTERNS LOOK FOR RECURRING PATTERNS OR CONVENTIONS IN THE CODEBASE LOOK FOR RECURRING PATTERNS OR CONVENTIONS IN THE CODEBASE LOOK FOR RECURRING PATTERNS OR CONVENTIONS IN THE CODEBASE LOOK FOR RECURRING PATTERNS OR CONVENTIONS IN THE CODEBASE LOOK FOR RECURRING PATTERNS OR CONVENTIONS IN THE CODEBASE LOOK FOR RECURRING PATTERNS OR CONVENTIONS IN THE CODEBASE LOOK FOR RECURRING PATTERNS OR CONVENTIONS IN THE CODEBASE LOOK FOR RECURRING PATTERNS OR CONVENTIONS IN THE CODEBASE 3. Take breaks - yeah yeah yeah right okay I'll...

The most phenomenal slack message that I have ever received in my life

Image
The most phenomenal slack message that I have ever received in my life I have some really amazing people working on my new team. Today I asked an absolutely phenomenal Senior Machine Learning/AI engineer how to approach a new codebase and I honestly just got back the most amazing reply that I have ever received in my life. Wow. How to approach a new codebase: the senior edition My Senior told me that he doesn't usually bother with trying to read the whole codebase at once, because it can be pretty overwhelming. This is great advice as I think I normally get bogged down with trying to sit down and trying to understand everything. Not surprisingly I usually get overwhelmed after an hour or so, so then I just have to stop. So this is really amazing advice from my wonderful colleague. First look at any useful documentation that exists You can then try to understand it at a high level, and understand the overall structure and the key components of the codebase  So for example - instead ...

On My One And Only New Year's Resolution

Image
On My One And Only New Year's Resolution I had one and one and only new year's resolution this year. And that was to say yes to whatever came up. And to see every aspect of software development as fascinating and exciting. Sometimes unexpected things come up Life is what happens when you're busy making other plans. In Spring 2018, my mother bought me a book It was a book by a Buddhist author. I was busy reading another Buddhist book to try and solve all my problems. I was so annoyed my mum had interrupted my flow. But the book my mum got me changed my life. It changed my life forever. I was never the same person again. I opened up the door to my heart. I live a better life thanks to that book everyday. Today I had plans at work to clone a repo and then research virtual environments. Instead someone offered to pair and I learned from that person. Sometimes changing our plans can make us feel like we are learning less, but we are actually just learning more. Every day I want ...

The Rebasing Adventure: Chapter 1

Image
The Rebasing Adventure: Chapter 1 There was an island deep deep far far away, hidden away. It was littered with dangerous and poisonous snakes. Green snakes. Pythons? In the middle of that island there was a little red wooden shack on top of the hill. And in that shack lived... me.  And in order to escape the valley of the snakes littered afraid all over the little island and to make the desert island safe again... I had to learn REBASING. At least that's what I told myself anyway. Brazil's real-life 'snake island'. Must it really have to be as scary as that? The rebasing journey so far My work values neat, ordered commits. This makes it easier for the developer reviewing your pull request to handle it. So you want your code to be in atomic commits - each code does one thing and is self contained. Each commit should also do things properly - no commits going back and randomly fixing things and breaking things. So the problem here is that this requires rebasing. I did tr...

So Long, London

Image
So Long, London I think one of the things I find it the hardest to do with tech and coding is concentrate. I get so distracted by everything. I get the work done in the end but I don't want to work that way anymore.  I want to work in a way that is focused and that always prioritises everything that is the most important to me. One of the techniques I got for this is from my former Product Manager, Owen And that is to always, always ask: IS THIS GOING TO HELP ME WITH MY GOAL OF BECOMING A SOFTWARE ENGINEER? Or I guess now that I am one, IMPROVING/GROWING AS A SOFTWARE ENGINEER? The thing that people don't see about me is THE ABSOLUTELY INSANE AMOUNT OF WORK I HAD TO PUT IN TO GET HERE. I'm not talking about training to become a Software Engineer. Although that too. But before becoming a software engineer, long long before, prior to even starting working or even obtaining my first degree (I have 3), I had to fight so so hard to progress and succeed. And so do you know what? ...

Made A Wish On An Eyelash - Again

Image
Made A Wish On An Eyelash - Again OH MY GOD I can't even tell you how good it feels.  How good it feels to be back at work again. To be working on my mission. Okay, I'm not working on renewable energy tech anymore. But I'm still working surrounded by renewable energy tech. And I'm working on water tech now. How is that any less of a mission. What I am working on right now has never been done before.  It is completely unique and new and it is crazy. And I love my new team so much. I can't even tell you how lucky I am to be working with them. Ho my God. OH MY GOODNESS I have missed working so so so much. Because I don't care because even though I am back to having so little time again in the day - WHAT ELSE COULD I BE DOING THAT COULD BE MAKING ME HAPPIER THAN THIS IS? How lucky I am to have something that makes me rush to get out of bed every morning and run out the door How lucky I am to have people around me that I love How lucky I am to be doing this and doing...

Almost Heaven

Image
Almost Heaven I am really really struggling.  I want to sit down and focus. I want to sit down and write some code. I want to sit down and get organised again and feel organised again. I know what my next steps are. I need to download some more services, download a repo. With starting a new job there is lots to be done. Onboarding needs to be done and understanding the product. I am so keen to get stuck in and to understand my new product. And I love it so much. And I love meeting people and stuff and I love posting on LinkedIn and I even really love and enjoy training sessions when I can be active and participate in them. I just long for that quiet time, me time. Time when I code. Time when I write code. Time when I do what I love. I love talking to people but I love to write code too. I struggle to carve out focus time. When I was applying for jobs I had 4 weeks of intense silence when I could finally write a lot of code on my own. How do I balance that with people? How do I carv...