Ignore the name (neural networks might as well be a footnote). A more appropriate title would be “generic problems and algorithms”.
(Artificial Intelligence: A modern approach by Russell and Norvig)
I agree, and here’s a few different avenues of examples:
If trying to get past interviews, Leet code and hacker rank can be great. They’re not so great for real world problems, but not bad.
Advent of code is a good middle ground between theory and practice in my opinion.
To really learn real world problem solving, I’d recommend implement a specification, without looking at existing implementations. For example, make a basic regex engine (formal Regular Expressions not PCRE expressions), or try to implement the C Preprocessor, or the JS event loop.
“Algorithms to live by” https://www.amazon.com/Algorithms-Live-Computer-Science-Decisions/dp/1627790365
Less technical than you probably want, but it is useful for mapping real world problems to known algorithms.
Celebrities are going to be shocked when they hear about email
Distros should ship with this this under /readme.jpg
Don’t forget the fully fledged remote desktop thats built in, WebVR (which is being replaced with Web XR), Web Bluetooth, Web USB (aka Web Serial), the API’s for notifications, ambient light sensors, an entire transactional database (indexed DB), the language translation API, the Gamepad API (videogame controllers), hardware passkeys (yubikey), speech to text, text-to-speech, webGL, webGPU, webworkers, service workers, an entire suite of cryptography tools, GPS location, battery, vibration, FileSystem API, picture-in-picture API, WebRTC, WebSensors, etc.
And then, on top of all that, building a miniture OS-kernel so that tasks can be sandboxed scheduled/executed and prevent 1 tab from crashing everything or hogging resources.
Kinda surprised nobody has said this: start your own instance. Seriously, thats the power of the fediverse.
If you paid a true professional to sit down 1-on-1 with you everyday for 6 months, and you are good at learning I think yes, for most but not all software positions. But unless you’re forking over $200k I don’t think any professional dev is going to do that for you.
The sorting algorithm(s)
Ever since the accidental event that was interpreted as war, no not the one in 1957, not the one in 1958, or the other one in 1958, not the one in the 60’s or 70’s. The one in the 80’s. No not that one, the other one in the 80’s. Yeah that one. Anyways, ever since that one happened and triggered nuclear armageddon there hasn’t been much activity at all. Give it another couple millennia and maybe more complex organisms will roam the earth again.
This could actually be a pretty big deal
Use e2e for all communication you can
Wow that’s super interesting to know. So its still got some resistance, but a lot less than I thought. Thanks again for sharing!
Thank you for such a long and detailed post! I indeed did not know about things beyond the SIM, and I didn’t know about the extra details about the country codes either. That is extremely interesting to me.
With the phone spoofing though, does that mean two factor with a phone number is basically useless? If I had authentication based on a MAC address, it would take seconds to break it. But I think, and sure hope, that auth based on phone numbers is more secure.
I think your domain name answer – that for the most part computers didnt need them – is a very satisfying answer.
If I’m understanding correctly, you’re saying that right now the network doesn’t have an exhaustive table of IP addresses to physical locations. It has a cache, and a hierarchy, and the path to a location of the IP is fluid.
But a system where every device could be directly contacted/identified like a Sim card, would effectively require a complete table of “what network is device ABC at”. A table that is updated every time the device changes network connections. It would be like trying to change domain name to point to a different IP address.
The problem is, updating a domain to point to a new IP takes hours or days not seconds, so doing that every time a phone changes WiFi is not practical.
Is that a good summary?
Finally :D thank you so much!
So basically VOIP is “cheating” because its not actually handled by the network directly, the phone company pays for always-online servers, and phone(s) reach out to those server every time they change networks, in order for servers to be able to route calls to them.
Which also means! it is possible to do the same thing for computers, but it requires having
Which also explains why general network providers wouldn’t want to create the infrastructure. Even if universal addresses were given to each device, which simplifies DHCP and address-leasing, and shortens time it takes to handshake with the network, all of that is less of a cost than the infrastructure needed track of devices as they change networks. (And that’s on top of ISP’s being slow to change from the legacy approach of local networks and desktops).
^ which is more the conversation I wanted to have but didnt really get with this post.
Thats a sizable edit!
Yeah 😅 I didnt want it to be this complicated of a question, but I didnt see how else to explain that current addressing systems don’t meet the same need as a phone number.
Its a tough problem. You have to find something that you want to exist; like an app or a website or a game. For example, try making a GUI for managing SSH keys. You know, like the ones github makes you create in order to clone and push to a repo. Make a visual representation of those keys (stored in the .ssh folder), and tools to add/delete them.
Along the way you’ll find tons of missing things, tools that should exist but don’t. Those are the “real” projects that will really expand your capabilities as a developer.
For example, I was coding in python and wanted to make a function that caches the output because the code was inherently slow.