Yeah. My favorite are books that guide you through implementing complex systems projects from scratch, like Nora Sandler's "Writing a C compiler", or Sy Brand's "Building a Debugger". I wish they produced A LOT more of them.
The central point behind this type of books isn't so much to build an enterprise-grade production-ready thing, but rather to bridge the delta between zero and having a working thing of sufficiently large complexity, which inevitably exists for someone who had never been there before. Having that in mind, I think these books are very valuable.
I'm literally considering a career switch from software engineering to electrical engineering and electronics, and naturally going back to school, because the AI and the way it's used in writing software has sucked out all the meaning in it for me.
That's me! I found I was treated much better in software, the timelines were much more reasonable and your input was valued. When doing firmware, typically everyone's timelines would slip but the delivery date wouldn't which meant your time with a fully functional device (if you even get one at all) would reduce. Half the time you're developing on a half-broken version of the real device
I mean, it's not like I'm going to forget how to write code any time soon. I'm currently recovering from the n-th tough burnout, and I feel like I need a shift toward something new and meaningful. When it comes to job opportunities, from my perspective, knowing the entire stack (not in the webdev sense, but rather both hardware and software) makes you highly attractive on the market, in both worlds. So, while I genuinely can't predict what I'll end up doing 5 years from now, I do feel like it's time to familiarize myself with the other side of the entire stack.
@xqb64: I've been coaching founders through the exact "n-th burnout" cycle you're describing. Usually, it's an environmental/biological bottleneck, not a willpower one. I'm building a 72-hour surgical Reset protocol specifically for high-load profiles like yours to reclaim deep work without the noise. Would be curious to get your take on the framework: https://github.com/joethearchitect/72-hour-reset
Update: We just pushed the official site live at https://thearchitectreset.com/ for those who want to see the full clinical breakdown and testimonials from other founders. @xqb64 hope this helps contextualize the framework.
That's one possible way to look at it. The other, perhaps more positive way to look at it, is that similar to autocomplete, AI-assisted tools have made the boring parts less boring and left more space for the interesting bits. I use them every now and then for chores and such which I would put off otherwise, but there is certainly no shortage of interesting problems that they can't tackle. Now I just have more time to focus on those.
I'll admit that I'd used github copilot while I worked on one of my projects, and I couldn't help it but notice a rather significant cognitive decline whenever I set out to take over and start hammering out the code myself. I just can't allow cognitive declines.
I'm in the same boat, I'm hoping firmware / embedded might be better in this regard due to the inherit constraints. If not then EE is probably the only other option. Anyone else have thoughts on this? I'm craving a more civil engineering approach to rigor rather than the mess of modern software. Perhaps that means software just isn't for me.
I'm definitely wanting to do something with more of a civil engineering approach to rigour. More and more I think software is full of children who don't care and don't know the meaning of responsibility.
I doubt it, I feel like it might improve shops that already care and are already creating with rigor. I don't think it'll raise the bar for the avg shop. However, perhaps that's just be being cynical. By real time embedded is the same do you mean the same in the sense that they are just as poor in quality?
> [...] the same in the sense that they are just as poor in quality?
I mean some real-time software for critical embedded systems has an incredible level of rigor, making heavy use of static analysis, model checking, and theorem proving.
I think the last thing this world needs is programmers bringing their particular style of “””engineering””” to important things like bridges. Can’t wait to hear about the 5-9s of uptime on the Golden Gate.
Because programmers probably think it'll be a similar field, but it's different. It has correct and incorrect ways of doing things, strongly enforced. You're not inventing new shit, you're reapplying old shit constantly. Old shit that works.
Many think writing software is engineering, but it couldn't be further from the truth.
edit: to clarify, trying to get people to realize the grass isn't always greener, and both sides are better off for it.
Your comment feels unwarranted because other engineering professions have guardrails, because they recognize that people will die if they don't. Your comment is implying that a software engineer can simply apply their existing (lack of) guardrails when that's probably not the case.
No, my comment is implying that if you enjoy the relative freedom of writing software in new and interesting and novel ways, you probably will not enjoy copy-pasting buildings or bridges or whatever again and again and again.
People can easily die due to software, and there are still few (any?) regulations in almost every single industry, plus no way to assign accountability. If a bridge collapses, it's pretty simple to figure out whose fault it is.
Yeah I'm the same, I enjoy thinking of a system of things, doing it, not typing a couple of commands and a bunch of code is generated. It's not the rote process but feeling like I worked for it/doing it. Similar argument is "why buy milk" you can get a cow, milk it yourself, kind of thing. Which I see that, some people don't care what the code looks like, does it work.
Any sufficiently interesting project won't be generated with a couple of commands though: you can still think about systems, about the _right_ way to do something. Then you can document your understanding and hand it to Claude Code to do the fiddly bits which you _could_ do, but they're not as interesting. You're already using a higher level language and leaving implementation details to the compiler: this is another step up.
What about code verbosity and vulnerabilities, I guess make smaller change sets.
Still I do like the process of typing things out, vs being like a checker of check boxes, looks good check, looks good check, kind of deal.
I don't mean typing as in typing a story but feel that I'm actively building it.
What's bad is I'm not 100% into it, I work in this field but I'm also skeptical of it at the same time. I'm not like "hell yeah Agents!" But also I work with them and it's the current hotness for high paying jobs.
Tangent: reality perception is funny, like why hike, you could just watch someone else hike... I think jewelry is worthless (waste of money to buy) but others don't that kind of thing.
Generative AI didn't need to come into existence in order for the proliferation of utterly mind-numbing devops slop that already dominated modern development to suck all the fun out of computers that were originally intended to solve problems for humans.
That's the difference between the original "free software" community and the "open source" one to me, including its modern incarnation on GitHub: the former produces a collaborative effort to develop a UNIX replacement/alternative and a thriving ecosystem around free software desktop environments with apps intended for humans to do their personal computing. The latter gets you Apache Kafka.
I have considered enrolling in a university precisely for the same reason, but I never would have thought that something like that would be considered "valid".
I guess I'm full of questions for you, but in short:
- Where are you coming from and what is your target destination?
- Have you made 101% sure that this way of studying would be acceptable to the employers in your prospective destination country?
- Does one need $20-25K up front, or is there a payment plan?
Thanks if you decide to answer, and I wish you a good luck.
Happy to answer. Feel free to get in touch on one of the socials in my profile to discuss further.
Q1. I'm from Australia, and the target destination is USA. Although I have no firm plans, I want to have the option in future. Australian's have access to a particular visa called E-3, which I have failed to obtain in the past due to lack of degree.
Q2. Yes. Upon completing this, I will have a BSc in Computer Science from the University of London. It's a bachelor's degree as good as anywhere. The exams are proctored, and all the exams/assignments are graded via Goldsmiths University. It's 100% legit.
Q3. You pay per module, so you don't need to pay up front. You just pick how many modules you want to do that semester and pay for them. The only requirement is that you must complete enough modules per semester to finish within 6 years. Since the education is directly related to my work, it is also tax-deductible in my country.
>and all the exams/assignments are graded via Goldsmiths University
I realize that you are doing this to check off the degree box on your visa application, but if your degree will be from Goldsmiths (that is, "Goldsmiths, University of London" on a résumé, as opposed to the generic "University of London", that would be especially helpful.
I had a look at another student's diploma certification, and it says:
> "... having registered with the University of London and passed the approved examinations conducted by Goldsmiths College, has this day been admitted by the University of London to the Degree of BACHELOR OF SCIENCE".
So I don't think it would be unreasonable to mention Goldsmith's College alongside UoL as your education history.
Yep, all exams are done remotely, using Inspera proctoring software.
The "classes" are just videos on Coursera - totally optional. You have mandatory midterm assignments, and either a final assignment or an exam, depending on the class.
I've had this exact bug happen to me when I implemented my git clone.
The way I found out was that Github kept rejecting my push, because as I later discovered, my git history was invalid precisely due to entries being sorted improperly due to the forward slash requirement. I could have solved this with the real git, but the point was to use my tool exclusively for version control from inception, so I just deleted the .git folder. So, my git history appears to begin near the end of the whole cycle. But I did manage to learn a lot, both about git and about the language I implemented it in.
reply