- implement your simple neural network learning XOR
- implement your hash table or your version of std::unordered_map (array +
hash function + tombstones)
- arena allocator
- dynamic array or your version of std::vector
- a circular/ring buffer (that you can also use as a queue/stack) CC = clang
CFLAGS = -g -std=c2x -Weverything -fsanitize=undefined,address
all: app.exe
app.exe: src/main.c
$(CC) $(CFLAGS) src/main.c
clean:
rm -rf /build
See my comment here with an example of an NMAKE Makefile.
Consider: CC = cl.exe
LD = link.exe
CFLAGS = /Od /Zi /FAsu /std:c17 /permissive- /W4 /WX
LDFLAGS = /DEBUG /MACHINE:X64 /ENTRY:wWinMainCRTStartup /SUBSYSTEM:WINDOWS
LDLIBS = user32.lib gdi32.lib
PREFIX = ../src/
all: app.exe
app.exe: app.obj
$(LD) $(LDFLAGS) /OUT:app.exe app.obj $(LDLIBS)
app.obj: $(PREFIX)app.c
$(CC) /c $(CFLAGS) $(PREFIX)app.c
clean:
rmdir /q /s build `-*,cert-*`
(Which disables all default options, and checks your code according to the Secure coding standard (CERT) ruleset.) - Firmware-wise (e.g., Intel Management Engine, Coreboot, Libreboot, system on a chip)
- Hardware-wise (i.e., Von Neumann architecture - Code + Data)
- Operating System-wise
(e.g., 0-click exploits, remote code execution to manipulate the CPU's instruction pointer,
stack overflow, Pegasus)
- Facility-wise (e.g., electromagnetic waves, cell towers, Faraday cloth)
- You (making mistakes)
What you can ultimately do is: rely on randomness (e.g., rolling casino-grade dice), Diceware, one-time pad, no computers of any kind.
Further, hope that time traveling backwards remains impossible.
Otherwise officers will travel back in time and can see what you wrote (e.g., unencrypted message) back then.
However, given the availability of LLMs, how would you justify the expense of hiring junior developers fresh out of school?
Check Microsoft.com or Google.com's career pages as an example (you will also see something similar going on within mid-sized companies), do you find any jobs for entry level applicants? Are those entry level jobs offered mostly in India or Eastern Europe?
So tell me, how is the ability to think helpful for an entry level applicant, when HR departments won't hire you because you lack “2+ years of non-internship C++ experience” for an entry-level position?
My point: being able to think is of course fine, but HR departments require you to do back and front flips, speak perfect reverse Mandarin Chinese and have 2+ years of non-internship experience in C++ on top of that. Being able to think won't justify the expense of hiring a junior dev fresh out of school in a high-income country. (At least this is my impression of the current job market.)
PS: So, I just finished school last year, and I'm still on the hunt for a job. It seems like a lot of companies in wealthy countries are holding off on hiring newbies like me. I get why they're doing it (e.g., inflation, interest rates), but it's really frustrating when you're the one affected.
I mean, how are we supposed to get experience if no one's willing to give us a shot, right? It's a tough spot to be in. Then the LLMs (even if they cannot think), they still bring value and accelerate development (with a potentially lower headcount). Seniors will be fine without us juniors given the prevalence of LLMs and high inflation environment (which makes companies risk-averse and very picky).