She was literally reverse-engineering Mali for Panfrost starting in her Sophomore year.
She was literally reverse-engineering Mali for Panfrost starting in her Sophomore year.
> Where do people get this knowledge?
Time, hands-on experimentation, and focus.
Anecdotally, reverse engineering and low-level hacking felt more popular back in the 90s and early 2000s. Back then, there were fewer distractions to soak up the free time of young tech enthusiasts. Old IRC chatrooms feel like a trickle of distraction relative to the firehose of Twitter, Reddit, 24/7 news cycles, and modern distractions.
A common complaint among the younger engineers I mentor is that they feel like they never have enough time. It's strange to watch a young, single person without kids and with a cushy 9-5 (or often 11am to 5pm at modern flex/remote companies) job complain about lack of free time. Digging deeper, it's usually because they're so tapped in to social media, news, video games, and other digital distractions that their free time evaporates before they even think about planning their days out.
It's amazing what one can accomplish by simply sitting down and focusing on a problem. You may not reach the levels of someone like Alyssa, but you'll get much farther than you might expect. And most importantly, you probably won't miss the media firehose.
There is also the possibility, They might be right. Before, communication and the long access lag inherent in accessing data in remote systems meant change propagated by trickle. Now, change can happen and propagate across the world at breakneck speeds. Which means if one is to have an effect, one must be there/be aware.
This leaves precious little time for following the white rabbit. I think everybody could do with a little somber reflection on just the impact that rapid information propagation has had on the world.
In high school, I was lucky enough to not have to do laundry, feed myself, or a variety of other tasks and chores that come along with adulthood. I also could sleep like crap and make it up during school the next day. Not to mention that the time I spent at school wasn't spent programming, so when I got home it wasn't more of the same, it was exciting. I could sit at the computer programing from 3pm to 2am.
It doesn't surprise me that some kids capitalize on it instead of just using it to watch Twitch in class.
YouTube hadn't really taken off until we were in middle school to early high school, so I couldn't imagine what internet addictions may be like in the future, seeing as quite a few toddlers of today grow up watching it. I suppose it's not too different to Television however.
Funny how this works. In high school I had a ton of free time. In college, not a lot of free time and very stressed. Entering the workforce, again a lot of free time and very stress free. I expect free time will disappear if children ever come into play
That would very much depend on how you choose to live.
As for me, living in Thailand and being a father of one daughter, I need to earn about 1.500 USD per month for our monthly needs. Which is easily achievable for me with less than a week of work. All extra money I earn above basic needs, I invest.
My current client sometimes has work for me 40 hours a week, sometimes only 40 hours a months. As such, I have plenty of time to dedicate to my own hobbies.
But this is only achievable because I left The Netherlands and decided to work remotely. And I do understand these kinds of choices are not possible for everyone (some people would find it very hard to live in another country, far away from family and friends, for example).
In our field and by making suitable choices it should be possible to have plenty of time for your own hobbies and projects.
Wrote about it here https://link.medium.com/BAGPsTlChdb
Cooking is generally taken care of by parents, which means ancillary things like grocery shopping are too. You don't even have to dedicate brainwidth to "what groceries do we need to buy". There are so many tiny interruptions and bureaucratic overhead that keeps the brain slightly stressed as an adult that simply don't exist as a child, it is marvelous.
Knowing what to work on, what trends to be aware of, where to present your stuff is something that a modern elite collegiate is intimately familiar with.
Other teens and young adults, not so much. I myself having been one such and friends of other such.
In the time before I started work and after finishing school I used to do so much open source stuff in the time that I now spend working.
I picked up JavaScript (or actually JScript) in 2001, when IE6 was this new hot thing. Back then you could cover most of the material on front-end in a week or two and not have to learn anything new for at least a year.
Fast forward 20 years later and browsers have major releases every few weeks while one of the most stable frameworks available - Angular - every six months.
It was a wonderful time to learn about computing from first principles without the distractions that exist today.
But I think we undersell the abilities of college-aged adults in modern times. Watch some top violinists or gymnasts at that age, or just someone who had a couple of kids as a teen and held it together.
The young have unbounded ability; it is only wisdom and experience that they may lack.
https://www.atariarchives.org/
Yes, they are for the Atari, just trying to make a point here.
So any smart kid in the age of Internet, instead of having what is available at the local library, is quite capable to build up the skills to achieve this kind of work at the high school level.
I guess anyone doing games were a prodigy back then.
I would imagine at that time there were also many fewer kids at a high-school level doing that kind of hacking, so it might not be totally wrong to say they were all prodigies.
The Ataris had a display process called Antic that you supplied with a display-list, a set of tokens that defined which antic-mode was next as the electron-dot proceeded down the screen. Antic would halt the CPU and take over the bus in order to transfer data from main memory to use for display purposes, be it character or bitmap data
You could choose from a variety of modes (15 in all, IIRC) and add horizontal or vertical smooth scrolling to each mode-line individually by toggling a bit in the display-list entry.
One further bit allowed you to set a DLI (Display-list interrupt) where the CPU would be interrupted and run your code at that end of the specific display-line on-screen - you had the flyback interval to effect something (not a lot, but you could change colour registers, character-sets, do a few register operations, basically).
So it was minimally programmable, and certainly not comparable to today's stuff - but it was groundbreaking in its day.
https://rosenzweig.io/blog/solving-bit-magic.html
I'm jealous of people who started programming as a kid.
Back in the 80s lots of kids that age wrote computer games and often found novel ways to use the hardware because even though video controllers might not be fully documented you still knew where their control registers were in memory and could just try altering the values in them.
Now, modern graphics hardware is more complex and controlled by things like command buffers and shaders, but you can apply similar ideas, and you’ve probably got easier tools for examining the state of your process. Write a program that does a simple thing and dump its state. Do a slightly different thing and compare the states. When you think you understand things either change your program and see if you’re correct or use a debugger to alter the state at runtime and see if you can change the visible result.
and intelligence and education and intellectual curiosity and non-working time and energy/stamina ...
That Venn diagram ends up with a pretty small number of humans ...
Please could you link to some of the reverse engineering writing by you guys to which you're referring?
It's why kids are able to devote so many hours to video games and other time waster stuff.
Only difference is this person managed due to luck / skill / timing to end up on a more productive path.
Time commitment is the big impediment for most open-source projects. Late adolescence / young adulthood is one of the few periods of life where you both are competent enough to do useful things and have enough free time to actually commit to that work.
Of course back then, people used to document the components they put in computers...